關 閉

        新聞中心

        EEPW首頁 > 安全與國防 > 設計應用 > LED顯示屏動態顯示和遠程監控的實現

        LED顯示屏動態顯示和遠程監控的實現

        作者: 時間:2009-11-15 來源:網絡 收藏

        3.1單片機控制

          以上提到的靜態、閃動、滾動和打字等4種顯示方式,實際上是單片機定時中斷程序進行行掃描處理的不同方法。下面將分別說明如何實現這4種顯示方式。

          靜態顯示只需在定時中斷處理程序中從顯示緩沖區調入相應的一行顯示數據,然后選中該行即可實現該行的顯示,如此循環,便可顯示整個內容。閃動顯示與此類似,不同的是要間隔一個“軟定時器”的定時時間,在行掃描時,行移位寄存器的D端打入的全為0,可使得整屏不顯示,以確保黑屏時間與顯示時間相等,從而實現漢字或圖符的閃動顯示。   

        滾動顯示要求需要顯示的內容每隔一定時間向指定方向(這里以從右向左為例)移動一列,這樣顯示屏可以顯示更多的內容。為此,需要在下次移動顯示之前對顯示緩沖區的內容進行更改,從而完成相應點陣數據的移位操作。具體操作方法是:   

        設置一個顯示緩沖區(如圖2所示),該區應包括兩部分:一部分用來保存當前顯示屏上顯示的10個漢字點陣數據;另一部分為點陣數據預裝載區,用來保存即將進入顯示屏的1個漢字的點陣數據。滾動指針始終指向顯示屏的最右邊原點。當滾動指針移動到需要顯示的點陣數據存儲區的第1個漢字的首地址時,顯示緩沖區顯示區為空白,而預裝載區已保存了第1個待顯示漢字的點陣數據。當需要滾動顯示時,則可在接下來的掃描周期的每個行掃描中斷處理程序中,將對顯示緩沖區的相應行點陣數據左移一位,同時更改顯示緩沖區的內容。(需要注意的是,要確保該操作能在1.25ms的中斷時間內完成。這里89C52采用22MHz晶振,實驗證明可以實現該操作)。這樣,在一個掃描周期后,整個漢字將左移一列,而顯示緩沖區的內容也同時更改。由于預裝載區保存了1個漢字點陣數據,即16×16點陣,所以當前顯示緩沖區的內容只能移動16列。當下一個滾動到來時,滾動指針將移動到點陣數據存儲區的下一個漢字的首地址,并在預裝載區存入該漢字的點陣數據。然后重復執行上述操作便可實現滾動顯示。特殊字符或圖形的顯示與此類似,這里不再贅述。

          打字顯示要求漢字在顯示屏上按從左到右的順序一個個的出現,如同打字的效果。設計時可采用如下方法:首先將LED顯示屏對應的顯示緩沖區全部清零,即 LED顯示空白,然后每間隔一個“軟定時器”設定的時間,顯示緩沖區依次加入一個漢字點陣數據并進行掃描顯示,這樣就可達到打字顯示的效果。

        3.2 PC機控制程序

        a.通訊功能的實現

        在Windows環境下,實現PC與單片機的通訊可利用Windows的通訊API函數或者利用VC++(或其它語言)的標準通訊函數_inp、_outp來實現。但上述兩種方法比較繁瑣,而采用ActiveX控件MSComm32來實現則非常方便。該控件用事件的方式簡化了對串口操作的編程,并可設置串行通信的數據發送和接收,還可對串口狀態及串口通信的信息格式和協議進行設置。其初始化程序如下:




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 常州市| 铁力市| 景德镇市| 吐鲁番市| 麻阳| 金沙县| 鸡西市| 卓尼县| 台东县| 金寨县| 湘潭县| 雷波县| 扎囊县| 竹北市| 宜兰市| 顺义区| 洛南县| 长治市| 金秀| 宾阳县| 镇平县| 繁峙县| 大宁县| 平塘县| 渑池县| 翁牛特旗| 陇南市| 民权县| 延安市| 霍山县| 布拖县| 崇明县| 云南省| 鄂伦春自治旗| 凉山| 调兵山市| 余干县| 荔波县| 横山县| 托克逊县| 昌平区|