伍儒彬,許萍萍,蔡 瓊*
(武漢工程大學計算機科學與工程學院,湖北 武漢 430074)
STC單片機的液晶顯示方案設計與實現
伍儒彬,許萍萍,蔡 瓊*
(武漢工程大學計算機科學與工程學院,湖北 武漢 430074)
基于STC12LE5408AD單片機和HTG9626C01型號液晶的特點,設計一種低成本的液晶顯示方案.通過STC單片機與外圍周邊電路的硬件平臺建立,利用星研軟件5.10版本提供的開發環境進行實現,輔以漢字和英文字符的顯示驗證了方案的可行性.該方案可應用于車載電子標簽(OBU)等需要顯示少量 字符的設備中.
STC12LE5408AD;HTG9626C01;液晶顯示
電子技術的發展,使液晶顯示在實際應用中不盡相同,產生如文獻[1]中提出的解決儀器儀表的液晶顯示方案以及文獻[2]中的倒車雷達液晶顯示方案,也有如文獻[3]中提出的基于MSP430和內置T6963C的液晶顯示方案.基于顯示方案的不同需求,設計一種微控制器和HTG9626C01液晶的顯示方案,用以解決生產生活中的應用需求.
1.1 STC12LE5408AD單片機特點
STC12LE5408AD單片機由宏晶公司生產,是高速且低功耗的新一代8051單片機,指令代碼完全兼容傳統8051;其工作電壓為3 V(依據系列的不同其工作電壓也有5 V可選);工作頻率范圍0~35 MHz;用戶應用程序空間為8 K字節;工作溫度范圍工業級的是-40~+85℃,商業級的則是0~75℃[4].
1.2 HTG9626C01型號液晶
HTG9626C01型號液晶由洪泰公司設計和生產,其控制液晶顯示的控制器(LCM)采用的是ST7549.ST7549是驅動和控制圖形點陣液晶顯示系統的一種邏輯器件.它包含102段極與68公共極的驅動電路,芯片可直接連接到微處理器,接受3線或4線串行外設接口(SPI),或8位并行接口.其顯示數據可以在一個片上顯示存儲數據的RAM為68×102位,且在顯示數據RAM的讀/寫操作,無需外部時鐘操作,可最大限度地減少功率消耗[5].
HTG9626C01型號液晶是將ST7549封裝于玻璃上(COB),并有電源供給電路,驅動器,以及液晶顯示存儲器組成.其點陣數為96@26,顯示效果為白底黑字或藍底白字,而工作電壓受ST7549的影響為2.4~3.3 V(一般設計為3 V).
1.3 硬件電路設計
根據液晶和單片機的特點,電路圖連接如圖1,單片機的P2.1位連接液晶顯示模塊的Resb,P2.0位連接液晶顯示模塊的A0,P1.7位連接液晶顯示模塊的D0,P1.5位連接液晶顯示模塊的D1,P1.4位連接液晶顯示模塊的CSB.
本次設計中液晶和單片機的工作電壓都是3 V,不需要額外的電壓轉換電路.硬件功能的整體設計目標是:當按下開關K時,兩個LED燈分別點亮和熄滅,液晶屏出現程序中設定好的字符(包含漢字和英文字母)同時蜂鳴器發出短暫的聲音.
在圖1中,VT1和VT2可選用S9013或C8050的NPN管,VT3可選用S9015或C8550的PNP管;C1與C2的理論設計值則應小于33 PF,而外部晶振可選用6 MHz(在單片機工作范圍內,當晶體振蕩器丫的信號輸入到STC單片機內的時鐘發生器上,而時鐘發生器一般都具有分頻功能,將所輸入的信號分解成CPU所需的時鐘信號.這樣,單片機所需的工作頻率就初步具備了);電阻R1、R3、R5、R8可采用100Ω的電阻,R2、R4、R6選用10 kΩ 的電 阻,R7則 選用4.7 MΩ的電阻;蜂鳴器(BL)可采用市場常用的JHT1700.

圖1 硬件電路圖Fig.1 Hardware circuit
基于STC12LE5408AD單片機與51單片有相同的指令系統,且實現的功能相對簡單,軟件設計部分采用匯編語言實現,軟件開發環境采用星研集成環境軟件5.10版本.(該軟件有如下優點:a.功能強大的項目管理功能.b.簡潔清晰的軟件操作界面.c.支持多種文件格式.c.豐富的調試信息.d.提供軟件模擬仿真.)
2.1 主程序流程設計
主程序流程如圖2所示,當手動按下開關K時程序開始運行,進行初始化,初始化主要包括對各寄存器的狀態和液晶進行初始化,針對ST7549驅動的液晶,其初始化內容一般需要設定以下參數:系統偏差(System Bias)、顯示格局(Display configuration)、設 定 VOP值 (Set VOPvalue)、設定VLCD范圍(Set VLCDrange)、設定起始顯示線(Set Start line)以及顯示控制(Display Control).其中顯示格局依靠設置DO來實現,當DO等于1時,數據位縱向顯示時MSB(最高有效位)在上面,橫向顯示時MSB在左邊;當DO等于0時,數據位縱向顯示時MSB在下面,橫向顯示時MSB在右邊(也可表述為:數據位縱向顯示時LSB(最低有效位)在上面,橫向顯示時LSB在左邊).而VOP值的設定值決定VLCD的大小,其計算公式是:

式中b的值為0.03 V,a值的大小則由VLCD 范圍來確定,當PRS等于1時,a的值為6.75 V;當PRS等于0時,a的值為2.94 V.一般情況下顯示控制設置為“正常顯示(Normal Display)”即可.

圖2 主程序流程圖Fig.2 Flow diagram of main program
初始化完成后通過清零或拉高來控制LED燈的亮滅,再調用液晶顯示程序來顯示需要顯示的字符,最后調用蜂鳴器發聲程序.至此,程序完成并結束.
2.2 液晶顯示程序設計
在液晶顯示時,需要前期的初始化,還需要在顯示在過程中進行一些設置和選擇,液晶顯示的流程圖如圖3所示.

圖3 液晶顯示流程圖Fig.3 Flow diagram of LCD display
用SPI接口向液晶寫入控制信息,獲取對液晶的顯示控制,在第一次顯示時,液晶未準備好,需要對顯示的內容進行分類,如顯示的內容是數字或者英文或者是漢字.確定需要顯示內容的類別后,作相應的顯示前準備,再調用液晶顯示的控制端口,本次設計采用串口傳輸數據的方式實現數據的傳輸,數據傳輸后即可按設定好的格局顯示在液晶屏上,顯示計數器主要起兩個作用,需要顯示的字符個數是否顯示完成,第二個是是否需要換頁.換頁與否由程序設定的計數器來決定,而需要顯示的字符個數則是在程序編寫過程賦值的.當兩個判斷都為真的時候表示液晶顯示完成并結束程序.
需要注意的是液晶顯示過程,也是單片機端口向液晶模塊傳輸數據的過程,采用DPTR來定位需要顯示字符的表或者庫,也就是一個查表的過程,其常用的命令是:MOVC A,@A+DPTR此時,DPTR作為基址寄存器,將DPTR的內容與累加器A的內容相加得到變址地址,從而找到存放顯示字符的表或庫.
2.3 漢字字體顯示設計
鑒于本次設計實現的功能較簡單,采用自定義的字模庫.參考圖4,一個漢字占用16@16個點,數字則占用16@8個點,英文字符占用8@8個點(參考圖5).HTG9626C01是96@26的點陣液晶屏,按前所述,可顯示6個漢字的同時顯示12個英文字符;或者同時顯示12個數字和12個英文字符.以漢字“你”為例,字模的輸出格式約定為從左到右,從上到下;取模方式為縱向8點上高位.其最終的32字節字模表如下:


圖4 漢字字模Fig.4 Chinese character font

圖5 數字與英文字母字模Fig.5 Digital and english alphabet fonts
2.4 實驗驗證
按前面所述的流程和字模庫、用匯編語言編程實現,在開發環境中進行編輯和裝載,若編譯完成后無錯誤提示或發生,可將編譯器生成的*.HEX文件通過燒錄器燒錄到單片機中,按硬件電路連接好電子器件.按下開關K,驗證液晶屏顯示是否正常(如圖6所示),其它功能是否正常.經過測試驗證,預期設計目標均已達到.

圖6 顯示效果圖Fig.6 Effect diagram of display
2.5 系統的擴展性
可將該顯示方案應用于手持終端設備上,具體方法如下:a.將單片機中未使用的引腳作為手持設備的按鍵,通過電源連接必要的上拉(或下拉)電阻.b.添加程序中對應的單片機位操作代碼,同時添加必要的字庫,再修改程序中按鍵所需要的代碼,如有需求,可修改聲音部分的程序代碼.
也可將該顯示方案應用于車載終端上用以記錄貨物運輸的基本信息.但對信息量要求較多的需求則有一定的局限性.
另外,亦可將方案進行簡單的器件更換,對程序進行適當的修改,使產品具有防拆卸功能.具體如下:將總個方案形成某個具體的產品,并將開關K固定好,一旦將產品強行脫離原來固定的位置,程序跳轉到報警程序(亦可啟動保護模式程序)或使產品失效(無法正常工作).
基于STC12LE5408AD單片機與HTG9626C01液晶的特點,設計和實現了一種簡單的液晶顯示方案,此方案可應用于一些簡單(主要在顯示字符數量上要求不多)的設備上,例如車載電子標簽,物流手持終端設備.與現有的成熟方案相比:其實現的成本相對低廉,同時此方案不需要像文獻[6]中對LCD顯示原理進行深入學習和了解,也不需要擔心文獻[7]中提到的單片機速度與液晶顯示的匹配問題,適合初學者學習液晶顯示部分的一些基本知識.但是,方案也有不可忽略的局限性.限于單片機的容量,可容納的數據與代碼有限.另外,采用匯編語言編寫,使其在通用性上不具備優勢.因此,在采用該顯示方案形成最終產品時,可將單片機進行適當的升級并采用C/C++語言進行編程實現.
[1]余華芳,劉健.單片機與液晶顯示模塊的軟硬件接口技術[J].液晶與顯示,2003,18(2):125-129.
[2]楊帆,陳雯,陸煊,等.基于EASYARM2103倒車雷達的設計[J].武漢工程大學學報,2011,33(1):96-99.
[3]宋俊杰,原冬梅,金海龍,等.基于 MSP430的內置T6963C液晶顯示模塊控制技術[J].液晶與顯示,2010,25(1):110-113.
[4]宏晶科技.STC12C5410AD系列單片機器件手冊[R].東莞:宏晶科技,2006:2.
[5]矽創電子.ST7549_v1.3[R].臺灣:矽創電子,2004:1-1.
[6]鄭強.Linux驅動開發入門與實踐[M].北京:清華大學出版社,2011:279-283.
[7]劉金星,李洪文.基于高速單片機的液晶顯示模塊控制[J].液晶與顯示,2011,26(1):88-91.
Scheme for liquid crystal display design and implement based on STC microcontroller
WU Ru-bin,XU Ping-ping,CAI Qiong
(School of Computer Science and Engineering Wuhan Institute of Technology,Wuhan 430074,China)
Based on the features of STC12LE5408AD microcontroller and HTG9626C01 LCD,a scheme was designed for displaying LCD economically.The feasibility of the scheme was verified by establishing the hardware platform between STC microcontroller and peripheral circuit,implementing program under XINGYAN5.10 software and displaying Chinese and English characters.The scheme could be applied to some devices displaying a few characters such as OBU.
STC12LE5408AD;HTG9626C01;LCD
陳小平
TP368.1
A
10.3969/j.issn.1674-2869.2011.11.021
1674-2869(2011)11-0083-04
2011-10-08
伍儒彬(1982-),男,湖北武穴人,碩士研究生.研究方向:嵌入式系統及應用.
指導老師:蔡 瓊,女,碩士,副教授,碩士研究生導師.研究方向:計算機技術及應用.*通信聯系人