1引言
智能儀器儀表設計中,,通常都要對測控信息進行顯示,。受儀器功耗、體積及其它條件的影響,,一般CRT顯示器往往不太適用,。而半導體數碼管,雖能顯示數碼及少數字母,,卻無法靈活顯示各種文字,、圖形、表格等,,有著較大的局限性。而LCD顯示器由于具有功能強,、功耗低,、顯示清晰、構造輕巧等優(yōu)點,,被廣泛運用于各類智能儀器儀表的顯示,。PIC單片機是美國MICROCHIP公司推出的高性能單片機,對比傳統MCS51系列單片機,,它具有內置功能模塊多,、抗干擾性好、速度快,、功耗低等優(yōu)點,,被廣泛應用于工業(yè)控制領域[1]。本文將以SED1520與PIC16F874為例介紹LCD顯示器與PIC單片機接口的實用方法,。
2 SED1520的結構,、指令及其與PIC單片機的接口電路
SED1520的結構框圖如圖1所示,它主要由定時計數器,、行列地址寄存與譯碼電路,、顯示RAM、MPU接口電路,、LCD接口電路組成,。它與外部的接口主要分三個部分:一部分是電源、復位信號和時鐘,;一部分是LCD接口,、另一部分是與MPU(微處理器)的接口。與LCD的接口一般已由提供液晶模塊的制造商負責,,對于液晶模塊的使用者,,只須掌握與MPU接口的部分,。另外,SED1520還需要提供2KHZ的時鐘信號[2],。
SED1520的指令列表如表1,,它的顯示存儲器共有4頁(對應頁地址0~3),每個頁面上都有80個字節(jié)(對應列地址為0~79),,每個字節(jié)中的8位數據都對應著顯示屏上同一列的8點行,。列地址指針就是管理這80個字節(jié)單元的。列地址指針是一個7位加1計數器,。由它和頁地址寄存器組合唯一指定了顯示存儲器的某一個單元,。SED1520中的RAM共有32行,分為4頁,,每頁8行,,這樣如果按8*8點陣顯示字符,每頁可以寫一行10個字符,,總共寫4行,而漢字一般是16*16點陣,,則每行可顯示5個漢字,共可顯示兩行,。如果將多個SED1520拼起來,,就可組成不同顯示容量的液晶模塊,
SED1520與PIC16F874的接口電路如圖2所示,。各引腳說明如下:
A0:指令/數據選擇 ,。高電平表示傳送的是數據,低電平表示傳送的是指令,。
片選信號,,低電平有效,高電平則MPU不訪問SED1520,。
讀允許,,低電平表示MPU從SED1520讀數據或指令,高電平無效,。
寫允許,,低電平表示MPU向SED1520寫數據或指令,高電平無效,。
CL:時鐘輸入端,。由PIC16F874的 RC1提供,讓其工作于PWM2輸出方式,。
D0~D7:數據輸入輸出引腳,。
復位信號輸入端,低電平有效。
VDD:邏輯電源正,。
VSS:邏輯電源地,。
SED1520的指令的解釋和執(zhí)行不依賴外部時鐘,而是由內部時鐘同步的,,所以它的指令執(zhí)行的速度很快,,一般不需要檢測SED1520是否忙。由于PIC16F874的I/O口是輸出或輸入要對相應寄存器進行設置[3],,如圖2,,PIC16F874的RD口在向SED1520寫數據時要被設置成輸出口,而讀數據時又要被設置成輸入口,,為了精減程序和提高速度,,我們可以不用讀SED1520的狀態(tài),直接向其寫數據,。這樣SED1520的RD腳直接接高電平,,PIC16F874的RC3腳也可省下留作它用。
3具體編程實例
在具體的實際應用中,,我們經常要顯示漢字,,一般漢字的字模如圖4,字節(jié)內部的8個位是橫排的,,而對于SED1520,字節(jié)的8個位要豎排,,即每個字符要跨8行顯示,,需要按圖5顯示漢字
那么要將字模的各字節(jié)按位進行如下計算:將標準字模的字節(jié)組1的8個字節(jié)的bit7組合起來就成為SED1520漢字字模的字節(jié)1,bit6組合起來就成為SED1520漢字字模的字節(jié)2,,依此類推,,就可計算出SED1520漢字字模的32個字節(jié),顯示時,,先確定字節(jié)1的位置(頁地址與列地址),,然后連續(xù)顯示字節(jié)1~字節(jié)16,再頁地址加1,,列地址為字節(jié)1的列地址,,設置好后送字節(jié)17~字節(jié)32即完一成個漢字顯示。我們將以12232為例介紹液晶模塊的使用方法,,12232內置2個SED1520,,通過片選來訪問不同的SED1520,它可顯示4行(對應0~3頁地址),,每行可顯示122個字符,,前61個字符對應左邊SED1520,后61個字符對應右邊SED1520,列地址0~60對應這61個字符的位置,,列地址61~79沒有使用,。對SED1520初始化的程序流程圖如圖3。清屏是將所有的顯示RAM內的數據置0,,初始化后,,要具體在某個位置顯示字符需要設置對應的頁地址(行)和列地址,然后向SED1520寫數據即可,。以下為顯示部分初始化程序流程圖,。
4 結束語
SED1520是一款性能價格比很高的LCD驅動芯片,將它與單片微機接口可用于各類儀表,,具有硬件省,、功耗低、軟件程序簡潔等特點,。該接口設計已成功應用于電動汽車電量管理的顯示,,證明該設計穩(wěn)定可靠。
本文作者創(chuàng)新點:單片機在對LCD控制器寫數據前一般都要先讀它是否忙,以免寫數據失敗,而PIC單片機的I/O口在讀與寫的功能轉換中要不停地更改該口的設置,這樣程序就很繁瑣,,還有可能導致系統不穩(wěn)定,。作者在通過實際設計與應用后,對LCD控制器省去了讀狀態(tài)檢測,根據SED1520的數據手冊中介紹的讀寫時序,進行適當延時,這樣精減了程序還省下了在單片機系統設計中比較寶貴的I/O口,而且系統一直穩(wěn)定,。