<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          S3C44B0X微處理器內(nèi)置LCD控制器

          作者: 時(shí)間:2010-09-13 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/151558.htm

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

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

            初始化端口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ù)。

            }


          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();