單片機與液晶顯示器的接口及應用
出處:adminic 發(fā)布于:2008-09-02 11:48:14
摘 要:在介紹圖形點陣式液晶顯示模塊GTG240128的結構和功能的基礎上,討論了其與AT89C55單片機的硬件接口電路和接口軟件編程方法,并給出了寫指令、寫數據、初始化和漢字顯示等通用程序。
引言
液晶顯示器(LCD)具有工作電壓低、微功耗、顯示信息量大和接口方便等優(yōu)點,現在已被廣泛應用于計算機和數字式儀表等領域,成為測量結果顯示和人機對話的重要工具。液晶顯示器按其功能可分為三類:筆段式液晶顯示器、字符點陣式液晶顯示器和圖形點陣式液晶顯示器。前兩種可顯示數字、字符和符號等,而圖形點陣式液晶顯示器還可以顯示漢字和任意圖形,達到圖文并茂的效果,其應用越來越廣泛。本文在介紹以T6963C為控制器的GTG240128液晶顯示模塊的結構和功能的基礎上,討論了其與AT89C55單片機的硬件接口電路及接口軟件編程方法。
?。牵裕牵玻矗埃保玻敢壕э@示模塊
?。薄∧K特點
?。牵裕牵玻矗埃保玻笀D形點陣式液晶顯示器的點陣的大小為240×128,帶背光功能。內置1片T6963C液晶顯示控制器和5片KS0086驅動器。該液晶顯示模塊具有如下特點。
●?。肝徊⑿锌偩€接口,能直接與80系列的微處理器相連;
● 可以顯示數字、字母、漢字和圖形等;
● 具有128種5×8點陣的ASCI字符字模庫CGROM;
● 具有64kb的顯示存儲器(可被劃分為文本顯示區(qū)、圖形顯示區(qū)、文本屬性區(qū)和自定義字符庫區(qū)),并允許MCU隨時訪問;
● 可用圖形方式、文本方式以及圖形和文本合成方式顯示。
?。病∧K接口引腳功能
GTG240128液晶顯示模塊與微處理器的接口共有21個引腳,各引腳功能如表1所示。
?。场∧K指令集簡介
GTG240128液晶顯示模塊使用了硬件初始化設置,使得其指令功能集中于顯示功能的設置上,從而加強了顯示能力。該模塊的指令可帶一個或兩個參數,也可不帶參數。若指令中含有參數,則參數必須在指令之前輸入。在每次數據或指令的寫入操作和數據的讀取操作之前都要進行狀態(tài)字檢測,只有在不“忙”的狀態(tài)下,MCU對模塊的操作才有效。其狀態(tài)位由低位到高位的含義如表2所示。
在MCU寫指令或讀/寫數據時,S0和S1要同時有效;當MCU使用自動讀/寫功能時,S2和S3將取代S0和S1作為忙標志位,此時MCU就要判別它是否有效;S6是考察T6963C屏讀或屏拷貝指令執(zhí)行情況的標志位;S5和S7表示模塊內部的運行狀態(tài),一般不用。
與AT89C55的接口電路
?。牵裕牵玻矗埃保玻概cAT89C55的接口有直接訪問和間接訪問兩種方式。直接訪問方式就是把顯示器模塊作為存儲器或I/O設備直接掛在單片機總線上;間接訪問方式就是把顯示器模塊與單片機的某個I/O接口連接,單片機通過對該I/O口的操作間接實現對模塊的控制。本文采用直接訪問方式,硬件連接電路如圖1所示。
液晶顯示器模塊的數據線接在AT89C55的數據總線上,片選信號由地址線A7和A0提供,寄存器選擇信號由地址線A7和A1提供(指令通道地址為0xf1,數據通道地址為0xf3),讀和寫操作由AT89C55的讀寫操作信號控制;模塊Vo端所接的電位器用來調節(jié)液晶顯示器的對比度。
軟件設計
軟件采用Keil?。茫担闭Z言開發(fā),主要包括三個部分:部分是寫指令和寫數據等面向液晶顯示模塊硬件的驅動程序;第二部分包括液晶顯示模塊初始化和清屏等通用子程序;第三部分是漢字、字符和圖形的顯示程序。
1 寫指令、寫數據子程序
這部分是液晶顯示模塊的驅動程序,所有對液晶顯示模塊的操作都是通過調用這部分程序實現的。液晶顯示模塊的指令通道地址為0xf1,數據通道的地址為0xf3,具體驅動程序如下。
#define?。蹋茫模撸茫恚洹。埃妫薄。K指令通道地址
#define?。蹋茫模撸模幔簦帷。埃妫场。K數據通道地址
?。瘜懼噶钭映绦?/FONT>
void?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ酰睿螅椋纾睿澹洹。悖瑁幔颉。悖恚洌?/FONT>
?。?/FONT>
?。鳎瑁椋欤濉。ǎǎ校拢伲裕牛郏蹋茫模撸茫恚洌荩Γ常。剑常?;
PBYTE[LCD_Cmd]=cmd;
?。?/FONT>
?。瘜憯祿映绦?/FONT>
void?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎ酰睿螅椋纾睿澹洹。悖瑁幔颉。洌幔簦?/FONT>
?。?/FONT>
?。鳎瑁椋欤濉。ǎǎ校拢伲裕牛郏蹋茫模撸茫恚洌荩Γ常。剑常?/FONT>
?。校拢伲裕牛郏蹋茫模撸模幔簦幔荩剑洌幔?;
?。?/FONT>
2 初始化子程序
這部分程序是液晶顯示模塊進行顯示之前的必要工作,包括設置文本頁首地址、圖形頁首地址、文本頁地址、圖形頁地址、初始化和清屏等子程序。本文中把液晶顯示模塊的顯示存儲器分為16個文本頁和6個圖形頁。文本頁的起止地址為0x0000~0x1fff;圖形頁的起止地址為0x2000~0x7fff。
?。O定文本頁首地址子程序
void?。裕澹簦撸龋铮恚澹撸粒洌洌颍澹螅螅ǎ酰睿螅椋纾睿澹洹。悖瑁幔颉。簦穑幔纾澹?/FONT>
?。?/FONT>
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎ埃?/FONT>
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎ簦穑幔纾澹埃埃玻?/FONT>
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃矗埃?;?。?/FONT>
?。O定圖形頁首地址子程序
?。觯铮椋洹。牵颍幔穑瑁撸龋铮恚澹撸粒洌洌颍澹螅螅ǎ酰睿螅椋纾睿澹洹。悖瑁幔颉。纾穑幔纾澹?/FONT>
{
?。纾穑幔纾澹健。玻?/FONT>
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎ埃?;
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎ纾穑幔纾澹埃保埃?;
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃矗玻弧。?/FONT>
?。O定文本頁地址子程序
?。觯铮椋洹。裕澹簦撸粒洌洌颍澹螅螅ǎ酰睿螅椋纾睿澹洹。悖瑁幔颉。?, unsigned?。悖瑁幔颉。?/FONT>
{
?。澹簦澹颍睢。酰睿螅椋纾睿澹洹。悖瑁幔颉。簦澹簦穑幔纾?;
?。酰睿螅椋纾睿澹洹。椋睿簟。?;
xy=y*32+x+textpage*0x0200;
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎΓ埃妫妫?;
Write_LCD_Data(xy/256);
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃玻矗?;
}
?。O定圖形頁地址子程序
void?。牵颍幔穑瑁撸粒洌洌颍澹螅螅ǎ酰睿螅椋纾睿澹洹。悖瑁幔颉。?,
?。酰睿螅椋纾睿澹洹。悖瑁幔颉。?/FONT>
?。?/FONT>
?。澹簦澹颍睢。酰睿螅椋纾睿澹洹。悖瑁幔颉。纾颍幔穑瑁穑幔纾?; unsigned?。椋睿簟。?/FONT>
?。纾颍幔穑瑁穑幔纾澹剑玻?/FONT>
?。剑常玻纾颍幔穑瑁穑幔纾澹埃保埃埃?;
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎΓ埃妫妫?;
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎ玻担叮?;
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃玻矗?;
}
?。跏蓟映绦?/FONT>
?。觯铮椋洹。桑睿椋簦撸蹋茫模ǎ觯铮椋洌?/FONT>
{
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃梗埃?/FONT>
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎ埃玻埃?;
Write_LCD_Data(0x00);
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃矗保?;
Write_LCD_Data(0x20);
Write_LCD_Data(0x00);
Write_LCD_Cmd(0x43);
Write_LCD_Cmd(0x89);
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃幔保?;
?。祝颍椋簦澹撸蹋茫模撸模幔簦幔ǎ埃埃疲?;
Write_LCD_Data(0x00);
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃玻玻?/FONT>
?。祝颍椋簦澹撸蹋茫模撸茫恚洌ǎ埃梗悖?;
}
?。场h字、字符和圖形的顯示程序
通過調用前面編寫的驅動、初始化和清屏程序就可以方便的實現漢字、字符和圖形的顯示。本文以漢字顯示為例介紹顯示程序的編制。漢字既可以以文本方式顯示也可以以圖形方式顯示。以文本方式顯示時,每次開機都要先把漢字字模寫進液晶顯示模塊的CGRAM,浪費了時間,而且由于CGRAM的容量只有2kb,顯示的漢字有限,所以一般用圖形方式顯示漢字。以圖形方式顯示時先把漢字字模寫在Flash存儲器中,顯示時再從Flash存儲器中取出來,這樣不用每次開機時都寫漢字字模,節(jié)約時間,而且顯示的漢字數量多。下面給出以圖形方式顯示漢字的通用子程序。漢字字模存儲在Flash存儲器中。
?。觯铮椋洹。穑酰簦撸瑁幔睿椤。ǎ悖瑁幔颉。悖?/FONT>
?。?/FONT>
?。酰睿螅椋纾睿澹洹。悖瑁幔颉。耄耄剑悖?/FONT>
?。酰睿螅椋纾睿澹洹。椋睿簟。铮颍洌澹?;
?。酰睿螅椋纾睿澹洹。椋睿簟。幔幔?;
?。螅簦幔簦椋恪。酰睿螅椋纾睿澹洹。悖瑁幔颉。穑颍澹觯椋铮酰螅剑埃埃?;
?。椋妫ǎ穑颍澹觯椋铮酰螅剑剑埃。穑颍澹觯椋铮酰螅剑?;
else
?。?/FONT>
?。铮颍洌澹颍剑ǎǎ酰睿螅椋纾睿澹洹。椋睿簦?/FONT>
?。ǎ穑颍澹觯椋铮酰螅埃幔保梗矗耄耄埃幔保?;
?。穑颍澹觯椋铮酰螅剑铮颍洌澹颍ィ?;
?。幔幔幔剑常玻穑颍澹觯椋铮酰?;
?。铮颍洌澹颍剑铮颍洌澹颍?;
SCON=0;
?。樱拢眨疲剑悖铮睿悖铮洌澹郏埃担玻?;
?。耄耄剑铮颍洌澹颍保玻?;
?。鳎瑁椋欤澹ǎ。裕桑?;
?。樱茫希危剑埃?/FONT>
?。樱拢眨疲剑悖铮睿悖铮洌澹郏耄耄?; kk=order%128;
?。耄耄迹迹剑?;
?。鳎瑁椋欤澹ǎ。裕桑?;
?。樱茫希危剑?;
?。樱拢眨疲剑悖铮睿悖铮洌澹郏耄耄?; kk=aaa%256;
while(?。裕桑?;
SCON=0;
?。樱拢眨疲剑悖铮睿悖铮洌澹郏耄耄?; for(kk=0;kk<4;kk++)
?。?/FONT>
?。鳎瑁椋欤澹ǎ。裕桑?;
?。樱茫希危剑埃?/FONT>
?。樱拢眨疲剑悖铮睿悖铮洌澹郏埃妫妫荩弧。?/FONT>
?。鳎瑁椋欤澹ǎ。裕桑?;
SCON=0x10;
for?。ǎ耄耄剑埃唬耄耄迹保?;kk++)
{
?。牵颍幔穑瑁撸粒洌洌颍澹螅螅ǎ福耄耄?;
while(?。遥桑?;
?。穑颍澹觯椋铮酰螅剑樱拢眨?;
SCON=0x10;
write_lcd(concode[previous]);
?。悖簦颍欤ǎ埃悖埃?/FONT>
?。鳎瑁椋欤澹ǎ。遥桑?;
?。穑颍澹觯椋铮酰螅剑樱拢眨?;
SCON=0x10;
write_lcd(concode[previous]);
ctrl(0xc0);
?。?/FONT>
?。穑颍澹觯椋铮酰螅剑埃埃?;
?。?/FONT>
?。?/FONT>
結束語
隨著現代測控技術的發(fā)展,良好的人機界面也越來越受到設計者的重視。本文介紹的液晶顯示模塊已成功應用在便攜式軌頭斷面激光檢測儀中,由于其具有與MCU接口方便、顯示功能強和編程簡單等優(yōu)點,具有廣泛的應用價值。
下一篇:場效應管電子濾波器
版權與免責聲明
凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://www.hbjingang.com,違反者本網將追究相關法律責任。
本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。
如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。
- 單片機技術特性與嵌入式開發(fā)實踐指南2026/1/7 10:00:02
- 單片機(MCU)與數字信號處理器(DSP)分類及選型技術指南2025/12/30 10:02:37
- 工業(yè)級DSP信號處理系統:硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內建N/N預驅電機專用SoC單片機2025/11/26 14:11:41
- 什么是C51數據類型擴充定義2025/10/27 13:59:22









