<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 設計應用 > LED顯示屏動態(tài)顯示和遠程監(jiān)控的實現(xiàn)

          LED顯示屏動態(tài)顯示和遠程監(jiān)控的實現(xiàn)

          作者: 時間:2009-11-15 來源:網(wǎng)絡 收藏

          一般情況下,PC要與多個單片機89C51系統(tǒng)進行主從式通訊,為了區(qū)分各單片機系統(tǒng),可以使89C51采用串口工作方式3,即11位異步接收/發(fā)送方式,該方式的有效數(shù)據(jù)為9位,其中第9位為地址/數(shù)據(jù)信息的標志位,其作用是使從機據(jù)此判斷發(fā)送的數(shù)據(jù)是否為地址,從而實現(xiàn)多機操作。但現(xiàn)在由于采用的是MSCOMM控件來實現(xiàn)PC機和單片機之間的通訊,這是一種標準的10位串口通信方式,即8位標準數(shù)據(jù)位和該數(shù)據(jù)的起始位、停止位各1位。因此二者格式不相符,故很難利用上述方案。因此可考慮將單片機串口設為工作方式1,即改為10位異步接收/發(fā)送方式來解決,其通訊流程如下:

            首先發(fā)通信開始標志,接著發(fā)送需要操作的單片機系統(tǒng)地址,然后發(fā)送顯示工作命令字,該命令包括2個字節(jié),前一字節(jié)用于設定顯示方式和滾動方向,后一字節(jié)則用于設定顯示速度。再往下是傳送顯示內容的點陣數(shù)據(jù),最后對數(shù)據(jù)進行校驗。該通訊規(guī)約非常簡便,能夠較好的解決上述問題,從而實現(xiàn)PC機與多單片機之間的主從式通訊及對顯示的控制。

            需要注意的是,當顯示內容需要改變時,為了避免在單片機串行中斷接收數(shù)據(jù)時,顯示屏出現(xiàn)亂碼,應使顯示屏暫不顯示(處于“黑屏”狀態(tài)),直到數(shù)據(jù)接收完全,串行中斷處理結束時再顯示。

            漢字字模的提取非常關鍵,本文的字模數(shù)據(jù)取自UCDOS下的字庫文件HZK16。關于這方面的介紹較多,文獻[2]給出了較為具體的在VC下提取漢字字模的方案,這里不再贅述。對于特殊字符或圖形點陣數(shù)據(jù)的提取,簡便的方法可以先做一個BMP文件,然后用一些取模軟件(如字模提取v2.1)來獲得。為了顯示方便,點陣數(shù)據(jù)的格式應為n×(16×8),不足要求的則應以0數(shù)據(jù)補充。

          b.動態(tài)效果模擬顯示。

            為了方便調節(jié)的顯示效果,筆者在PC機的控制界面上設計了顯示屏的模擬顯示,它同實際的顯示效果完全一樣。用戶可以設定顯示的模式,并調節(jié)顯示速度,然后在界面上對顯示效果進行預覽,同時還可以隨時修改和設定參數(shù),因而十分方便簡捷。

            為此,可先在界面上描繪出虛擬的顯示屏,由于實際的顯示屏為160×16點陣,故須在界面 上設定相同的區(qū)域。

            實現(xiàn)效果的方法和以上幾種基本類似,這里以滾動顯示為例作一說明。對于需要滾動的文字,可以將其設置為位圖格式,暫存于內存中,然后利用VC 提供的位圖拷貝函數(shù)BitBlt將位圖復制到顯示位置。對于特殊字符或圖形,則可以直接利用BitBlt函數(shù)調用到顯示位置。然后在類CLEDDlg的 OnTimer函數(shù)中調用該函數(shù),以實現(xiàn)文字的滾動顯示。另外,也可以通過設定不同的響應時間間隔來改變文字的滾動速度。

          4、結束語

          本文提出的實現(xiàn)LED點陣顯示屏的和控制的解決方案,已成功地應用于實際系統(tǒng)。如將該系統(tǒng)聯(lián)入計算機網(wǎng)絡,還可實現(xiàn)對顯示屏的。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();