新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 紅外遙控解碼器設計

        紅外遙控解碼器設計

        作者: 時間:2012-11-06 來源:網絡 收藏

        你家里是否有一個電視機遙控器或者空調機遙控器呢?你是否也想讓它遙控其他的電器甚至讓它遙控您的電腦呢?那好,跟我一起做這個“”。

        該小制作所需要的元件很少:單片機TA一只,RS232接口電平與TTL電平轉換心片MAX232CPE 一只,紅外接收管一只,晶振11.0592MHz,電解電容10uF4只,10uF一只,電阻1K1個,300歐姆左右1個,瓷片電容30P2個。發光二極管8個。價錢不足20元。

        電路原理介紹:
        主控制單元是單片機AT,中斷口INT0跟紅外接受管U1相連,接收紅外信號的脈沖,8個發光二極管作為顯示解碼輸出(也可以用來擴展接其他控制電路),U3是跟電腦串行口RS232相連時的電平轉換心片,9、10腳分別與單片機的1、2腳相連,(1腳為串行接收,2腳為串行發送),MAX232CPE的7、8腳分別接電腦串行口的2(接收)腳、3(發送腳)。晶振采用11.0592MHz,這樣才能使得通訊的波特率達到9600b/s,電腦一般默認值是9600b/s、8位數據位、1位停止位、無校驗位。電路就這么簡單了,現在分析具體的編程過程吧。
        如圖所示,panasonic遙控器的波形是這樣的(經過反復測試的結果)。
        開始位是以3.6ms低電平然后是3.6ms高電平,然后數據表示形式是0.9ms低電平0.9ms高電平周期為1.8ms表示“0”, 0.9ms低電平 2.4ms高電平周期為3.3ms表示“1”,編寫程序時,以大于3.4ms小于3.8ms高電平為起始位,以大于2.2ms小于2.7ms高電平表示“1”,大于0.84ms小于1.11ms高電平表示“0”。因此,我們主要用單片機測量高電平的長短來確定是“1”還是“0”即可。定時器0的工作方式設置為方式1:mov tmod,#09h,這樣設置定時器0即是把GATE置1,16位計數器,最大計數值為2的16次方個機器周期,此方式由外中斷INT0控制,即INT0為高時才允許計數器計數。比如:
        jnb p3.2,$
        jb p3.2,$
        clr tr0
        這3條指令就可以測量一個高電平,接下來讀取計數值TH0,TL0就可以分辨是起始位還是“1”或“0”。在確定碼表之前,您可以使用P0口的8個發光二極管來顯示編碼,16位編碼分兩次顯示:
        mov p0,keydata
        acall delay_1s ;//1ms延時子程序
        mov p0,keydata+1
        ljmp main
        根據P0相繼的兩次顯示的編碼,記錄每個按鍵的編碼,形成編碼表,即遙控器編碼的解碼完畢。碼表確定之后,以后接收到遙控器的編碼之后,就與碼表比較,找到匹配的碼項,并把該碼項對應的順序號輸出到P0口,同時也把順序號向串行口輸出到電腦,電腦接收該數據后由串口軟件決定如何處理。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 镇巴县| 搜索| 石狮市| 罗甸县| 邵阳县| 张北县| 平江县| 东莞市| 隆尧县| 泰州市| 通许县| 东平县| 永兴县| 资溪县| 登封市| 怀宁县| 徐汇区| 白山市| 家居| 丰台区| 万宁市| 泰宁县| 三江| 易门县| 垦利县| 元氏县| 柳江县| 凉城县| 黄梅县| 星座| 栾川县| 玉溪市| 沈阳市| 咸宁市| 聂拉木县| 襄垣县| 修水县| 阳春市| 林周县| 清原| 灵台县|