1 引言
在車站、商場、學校等一些需要發布多變的實時信息或進行廣告宣傳的場所,黑板、紙張或是霓虹燈廣告牌這些傳統的媒介手段,不論是在顯示效果還是可修改性上都已無法滿足當前的需求。而 LED點陣顯示屏具有耗電省、成本低、壽命長、占用空間小以及能夠實時顯示等特點,而且顯示內容的信息量大,用戶可隨時任意自行編輯修改顯示內容,因此,近年來已得到了廣泛應用。
2 總體設計
系統采用了上位機——下位機的結構構建,上位機為 PC機,通過串行通信接口與下位機顯示系統進行通信[1],以實現對顯示內容的實時擦除、更新等操作;下位機系統主要包括單片機控制電路和顯示電路兩部分,漢字顯示采用 16x16點陣模式,通過單片機的控制,實現字符從右往左滾動的動態顯示效果?;究驁D如圖 1所示。
3 系統的硬件結構
3.1 MCU的選擇
MCU是整個下位機系統的核心部件,其性能和片內資源很大程度上決定了該系統工作的靈活性、先進性和穩定性?;诖?,本系統選用了 STC公司生產的 STC89C55RD+增強型 51單片機。
STC89C55RD+單片機的指令系統、硬件結構以及片內資源與標準8052單片機完全兼容,采用DIP40封裝形式;支持的最高時鐘頻率為80M,能最大限度地提高MCU的運行速度;片內包含大容量的20KBFlash程序存儲器和1KB的數據存儲器,其內部可用Data Flash達58個扇區共29KB;具有在系統可編程(ISP)功能和在應用可編程(IAP)功能,可實現遠程軟件升級,無需編程器,從而大大縮短開發復雜度,同時可節省購買編程器的額外投入。
3.2 串行通信
系統上位機和下位機通過串行通信接口進行聯系。 STC89C55RD+單片機內部含有一個可編程的全雙工串行通信接口,即 RXD(P3.0)和TXD(P3.1),具有 UART的全部功能,該接口電路能同時進行數據發送和接收。一般情況下只要通過RXD、TXD和GND三根線就可以實現與上位機PC的串行通信,根據通信距離的遠近,可以選擇RS232或RS485通信方式,由于本系統中顯示屏控制電路與上位機PC的距離較近,故選用了RS-232標準總線接口。具體電路圖如圖2所示。
3.3 驅動及掃描電路
LED點陣選用8x8模塊,每 4塊排列成一個16x16的點陣,用于顯示一個漢字。點陣每一行的所有LED共陰極,每一列的所有LED共陽極。
因為單片機I/O口的驅動能力有限,所以每一行LED陰極通過一個三極管8550與電源相連,I/O口僅需要提供幾個毫安的灌入電流即可控制其通斷。考慮到本系統可以同時顯示六個漢字,故每一列 LED的陽極都通過一個限流電阻和一個三極管8550與電源相連,當六個漢字的同一行漢字字模(即12個字節)通過鎖存器74HC377并行送出后,由移位寄存器 74HC595輸出行選通信號,來點亮該行的LED,接著再送下一行數據,再選中下一行有效,直到16行全被掃描過一遍。至此,一幅完整的文字信息就顯現出來,然后按這種方式反復掃描,借助于程序的控制,即可實現信息從右至左的動態顯示了。具體電路圖如圖3所示。
該系統的軟件主要實現的功能包括:上位機信息(或命令)的發送和下位機點陣顯示內容及方式的控制兩部分。
4.1上位機軟件
上位機信息(或命令)的發送使用普通的字模提取軟件和串口調試軟件即可,在與下位機進行通信時,須保證雙方具有相同的數據格式和波特率,本設計采用 RS232通信,波特率為9600bit/s。同時,制定了上下位機之間的通信協議,信息包格式如圖4所示。
4.2下位機軟件
LED點陣的顯示內容及方式主要由單片機的程序進行控制。程序采用模塊化結構,主要包括有主程序、串口中斷服務子程序以及掃描顯示子程序等。
(1)主程序為順序結構,主要完成系統對 I/O口和一些變量的初始化,定時器初始值、串行通信工作方式、以及波特率的設置[2],然后循環調用掃描顯示子程序,顯示原來Data Flash區中已存在的漢字信息。
(2)串口中斷服務子程序采用接收中斷啟動[3],主要負責接收來自上位機 PC發送的信息,包括欲顯示的內容以及命令字節,并根據命令完成相應的信息寫入、擦除等操作,最后開中斷返回主程序。其流程圖入圖5所示。
其中信息的寫入、擦除等操作主要由單片機的IAP功能來完成。 IAP,即在應用可編程,是指在程序運行時程序存儲器可由程序自身進行擦寫。通過IAP功能的相關指令,既可以將 欲顯示的數據寫入到程序存儲器指定的扇區中,也可以根據需要擦除相應扇區中的數據。這樣,數據就如同燒入的程序一樣,掉電不會丟失。當然寫入數據的區域與程序存儲區是分開的,以使程序不會遭到破壞。
(3)掃描顯示子程序則負責從顯示緩沖區取出字模,輸出行選通信號和列掃描信號,進行動態掃描顯示。
5 結束語
本點陣顯示系統無需外擴程序存儲器和數據存儲器,通過STC89C55RD+單片機的IAP功能實現信息的實時發布和更新。該系統外形美觀、工作穩定、字符清晰且字體可自由設定,現已實際應用于我院作為信息發布的主要平臺。另外,可對系統稍加改進,便可實現通過一臺計算機來控制多塊顯示屏,以適應不同場所、不同時間顯示不同信息的需要。如果在該系統的基礎上添加無線通訊模塊[4],就可以開發出基于無線數據傳輸的 LED顯示系統。
本文作者創新點:該系統電路結構簡單,沒有外擴程序存儲器和數據存儲器,充分發揮了STC89C55RD+單片機的IAP功能,利用軟件實現了信息的隨時發布和更新。