国产91免费_国产精品电影一区_日本s色大片在线观看_中文在线免费看视频

您現在的位置: 通信界 >> 視頻通信 >> 技術正文  
 
基于AVR單片機的VRAM型彩色液晶顯示模塊設計[圖]
[ 通信界 / 《液晶與顯示》2005年05期 / www.6611o.com / 2011/12/6 11:10:41 ]
 

摘要:介紹一種基于AVR單片機和硬件漢字庫的VRAM型彩色液晶顯示模塊的設計。給出彩色液晶顯示器的顯示原理、硬件接口設計框圖以及硬件漢字庫的制作和應用,同時給出基于C語言的程序設計模塊,實現了應用VRAM型液晶的模塊化,便于移植在其他類型的單片機。

1 引言

隨著電子技術的飛速發展,越來越多的領域應用到以單片機為控制核心、用液晶作為顯示終端的數字化設備。彩色液晶顯示器作為當代高新技術的結晶產品,不但具有超薄平面、顯示信息豐富、色彩逼真的特點,而且還具有體積小、耗電省、壽命長、無輻射、抗震、防爆等其他類型顯示器無可比擬的優點,因而是工控儀表、機電設備等行業更新換代的理想顯示器件。因此基于單片機系統的彩色液晶顯示模塊的使用也越來越廣泛。本文介紹一種基于AVR單片機和硬件漢字庫的彩色液晶顯示模塊,該模塊實現了在彩色液晶顯示器上顯示不同顏色的中文、英文、數字及簡單的畫圖功能。

2 液晶顯示器顯示原理

本模塊采用的液晶顯示器是河南友利華高科技有限公司生產的YD2502彩色液晶VRAM型顯示器。它的點陣數是320×240,VRAM容量是64k×8 位,由于屏幕上的任何一點都是由R(紅) 、G(綠) 、B(藍)3種顏色組成,且灰度不可調節,因此顯示顏色為8色。基本原理框圖如圖1所示。DC/DC轉換器產生液晶所用各種驅動電壓,DC/AC逆變器則用來點亮冷陰極背光燈,顯示驅動邏輯電路采用了優化邏輯電路,利用分時技術讓顯示與寫入數據同時進行,實現了畫面的高速更新,且互不干擾。其顯示原理是:在顯示器內部含有一個顯示緩沖區與屏幕顯示一一對應,使用時只需向緩沖區里寫入相應的數據,屏幕上即可顯示出對應的彩色圖形或文字,也就是說該顯示器可作為單片機系統的一個外部存儲器就可以實現彩色信息的顯示。

基于AVR單片機的VRAM型彩色液晶顯示模塊設計
圖1 YD2502原理框圖

3 硬件系統設計

3.1 硬件總體設計

本模塊中使用的單片機是AVR系列單片機中功能最強的ATmega128 。該單片機具有豐富的片上資源如具有128kB在線可重復編程Flash、4kB的E2 PROM、4kB的內部SRAM、48個I/O端口、34個不同的中斷源、可尋址64kB的地址空間、ISP下載以及JTAG仿真等功能。詳細介紹請參考其數據手冊。

圖2是該模塊硬件系統總體設計框圖。由于YD2502的顯示緩沖區里的內容是不能讀出的,為了保存寫入內容,在該模塊中還外擴了一片存儲器芯片61LV5128,其存儲容量為512kB,除了保存YD2502顯示緩沖區里的數據外,還為使用本模塊的嵌入式系統提供了擴展應用。由于ATmega128的尋址范圍只達到64KB,因此采用了分頁管理技術來操作512kB的存儲空間。在具體電路設計時,將ATmega128的PB3~PB0連接到61LV5128的高4位地址線上,將512kB的存儲空間分成16頁,每頁32kB。硬件漢字庫芯片AT29C040A的存儲容量也是512kB,與CPU的接口設計與61LV5128是類似的,只需將片選信號和高4位地址線接在不同的I/O口上就可以了。

基于AVR單片機的VRAM型彩色液晶顯示模塊設計
圖2 硬件設計圖

3.2 YD2502的接口設計

YD2502的接口方式采用總線方式,外部引線包括數據總線(DB7~DB0) 、片選信號(/CS) 、讀寫輸入(/RD、/WR)和寄存器選擇信號(RS),可以直接掛接到單片機的總線上,作為單片機的某部分內存來使用。接口采用16針插座,引腳定義請參閱其說明書。

根據YD2502可以作為單片機的外部存儲器使用的接口特性,將ATmega128的讀寫信號線與YD2502的讀寫信號線直接連接,具體接口設計原理如圖3所示。

基于AVR單片機的VRAM型彩色液晶顯示模塊設計
圖3 AT128與YD2502的接口

3.3 硬件漢字庫的制作

本模塊使用了硬件漢字庫,省去了利用漢字取模軟件獲取點陣數據的麻煩,而且還避免了為保存這些數據而開辟的大量程序存儲空間。

漢字庫中要燒寫的點陣文件是UCDOS軟件中的文件HZK16,該文件是16×16的國際漢字點陣文件,文件中按漢字區位碼從小到大依次存放國標區位碼表中的所有漢字,每個漢字占用32字節,每個區為94個漢字。漢字庫芯片采用的是AT29C040A,該芯片是ATMEL公司生產的512kB的Flash ROM。在制作時,燒寫過程和普通的程序存儲器的編程基本相同,只要注意選擇正確的型號和在選擇打開HZK16的方式時用二進制方式就可以了,編程校驗成功后,取下備用,硬件漢字庫芯片就制作好了。

實際上若顯示HZK16的文件屬性,其大小為262kB,而AT29C040A的存儲容量為512kB,超出部分可以存儲用戶固定的漢字、字母和數字的代碼,從而使顯示內容更加靈活豐富。

4 軟件系統設計及實現

4.1 操作YD2502的程序設計

YD2502的指令碼格式如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

其中:CA1,CA0組合功能為內部寄存器通道的選擇,功能如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

DISP:顯示控制位。

當DISP設置為“1”時,液晶顯示模塊為開顯示狀態。

當DISP設置為“0”時,液晶顯示模塊為關顯示狀態。

X:表示未用位,可設為“0”。

ATmega128訪問外部存儲器的軟件設計步驟是:先用extern聲明一個外部變量,再用map2ping_init函數(外部存儲地址分配函數)分配給此變量一個外部存儲地址(因ATmega128內部有4kB的SRAM所以外部存儲地址范圍為1000H~0FFFFH),那么對該變量的操作就實現了CPU對相應地址的外部存儲空間的訪問。

根據此步驟,對YD2502寫指令和寫數據的具體函數如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

寫指令函數如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

寫數據函數如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

除了上面兩個基本的函數外,對YD2502最基本的操作是往VRAM 里寫數據,根據上面給出的指令碼,具體函數如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

4.2 畫點函數的實現

要在液晶上實現顯示字符和畫圖等功能,在屏幕上顯示一個點是實現這些功能的基礎。畫點函數實現的步驟是:首先確定該點對應的VRAM中的內存位置,找到該點具體對應的數據位,填充顯示顏色的數據,該點就按對應的顏色顯示出來了。

4.2.1 顯示內存與屏幕點陣的對應關系

YD2502屏幕點陣為320×240,每一個點對應3個像素(RGB),屏幕上8個點對應內存3個字節,一行對應320/8×3=120個字節,其對應關系如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

其中R,G,B表示紅、綠、藍三原色,D7~D0表示對應的數據位。

對于屏幕上坐標為(X,Y)的點,其對應內存地址的計算方法為:

當Y=0時  SRAM=0EFH×100H+[INT(X/8)]×3

當Y>0時  SRAM=(Y-1)×100H+[INT(X/8)]×3

通過(X/8)的余數得出具體的內存位置:

當余數為0  則 RAM=SRAM  [1110,0000]

當余數為1  則 RAM=SRAM  [0001,1100]

當余數為2  則 RAM1=SRAM  [0000,0011]

RAM2 = SRAM + 1[1000 ,0000 ]

當余數為3  則 RAM = SRAM + 1[0111 ,0000 ]

當余數為4  則 RAM = SRAM + 1[0000 ,1110 ]

當余數為5  則 RAM1 = SRAM + 1[0000 ,0001 ]

RAM2 = SRAM + 2[1100 ,0000 ]

當余數為6  則 RAM = SRAM + 2[0011 ,1000 ]

當余數為7  則 RAM = SRAM + 2[0000 ,0111 ]

其中[ ]內為“1”的位表示應該填充顏色的位置,SRAM表示該點對應的基礎地址,RAM、RAM1和RAM2表示該點對應的實際內存地址。

當數據位為“1”時,對應色點為亮;為“0”時,對應色點為暗。通過RGB三原色組合而得到的8種顏色代碼如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

例1:若X 、Y坐標為(7,0)

SRAM = 0EFH ×100H + 0 = 0EF00H

余數為7 ,則 RAM = 0EF00H + 2 = 0EF02H

若此點為紅色,則送入0EF02H 內存單元里的數據為[ 0EF02H] &11111000B + 00000100B

例2 :若X 、Y坐標為(15,5)

SRAM = (5 - 1) ×100H + 1 ×3 = 403H

余數為5 ,則 RAM1 = 403H + 1 = 404H

RAM2 = 403H + 2 = 405H

若此點為白色,則送入這兩個單元的數據為

[ 404H] &11111110B + 00000001B

[ 405H] &00111111B + 11000000B

4.2.2 畫點函數的具體實現

從例1和例2可以看出,要只顯示一個色點,就必須知道該點對應的內存中的數據,而前面提到過內存中的數據是不能讀出的,所以要將寫入內存中的數據先保存起來,即在向YD2502的顯示緩沖區里寫數據之前,應先將此數據寫入61LV5128 。若在坐標(X,Y)處畫顏色為color的點,其具體函數如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

以上只給出了余數是0的情況,其他的情況可依此類推。計算內存地址的LCD_pixeladdr函數可根據給出的內存地址計算方法編寫,讀寫61LV5128的read_exram函數和write_exram函數可根據具體的硬件設計編寫,這里不再給出。

4.3 顯示漢字和其他功能的實現

在屏幕上顯示16×16點陣漢字的基本步驟是:首先取得該漢字的32個字節的點陣數據,再確定屏幕上顯示的位置,利用畫點函數即可顯示該漢字。因本模塊使用了硬件漢字庫技術,所以漢字的點陣數據是從漢字庫中獲取的。

在計算機漢字系統中,漢字是用機內碼的形式存儲的,將漢字機內碼減去0A0A0H就得到該漢字的區位碼,通過區位碼就可以找到該漢字點陣數據在漢字庫中的位置。例如:漢字“中”的機內碼是十六進制的“D6D0”,其中前兩位“D6”表示機內碼的區碼,后兩位“D0”表示機內碼的位碼。所以“中”的區位碼為0D6D0H - 0A0A0H =3630H,將區碼和位碼分別轉換為十進制,得漢字“中”的區位碼為“5448”。即“中”的點陣位于第54區的第48個字的位置,在文件HZK16中的位置為第32×[(54 - 1)×94 + (48 - 1)] = 160928D以后的32個字節為“中”的點陣數據,用SUPER2PRO25編程器讀入文件HZK16后利用其編輯功能中的緩沖區編輯查找到274A0H(160928D的十六進制表示)開始的32個字節:01H,00H,01H,00H,01H,04H,7FH,FEH,41H,04H,41H,04H,41H,04H,41H,04H,7FH,FCH,41H,04H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H。這些數據與其點陣圖形的對應關系如圖4所示,圖中黑色方格表示二進制位“1”,即對應該顯示的點,白色方格表示二進制位“0”,即不該顯示的點。因此要在液晶屏幕上顯示16×16點陣的漢字,首先應找到該漢字在硬件漢字庫中的位置,取出其后的32個字節數據。取這32個字節數據的函數如下:

基于AVR單片機的VRAM型彩色液晶顯示模塊設計
圖4 漢字“中”的點陣圖形

基于AVR單片機的VRAM型彩色液晶顯示模塊設計

讀AT29C040A的read_exrom函數可根據硬件設計編寫,這里不再給出。

取得這32個字節數據后,下面的程序設計就比較容易了,這里只給出程序流程(如圖5所示),具體函數可根據此流程編寫。其中(X,Y)是該漢字顯示的起始點,color是該漢字的顯示顏色,number是該漢字在chinese數組中的位置。顯示英文和數字的函數可根據顯示漢字的函數稍加改造后即可得到,這里不再詳細分析。

基于AVR單片機的VRAM型彩色液晶顯示模塊設計
圖5 顯示一個漢字程序流程圖

在本模塊中也實現了在屏幕上畫斜線、圓等功能,其具體實現過程就是在畫點函數的基礎上通過相應的算法來編寫這些函數。畫線和畫圓算法比較多,在這里畫線算法采用的是整數數字微分分析法,畫圓算法采用的是貝森海姆算法。

鑒于篇幅所限,這里不再具體分析。由于YD2502是點陣式液晶顯示器,還可以通過移植嵌入式GUI(如μC/GUI)軟件,使其顯示多種曲線,各種窗口對象,如按鈕、編輯框、滑動條等更加豐富靈活的圖形界面。

5 結語

以上程序均在ICCAVR編譯器里調試通過,實現了在液晶屏幕上正常顯示各種顏色的漢字、英文、數字及簡單的圖形功能。在筆者參與開發的油田探測爆炸機設備中,采用了本液晶模塊,達到了顯示穩定,顯示色彩豐富,人機界面友好的較理想的顯示效果。

 

作者:《液晶與顯示》2005年05期 合作媒體:《液晶與顯示》2005年05期 編輯:顧北

 

 

 
 熱點技術
普通技術 “5G”,真的來了!牛在哪里?
普通技術 5G,是偽命題嗎?
普通技術 云視頻會議關鍵技術淺析
普通技術 運營商語音能力開放集中管理方案分析
普通技術 5G網絡商用需要“無憂”心
普通技術 面向5G應運而生的邊緣計算
普通技術 簡析5G時代四大關鍵趨勢
普通技術 國家網信辦就《數據安全管理辦法》公開征求意見
普通技術 《車聯網(智能網聯汽車)直連通信使用5905-5925MHz頻段管理規定(
普通技術 中興通訊混合云解決方案,滿足5G多元業務需求
普通技術 大規模MIMO將帶來更多無線信道,但也使無線信道易受攻擊
普通技術 蜂窩車聯網的標準及關鍵技術及網絡架構的研究
普通技術 4G與5G融合組網及互操作技術研究
普通技術 5G中CU-DU架構、設備實現及應用探討
普通技術 無源光網絡承載5G前傳信號可行性的研究概述
普通技術 面向5G中傳和回傳網絡承載解決方案
普通技術 數據中心布線系統可靠性探討
普通技術 家庭互聯網終端價值研究
普通技術 鎏信科技CEO劉舟:從連接層構建IoT云生態,聚焦CMP是關鍵
普通技術 SCEF引入需求分析及部署應用
  版權與免責聲明: ① 凡本網注明“合作媒體:通信界”的所有作品,版權均屬于通信界,未經本網授權不得轉載、摘編或利用其它方式使用。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:通信界”。違反上述聲明者,本網將追究其相關法律責任。 ② 凡本網注明“合作媒體:XXX(非通信界)”的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責。 ③ 如因作品內容、版權和其它問題需要同本網聯系的,請在一月內進行。
通信視界
華為余承東:Mate30總體銷量將會超過兩千萬部
趙隨意:媒體融合需積極求變
普通對話 苗圩:建設新一代信息基礎設施 加快制造業數字
普通對話 華為余承東:Mate30總體銷量將會超過兩千萬部
普通對話 趙隨意:媒體融合需積極求變
普通對話 韋樂平:5G給光纖、光模塊、WDM光器件帶來新機
普通對話 安筱鵬:工業互聯網——通向知識分工2.0之路
普通對話 庫克:蘋果不是壟斷者
普通對話 華為何剛:挑戰越大,成就越大
普通對話 華為董事長梁華:盡管遇到外部壓力,5G在商業
普通對話 網易董事局主席丁磊:中國正在引領全球消費趨
普通對話 李彥宏:無人乘用車時代即將到來 智能交通前景
普通對話 中國聯通研究院院長張云勇:雙輪驅動下,工業
普通對話 “段子手”楊元慶:人工智能金句頻出,他能否
普通對話 高通任命克里斯蒂安諾·阿蒙為公司總裁
普通對話 保利威視謝曉昉:深耕視頻技術 助力在線教育
普通對話 九州云副總裁李開:幫助客戶構建自己的云平臺
通信前瞻
楊元慶:中國制造高質量發展的未來是智能制造
對話亞信科技CTO歐陽曄博士:甘為橋梁,攜"電
普通對話 楊元慶:中國制造高質量發展的未來是智能制造
普通對話 對話亞信科技CTO歐陽曄博士:甘為橋梁,攜"電
普通對話 對話倪光南:“中國芯”突圍要發揮綜合優勢
普通對話 黃宇紅:5G給運營商帶來新價值
普通對話 雷軍:小米所有OLED屏幕手機均已支持息屏顯示
普通對話 馬云:我挑戰失敗心服口服,他們才是雙11背后
普通對話 2018年大數據產業發展試點示范項目名單出爐 2
普通對話 陳志剛:提速又降費,中國移動的兩面精彩
普通對話 專訪華為終端何剛:第三代nova已成為爭奪全球
普通對話 中國普天陶雄強:物聯網等新經濟是最大機遇
普通對話 人人車李健:今年發力金融 拓展汽車后市場
普通對話 華為萬飚:三代出貴族,PC產品已走在正確道路
普通對話 共享退潮單車入冬 智享單車卻走向盈利
普通對話 Achronix發布新品單元塊 推動eFPGA升級
普通對話 金柚網COO邱燕:天吳系統2.0真正形成了社保管