LED顯示屏動(dòng)態(tài)顯示和遠(yuǎn)程監(jiān)控的實(shí)現(xiàn)
一般情況下,PC要與多個(gè)單片機(jī)89C51系統(tǒng)進(jìn)行主從式通訊,為了區(qū)分各單片機(jī)系統(tǒng),可以使89C51采用串口工作方式3,即11位異步接收/發(fā)送方式,該方式的有效數(shù)據(jù)為9位,其中第9位為地址/數(shù)據(jù)信息的標(biāo)志位,其作用是使從機(jī)據(jù)此判斷發(fā)送的數(shù)據(jù)是否為地址,從而實(shí)現(xiàn)多機(jī)操作。但現(xiàn)在由于采用的是MSCOMM控件來實(shí)現(xiàn)PC機(jī)和單片機(jī)之間的通訊,這是一種標(biāo)準(zhǔn)的10位串口通信方式,即8位標(biāo)準(zhǔn)數(shù)據(jù)位和該數(shù)據(jù)的起始位、停止位各1位。因此二者格式不相符,故很難利用上述方案。因此可考慮將單片機(jī)串口設(shè)為工作方式1,即改為10位異步接收/發(fā)送方式來解決,其通訊流程如下:
首先發(fā)通信開始標(biāo)志,接著發(fā)送需要操作的單片機(jī)系統(tǒng)地址,然后發(fā)送顯示工作命令字,該命令包括2個(gè)字節(jié),前一字節(jié)用于設(shè)定顯示方式和滾動(dòng)方向,后一字節(jié)則用于設(shè)定顯示速度。再往下是傳送顯示內(nèi)容的點(diǎn)陣數(shù)據(jù),最后對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)。該通訊規(guī)約非常簡(jiǎn)便,能夠較好的解決上述問題,從而實(shí)現(xiàn)PC機(jī)與多單片機(jī)之間的主從式通訊及對(duì)顯示的控制。
需要注意的是,當(dāng)顯示內(nèi)容需要改變時(shí),為了避免在單片機(jī)串行中斷接收數(shù)據(jù)時(shí),顯示屏出現(xiàn)亂碼,應(yīng)使顯示屏?xí)翰伙@示(處于“黑屏”狀態(tài)),直到數(shù)據(jù)接收完全,串行中斷處理結(jié)束時(shí)再顯示。
漢字字模的提取非常關(guān)鍵,本文的字模數(shù)據(jù)取自UCDOS下的字庫文件HZK16。關(guān)于這方面的介紹較多,文獻(xiàn)[2]給出了較為具體的在VC下提取漢字字模的方案,這里不再贅述。對(duì)于特殊字符或圖形點(diǎn)陣數(shù)據(jù)的提取,簡(jiǎn)便的方法可以先做一個(gè)BMP文件,然后用一些取模軟件(如字模提取v2.1)來獲得。為了顯示方便,點(diǎn)陣數(shù)據(jù)的格式應(yīng)為n×(16×8),不足要求的則應(yīng)以0數(shù)據(jù)補(bǔ)充。
b.動(dòng)態(tài)效果模擬顯示。
為了方便調(diào)節(jié)LED的顯示效果,筆者在PC機(jī)的控制界面上設(shè)計(jì)了LED顯示屏的模擬顯示,它同實(shí)際的顯示效果完全一樣。用戶可以設(shè)定顯示的模式,并調(diào)節(jié)顯示速度,然后在界面上對(duì)顯示效果進(jìn)行預(yù)覽,同時(shí)還可以隨時(shí)修改和設(shè)定參數(shù),因而十分方便簡(jiǎn)捷。
為此,可先在界面上描繪出虛擬的LED顯示屏,由于實(shí)際的顯示屏為160×16點(diǎn)陣,故須在界面 上設(shè)定相同的區(qū)域。
實(shí)現(xiàn)動(dòng)態(tài)顯示效果的方法和以上幾種基本類似,這里以滾動(dòng)顯示為例作一說明。對(duì)于需要滾動(dòng)的文字,可以將其設(shè)置為位圖格式,暫存于內(nèi)存中,然后利用VC 提供的位圖拷貝函數(shù)BitBlt將位圖復(fù)制到顯示位置。對(duì)于特殊字符或圖形,則可以直接利用BitBlt函數(shù)調(diào)用到顯示位置。然后在類CLEDDlg的 OnTimer函數(shù)中調(diào)用該函數(shù),以實(shí)現(xiàn)文字的滾動(dòng)顯示。另外,也可以通過設(shè)定不同的響應(yīng)時(shí)間間隔來改變文字的滾動(dòng)速度。
4、結(jié)束語
本文提出的實(shí)現(xiàn)LED點(diǎn)陣顯示屏的動(dòng)態(tài)顯示和控制的解決方案,已成功地應(yīng)用于實(shí)際系統(tǒng)。如將該系統(tǒng)聯(lián)入計(jì)算機(jī)網(wǎng)絡(luò),還可實(shí)現(xiàn)對(duì)顯示屏的遠(yuǎn)程控制。
評(píng)論