- 相關(guān)推薦
紅外遙控在汽車中的應(yīng)用
摘要:簡單地介紹了紅外線遙控發(fā)射、接收系統(tǒng)的原理,給出用89C2051作為遙控接收系統(tǒng)解碼器的一種巧妙實(shí)現(xiàn)方法,以及完整的51匯編程序代碼。包括發(fā)射、接收的原理圖及其編程的主程序、串行口的發(fā)送程序、接收程序、定時中斷程序的流程過程,從而完成此設(shè)計的要點(diǎn),參考流程方框圖的構(gòu)思過程,可以編寫應(yīng)用軟件,利用串行口遙控編碼及其校驗(yàn)功能,防止其它遙控碼的干擾,提高產(chǎn)品的可靠性。紅外線遙控裝置具有體積小,功耗低、功能強(qiáng)、成本低等特點(diǎn)。關(guān)鍵詞:89C2051、紅外遙控、串行口
紅外線遙控是目前應(yīng)用最廣泛的一種通信和遙控手段。由于紅外線遙控器具有體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn)。因此,彩電、錄像機(jī)、音響設(shè)備、空調(diào)、玩具、門鈴以及遙控汽車路牌等其它小型裝置上也紛紛采用紅外線遙控。為改變目前汽車上的車頭路牌指示燈(以下簡稱車號器),無法靈活改變的缺陷,把紅外遙控用在其中,使其可以輕松實(shí)現(xiàn)遠(yuǎn)距離、非接觸性的一次改變車號的目的,從而改變以前用人工翻牌的舊模式。
一、汽車車號器的紅外遙控系統(tǒng)
汽車上的車號器,原用簡單的LED數(shù)碼管控制,使用起來很不方便,為了能遠(yuǎn)離的控制它,就采用了紅外遙控。通常紅外遙控系統(tǒng)由發(fā)射和接收兩部分組成,應(yīng)用編/解碼電路專用集成電路芯片來進(jìn)行控制操作,如圖1所示,發(fā)射部分包括鍵盤矩陣、編碼調(diào)制、紅外發(fā)送器。接收部分包括光電轉(zhuǎn)換放大器、解調(diào)、解碼電路。紅外發(fā)送每次編碼的發(fā)送是一個鍵值,即一個十六進(jìn)制的數(shù)據(jù)。為了達(dá)到一次能發(fā)送一組數(shù)據(jù)(如車次號,通常為三位十進(jìn)制數(shù)),我們可以采用89C2051的軟件編碼/解碼的方法,先一次性輸入一組車號,按下發(fā)送鍵后,全部發(fā)送出;同時在接收時,用連續(xù)接收方法,一次性解碼所有數(shù)據(jù)。
二、遙控發(fā)射器及其編碼
遙控發(fā)射器的專用芯片很多,但在汽車車號器遙控中,采用的是89C2051芯片。用P1口組成矩陣掃描反饋,獲取鍵值,用內(nèi)部的定時器1產(chǎn)生一個38K的軟件定時中斷,驅(qū)動P1.0產(chǎn)生一個38K的方波,當(dāng)作紅外線的調(diào)制基波,需要發(fā)送的數(shù)據(jù),以串行方式,用波特率為1200,帶奇偶校驗(yàn)的方式,直接送至TXD的串口發(fā)送端,而后TXD和P1.0進(jìn)行邏輯與后,經(jīng)過40106整形,用三極管驅(qū)動紅外發(fā)射管直接發(fā)出。其原理圖如下:
三、紅外遙控接收器及其顯示
接收器部分,主要由CX20106和89C2051、顯示驅(qū)動4094、2803及數(shù)據(jù)存儲器和看門狗25045組成,用解碼芯片CX20106把38K的載波過濾后,得到一組波形,即以波特率為1200的串口數(shù)據(jù),直接送至89C2051的RXD接收,用軟件讀取串口,輸入緩存,得到一組數(shù)據(jù),判斷正確后,存放在非易失性的EEPROM25045中,同時直接用脈沖移位方式,送數(shù)據(jù)至4094,經(jīng)2803驅(qū)動后顯示,同時用25045的看門狗定時,保證在程序失控等情況下,能正確返回而不造成錯誤接收。由于串行口方式傳輸,本身帶有奇偶校驗(yàn)和起停位校驗(yàn),可以大大提高數(shù)據(jù)的可靠性,同時在數(shù)據(jù)組中還加入了累加和校驗(yàn),再次提高了可靠性,因此在實(shí)際應(yīng)用中,即使在露天、太陽直射、光照很強(qiáng)等惡劣環(huán)境下,都能保證不會誤收數(shù)據(jù)而造成顯示錯誤。其原理圖如下:
四、軟件編程
單片機(jī)89C2051軟件包括主程序,串行口中斷服務(wù)程序和定時中斷服務(wù)程序三部分,在2051單片機(jī)內(nèi)部RAM區(qū)建立相應(yīng)的工作單元和標(biāo)志位。
。ㄒ唬、發(fā)送程序:SEND-BUFO∽SEND-BUF3為四個字符發(fā)送緩沖區(qū),SEND-MARK為請求發(fā)送標(biāo)志。當(dāng)鍵盤掃描到有發(fā)送請求時,啟動定時器,在P1.0輸出一個38K的方波,同時啟動串行口,把SEND-BUFO至SEND-BUF3中的數(shù)據(jù),發(fā)送至SBUF中,合成后發(fā)送。其程序流程過程如下:
發(fā)送主程序:初始化時設(shè)置定時器、看門狗和串行口,并清顯示,而后掃描鍵盤。若有鍵按下,進(jìn)行按鍵處理;若是發(fā)送鍵,則置串口發(fā)送標(biāo)志,啟動定時器和串行發(fā)送程序,后返回主程序中的顯示程序,送顯示數(shù)據(jù)至緩沖區(qū)。
串口中斷程序:現(xiàn)場保護(hù),取發(fā)送數(shù)據(jù)至發(fā)送緩沖區(qū),啟動軟件定時產(chǎn)生38K的方波,而后判數(shù)據(jù)是否發(fā)送完畢,結(jié)束則清除發(fā)送標(biāo)志,反之,則返回繼續(xù)送數(shù)據(jù)。
定時中斷程序:現(xiàn)場保護(hù)回填定時長度,啟動計數(shù)定時,并在指定的管腳P1.0取反,變成反相電平,返回。
。ǘ、接收程序:REC-BUFO∽REC-BUF4為四個字符的接收緩沖區(qū),REC-MARK為數(shù)據(jù)接收完整的標(biāo)志。當(dāng)串行口中斷產(chǎn)生時,按次序接收數(shù)據(jù)至REC-BUF0至REC-BUF3中,數(shù)據(jù)滿后,計算累加和。如果正確,置REC-MARK標(biāo)志;反之,把緩沖區(qū)數(shù)據(jù)清零。主程序中若判斷有REC-MARK標(biāo)志,則把數(shù)據(jù)進(jìn)行處理后,送外存25045和顯示緩沖區(qū)中顯示,同時由于接收是在汽車中進(jìn)行,電源電壓和其它干擾很多,包括有可能產(chǎn)生的串行口誤判等。因此,為了保證程序能正常運(yùn)行,啟動了25045中的看門狗電路,以每隔500ms時間定時刷新。其程序流程過程如下:
接收主程序:初始化時設(shè)置定時器、看門狗、清顯示和外存25045判斷有否數(shù)據(jù)接收標(biāo)志,若有進(jìn)行數(shù)據(jù)判斷,正確的寫至數(shù)據(jù)外存,并送至顯示區(qū)顯示,反之,返回主程序的顯示程序和刷新看門狗。
串行口中斷接收程序:現(xiàn)場保護(hù)后,判斷接收數(shù)據(jù)是否為頭或尾部數(shù)據(jù),作相應(yīng)處理是正常數(shù)據(jù)時存放緩存,并指針加一,當(dāng)完整的一組數(shù)據(jù)正常收到后,置接收數(shù)據(jù)標(biāo)志后返回。
定時中斷程序和發(fā)
送一致,只是定時刷新看門狗。
五、結(jié)束語
以上方法非常簡單地實(shí)現(xiàn)了紅外線遙控信號的接收解碼,極大地節(jié)約了硬件實(shí)現(xiàn)的資源開銷。該紅外遙控系統(tǒng)的設(shè)計已應(yīng)用于公交車中,改善了公交系統(tǒng)的服務(wù)質(zhì)量,提高了工作效力。
參考文獻(xiàn):1、李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù).北京航空大學(xué)出版社,1993
2、孫育才.MCS-51系列單片微型計算機(jī)及其應(yīng)用.東南大學(xué)出版社,1991
【紅外遙控在汽車中的應(yīng)用】相關(guān)文章:
紅外遙控器軟件解碼及其應(yīng)用08-06
遙控汽車作文05-16
語音識別在家電遙控器中的應(yīng)用08-06
我的遙控汽車作文10-27
遙控小汽車作文04-13
遙控汽車作文15篇05-16