《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > uC/GUI在ARM 內核S3C44B0X的移植實例
uC/GUI在ARM 內核S3C44B0X的移植實例
摘要: uC/GUI在ARM內核S3C44B0X的移植實例,uC/GUI是Micrigm公司推出的用于嵌入式系統的圖形用戶接口(graphicsuserinterface,GUI)軟件包,由于uC/GUI完全以ANSI-C編寫,因此它與處理器無關,可以很方便地移植到不同的操作系統和嵌入式微處理器上,并可支持
Abstract:
Key words :

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

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

本設計使用的硬件采用ARM7開發板,液晶模塊為L78C64,它是7.8in 256色STN型LCD顯示屏,分辨率為640×480。

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

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

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

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

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

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

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

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

2、驅動程序設計

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

(1)I/O口的初始化

由于采用S3C44B0X的PC接口和PD接口作為LCD驅動接口,因此,需要設置PC接口工作在第3功能狀態和PD接口工作在第2功能狀態。

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

S3C44B0X包括一個LCD控制器時序發生器TIMEGEN, 由它來產生VFRAM,VLINE,VCLK和VM 控制時序。這些控制信號由寄存器LCOCON1和LCDCON2進行配置。通過對寄存器種配置項目的設置,TIMEGEN就可以產生適應于各種LCD屏的控制信號了。

VFRAM和VLINE脈沖的產生是通過對LCDCON2寄存器的HOZVAL和LINEVAL進行配置來完成的。每個域都與LCD的尺寸和顯示模式有關。

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

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

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

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

VCLK信號的頻率可以通過LCDCON1寄存器的CLKVAL域來確定,即

VCLK=MCLK/(CLKVAL×2)

LCD控制器的最大VCLK頻率為16.5MHz,幾乎支持所有已有的LCD驅動器。由于上述關系,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程序
3.2 uC/GUl移植步驟

在使用uC/GUI時,可以按照以下幾個步驟來進行:

(1)按照需要,定制uC/GUI;

(2)指定硬件設備的地址,編寫接口驅動代碼;

(3)編譯、鏈接、調試例子程序;

(4)修改例子程序,并測試增加需要的功能;

(5)編寫自己的應用程序。

3.3 具體實現

(1)首先介紹uC/GUI的目錄結構和基本配置。

uC/GUI主要目錄如下:

GUI/ConvertMono 使用黑白顯示設備時,所要使用的灰度轉換函數

GUI/ConvertColor 使用彩色顯示設備時,使用的色彩轉換函數

GUI/Config 包含了對uC/GUI進行配置的一些文件

GUI/Core uC/GUI核心代碼

GUI/Font uC/GUI與字體相關的代碼文件

GUI/LCDDriver LCD驅動代碼文件

GUI/MemDev 內存設備支持文件代碼

GUI/Touch 輸入設備支持的文件代碼

GUI/Widget uC/GU1支持的控件代碼,包括編輯框、列表框、按鈕和選擇框等

GUI/WM uC/GUI窗口管理部分代碼

(2)修改uC/GUI,使之適于移植。

在ADS環境中新建一個工程,將上述gui文件夾下的所有文件加入工程。

將Config文件夾下的3個文件GUIConf.h、

GUITouchConf.h和LCDConf.h加入新工程,如下修改LCDConf.h的內容:

C程序
此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 91精品国产91久久久久久 | 韩国自拍偷自拍亚洲精品 | 欧美高清视频在线观看 | 免费的成人a视频在线观看 免费的毛片 | 成人夜色香网站在线观看 | 亚洲成网站| 欧美整片在线观看 | 成人a毛片久久免费播放 | 久久综久久美利坚合众国 | gv手机在线观看 | 免费观看成年的网站 | 在线观看一级片 | 欧美一级一片 | 青青草福利视频 | 欧美日韩亚洲综合久久久 | 国产区更新 | 亚洲欧美激情视频 | 日本毛片免费看 | 欧美精品一区二区三区免费 | 亚洲国产2017男人a天堂 | 久久国产情侣 | 亚洲精品国产成人一区二区 | 亚洲综合精品成人 | 特级毛片aaa免费版 特级毛片a级毛免费播放 | 美国亚洲成年毛片 | 美女视频黄a视频免费全过程 | 狠狠色婷婷丁香综合久久韩国 | 韩国欧美一级毛片 | a高清免费毛片久久 | 情侣偷偷看的羞羞视频网站 | 久久亚洲在线 | 久久久国产精品免费视频 | 欧美一级久久久久久久久大 | 日韩欧美在线视频一区二区 | 一级特级aaaa毛片免费观看 | 亚洲国产伦理 | 91精品国产高清久久久久久io | 久久r这里只有精品 | 日韩精品久久久毛片一区二区 | 亚州免费视频 | 日本三级香港三级妇三 |