婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

單片機紅外遙控解碼器

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2010-8-20
 你家里是否有一個電視機遙控器或者空調機遙控器呢?你是否也想讓它遙控其他的電器甚至讓它遙控您的電腦呢?那好,跟我一起做這個“紅外遙控解碼器”。
     該小制作所需要的元件很少:單片機TA89C2051一只,RS232接口電平與TTL電平轉換心片MAX232CPE 一只,紅外接收管一只,晶振11.0592MHz,電解電容10uF4只,10uF一只,電阻1K1個,300歐姆左右1個,瓷片電容30P2個。發光二極管8個。價錢不足20元。

電路原理:
    主控制單元是單片機AT89C2051,中斷口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口,同時也把順序號向串行口輸出到電腦,電腦接收該數據后由串口軟件決定如何處理。
     程序不長,下面是完整的程序和注釋:(先看流程圖)
 
keydata equ 30h ;//該地址和31H地址用來存放遙控器按鍵編碼。
org 00h
main:
 mov keydata,#0 ;// 清零
 mov tmod ,#09h       ;//設置定時0方式1,GATE=1
      mov  r7,#0  ;//計數器,用來計數是否滿8位
 mov  r6,#0  ;//計數器,用來計數是否滿2字節(解16位編碼)
 jb p3.2,$  ;//是否為低電平
again:    ;//如果為低,繼續往下面執行
 mov tl0,#0  ;//清零TL0
 mov th0,#0  ;//清零TH0
 setb tr0  ;//開啟定時器0
 jnb p3.2,$  ;//等待高電平到來
 jb p3.2,$ ;//高電平到來,此時開始計數
 clr tr0 ;//高電平結束,停止計數
 mov a,th0 ;//讀取th0 值,TL0忽略不計 
 clr c  ;//
 subb a,#12 ;//
 jc again ;//th0<12則轉,即小于3.4ms,你可以算一下這個時間
 mov a,#14 ;//
 clr c  ;//
 subb a,th0 ;//和14比較,如果TH0>14則大于3.8ms
        jc again    ;//大于3.8ms,從新再檢測
nextbit:  ;//起始位找到了,然后下一位
 mov tl0,#0 ;//
 mov th0,#0 ;//
 setb tr0 ;//啟動定時器
 jnb p3.2,$ ;//等待高電平
 jb p3.2,$  ;//高電平到來,此時開始計數
 clr tr0 ;//高電平結束,停止計數
 mov a,th0 ;//讀取計數值,TL0忽略不計
 clr c  ;//
 subb a,#8 ;//th0和8比較
 jc next  ;;;;//若 <2.2ms則轉,再判斷是否大于0.84ms
 mov a,#10 ;//再跟10比較
 clr c  ;//
 subb a,th0 ;//
 jc again ;;;;;;;//若 >2.7ms,則放棄,從新檢測
 mov a,keydata ;// 符合大于2.2ms 小于2.7ms,即為“1”
 setb c        ;//C = 1
 rrc a  ;//把1移位進A
 mov keydata,a ;//保存
 inc r7  ;//計數器加1
 cjne r7,#8,nextbit ;//是否滿8位
 inc r6   ;//計數加1
 cjne r6,#2,last8 ;//是否滿兩字節
 sjmp seach  ;//不滿兩字節,再新采集
last8:    ;//滿1字節,再接下來第二字節
 mov keydata+1,a ;//把第一字節編碼數據保存到31h里
 mov r7,#0  ;//計數器R7清零
 sjmp nextbit  ;//繼續采集數據
next:      ;//小于2.2ms時轉到這里
 mov a,th0  ;//讀取計數值TH0
 swap a   ;//高4位與低4位對換
 mov r1,a  ;//保存到R1
 anl tl0,#0f0h  ;//取TL0高4位,低4位忽略不計
 mov a,tl0  ;//
 clr c   ;//
 rrc a  ;//
 rrc a  ;//
 rrc a  ;//
 rrc a  ;//
 add a,r1 ;//
 mov r1,a ;//
 subb a,#30 ;//以上幾行是把TH0的低4位和TL0的高4位合并為1字節作為計數值
 jc nextbit ; //判斷是否 <0.84ms,是則放棄,繼續采集
 mov a,r1 ;//否
 clr c  ;//
 cjne a,#64,continue   ;//跟64比較
continue:  ;//
 jnc nextbit ;  //a>64表示采樣值 >1.11ms  放棄
 mov a,keydata  ;//否則 ,符合位“0”
 clr c          ;//C  = 0
 rrc a   ;//把零右移進A
 mov keydata,a  ;//保存
 inc r7   ;//計數器加1
 cjne r7,#8,nextbit ;//是否滿8位
 inc r6   ;//計數器加1
 cjne r6,#2,last_8 ;//是第一字節已經滿
 sjmp seach  ;//
last_8:    ;//如果為第二字節
 mov keydata+1,a ;//則保存第一字節到31h
 mov r7,#0  ;//清零R7
 sjmp nextbit  ;//
seach:    ;//匹配按鍵編碼
 mov r0,#-2  ;//按鍵編碼字節個數計數器
 mov r1,#-1  ;//按鍵順序計數器
seach1:   ;//
        inc r0  ;//
seach2:   ;//
 inc r0   ;//
 inc r1   ;//
 cjne r1,#29,compare ;//是否R1=29 
 sjmp exit0  ;//
compare:   ;//開始匹配
  mov a,r0  ;//
 mov dptr,#keycode ;//地址指針指向碼表首址
 movc a,@a+dptr ;//取碼
 cjne a,keydata,seach1 ;//比較
 inc r0   ;//R0+1,再比較下一字節(每個按鍵編碼為2字節)
 mov a,r0  ;//
 ;mov dptr,#keycode ;//
 movc a,@a+dptr ;//比較
 cjne a,keydata+1,seach2 ;//是否匹配,不匹配則繼續跟下一字節比較
 mov p1,r1         ;//如果匹配,把按鍵順序號輸出到p1
send:    ;//
 mov tmod,#20h     ;   //設置timer 1,mode 2
 mov tl1,#0fdh  ;//設置定時器初值
 mov th1,#0fdh  ;//
 mov scon,#01010000b;//以上設置,即設置串口波特率系數為:9600,8,1,0
 setb tr1  ;//啟動定時器1
loop_s:  ;//
 mov sbuf,r1    ;//把R1(按鍵順序號)輸出到串口
 jnb ti,$  ;//等待是否發送完畢
 clr ti   ;//發送完畢,清零TI
exit0:    ;//
ljmp main   ;//循環

keycode:   ;//每兩字節代表一個按鍵的編碼
db 11111000b,00000000b,    11111100b,00000000b,    11111001b,11000000b
db 11111100b,11000000b,    11111010b,00000000b,    11111010b,00100000b
db 11111010b,01000000b,    11111010b,01100000b,    11111010b,10000000b
db 11111010b,10100000b,    11111010b,11000000b,    11111010b,11100000b
db 11111011b,00000000b,    11111011b,00100000b,    11111011b,01000000b
db 11111011b,01100000b,    11111111b,01100000b,    11111111b,10100000b
db 10001100b,10001110b,    10001101b,11101110b,    10001100b,10101110b
db 10001101b,11001110b,    11111000b,11100000b,    11111100b,10000000b
db 11111100b,01000000b,    11111001b,10100000b,    11111100b,10100000b
db 11111100b,01100000b
end
---------------------------------------------------------------------------------
各種遙控器編碼不同,如果你采用的是其他遙控器,修改幾個參數即可(當然按鍵的編碼表肯定不同了),即計數器的值不同,不過有的遙控器有機器碼(機器碼每個按鍵都是一樣的),此時可以跳過機器碼的采集。最后有一點想提一下的是,剛開始不知道遙控器的編碼是比較麻煩的,筆者在“雙龍電子“網站下載了個聲卡示波器,用他可以一目了然觀看遙控器的波形,測量其脈沖寬度,有了它確實方便很多,該軟件可以到雙龍公司網站http://www.sl.com.cn/免費下載使用。如果你想用遙控器遙控電腦,你可以自己編寫一個接受串行口應用軟件,或者你可以直接下載使用Girder這個軟件,該軟件是專門為串口遙控器做的,很好用,下載地址為:http://www.girder.nl/,你可以利用這個軟件定義遙控器來遙控你電腦移動鼠標、鍵盤操作、上網瀏覽、打開播放器、關機等。

Tags:單片機,紅外解碼器  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
<button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • 97干在线视频| 在线观看免费av网址| 在线免费av播放| 亚洲成人手机在线观看| cao在线观看| 午夜免费福利网站| 色婷婷综合在线观看| 你真棒插曲来救救我在线观看| 四虎成人在线播放| 能在线观看的av| h无码动漫在线观看| 黄色www在线观看| 免费视频爱爱太爽了| 久久99999| 300部国产真实乱| 黄色片久久久久| 久久久精品在线视频| 青青草av网站| 九九热视频免费| 婷婷中文字幕在线观看| 久久99爱视频| 欧美日韩理论片| 欧美久久久久久久久久久久久| 久久综合伊人77777麻豆最新章节| 哪个网站能看毛片| 国产真人做爰毛片视频直播| 欧美性猛交久久久乱大交小说| 高潮一区二区三区| 777av视频| 久久亚洲国产成人精品无码区 | dy888午夜| 成年网站在线播放| 怡红院亚洲色图| 播放灌醉水嫩大学生国内精品| 国产麻花豆剧传媒精品mv在线| 日韩在线不卡一区| 国产淫片av片久久久久久| h无码动漫在线观看| 日韩免费一级视频| av无码久久久久久不卡网站| 51自拍视频在线观看| 污污污污污污www网站免费| 浓精h攵女乱爱av| 国产女同无遮挡互慰高潮91| jizz欧美性11| 男插女免费视频| 亚洲熟妇无码av在线播放| wwwjizzjizzcom| 国产手机免费视频| 337p粉嫩大胆噜噜噜鲁| 国产精品免费观看久久| 精品少妇在线视频| 男人天堂网视频| 亚洲男人天堂色| 欧美 日韩精品| 久久精品一二三四| 日本特级黄色大片| 日日摸日日碰夜夜爽无码| 欧美精品色婷婷五月综合| 在线观看视频在线观看| 日韩一级片免费视频| caoporn超碰97| 国产成人永久免费视频| 日本中文字幕影院| av动漫在线看| 国产成人在线小视频| 国产一区二区在线免费播放| 加勒比海盗1在线观看免费国语版| 国产美女无遮挡网站| 性猛交ⅹ×××乱大交| 中文字幕の友人北条麻妃| 欧美一级片中文字幕| 日本在线视频www色| 欧美日韩视频免费| 国产精品88久久久久久妇女 | 欧美成人三级在线播放| 亚洲中文字幕无码一区二区三区 | 99久久99精品| 99中文字幕在线| 在线观看国产福利| 亚洲污视频在线观看| 香蕉视频禁止18| 国产欧美高清在线| 国产精品裸体瑜伽视频| 一二三四视频社区在线| 日本新janpanese乱熟| 性生活免费在线观看| 日本黄大片一区二区三区| 一卡二卡三卡视频| 精品无码一区二区三区在线| 国产一级片91| 欧美日韩在线中文| 一本之道在线视频| 欧美 日本 亚洲| 奇米777在线视频| 日韩国产一级片| 亚洲精品国产久| 激情视频小说图片| 北条麻妃av高潮尖叫在线观看| 99re6在线观看| 黄色片久久久久| 国产资源在线免费观看| 国产成人一二三区| 日韩a在线播放| 久草热视频在线观看| 日本免费a视频| 异国色恋浪漫潭| 九九九九九九九九| 欧美 国产 小说 另类| 亚洲中文字幕无码中文字| 日本特级黄色大片| 国产免费xxx| 欧洲金发美女大战黑人| 在线观看岛国av| 精品少妇人妻av一区二区| 久久精品一卡二卡| 一本—道久久a久久精品蜜桃| 美女网站免费观看视频| 日日噜噜夜夜狠狠| 欧美又粗又长又爽做受| 欧美视频亚洲图片| 经典三级在线视频| 久草精品在线播放| 色欲av无码一区二区人妻| 午夜激情在线观看视频| 国产美女永久无遮挡| 午夜啪啪免费视频| 国产黄色激情视频| 欧美一级免费在线| 欧美二区在线视频| 熟女熟妇伦久久影院毛片一区二区| 狠狠热免费视频| 国产成人精品免费看在线播放| 特黄特黄一级片| 天天操精品视频| 熟女视频一区二区三区| 能在线观看的av网站| 北条麻妃视频在线| 亚洲熟妇av一区二区三区漫画| 亚洲这里只有精品| 亚洲涩涩在线观看| 成年人视频网站免费观看| 乱熟女高潮一区二区在线| 激情五月婷婷基地| 日本成人性视频| 成人污网站在线观看| 国产资源中文字幕| 日本精品免费视频| 99色精品视频| 欧美一区二区三区爽大粗免费| 男女啪啪的视频| 日本一本在线视频| 成人在线国产视频| 国产精品沙发午睡系列| 免费在线看黄色片| 免费欧美一级视频| 亚洲激情在线看| 国产大尺度在线观看| 欧洲xxxxx| 国产综合免费视频| 亚洲不卡中文字幕无码| 一区二区xxx| 97久久国产亚洲精品超碰热| 日本xxxx黄色| 国产精品丝袜久久久久久消防器材| 成年人视频观看| 穿情趣内衣被c到高潮视频| 成人免费在线小视频| 午夜啪啪免费视频| 91视频最新入口| 丁香啪啪综合成人亚洲| 大荫蒂性生交片| 怡红院亚洲色图| 成人在线免费观看av| 欧美午夜小视频| 国产精品啪啪啪视频| 9l视频白拍9色9l视频| 午夜免费看视频| 免费在线观看的毛片| 最新天堂在线视频| 福利网在线观看| www.精品在线| 精品国偷自产一区二区三区| 欧美日韩激情视频在线观看| 五月婷婷丁香色| 91av在线免费播放| 咪咪色在线视频| 爱情岛论坛成人| 国产又黄又爽免费视频| 久久久噜噜噜www成人网| 午夜啪啪免费视频| 国产熟人av一二三区| 国产精品夜夜夜爽张柏芝| 中国丰满熟妇xxxx性| 亚洲欧美另类动漫| av在线播放亚洲| 大伊香蕉精品视频在线| 成人精品视频在线播放| 欧美二区在线视频| 免费av观看网址|