HT1621液晶顯示控制器是多功能全自動智能開關的顯示部件,能實時、準確、在線監控供電線路的運行情況。一旦線路出現漏電、過載、短路、過壓、欠壓和缺相時,智能安全用電開關能立刻啟動保護程序,并顯示在HT1621液晶顯示控制器上。在智能化樓宇、中高檔家庭住宅、電力系統、工礦企業、國家重點消防單位以及石油化工、文教衛生、金融、電信等領域。基于單片機的HT1621液晶顯示控制器應用廣泛。本文詳細討論段式液晶模塊HT1621D與單片機STC89C52的一種硬件接口電路和軟件編程方法。
1 HT1621液晶模塊與STC89CS2單片機
HT1621是128點內存映像和多功能的LCD驅動器,HT1621的軟件配置特性使它適用于多種LCD應用場合,包括LCD模塊和顯示子系統。靜態顯示內存RAM以32×4位的格式儲存所顯示的數據。RAM的數據直接映像到LCD驅動器,可以用READ,WRITE和READ-MODIFY-WRITE命令訪問。HT1 621D引腳圖如圖1所示。
各引腳功能如下:
片選輸入,接一上拉電阻。當為高電平,讀寫HT1621的數據和命令無效,串行接口電路復位;當為低電平和作為輸入時,讀寫HT1621的數據和命今有效。
READ脈沖輸入,接一上拉電阻。在信號的下降沿,HT1621內存的數據被讀到DATA線上,主控制器可以在下一個上升沿時鎖存這些數據。
WRITE脈沖輸入,接一上拉電阻。在信號的上升沿,DATA線上的數據寫到HT1621.
DATA:外接上拉電阻的串行數據輸入/輸出。
VSS:負電源;地。
VLCD:LCD電源輸入。
VDD:正電源。
時基或看門狗定時器溢出標志,NMOS開漏輸出。
BZ:聲音頻率輸出。
COM0~COM2:LCD公共輸出口。
SEG1~SEG31:LCD段輸出口。
STC89C52是一種低功耗、高性能CMOS 8位單片機,最突出的優點是片內集成了8 KB可重復編程的FLASH程序存儲器。內部8 KB的FLASH E2PROM使用戶編制的程序及需要顯示的字母、數字、漢字和圖形都可以存儲在里面,免去了擴展外部存儲器的麻煩,使以STC89C52單片機為核心的控制系統電路更簡單,非常適用于液晶顯示。
2 硬件電路設計
考慮到單片機的外圍擴展電路盡可能少,硬件結構越簡單越好。如果液晶顯示器的8位數據線與單片機采用并行接口的話,數據線就占用了8位,再加上其他的一些控制線,將占用較多的I/O口線,因此在很多儀器儀表的應用中,將液晶顯示器的8位數據線與單片機通過串行輸入并行輸出器件進行串行接口,實現實用準確的數據傳輸方式。HT1621與微控制器之間只需三根線進行連接,即將HT1621的三個管腳,DATA和分別與單片機的P3.4,P3.3和P3.5相連。
HT1621D只有四根管腳用于接口,管腳用于初始化串行接口電路和結束主控制器與HT1621之間的通訊。管腳設置為"1"時,主控制器和HT1621之間的數據和命令無效并初始化。管腳DATA是串行數據輸入/輸出管腳,讀/寫數據和寫命令通過管腳DATA進行。管腳是讀時鐘輸入管腳,在信號的下降沿時,數據輸出到管腳DATA上,在信號上升沿和下一個下降沿之間,主控制器應讀取相應的數據。管腳是寫時鐘輸入管腳,在信號上升沿時,管腳DATA上的數據、地址和命令被寫入HT1621.可選的管腳可用作主控制器和HT1621之間的接口,可用軟件設置作為定時器輸出或WDT溢出標志輸出。主控制器與HT1621的相連接后,可以實現時基或WDT功能。其硬件電路如圖2所示。
3 軟件設計
3.1 LCD驅動器相關命令
HT1621可以用軟件設置。兩種模式的命令可以配置HT1621和傳送LCD所顯示的數據。HT1621的配置模式稱為命令模式,命令模式類型碼為100.命令模式包括一個系統配置命令,一個系統頻率選擇命令,一個LCD配置命令,一個聲音頻率選擇命令,一個定時器設置命令和一個操作命令。數據模式包括READ,WRITE和READ-MODIFY-WRITE操作,數據和命令模式類型如下:
模式命令應在數據或命令傳送前運行。如果執行連續的命令,命令模式代碼即100,將被忽略。當系統在不連續命令模式或不連續地址數據模式下,管腳應設為"1",而且先前的操作模式將復位。當管腳返回"0"時,新的操作模式類型碼應先運行。
3.2 工作時序
只看掌握和熟悉了HT1621的工作時序圖才能更好地進行軟件編程。HT1621的命令模式時序圖如圖3所示,寫模式的時序圖如圖4所示。
WRITE101
a5 a4 a3 a2 a1 a0 d0 d1 d2 d3寫數據到RAM
a5~a0 RAM地址;d3~d0 RAM數據
3.3 LCD顯示程序的編寫
要正確的編寫出LCD顯示程序,需要知道HT1621的段與液晶顯示屏的對應情況。RAM的數據直接映像到LCD驅動器,RAM可看成是由SEG1~SEG31和COM0~COM2對應組成的映像圖。HT1621的RAM段碼映射如表1所示。
液晶顯示屏上要顯示的每一個符號都對應于RAM中的一位,要顯示哪位只需將該位對應的單元即SEG和COM相交的地方置"1"就可以了,若不要顯示則將該位送"0".對于0~9的數字顯示是采用七段碼來顯示的。在編寫顯示程序時可以將要顯示內容的顯示代碼放在一個表中,然后在程序中可以通過查表的方式根據此顯示代碼查出對應要顯示的內容。LCD顯示子程序流程如圖5所示。
4 結語
以段式液晶顯示模塊HT1621為例,介紹了與單片機STC89C52的一種實用的硬件接口電路和軟件編程方法,該種設計硬件電路簡單可靠,節約了單片機的口線,使系統資源得到了充分利用,可方便顯示漢字、字符和圖形,實現了交互式顯示和圖文并茂的人機界面效果。而且該設計已成功應用在多種工業和家用電器設備中,獲得了很好的實用價值。