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

          新聞中心

          EEPW首頁 > 汽車電子 > 設計應用 > 紅外遙控技術在汽車中的應用

          紅外遙控技術在汽車中的應用

          作者: 時間:2010-08-21 來源:網(wǎng)絡 收藏

          四、軟件編程

            單片機89C2051軟件包括主程序,串行口中斷服務程序和定時中斷服務程序三部分,在2051單片機內(nèi)部RAM區(qū)建立相應的工作單元和標志位。

           ?。ㄒ唬?、發(fā)送程序:SEND-BUFO∽SEND-BUF3為四個字符發(fā)送緩沖區(qū),SEND-MARK為請求發(fā)送標志。當鍵盤掃描到有發(fā)送請求時,啟動定時器,在P1.0輸出一個38K的方波,同時啟動串行口,把SEND-BUFO至SEND-BUF3中的數(shù)據(jù),發(fā)送至SBUF中,合成后發(fā)送。其程序流程過程如下:

            發(fā)送主程序:初始化時設置定時器、看門狗和串行口,并清顯示,而后掃描鍵盤。若有鍵按下,進行按鍵處理;若是發(fā)送鍵,則置串口發(fā)送標志,啟動定時器和串行發(fā)送程序,后返回主程序中的顯示程序,送顯示數(shù)據(jù)至緩沖區(qū)。

            串口中斷程序:現(xiàn)場保護,取發(fā)送數(shù)據(jù)至發(fā)送緩沖區(qū),啟動軟件定時產(chǎn)生38K的方波,而后判數(shù)據(jù)是否發(fā)送完畢,結束則清除發(fā)送標志,反之,則返回繼續(xù)送數(shù)據(jù)。

            定時中斷程序:現(xiàn)場保護回填定時長度,啟動計數(shù)定時,并在指定的管腳P1.0取反,變成反相電平,返回。

            (二)、接收程序:REC-BUFO∽REC-BUF4為四個字符的接收緩沖區(qū),REC-MARK為數(shù)據(jù)接收完整的標志。當串行口中斷產(chǎn)生時,按次序接收數(shù)據(jù)至REC-BUF0至REC-BUF3中,數(shù)據(jù)滿后,計算累加和。如果正確,置REC-MARK標志;反之,把緩沖區(qū)數(shù)據(jù)清零。主程序中若判斷有REC-MARK標志,則把數(shù)據(jù)進行處理后,送外存25045和顯示緩沖區(qū)中顯示,同時由于接收是在汽車中進行,電源電壓和其它干擾很多,包括有可能產(chǎn)生的串行口誤判等。因此,為了保證程序能正常運行,啟動了25045中的看門狗電路,以每隔500ms時間定時刷新。其程序流程過程如下:

            接收主程序:初始化時設置定時器、看門狗、清顯示和外存25045判斷有否數(shù)據(jù)接收標志,若有進行數(shù)據(jù)判斷,正確的寫至數(shù)據(jù)外存,并送至顯示區(qū)顯示,反之,返回主程序的顯示程序和刷新看門狗。

            串行口中斷接收程序:現(xiàn)場保護后,判斷接收數(shù)據(jù)是否為頭或尾部數(shù)據(jù),作相應處理是正常數(shù)據(jù)時存放緩存,并指針加一,當完整的一組數(shù)據(jù)正常收到后,置接收數(shù)據(jù)標志后返回。

            定時中斷程序和發(fā)送一致,只是定時刷新看門狗。

          五、結束語

            以上方法非常簡單地實現(xiàn)了紅外線遙控信號的接收解碼,極大地節(jié)約了硬件實現(xiàn)的資源開銷。該系統(tǒng)的設計已應用于公交車中,改善了公交系統(tǒng)的服務質量,提高了工作效力。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(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); })();