新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > S3C44B0X微處理器內置LCD控制器

        S3C44B0X微處理器內置LCD控制器

        作者: 時間:2010-09-13 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/151558.htm

          KCS057QV1AJ驅動程序開發

          驅動程序包括初始化端口D和端口C的函數,初始化的函數,打開和關閉顯示模塊的函數,在顯示模塊上顯示條紋的函數,所有的函數都有詳細的注釋。

          初始化端口D和端口C函數如下:

          void Port_Init(void)

          {

          rPCONC=0x5f55ffff;/GPC15為輸出端口,GPC4-GPC7分配給LCD數據線VD7-VD4;

          rPUPC=0x0;/端口C所有的引腳上拉允許;

          rPDATC=0x3fff; /端口C所有的引腳初始化為高電平;

          rPCOND=0xaaaa;/端口D所有的引腳分配給LCD;

          rPUPD=0x0;/端口D所有的引腳上拉允許;

          rPDATD=0xff;/端口D所有的引腳初始化為高電平。

          }

          初始化LCD函數如下:

          void LCD_Init()

          {

          int i;

          U32 LCDBASEU,LCDBASEL,LCDBANK;

          LCDDisplayOpen(FALSE);/關閉LCD;

          rLCDCON1=(0);/關閉視頻輸出;

          rLCDCON2=(239)|(11910)|(1521);

          /設置確定行掃描的返回時間為15個MCLK,設置屏為彩色320 240點;

          LCDBANK=0xc000000>>22;/設置顯示緩沖區首地址在系統存儲器中的位置;

          LCDBASEU=0x0;/設置緩沖區的開始地址;

          LCDBASEL=LCDBASEU+(160) 240;

          rLCDSADDR1=(0x327)|(LCDBANK21)|LCDBASEU;

          /設置顯示模塊為彩色模式等;

          rLCDSADDR2=(029)|(021)|LCDBASEL;

          rLCDSADDR3=(320/2)|(09);/不使用虛屏;

          rREDLUT=0xfca86420;/設置紅色查表寄存器, 與特定的顯示要求有關;

          rGREENLUT=0xfca86420;/設置綠色查表寄存器,與特定的顯示要求有關;

          rBLUELUT=0xfffffa50;/設置蘭查表寄存器,與特定的顯示要求有關;

          rLCDCON1=LCDCON1_ENVID|01|02|03|(25) |17|(0x38)|(0x310)|(CLKVAL12);

          /使能視頻輸出,8位單掃描方式,設置WDLY,WLH,CLKVAL;

          for(i=0;i80*240;i++)/顯示緩沖區清零。

          *(pLCDBuffer16+i)=0x0;

          }

          從圖2知,GPC15用來打開關閉LCD。打開和關閉LCD顯示模塊的函數如下:

          void LCDDisplayOpen(U8 isOpen)

          {

          if(isOpen)

          {

          rPDATC|=0x8000;/打開LCD

          }

          else{

          rPDATC=0x7fff;/關閉LCD

          }

          }

          在LCDBANK寄存器中已經定義了顯示緩沖區在系統存儲器的段首地址為0xc000000,要顯示字符、圖片只需將字符、圖片取模得到的數據送到該緩沖區就可以了。但是要注意,彩色LCD是8位數據表示一個象素。對緩沖區首地址進行如下定義:

          U32 pLCDBuffer16=(U32*)0xc000000;

          下面舉一個在整個屏上顯示明暗相間的條紋的程序,顯示明暗條紋函數如下:

          void LCDstripe ()

          {

          int i,lcddata;

          for(i=0;i(320*240)/4;i++)

          {

          lcddata0=0x0ffff0000;

          *(pLCDBuffer16+i)=lcddata;/向幀緩沖區送數據,每次4個象素的數據。

          }


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 敦煌市| 禄丰县| 乌兰察布市| 海伦市| 临江市| 巴彦淖尔市| 鸡东县| 广东省| 瓮安县| 洛浦县| 阳原县| 突泉县| 茌平县| 嘉善县| 宜昌市| 钦州市| 达州市| 栾川县| 舟山市| 霍州市| 江城| 南涧| 越西县| 公主岭市| 张掖市| 东方市| 无为县| 荔浦县| 乌拉特前旗| 德江县| 汪清县| 丹巴县| 峨山| 尚志市| 龙门县| 离岛区| 石家庄市| 新泰市| 鄂州市| 惠来县| 濮阳县|