基于STC89C52和HT1621D的液晶顯示系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
液晶顯示器(LCD)具有功耗低、體積小、重量輕、超薄、可視面積大,畫面效果好、分辨率高,抗干擾能力強(qiáng)等許多其他顯示器無法比擬的優(yōu)點(diǎn),近幾年來被廣泛應(yīng)用于單片機(jī)控制的智能儀器、儀表和低功耗電子系統(tǒng)中。在以單片機(jī)為核心的微控制系統(tǒng)中,單片機(jī)與顯示器件的接口是一個(gè)必不可少的環(huán)節(jié),具體工作包括選擇顯示器件的類型,接口采用串行方式還是并行方式等問題。本文針對(duì)單片機(jī)控制的智能化工業(yè)設(shè)備對(duì)人機(jī)對(duì)話接口簡單、便捷的要求,詳細(xì)討論段式液晶模塊HT1621D與單片機(jī)STC89C52的一種硬件接口電路和軟件編程方法。
1 HT1621液晶模塊與STC89CS2單片機(jī)
HT1621是128點(diǎn)內(nèi)存映像和多功能的LCD驅(qū)動(dòng)器,HT1621的軟件配置特性使它適用于多種LCD應(yīng)用場合,包括LCD模塊和顯示子系統(tǒng)。靜態(tài)顯示內(nèi)存RAM以32×4位的格式儲(chǔ)存所顯示的數(shù)據(jù)。RAM的數(shù)據(jù)直接映像到LCD驅(qū)動(dòng)器,可以用READ,WRITE和READ-MODIFY-WRITE命令訪問。HT1 621D引腳圖如圖1所示。
圖1 HT1621D引腳圖
各引腳功能如下:
COM0~COM2:LCD公共輸出口。
SEG1~SEG31:LCD段輸出口。
?。浩x輸入,接一上拉電阻。當(dāng)為為高電平,讀寫HT1621的數(shù)據(jù)和命令無效,串行接口電路復(fù)位;當(dāng)為低電平和作為輸入時(shí),讀寫HT1621的數(shù)據(jù)和命今有效。
?。篟EAD脈沖輸入,接一上拉電阻。在信號(hào)的下降沿,HT1621內(nèi)存的數(shù)據(jù)被讀到DATA線上,主控制器可以在下一個(gè)上升沿時(shí)鎖存這些數(shù)據(jù)。
?。篧RITE脈沖輸入,接一上拉電阻。在信號(hào)的上升沿,DATA線上的數(shù)據(jù)寫到HT1621。
DATA:外接上拉電阻的串行數(shù)據(jù)輸入/輸出。
VSS:負(fù)電源;地。
VLCD:LCD電源輸入。
VDD:正電源。
:時(shí)基或看門狗定時(shí)器溢出標(biāo)志,NMOS開漏輸出?! Z:聲音頻率輸出。
STC89C52是一種低功耗、高性能CMOS 8位單片機(jī),最突出的優(yōu)點(diǎn)是片內(nèi)集成了8 KB可重復(fù)編程的FLASH程序存儲(chǔ)器。具有ISP功能,可直接通過串口下載用戶程序,方便調(diào)試程序,內(nèi)部8 KB的FLASH E2PROM使用戶編制的程序及需要顯示的字母、數(shù)字、漢字和圖形都可以存儲(chǔ)在里面,免去了擴(kuò)展外部存儲(chǔ)器的麻煩,使以STC89C52單片機(jī)為核心的控制系統(tǒng)電路更簡單,十分適用于液晶顯示,在智能儀器、儀表和低功耗電子產(chǎn)品中被廣泛選用。
2 硬件電路設(shè)計(jì)
考慮到單片機(jī)的外圍擴(kuò)展電路盡可能少,硬件結(jié)構(gòu)越簡單越好。如果液晶顯示器的8位數(shù)據(jù)線與單片機(jī)采用并行接口的話,數(shù)據(jù)線就占用了8位,再加上其他的一些控制線,將占用較多的I/O口線,因此在很多儀器儀表的應(yīng)用中,將液晶顯示器的8位數(shù)據(jù)線與單片機(jī)通過串行輸入并行輸出器件進(jìn)行串行接口,實(shí)現(xiàn)實(shí)用準(zhǔn)確的數(shù)據(jù)傳輸方式。HT1621與微控制器之間只需三根線進(jìn)行連接,即將HT1621的三個(gè)管腳,DATA和分別與單片機(jī)的P3.4,P3.3和P3.5相連。
HT1621D只有四根管腳用于接口,管腳用于初始化串行接口電路和結(jié)束主控制器與HT1621之間的通訊。管腳設(shè)置為“1”時(shí),主控制器和HT1621之間的數(shù)據(jù)和命令無效并初始化。在產(chǎn)生模式命令或模式轉(zhuǎn)換之前,必須用一個(gè)高電平脈沖初始化HT1621的串行接口。管腳DATA是串行數(shù)據(jù)輸入/輸出管腳,讀/寫數(shù)據(jù)和寫命令通過管腳DATA進(jìn)行。管腳是讀時(shí)鐘輸入管腳,在信號(hào)的下降沿時(shí),數(shù)據(jù)輸出到管腳DATA上,在信號(hào)上升沿和下一個(gè)下降沿之間,主控制器應(yīng)讀取相應(yīng)的數(shù)據(jù)。管腳是寫時(shí)鐘輸入管腳,在信號(hào)上升沿時(shí),管腳DATA上的數(shù)據(jù)、地址和命令被寫入HT1621??蛇x的管腳可用作主控制器和HT1621之間的接口,可用軟件設(shè)置作為定時(shí)器輸出或WDT溢出標(biāo)志輸出。主控制器與HT1621的相連接后,可以實(shí)現(xiàn)時(shí)基或WDT功能。其硬件電路如圖2所示。
圖2 LCD顯示電路
3 軟件設(shè)計(jì)
3.1 LCD驅(qū)動(dòng)器相關(guān)命令
HT1621可以用軟件設(shè)置。兩種模式的命令可以配置HT1621和傳送LCD所顯示的數(shù)據(jù)。HT1621的配置模式稱為命令模式,命令模式類型碼為100。命令模式包括一個(gè)系統(tǒng)配置命令,一個(gè)系統(tǒng)頻率選擇命令,一個(gè)LCD配置命令,一個(gè)聲音頻率選擇命令,一個(gè)定時(shí)器設(shè)置命令和一個(gè)操作命令。數(shù)據(jù)模式包括READ,WRITE和READ-MODIFY-WRITE操作,數(shù)據(jù)和命令模式類型如下:
模式命令應(yīng)在數(shù)據(jù)或命令傳送前運(yùn)行。如果執(zhí)行連續(xù)的命令,命令模式代碼即100,將被忽略。當(dāng)系統(tǒng)在不連續(xù)命令模式或不連續(xù)地址數(shù)據(jù)模式下,管腳應(yīng)設(shè)為“1”,而且先前的操作模式將復(fù)位。當(dāng)管腳返回“0”時(shí),新的操作模式類型碼應(yīng)先運(yùn)行。
3.2 工作時(shí)序
只看掌握和熟悉了HT1621的工作時(shí)序圖才能更好地進(jìn)行軟件編程。HT1621的命令模式時(shí)序圖如圖3所示,寫模式的時(shí)序圖如圖4所示。
圖3 命令模式時(shí)序圖
圖4 WRITE模式的時(shí)序圖
WRITE101
a5 a4 a3 a2 a1 a0 d0 d1 d2 d3寫數(shù)據(jù)到RAM
a5~a0 RAM地址;d3~d0 RAM數(shù)據(jù)
3.3 LCD顯示程序的編寫
要正確的編寫出LCD顯示程序,需要知道HT1621的段與液晶顯示屏的對(duì)應(yīng)情況。RAM的數(shù)據(jù)直接映像到LCD驅(qū)動(dòng)器,RAM可看成是由SEG1~SEG31和COM0~COM2對(duì)應(yīng)組成的映像圖。HT1621的RAM段碼映射如表1所示。
表1 HT1621的RAM段碼映射表
液晶顯示屏上要顯示的每一個(gè)符號(hào)都對(duì)應(yīng)于RAM中的一位,要顯示哪位只需將該位對(duì)應(yīng)的單元即SEG和COM相交的地方置“1”就可以了,若不要顯示則將該位送“0”。對(duì)于0~9的數(shù)字顯示是采用七段碼來顯示的。在編寫顯示程序時(shí)可以將要顯示內(nèi)容的顯示代碼放在一個(gè)表中,然后在程序中可以通過查表的方式根據(jù)此顯示代碼查出對(duì)應(yīng)要顯示的內(nèi)容。LCD顯示子程序流程如圖5所示。
圖5 LCD顯示子程序流程圖
4 結(jié)語
本文詳細(xì)地介紹了段式液晶顯示模塊HT1621與單片機(jī)STC89C52的一種實(shí)用的硬件接口電路和軟件編程方法,該設(shè)計(jì)不但硬件電路簡單可靠,可方便顯示漢字、字符和圖形,而且節(jié)約了單片機(jī)的口線,使系統(tǒng)資源得到了充分利用,實(shí)現(xiàn)了交互式顯示和圖文并茂的人機(jī)界面效果,并且已成功應(yīng)用在多種家用電器和工業(yè)設(shè)備中,有很好的實(shí)用價(jià)值。