1 LED點陣顯示系統(tǒng)簡介
隨著圖形點陣LED顯示模塊在各行各業(yè)的逐步使用,使得人機界面變得越來越直觀形象,尤其對于國內(nèi)大多數(shù)需要有漢字和圖形顯示的用戶來說,顯示界面的友好與否,將直接影響到其產(chǎn)品的形象和市場競爭力。
本文所介紹的點陣LED顯示屏,顯示漢字和各種常見字符等信息,可廣泛應(yīng)用于各種場所。具有結(jié)構(gòu)簡單、安裝方便、字型美觀、圖案清析。采用高性能單片機控 制,性能穩(wěn)定,可靠性高,具有掉電保護功能,可完全脫機運行,可以顯示約2000個文字。經(jīng)過一條RS-232串口線與電腦連接更換信息,操作簡單,使用 方便。
2 LED點陣顯示系統(tǒng)的硬件設(shè)計
LED點陣顯示系統(tǒng)由計算機、RS-232通訊電路、控制電路和LED點陣顯示電路構(gòu)成,結(jié)構(gòu)框圖如圖1所示。
圖1 LED點陣顯示電路構(gòu)成結(jié)構(gòu)框圖
上位計算機可選擇工業(yè)控制計算機或者普通個人計算機。單塊條屏由控制電路和驅(qū)動顯示電路組成??刂齐娐坟?fù)責(zé)與上位機通信,可根據(jù)通信距離的遠近選用RS- 232或RS-485標(biāo)準(zhǔn)總線接口。本電路采用RS-232接口的3腳(TXD)和5腳(GND),計算機向控制電路發(fā)送漢字或字符內(nèi)碼;控制電路存儲該 內(nèi)碼并在字庫中對應(yīng)漢字或字符點陣,向驅(qū)動電路發(fā)送行列選通信號;顯示驅(qū)動電路負(fù)責(zé)根據(jù)行列選通信號,向指定LED發(fā)光器件提供驅(qū)動電流。
2.1 顯示控制電路
控制部分以單片機89C51為核心,輔以外圍電路,完成串行通信、外部存儲器讀取、行列選通信號輸出等任務(wù)。
為使計算機與控制電路能夠隨時通信,需要單片機89C51與89C2051與其它器件之間可以通信。當(dāng)89C2051接收到計算機發(fā)送的數(shù)據(jù)信號時,通過 P3.2腳向89C51發(fā)送中斷信號,此時該腳作為I/O口。而后89C51響應(yīng)該中斷,并通過P1口接收來自89C2051P1口的數(shù)據(jù)。
在PC 機內(nèi)部,漢字是以機內(nèi)碼的形式存儲的,每個漢字占兩個字節(jié)。單片機89C51將采集來的數(shù)據(jù)放到串行E2PROM(24LS32)中,P3.3接SDA和 P3.4接SCL。所以在沒有與計算機通信的時候也可以讀取串行E2PROM(24LS32)中存儲的漢字或字符內(nèi)碼并最終顯示。89C51的串口接收由 E2PROM(24LS32)存儲的漢字內(nèi)碼,并將其換算成漢字首地址,從4Mbit的EPROM(M27C4001、并行口)的字庫中提取相應(yīng)的漢字 (一組32字節(jié)的數(shù)據(jù)),對應(yīng)于顯示屏排列好存貯到片外RAM(CY6264,64Kbit)中,重復(fù)上述過程將所有的漢字都提取出并排列存儲好,最后由 89C51將RAM中的數(shù)據(jù)經(jīng)P1口和P3口輸出給顯示驅(qū)動電路。
漢字庫的制備與普通程序存儲器的燒錄并無區(qū)別。將漢字庫文件以二進制形式打開,通過編程器燒錄到M27C4001中即可[1]。M27C4001的19位地 址和CY6264的13位地址信號分別由P0口(經(jīng)D鎖存器74HC573輸出作為地址線)、P2口、P1口(P1.5~P1.7復(fù)用)產(chǎn)生 。串行E2PROM(24LS32)、EPROM(M27C4001)、RAM(CY6264)與單片機的接口如圖2[2]所示。
圖2 單片機控制電路原理框圖
在顯示功能中,有一種是顯示年月日的。如果不與計算機時間同步,則顯示實時時鐘芯片DS12887的時間。我們還可以通過與計算機通信來獲得計算機當(dāng)前時間。當(dāng)讀取或?qū)懭霑r鐘芯片時間數(shù)據(jù)時,單片機89C51通過AD0~AD7地址數(shù)據(jù)復(fù)用引腳來選通地址并讀寫數(shù)據(jù)。
2.2 顯示驅(qū)動部分[3]
LED點陣選用2×4模塊,每4塊排列成一個16×16的點陣,用于顯示一個漢字。點陣每一行的所有LED共陽極,每一列的所有LED共陰極。系統(tǒng)由單片機控制。
單片機89C51的P0.0~P0.3口(D0~D3)通過一個通用邏輯陣列GAL16V8D和三態(tài)收發(fā)器74HC245輸出用于行選通信號(OIA~OID),P3.0和P3.1經(jīng)74HC245輸出用于列選通信號,如圖3所示。
圖3 行選通信號產(chǎn)生原理圖
行驅(qū)動部分用兩個74HC138譯碼,將行選通信號作為兩個譯碼器地址輸入,可以得到16行的行值信號??紤]到74HC138的驅(qū)動能力有限,故LED陽極 通過三極管TIP127與電源相連,可提供2A左右的電流,74HC138輸出引腳僅需要提供幾個毫安的灌入電流即可控制其通斷。
列 輸入驅(qū)動由八個8位串行輸入,串行或并行輸出三態(tài)移位寄存器74HC595實現(xiàn)。該芯片具有串行輸入、并行輸出兩個獨立的時鐘信號。輸入數(shù)據(jù)在串行移位時 鐘SRCLK上升沿由串行輸入端SER 輸入到芯片內(nèi)部串行移位寄存器中,同時, SQH端串行輸出;在鎖存時鐘信號RCLK上升沿到來時,芯片將內(nèi)部串行移位寄存器8位數(shù)據(jù)并行輸出。正常工作時,應(yīng)將復(fù)位端SRCLR與使能端RCLK 分別接高電平、低電平。單片機輸出信號直接與串入并出移位寄存器74HC595的鎖存器輸出端連接。列驅(qū)動電路原理圖如圖4所示。
圖4 列驅(qū)動電路原理圖
3 軟件系統(tǒng)
程 序可以實現(xiàn)與計算機的通信,可非常方便地任意修改所要顯示的漢字;并使顯示屏可固定、平移地顯示漢字。程序中將數(shù)據(jù)存儲器分為三個區(qū):顯示緩沖區(qū),數(shù)據(jù)存 儲區(qū)和接收緩沖區(qū)[4]。單片機通過串口接收PC機傳來的數(shù)據(jù)(包括顯示內(nèi)容,顯示方式和顯示狀態(tài))暫時放在接收緩沖區(qū),處理后放入數(shù)據(jù)存儲區(qū)保存,然后 再根據(jù)顯示方式從數(shù)據(jù)存儲區(qū)中讀出數(shù)據(jù)放入顯示緩沖區(qū)用于顯示。顯示方式的實現(xiàn)取決于數(shù)據(jù)放入顯示緩沖區(qū)的順序,左移是從數(shù)據(jù)存儲區(qū)取出一位數(shù)放入顯示緩 沖區(qū),上移是每次取出一行數(shù)據(jù)放到緩沖區(qū),時間顯示是先把實時時鐘的數(shù)據(jù)放到顯示緩沖區(qū)。顯示時并不識別顯示緩沖區(qū)的數(shù)據(jù),只是依次從顯示緩沖區(qū)提取數(shù)據(jù) 向顯示屏發(fā)送并送入相應(yīng)的鎖存消隱和行值信號,完成掃描。程序功能框圖如圖5所示。
圖5 程序功能框圖
軟 件系統(tǒng)采用模塊化結(jié)構(gòu),包括主程序、顯示子程序和串口中斷服務(wù)程序。主程序為順序結(jié)構(gòu),完成堆棧、中斷、串口的初始化設(shè)置后,循環(huán)調(diào)用顯示子程序,以及響 應(yīng)串行接收或發(fā)送中斷;顯示子程序從顯示緩沖區(qū)取出字模,輸出行選通信號至P0口并通過一個通用邏輯陣列GAL16V8D輸出,配合列掃描信號,進行動態(tài) 掃描顯示;中斷服務(wù)程序串口接收PC機發(fā)送的漢字機內(nèi)碼數(shù)據(jù),實現(xiàn)與計算機實時通信。程序各部分的功能,由各個模塊分別實現(xiàn)。程序模塊有: 串口初始化模塊、數(shù)據(jù)輸入模塊、漢字首地址計算模塊、取字模塊、顯示模塊和移動模塊。
4 結(jié)束語
本 文的點陣LED顯示系統(tǒng)以單片機89C51為基礎(chǔ),加以外圍電路,利用RS-232接口實現(xiàn)與計算機實時通信,可實現(xiàn)漢字、數(shù)字及各種字符的多種方式和速 度的顯示。經(jīng)實際應(yīng)用驗證,本條屏作為信息顯示屏,工作穩(wěn)定,字符清晰,字體美觀,亮度適中,根據(jù)需要可選擇多種顯示字幕效果,并具有分布靈活、擴展方便 等優(yōu)點。