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

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 智能遙控系統(上)

          智能遙控系統(上)

          作者:葉永安時間:2013-02-27來源:電子產品世界收藏

            在智能家居系統中扮演著重要的角色,它可以通過紅外信號和射頻信號來控制家用電器及燈光。本文旨在設計一種簡易、廉價的模塊。通過串口進行相關指令的通信,達到控制紅外學習、紅外發射和射頻發射等功能。本設計中紅外學習采用波形拷貝的方式,支持所有載波頻率為38kHz的紅外信號;射頻編碼發射采用軟件模擬2262的編碼方式,支持市場上絕大部分的射頻接收控制開關,具有良好的兼容性。

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

            系統組成設計

            系統的基本組成結構設計如圖1所示,系統主要包括智能遙控模塊和上位機軟件。智能家電控制模塊由、一體化紅外接收器、紅外發射電路、DF射頻數據傳輸模塊和轉串口電路組成;上位機軟件是由VB編寫的一個串口通信控制軟件?! ?/p>

           

            為了更加有效地實現系統,在系統組成示意圖的基礎上,對系統的功能進行規劃分析如下。

           ?、?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/單片機">單片機資源分配:UART串口與外部通信;定時器T1為UART波特率發生器;定時器T0、T1和外部中斷0配合對紅外進行電平寬度測量;定時器T2在紅外發射時產生38kHz的載波信號,并且在射頻發送過程提供定時編碼調制信號;內部EEPROM對紅外電平寬度進行儲存;P1.0控制紅外信號的發射;P0.4控制指示LED;P2.5控制射頻信號的發射;P3.0和P3.1接串口的RXD和TXD;P3.2接串口紅外接收信號端口。

           ?、布t外學習及發射:紅外學習采用波形拷貝方式,通過利用自身的計時器和外部中斷即時地測量從紅外接收器處理過的遙控編碼高低電平的脈寬,并將編碼信息儲存到單片機內部EEPROM的指定扇區位置,發射時再從相應的扇區中讀取相對應的遙控編碼信息,并通過定時器可編程時鐘輸出產生載波頻率為38kHz的已調紅外信號,并通過三極管驅動紅外發光二極管發射出去。此方法適用于絕大多數的紅外遙控編碼方式,通用性好。

           ?、成漕l編碼發射:利用單片機模擬PT2262的編碼方式,產生一個調制信號,通過ASK調制方式的DF射頻模塊產生一個載波頻率為315MHz的已調射頻信號,通過天線發射給相應的接收模塊,進行下一步的操作。

           ?、?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/USB">USB轉串口電路:因為很多筆記本電腦上沒有串口,為了系統的通用性,所以采用PL2303芯片進行轉串口。為硬件模塊與上位機軟件之間的信息交換提供通道。其中模塊的電源也由USB接口提供。

           ?、瞪衔粰C軟件:通過相關的通信協議對硬件模塊發送紅外學習、紅外發射和射頻信號發射等控制指令,并接收硬件模塊的反饋信息。



          關鍵詞: 智能遙控 單片機 USB

          評論


          相關推薦

          技術專區

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