国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

S3C44B0X內置的LCD控制器及其應用

發布時間:2010-8-29 19:52    發布者:conniede
關鍵詞: DMA , LCD , 控制器
引言

S3C44B0X微處理器是三星公司專為手持設備和一般應用提供的高性價比和高性能的微控制器解決方案。它使用ARM7TDMI核,工作在66MHz,集成了LCD控制器等外圍器件。它的LCD控制器具有通用性,能與大多數LCD顯示模塊接口。接口設計、驅動程序開發都很簡單,廣泛應用于智能儀表、PDA等的顯示部分。

內置LCD控制器介紹  

概述  

S3C44B0X內置的LCD控制器的作用是將顯示緩存(在系統存儲器中)的LCD數據傳輸到外部LCD驅動器,并產生必須的LCD控制信號。

它支持灰度LCD和彩色LCD。在灰度LCD上,使用基于時間抖 動算法(time-basedditheringalgorithm)和FRC(FrameRateControl)方法,可以支持單色、4級灰度和16級灰度模式的灰度LCD。在彩色LCD上,可以支持256種色彩。不同尺寸的LCD具有不同數量的垂直和水平象素、數據接口、數據寬度、接口時間和刷新率。LCD控制器可以進行編程控制相應的寄存器值,以適應不同的LCD顯示板。

LCD控制器邏輯框圖  

圖1為LCD控制器的邏輯框圖。從框圖可以看出LCD控制器是用來實現傳輸顯示數據及產生必要的控制信號,如VFRAME、VLINE、VCLK和VM。除了控制信號,還有顯示數據的數據端口VD[7:0]。

                         

LCD控制器包括REGBANK、LCDDMA、VIDPRCS和TIMEGEN。 REGBANK有18個可編程寄存器,用于配置LCD控制器。LCDDMA為專用DMA,可以自動地將顯示數據從幀內存傳送到LCD驅動器中。通過專用DMA,可以實現在不需要CPU介入的情況下顯示數據。VIDPRCS從LCDDMA接收數據,將相應格式的數據通過TIMEGEN(包含可編程邏輯),以支持常見的LCD驅動器所需要的不同接口時間和速率的要求。TIMEGEN部分產生VFRAME,VLINE,VCLK和VM等信號。

LCD控制器提供下列外部接口信號:

VFRAME:LCD控制器和驅動器之間的幀同步信號。通知LCD屏新的一幀顯示,LCD控制器在一個完整幀顯示后發出VFRAME信號。

VLINE:LCD控制器和驅動器間同步脈沖信號。LCD驅動器通過它將水平移位寄存器的內容顯示到LCD屏上。LCD控制器在一整行數據全部傳輸到LCD驅動器后發出VLINE信號。

VCLK:LCD控制器和驅動器之間的象素時鐘信號。

VM:LCD驅動器所使用的交流信號。驅動器用VM打開或關閉象素的行和列電壓極性。

VD[3:0]:LCD象素數據輸出端口。

VD[7:4]:LCD象素數據輸出端口。

LCD控制器的寄存器。  

LCD控制器通過18個可編程寄存器來配置LCD顯示模塊的尺寸、顯示模式、接口數據寬度等。

LCD控制寄存器一(LCDCON1)

LCDCON1所在地址:0x01F00000;

屬性:R/W;  

復位值:0x00000000。

LCDCON1中各個位的意義見表1:

          

LCD控制寄存器二(LCDCON2)

LCDCON2的地址:0x01F00004;

屬性:R/W;

復位值:0x00000000。

LCDCON2中各個位的意義見表2:

            

LCD控制寄存器三(LCDCON3)

LCDCON3的地址:0x01F00040;

屬性:R/W;

復位值:0x00。

LCDCON3中各個位的意義見表3:

      

幀緩沖區開始地址一(LCDSADDR1)

LCDSADDR1的地址:0x01F00008;

屬性:R/W;

復位值:0x000000。

LCDSADDR1中各個位的意義見表4:
   
         

幀緩沖區開始地址二(LCDSADDR2)

的地址:0x01F0000C;

屬性:R/W;  

復位值:0x000000。

LCDSADDR2中各個位的意義見表5:

              

注:用戶通過改變LCDBASEU和LCDBASEL的值來滾動屏幕,但在幀結束時,不能改變LCDBASEU和LCDBASEL的值,因為預取下一幀的數據優先于改變幀,如果這時改變幀,預取的數據將無效而且顯示不正確。為了檢查LINECNT,應當屏蔽中斷,否則如果在讀LINECNT后,任意中斷剛好執行,因為ISR的執行,LINECNT的值可能無效。

緩沖區開始地址三(LCDSADDR3)

LCDSADDR3的地址:0x01F00010;

屬性:R/W;  

復位值:0x000000。  

LCDSADDR3中各個位的意義見表6:
  

注:PAGEWIDTH和OFFSIZE必須在ENVID=0時變化。

內置LCD控制器的應用  

LCD控制器能與大多數LCD顯示模塊接口,例如DMF50081,KCS057QV1AJ等。
KCS057QV1AJ是由KYOCERA公司生產,具有320 240個象素點、帶CFL背光的STN(超扭曲向列)256色LCD顯示模塊。它不帶LCD控制器,很容易與S3C44B0X內置的LCD控制器接口。本節將詳述它與LCD控制器的硬件接口連線以及它的驅動程序。

LCD控制器與KCS057QV1AJ接口設計  

KCS057QV1AJ提供的外部接口信號線如下:

FRM:驅動器掃描的同步信號線;

LOAD:數據鎖存信號線;  

CP:數據移位時鐘信號線;  

DISP:顯示控制信號線;

D[7:0]:8根顯示數據輸入線。

在KCS057QV1AJ與LCD控制器之間接線時,KCS057QV1AJ的FRM、LOAD、CP、D[7:0]分別和LCD控制器的VFRAME、VLINE、VCLK、VD[7:0]相連。DISP引腳與S3C44B0X的GPIO的GPC15相連,通過GPC15來控制LCD顯示模塊的打開和關閉。具體接線如圖2。
                           

KCS057QV1AJ驅動程序開發

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

初始化端口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)|(119<<10)|(15<<21);  

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

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

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

LCDBASEL=LCDBASEU+(160) 240;  

rLCDSADDR1=(0x3<<27)|(LCDBANK<<21)|LCDBASEU;  

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

rLCDSADDR2=(0<<29)|(0<<21)|LCDBASEL;  

rLCDSADDR3=(320/2)|(0<<9);/不使用虛屏;

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

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

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

rLCDCON1=LCDCON1_ENVID|0<<1|0<<2|0<<3|(2<<5) |1<<7|(0x3<<8)|(0x3<<10)|(CLKVAL<<12);  

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

for(i=0;i<80*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個象素的數據。

}
本文地址:http://m.qingdxww.cn/thread-24316-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: aaa一级| 国产亚洲高清在线精品不卡 | 久久三级视频 | 男男羞羞视频网站免费 | 狠狠操狠狠操狠狠操 | 亚洲国产成人最新精品资源 | 美国天堂| 91精品在线看 | 亚洲国产经典 | 日韩免费视频一区 | 亚洲综合日韩中文字幕v在线 | 久久久99精品免费观看 | 国产在线精品福利大全 | 婷婷射丁香 | 青草视频在线观看完整版 | 国产对白91色拍高清精品 | 亚洲四虎 | 在线看免费毛片 | 国产极品美女视频 | 99看片| 欧美有码视频 | 99成人在线观看 | 日韩色影视 | 国产麻豆精品免费密入口 | 久久伊人精品青青草原高清 | 国产在线观看网站 | 成都4片p完整版视频在线观看 | 青青五月| 成人免费一级毛片在线播放视频 | 女人18免费毛片视频 | 一级毛片在线全部免费播放 | 在线观影 | 色人久久| 国产91精品一区二区麻豆网站 | 免费观看日韩大尺码观看 | 色婷婷综合缴情综六月 | 国产精品亚洲欧美大片在线看 | 日韩视频在线观看 | 国产对白精品刺激一区二区 | 午夜秒播 | 国产福利91精品一区二区三区 |