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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT89C2051的無(wú)線(xiàn)遙控裝置

          基于AT89C2051的無(wú)線(xiàn)遙控裝置

          作者: 時(shí)間:2013-10-17 來(lái)源:網(wǎng)絡(luò) 收藏

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

            電路功能

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

            工作原理

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


          圖1 發(fā)送端電路圖


          圖2 接收端電路圖

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

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


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();