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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 輕松編程實現(xiàn)無線遙控

          輕松編程實現(xiàn)無線遙控

          作者: 時間:2012-03-12 來源:網(wǎng)絡(luò) 收藏

          收發(fā)組件中,315MHz收發(fā)組件是常用的一種,如在機動車防盜應(yīng)用方面使用315MHz組件的就很多,一般電子商店出售的這種模塊,發(fā)送和接收都是三個接線端子,一個數(shù)據(jù)端,另外兩個則是電源端,且相對較便宜,作者所買的一對才13元,若要自制則相對要困難些,因為類似電路這種高頻電路其調(diào)試是很專業(yè)的,需要專用的設(shè)備和儀器,大家可參考這方面的資料。

          本文引用地址:http://www.ex-cimer.com/article/160978.htm

          電路功能

          本文所介紹的收發(fā)電路采用ATMEL公司的AT89C2051單片機作為編碼和解碼電路的核心器件,接收端采用1602字符液晶顯示器顯示所接收到的數(shù)據(jù)。

          工作原理

          首先介紹編碼電路。在使用過程中,筆者直接將發(fā)送模塊的三個端子與自制的一塊學(xué)習(xí)板相連,沒有添加其他電子元件,屬單片機最小系統(tǒng),S1和S2為兩個按鍵,本文程序未用。圖1所示為發(fā)送端電路圖,圖2為接收端電路圖。

          46.jpg

          接收端將接收到的數(shù)據(jù)送入單片機的同時,還會驅(qū)動發(fā)光二極管以便對硬件和軟件糾錯,若數(shù)據(jù)接收成功還將顯示在1602液晶顯示器上,因本文主要是介紹,關(guān)于1602字符液晶顯示器的原理與應(yīng)用不做介紹,讀者可以參考《無線電》以往的相關(guān)文章,如果出于成本和程序難易程度的考慮,也可改用7段數(shù)碼管甚至用發(fā)光二極管來作數(shù)據(jù)的顯示。另外要注意一點,發(fā)送端和接收端的時鐘晶振的頻率必須要相同,否則會很麻煩甚至數(shù)據(jù)無法正常接收,這一點在介紹程序時還會提到。

          軟件方面,借鑒了紅外的編碼思路,首先發(fā)送引導(dǎo)脈沖,緊接下來是數(shù)據(jù)碼和數(shù)據(jù)反碼,這一過程是在定時中斷里面完成的,定時時間一到就調(diào)用一加法程序,然后將結(jié)果作為數(shù)據(jù)發(fā)送出去,計數(shù)器溢出后就清零進入下一循環(huán)。

          引導(dǎo)脈沖由一個低電平和高電平組成,每個高低電平延時大約11ms,這個靠11ms的延時程序來,數(shù)據(jù)碼和反碼每個位也是使用這個延時,可以說這11ms的延時就相當于比較簡單的通信協(xié)議,也是發(fā)送和接收程序的核心部分,只要兩邊的延時相同,00H到0FFH內(nèi)的數(shù)據(jù)都能被正確接收,接收端檢測到1 lms的高低電平變化后,就調(diào)用11ms的延時來判斷數(shù)據(jù)0和1,并將正確接收到的數(shù)據(jù)顯示在液晶顯示器上。前面已講過若時鐘晶振的頻率不同那么發(fā)送端和接收端的延時子程序就要計算得相一致,這樣程序編制就很麻煩甚至不能正常接收數(shù)據(jù),這一點和單片機的串口通信是同樣的道理。加入數(shù)據(jù)反碼為的是提高抗干擾的效果,接收端的程序中就可以設(shè)置兩個數(shù)據(jù)存儲器,一個放原碼一個放反碼,接收完畢再將兩個存儲器的內(nèi)容作比較即可判斷是否接收正確,若正確再執(zhí)行應(yīng)執(zhí)行的程序。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 遙控 無線 實現(xiàn) 編程 輕松

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();