摘要:以單片機系統(tǒng)組成的點陣LED顯示屏開發(fā)過程.系統(tǒng)采用上一下位機的結(jié)構(gòu)構(gòu)建,上位機PC可
通過串行通信接口實現(xiàn)對下位機LED顯示系統(tǒng)顯示參數(shù)的設(shè)定.下位機以LED屏的顯示電路和單片機控 制電路為核心,實現(xiàn)點陣LED屏以多樣化的方式顯示各種信息的功能,同時可實現(xiàn)本地溫度采集、顯示和 本地時間實時顯示的功能.
關(guān)鍵詞:點陣LED;串行移位;12C;單片機;上位機.
LED電子顯示屏是近年來得到廣泛應(yīng)用的 重要信息設(shè)備.這種顯示屏具有耗電省、成本低、 清晰度高、壽命長、顯示內(nèi)容的信息量大,外形美 觀大方,操作使用方便靈活,用戶可隨時任意自行 編輯修改顯示內(nèi)容,顯示方式圖文并茂等優(yōu)點,因 此被廣泛應(yīng)用于商場、學(xué)校、銀行、郵局….
1系統(tǒng)的總體結(jié)構(gòu)
系統(tǒng)采用上位機——下位機的結(jié)構(gòu)搭建,上 位機為PC機,通過串行通信接口與下位機顯示 系統(tǒng)實現(xiàn)交互,能夠?qū)崿F(xiàn)字符串的修改、顯示方式 的設(shè)定、時間的設(shè)置等功能;下位機系統(tǒng)由核心 板、顯示板兩個模塊組成.下位機系統(tǒng)由單片機控 制LED點陣顯示屏的顯示,漢字顯示采用16×16 點陣模式,并能夠?qū)崿F(xiàn)屏幕顯示內(nèi)容的實時更改; 采用動態(tài)顯示,實現(xiàn)字符從下往上、從右往左滾動 等動態(tài)顯示效果;實時采集并顯示周圍環(huán)境的溫 度;顯示當(dāng)前的時間與13期.
2點陣LED顯示屏系統(tǒng)的硬件結(jié)構(gòu)
2.1微控制器選型
MCU是整個顯示系統(tǒng)的核心部件,系統(tǒng)的整體性能很大程度上取決于MCU的先進(jìn)性和靈活 性.本系統(tǒng)選用STC公司的s1℃89C54RD+增強 型51單片機.
STC89C54RD+單片機具有提高MCU的運
行速度,運行穩(wěn)定,價格便宜,良好的性價比等特
點.其支持的最高時鐘為80M,這樣能最大限度地
提高MCU的運行速度;具有雙倍速的功能,支持 6時鐘周期模式運行;具有ISP在線系統(tǒng)編程功
能,大大縮短開發(fā)復(fù)雜度,同時可節(jié)省購買編程器
的額外投人;STC89C54RD+單片機內(nèi)部包括 16KB的Flash程序存儲器ROM、lKB的數(shù)據(jù)存儲
器RAM,與普通的8051單片機完全兼容,而51 單片機的開發(fā)環(huán)境也很成熟:如Keil C語言被廣
.泛地應(yīng)用于新產(chǎn)品的開發(fā),這對于縮短系統(tǒng)開發(fā)
周期有著很重要的意義.
2.2外擴數(shù)據(jù)存儲器
在系統(tǒng)中需要板載漢字字庫.STC89C54RD
+單片機內(nèi)部只有lKB的RAM,最多只能暫存 32個漢字的點陣數(shù)據(jù),一定程度上限制了程序?qū)?
硬件資源的利用,所以必須外擴RAM,擴展系統(tǒng)
的可應(yīng)用性.
單片機與外擴存儲器連接的電路如圖I所示.系統(tǒng)巾選用256KB的Flash ROM—— W29C020來存儲一個標(biāo)準(zhǔn)的16×16點陣漢字
霹.弱時選弱32KB的HN62256來擴愛努部數(shù)據(jù)
存儲器,用于存儲顯示緩沖區(qū)的數(shù)據(jù)和程序運行
對存儲資源的開銷.用一個74LS373作為地址鎖
森器錟存地址,霹以實溪單片楓約數(shù)據(jù)縫址總線
的分離.HM62256的片選信號由單片機I/O管腳 P3.4控制,當(dāng)HM62256不被系統(tǒng)訪問時,要求程
穿控制HM62256豹片選無效,以減少功耗. W29C020有18根地址線,而MCU的地址總線只
有16根,因此必須用兩個單片機的I/O口(P1. 6、P1.7)侔為高兩位地址線。
2.3串行通信
系統(tǒng)上位機——下位機是通過串行通信接口 聯(lián)系。STC89C54RD÷單片撬內(nèi)部含有一個霹編程 全雙工串行通信接口(RXD、TXD),具有UART的 全部功能,該接口電路能同時進(jìn)行數(shù)據(jù)發(fā)送和接 救.一般情魏下只要通過TXD、RXD和GND三條 線連接就可以實現(xiàn)與PC上位機的串行通信.但本 系統(tǒng)為了實現(xiàn)單片機與PC機的串行通信功能,還 囂要將單片槐戇事行接蠢酶毫平轉(zhuǎn)換成RS一232 電平標(biāo)準(zhǔn).電平轉(zhuǎn)換選用單片機應(yīng)用系統(tǒng)中最常
用的RS一232電平轉(zhuǎn)換芯片,此芯片具有集成度
離,內(nèi)置了電壓倍增電路及負(fù)電源電路,單+5 V 電源工作,只需外接5個容量為O.1一l心的小
電容即可完成兩路RS一232與朋:L電平之間轉(zhuǎn)
換,連接圖如圖2所示.
2.4驅(qū)動電路的設(shè)計
系統(tǒng)所選用的點陣強D是佳光電子生產(chǎn)的8 ×8點陣LED一一KWM一30881.系統(tǒng)中所顯示的 漢字點陣為16×16點陣,顯示一個漢字要用4個 8×8的點陣LED.8×8的點籜LED有8條行線、8 條列線,共16個管腳.則每個16×16顯示屏共需 用16條行線、16條列線.
2.4。1行驅(qū)番電路
采用16 x 16點陣顯示需要16個行驅(qū)動信 號.單片機的I/O有限,所以系統(tǒng)采用74HCl38譯 碼器來擴震I/O瑟,將兩片。138譯碼器連接在一 起形成一個4一16線譯碼器,通過改變譯碼器4 個輸入信號,來輪流驅(qū)動16行,由于單片機的 m輸淺瑟的驅(qū)動髓力菲常有限,所以在每個輸
出口都加一個三極管,增加I/0口的驅(qū)動電流,用
來驅(qū)動LED顯示屏的行信號。
2.4.2列驅(qū)動電路
由于本系統(tǒng)中的LED顯示屏是可以拼接的, 所以乖J髑串行轉(zhuǎn)并行技術(shù),只要一個單片機的I/0 口,通過串行轉(zhuǎn)并行,就能得剄所需數(shù)爨的輸擊蕊
線來驅(qū)動列信號,很好地解決單片機I/0口資源
有限豹闋題.系統(tǒng)巾一個LED屏(顯示4個16×16的漢字)由八片的74HC595芯片級聯(lián)組成串行
轉(zhuǎn)并行輸出來驅(qū)動列信號.
3點陣LED顯示屏系統(tǒng)的軟件組成
本系統(tǒng)采用模仿多任務(wù)的操作系統(tǒng)運行方式 與體系結(jié)構(gòu)來編程的.
下位機軟件設(shè)計分為五個模塊:(1)、系統(tǒng)初
始佬設(shè)置模塊;(2)、串墨通信模塊;
<3)、時聞、溫 度采集處理模塊;(4)、強D驅(qū)動顯示模塊;(5)、 按鍵處理模塊. >
把每個程序模塊都寫成一個獨立的任務(wù)模 塊,任務(wù)冀任務(wù)之閩的資源通過緩沖區(qū)來傳遞,并 且通過信號投放機從信號緩沖區(qū)中取信號來實現(xiàn) 任務(wù)的諼度。
3.1漢字的顯示
漢字一般是以點陣式存儲的,對于16點陣字
模,就是把漢字寫在一個16×16的網(wǎng)格內(nèi),漢字
的筆畫通過某網(wǎng)格時該網(wǎng)格就對應(yīng)l,否則該網(wǎng)格
對應(yīng)0,這樣每一網(wǎng)格均對應(yīng)1或0,把對應(yīng)1的網(wǎng)
格連起來餐,就是邀拿漢字。實璦點陣技術(shù)在LCD 屏幕顯示的關(guān)鍵是,如何通過漢字的機內(nèi)碼檢索
到該點陣位置.ASCII字符表從第161個歪255個
字符(即舛個字符)之闋為非常蔫字符,將其作力
漢字標(biāo)識符.并規(guī)定每兩個字節(jié)組成一個漢字,即
可組成94×94=8 836個漢字.161至255的字符
被分成94個區(qū),每個區(qū)懿數(shù)篇就是區(qū)褥,每個區(qū)
又分成94位,每個位的數(shù)值就是位碼.同時,我們
將組成字符的兩個字節(jié)的數(shù)值稱為漢字的機內(nèi)
碼,分舅l稱為高字節(jié)內(nèi)碼和低字節(jié)內(nèi)碼?;眱?nèi)碼與
區(qū)位碼之間的聯(lián)系在于:區(qū)碼=高字節(jié)內(nèi)碼一 160,位碼=低字節(jié)內(nèi)碼一160.因為漢字是按94 個囂、位越分的,新以記錄號(漢字在字庫中的位
置)=(區(qū)碼一1)×94+(位碼一1).在16點陣字
中,漢字的實際位置為記錄號×32L.因此可以得
酲漢字撬內(nèi)碼與W29C020孛16點陣漢字的地址
空間之間的數(shù)學(xué)關(guān)系如下:漢字點陣起始位置= [(高字節(jié)內(nèi)碼一0xal)×94+(低字節(jié)內(nèi)碼一 Oxal)】×32L.從該起始位置的連續(xù)32字節(jié)單元
即為該漢字機內(nèi)碼對應(yīng)的漢字點陣庫.
當(dāng)系統(tǒng)啟動之后,配合P1.6、P1。7的工作時 序完成對就9馓O嵩位地址的鎖存,并采用外部RAM尋址方式,根據(jù)需要讀取漢字機內(nèi)碼,按照 上述的邏輯關(guān)系,從W29∞20中讀取漢字點陣, 送至濺D點陣屏幕上顯示.總共可實現(xiàn)16點陣的 漢字顯示.
3.2對聞、溫度采集處理模塊
時聞與溫度的采集都是通過12C總線來實現(xiàn) 的,所以此模塊主要是通過12C總線來實現(xiàn)時間 的讀取,以及時閹的讀寫操償.并把讀趣來的數(shù)據(jù) 存放于數(shù)據(jù)緩沖區(qū)中,以便顯示時闡或溫度時顯 示狀態(tài)機調(diào)用.
3.3按鍵處理模塊
本系統(tǒng)采取中斷來響應(yīng)按鍵.所以在外中斷0 的中斷服務(wù)子程序中要完成兩個事情:(1)、讀取
鍵值;(2)、往信號緩沖區(qū)發(fā)送信號(憊括信號鮑類
型—按鍵信號、信號的數(shù)據(jù)一按鍵值).然后再通
過信號投放機,根據(jù)不同的鍵值執(zhí)行相應(yīng)的操作.
假如按下按鍵s2,疆D屏劂顯示酵閼;按下按鍵 S3,LED屏則顯示實時周圍環(huán)境的溫度;按下按
鍵S4,LED屏則晟示英文;按下按鍵S1,LED屏
掰顯示漢字.
3.4 LED驅(qū)動囂示模塊
此模塊是整個系統(tǒng)的程序中最為關(guān)鍵的模 塊。在它只有一個子翟穿一顯示程穿,在程序?qū)?定義一個全局變量一結(jié)構(gòu)體,這個結(jié)構(gòu)體用來表 示字符滾動顯示的六個參數(shù),而這個結(jié)構(gòu)體也只 有在囊示狀態(tài)機巾改變,從褥實褒字符在強D燕
示屏上滾動顯示的效果.而各個狀態(tài)中的任務(wù)以
及各個狀態(tài)間的轉(zhuǎn)換過程如圖3所示.
狀態(tài)說臻:
0:lDLE空閑;I:TEMP—MODE讀取溫度并進(jìn)
行處理;
2:骶ME—MODE狀態(tài)讀取日期醛間并進(jìn)行處理;
3:SWITCH—STRING—INIT初次切屏;
4:SHOW—STRING字符串顯示等待;
5:SWITCH—STRING字符串切換;
6:READ—STRING讀下一字符串并存字模到
緩沖區(qū).
4結(jié)論
設(shè)計的點陣LED顯示屏系統(tǒng)采用上位 機——下位機的結(jié)構(gòu)搭建,上位機為PC機,通過 串行通信接口與下位機顯示系統(tǒng)進(jìn)行通信,能夠 實現(xiàn)所要顯示的字符串的修改、顯示方式的設(shè)定、 時間的設(shè)置等功能;下位機系統(tǒng)由單片機控制 LED點陣顯示屏的顯示.漢字顯示采用16×16點
陣模式,并能夠?qū)崿F(xiàn)屏幕顯示內(nèi)容的實時更改;顯
示方式采用動態(tài)顯示,實現(xiàn)字符從下往上、從右往
左滾動等動態(tài)顯示效果;系統(tǒng)同時實時采集并顯
示周圍環(huán)境的溫度;并具有顯示當(dāng)前的時間與日
期的功能.所設(shè)計的系統(tǒng)具備顯示穩(wěn)定、功耗低、
壽命長、顯示內(nèi)容易改、顯示方式豐富等優(yōu)點.