新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > S3C44B0X微處理器內(nèi)置LCD控制器方案設(shè)計(jì)

        S3C44B0X微處理器內(nèi)置LCD控制器方案設(shè)計(jì)

        作者: 時(shí)間:2012-06-26 來源:網(wǎng)絡(luò) 收藏

        KCS057QV1AJ驅(qū)動(dòng)程序開發(fā)

          驅(qū)動(dòng)程序包括初始化端口D和端口C的函數(shù),初始化的函數(shù),打開和關(guān)閉顯示模塊的函數(shù),在顯示模塊上顯示條紋的函數(shù),所有的函數(shù)都有詳細(xì)的注釋。

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

          初始化端口D和端口C函數(shù)如下:

          void Port_Init(void)

          {

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

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

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

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

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

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

          }

          初始化LCD函數(shù)如下:

          void LCD_Init()

          {

          int i;

          U32 LCDBASEU,LCDBASEL,LCDBANK;

          LCDDisplayOpen(FALSE);/關(guān)閉LCD;

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

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

          /設(shè)置確定行掃描的返回時(shí)間為15個(gè)MCLK,設(shè)置屏為彩色320 240點(diǎn);

          LCDBANK=0xc000000>>22;/設(shè)置顯示緩沖區(qū)首地址在系統(tǒng)存儲(chǔ)器中的位置;

          LCDBASEU=0x0;/設(shè)置緩沖區(qū)的開始地址;

          LCDBASEL=LCDBASEU+(160) 240;

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

          /設(shè)置顯示模塊為彩色模式等;

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

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

          rREDLUT=0xfca86420;/設(shè)置紅色查表寄存器, 與特定的顯示要求有關(guān);

          rGREENLUT=0xfca86420;/設(shè)置綠色查表寄存器,與特定的顯示要求有關(guān);

          rBLUELUT=0xfffffa50;/設(shè)置蘭查表寄存器,與特定的顯示要求有關(guān);

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

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

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

          *(pLCDBuffer16+i)=0x0;

          }

          從圖2知,GPC15用來打開關(guān)閉LCD。打開和關(guān)閉LCD顯示模塊的函數(shù)如下:

          void LCDDisplayOpen(U8 isOpen)

          {

          if(isOpen)

          {

          rPDATC|=0x8000;/打開LCD

          }

          else{

          rPDATC=0x7fff;/關(guān)閉LCD

          }

          }

          在LCDBANK寄存器中已經(jīng)定義了顯示緩沖區(qū)在系統(tǒng)存儲(chǔ)器的段首地址為0xc000000,要顯示字符、圖片只需將字符、圖片取模得到的數(shù)據(jù)送到該緩沖區(qū)就可以了。但是要注意,彩色LCD是8位數(shù)據(jù)表示一個(gè)象素。對(duì)緩沖區(qū)首地址進(jìn)行如下定義:

          U32 pLCDBuffer16=(U32*)0xc000000;

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

          void LCDstripe ()

          {

          int i,lcddata;

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

          {

          lcddata0=0x0ffff0000;

          *(pLCDBuffer16+i)=lcddata;/向幀緩沖區(qū)送數(shù)據(jù),每次4個(gè)象素的數(shù)據(jù)。

          }

        LCD顯示屏相關(guān)文章:lcd顯示屏原理


        lcd相關(guān)文章:lcd原理

        上一頁(yè) 1 2 3 4 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 宁城县| 资阳市| 喀什市| 南澳县| 东平县| 大荔县| 云安县| 砚山县| 灵寿县| 肇源县| 台州市| 鄂托克旗| 岳阳县| 扎囊县| 安阳市| 监利县| 辽阳县| 靖远县| 循化| 昌乐县| 广丰县| 察哈| 苍山县| 大宁县| 湘阴县| 南木林县| 孟津县| 德阳市| 柳林县| 如东县| 封开县| 禄丰县| 贵南县| 阜宁县| 南丰县| 云霄县| 阳春市| 青阳县| 通化市| 乌兰察布市| 利辛县|