紅外遙控技術(shù)在汽車(chē)中的應用
四、軟件編程
單片機89C2051軟件包括主程序,串行口中斷服務(wù)程序和定時(shí)中斷服務(wù)程序三部分,在2051單片機內部RAM區建立相應的工作單元和標志位。
?。ㄒ唬?、發(fā)送程序:SEND-BUFO∽SEND-BUF3為四個(gè)字符發(fā)送緩沖區,SEND-MARK為請求發(fā)送標志。當鍵盤(pán)掃描到有發(fā)送請求時(shí),啟動(dòng)定時(shí)器,在P1.0輸出一個(gè)38K的方波,同時(shí)啟動(dòng)串行口,把SEND-BUFO至SEND-BUF3中的數據,發(fā)送至SBUF中,合成后發(fā)送。其程序流程過(guò)程如下:
發(fā)送主程序:初始化時(shí)設置定時(shí)器、看門(mén)狗和串行口,并清顯示,而后掃描鍵盤(pán)。若有鍵按下,進(jìn)行按鍵處理;若是發(fā)送鍵,則置串口發(fā)送標志,啟動(dòng)定時(shí)器和串行發(fā)送程序,后返回主程序中的顯示程序,送顯示數據至緩沖區。
串口中斷程序:現場(chǎng)保護,取發(fā)送數據至發(fā)送緩沖區,啟動(dòng)軟件定時(shí)產(chǎn)生38K的方波,而后判數據是否發(fā)送完畢,結束則清除發(fā)送標志,反之,則返回繼續送數據。
定時(shí)中斷程序:現場(chǎng)保護回填定時(shí)長(cháng)度,啟動(dòng)計數定時(shí),并在指定的管腳P1.0取反,變成反相電平,返回。
?。ǘ?、接收程序:REC-BUFO∽REC-BUF4為四個(gè)字符的接收緩沖區,REC-MARK為數據接收完整的標志。當串行口中斷產(chǎn)生時(shí),按次序接收數據至REC-BUF0至REC-BUF3中,數據滿(mǎn)后,計算累加和。如果正確,置REC-MARK標志;反之,把緩沖區數據清零。主程序中若判斷有REC-MARK標志,則把數據進(jìn)行處理后,送外存25045和顯示緩沖區中顯示,同時(shí)由于接收是在汽車(chē)中進(jìn)行,電源電壓和其它干擾很多,包括有可能產(chǎn)生的串行口誤判等。因此,為了保證程序能正常運行,啟動(dòng)了25045中的看門(mén)狗電路,以每隔500ms時(shí)間定時(shí)刷新。其程序流程過(guò)程如下:
接收主程序:初始化時(shí)設置定時(shí)器、看門(mén)狗、清顯示和外存25045判斷有否數據接收標志,若有進(jìn)行數據判斷,正確的寫(xiě)至數據外存,并送至顯示區顯示,反之,返回主程序的顯示程序和刷新看門(mén)狗。
串行口中斷接收程序:現場(chǎng)保護后,判斷接收數據是否為頭或尾部數據,作相應處理是正常數據時(shí)存放緩存,并指針加一,當完整的一組數據正常收到后,置接收數據標志后返回。
定時(shí)中斷程序和發(fā)送一致,只是定時(shí)刷新看門(mén)狗。
五、結束語(yǔ)
以上方法非常簡(jiǎn)單地實(shí)現了紅外線(xiàn)遙控信號的接收解碼,極大地節約了硬件實(shí)現的資源開(kāi)銷(xiāo)。該紅外遙控系統的設計已應用于公交車(chē)中,改善了公交系統的服務(wù)質(zhì)量,提高了工作效力。
評論