<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > uC/GUI在A(yíng)RM 內核S3C44B0X的移植實(shí)例

uC/GUI在A(yíng)RM 內核S3C44B0X的移植實(shí)例

作者: 時(shí)間:2011-12-04 來(lái)源:網(wǎng)絡(luò ) 收藏

是Micrigm 公司推出的用于嵌入式系統的圖形用戶(hù)接口(graphics user interface,GUI)軟件包,由于完全以ANSI-C編寫(xiě),因此它與處理器無(wú)關(guān),可以很方便地到不同的操作系統和嵌入式微處理器上,并可支持不同尺寸的圖形液晶顯示器。它采用層次化的設計,功能強大,方便,被廣泛地應用于嵌入式領(lǐng)域,如PDA、機頂盒以及DVD NCD播放機等。本文詳細介紹了 。實(shí)踐證明uC/GUI具有良好的實(shí)時(shí)性和穩定性以及廣泛的應用前景。

本文引用地址:http://dyxdggzs.com/article/150012.htm

1、硬件連接與液晶顯示原理

本設計使用的硬件采用7開(kāi)發(fā)板,液晶模塊為L(cháng)78C64,它是7.8in 256色STN型LCD顯示屏,分辨率為640×480。

LCD控制器外部接口信號的定義及其與LCD模塊各信號之間的對應關(guān)系如下:

(1)VFRAME:LCD控制器與LCD驅動(dòng)器之間的幀同步信號。該信號負責指出LCD屏新的一幀開(kāi)始的時(shí)間。LCD控制器在一個(gè)完整幀顯示完成后立即插入一個(gè)VFRAME信號,并開(kāi)始新一幀的顯示。該信號與LCD模塊的YD信號相對應;

(2)VLINE:LCD控制器和LCD驅動(dòng)器之間的線(xiàn)同步脈沖信號。該信號用于將LCD驅動(dòng)器水平線(xiàn)(行)移位寄存器的內容傳送給LCD屏顯示。LCD控制器在整個(gè)水平線(xiàn)(整行)數據移入LCD控制器后,插入一個(gè)VLINE信號。該信號與LCD模塊的LP信號相對應;

(3)VCLK:LCD控制器和LCD驅動(dòng)器之間的像素時(shí)鐘信號。由LCD控制器送出的數據在VCLK的上升沿處送出,在VCLK的下降沿被LCD驅動(dòng)器采樣。該信號與LCD模塊的XCK信號相對應;

(4)VM:LCD驅動(dòng)器的AC信號。VM信號被LCD驅動(dòng)器用于改變行和列的電壓極性,從而控制像素點(diǎn)的顯示和熄滅。VM信號可以與每個(gè)幀同步,也可以與可變數量的VLINE信號同步;

(5)VD3~0 LCD:像素點(diǎn)的數據輸入端口。與LCD模塊的D3~0相對應:

(6)VD7~4 LCD:像素點(diǎn)的數據輸入端口。與LCD模塊的D7~4相對應。

液晶顯示原理:寫(xiě)滿(mǎn)整個(gè)屏的數據稱(chēng)為1個(gè)“幀”數據,YD是幀同步信號,該信號啟動(dòng)LCD屏的新一幀數據。兩個(gè)YD脈沖之間的時(shí)間長(cháng)度稱(chēng)為幀周期。根據LCD模塊的特性,刷新時(shí)間為12~14ms,頻率為70~80Hz。每一幀包括480個(gè)LP脈沖。LP為行(共480行)數據輸入鎖存信號,也就是行同步脈沖信號。該信號啟動(dòng)LCD屏的新一行數據。XCK為行數據輸入信號,也就是每1行中像素點(diǎn)數據傳輸的時(shí)鐘信號。每組8位的數據在XCK的下降沿被輸入鎖存,因此,每1行包括640×3/8個(gè)XCK脈沖信號。D0~D7是8位的顯示數據輸入信號。

2、驅動(dòng)程序設計

下面分三步完成液晶的初始化。

(1)I/O口的初始化

由于采用的PC接口和PD接口作為L(cháng)CD驅動(dòng)接口,因此,需要設置PC接口工作在第3功能狀態(tài)和PD接口工作在第2功能狀態(tài)。

(2)相應控制寄存器的設置方法

包括一個(gè)LCD控制器時(shí)序發(fā)生器TIMEGEN, 由它來(lái)產(chǎn)生VFRAM,VLINE,VCLK和VM 控制時(shí)序。這些控制信號由寄存器LCOCON1和LCDCON2進(jìn)行配置。通過(guò)對寄存器種配置項目的設置,TIMEGEN就可以產(chǎn)生適應于各種LCD屏的控制信號了。

VFRAM和VLINE脈沖的產(chǎn)生是通過(guò)對LCDCON2寄存器的HOZVAL和LINEVAL進(jìn)行配置來(lái)完成的。每個(gè)域都與LCD的尺寸和顯示模式有關(guān)。

其中,HOZVAL=(顯示寬度/VD數據線(xiàn)位數)-1。

在彩色模式下,顯示寬度=3×每行的像素點(diǎn)數。

對所選的液晶模塊,HOZVAL=(640×3/8)-1;LINEVAL=(顯示寬度)-1。

對所選的液晶模塊,LlNEVAL=480-1。

VCLK信號的頻率可以通過(guò)LCDCON1寄存器的CLKVAL域來(lái)確定,即

VCLK=MCLK/(CLKVAL×2)

LCD控制器的最大VCLK頻率為16.5MHz,幾乎支持所有已有的LCD驅動(dòng)器。由于上述關(guān)系,CLKVAL的值決定了VCLK的頻率。為了確定CLKVAL的值,應該計算一下LCD控制器向VD端口傳輸數據的速率,以便使VCLK的值大于數據傳輸的速率。

數據傳輸速率的公式為:

數據傳輸速率=HS×VS×FR×MV

其中,HS—LCD的行像素值;VS—LCD的列像素值:FR—幀速率;MV—模式值,這里取8位單掃描,彩色。

對于所選用的液晶模塊:HS=640;VS=480;FR=70Hz:MV=3/8。因此,數據傳輸速率=640×480×70×3/8=8,064,000Hz。

VCLK值應該大于8MHz而小于16MHz,因此,CLKVAL可以取9~15。

(3)完整的液晶初始化程序

C程序

void LCD_Init_Controler()

{

rLCDCON1=(0)|(25)|(MVAL_USED7)|(0x38)|(0x310)|(CLKVAL_COLOR12);

//disable,8B_SNGL_SCAN,WDLY=8clk,WLH=8clk,rLCDCON2=(LINEVAL)|(HOZVAL_COLOR10)|(1021);

//LINEBLANK=10(without any calculation)

rLCDSADDR1= (0x327) | (((U32)frameBuffer256>>22)21)|M5D((U32)frameBuffer256>>1);

//256-color,LCDBANK,LCDBASEU

rLCDSADDR2=M5D((((U32)frameBuffer256+(SCR_XSIZE*LCD_YSIZE))>>1))|(MVAL21);

rLCDSADDR3= (LCD_XSIZE/2) | (((SCR_XSIZE-LCD_XSIZE)/2)9);

//The following value

has to be changed forbetter display.

rREDLUT =0xfdb96420;

rGREENLUT=0xfdb96420;

rBLUELUT=0xfb40;

rDITHMODE=0x0;

rDP1_2=0xa5a5;

rDP4_7=0xba5da65;

rDP3_5=0xa5a5f;

rDP2_3=0xd6b;

rDP5_7=0xeb7b5ed:

rDP3_4=0x7dbe;

rDP4_5=0x7ebdf;

rDP6_7=0x7fdfbfe;

rLCDCON1= (1)|(25)|(07)|(0x38)|(0x310)|(412);

}

經(jīng)過(guò)以上幾步,就完成了液晶的硬件驅動(dòng),下面就是移植軟件包,調用底層驅動(dòng),完成復雜的顯示任務(wù)。

3、uC/GUI軟件包的移植

3.1 uC/GUI特點(diǎn)

(1)支持任何8位、16位和32位的CPU,只要求CPU具有相應的ANSI-C編譯器即可;

(2)所有硬件接口定義都使用可配置的宏;

(3)字符、位圖可顯示與LCD的任意點(diǎn),并不限制與字節長(cháng)度的整數倍數地址;

(4)所有程序在長(cháng)度和速度方面都進(jìn)行了優(yōu)化,結構清晰;

(5)對于慢速的LCD控制器,可以使用緩沖存儲器減少訪(fǎng)問(wèn)時(shí)間,提高顯示速度。


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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>