關(guān) 閉

新聞中心

EEPW首頁 > 安全與國防 > 設(shè)計(jì)應(yīng)用 > LED顯示屏動(dòng)態(tài)顯示和遠(yuǎn)程監(jiān)控的實(shí)現(xiàn)

LED顯示屏動(dòng)態(tài)顯示和遠(yuǎn)程監(jiān)控的實(shí)現(xiàn)

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

3.1單片機(jī)控制

  以上提到的靜態(tài)、閃動(dòng)、滾動(dòng)和打字等4種顯示方式,實(shí)際上是單片機(jī)定時(shí)中斷程序進(jìn)行行掃描處理的不同方法。下面將分別說明如何實(shí)現(xiàn)這4種顯示方式。

  靜態(tài)顯示只需在定時(shí)中斷處理程序中從顯示緩沖區(qū)調(diào)入相應(yīng)的一行顯示數(shù)據(jù),然后選中該行即可實(shí)現(xiàn)該行的顯示,如此循環(huán),便可顯示整個(gè)內(nèi)容。閃動(dòng)顯示與此類似,不同的是要間隔一個(gè)“軟定時(shí)器”的定時(shí)時(shí)間,在行掃描時(shí),行移位寄存器的D端打入的全為0,可使得整屏不顯示,以確保黑屏?xí)r間與顯示時(shí)間相等,從而實(shí)現(xiàn)漢字或圖符的閃動(dòng)顯示。   

滾動(dòng)顯示要求需要顯示的內(nèi)容每隔一定時(shí)間向指定方向(這里以從右向左為例)移動(dòng)一列,這樣顯示屏可以顯示更多的內(nèi)容。為此,需要在下次移動(dòng)顯示之前對(duì)顯示緩沖區(qū)的內(nèi)容進(jìn)行更改,從而完成相應(yīng)點(diǎn)陣數(shù)據(jù)的移位操作。具體操作方法是:   

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

  打字顯示要求漢字在顯示屏上按從左到右的順序一個(gè)個(gè)的出現(xiàn),如同打字的效果。設(shè)計(jì)時(shí)可采用如下方法:首先將LED顯示屏對(duì)應(yīng)的顯示緩沖區(qū)全部清零,即 LED顯示空白,然后每間隔一個(gè)“軟定時(shí)器”設(shè)定的時(shí)間,顯示緩沖區(qū)依次加入一個(gè)漢字點(diǎn)陣數(shù)據(jù)并進(jìn)行掃描顯示,這樣就可達(dá)到打字顯示的效果。

3.2 PC機(jī)控制程序

a.通訊功能的實(shí)現(xiàn)

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




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉