wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機做紅外遙控解碼器

作者:佚名   來源:不詳   點擊數:  更新時間:2014年08月17日   【字體:

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

     該小制作所需要的元件很少:單片機TA89C2051一只,RS232接口電平與TTL電平轉換心片MAX232CPE 一只,紅外接收管一只,晶振11.0592MHz,電解電容10uF4只,10uF一只,電阻1K1個,300歐姆左右1個,瓷片電容30P2個。發光二極管8個。價錢不足20元。
電路原理介紹:
        主控制單元是單片機AT89C2051,中斷口INT0跟紅外接受管U1相連,接收紅外信號的脈沖,8個發光二極管作為顯示解碼輸出(也可以用來擴展接其他控制電路),U3是跟電腦串行口RS232相連時的電平轉換心片,910腳分別與單片機的12腳相連,(1腳為串行接收,2腳為串行發送),MAX232CPE78腳分別接電腦串行口的2(接收)腳、3(發送腳)。晶振采用11.0592MHz,這樣才能使得通訊的波特率達到9600b/s,電腦一般默認值是9600b/s8位數據位、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的工作方式設置為方式1mov tmod,#09h,這樣設置定時器0即是把GATE116位計數器,最大計數值為216次方個機器周期,此方式由外中斷INT0控制,即INT0為高時才允許計數器計數。比如:
jnb p3.2,$
jb p3.2,$
clr tr0
3條指令就可以測量一個高電平,接下來讀取計數值TH0,TL0就可以分辨是起始位還是10在確定碼表之前,您可以使用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方式1GATE=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     ;//th08比較
    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            ;//TL04位,低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/,你可以利用這個軟件定義遙控器來遙控你電腦移動鼠標、鍵盤操作、上網瀏覽、打開播放器、關機等。
關閉窗口
91video| 肉肉视频在线观看| 少妇高潮流白浆| 日韩在线观看av| 一卡二卡欧美日韩| 欧美96一区二区免费视频| 中文在线а天堂av| 中文字幕有码在线| 国产三级av片| 欧美国产综合在线| 国产亚洲一区精品| 成人国产视频在线观看| 日韩不卡视频在线观看| 欧美知名女优| 国产成人精品久久一区二区小说| 五月婷婷激情五月| 国产jjizz一区二区三区视频| 亚洲精品久久久久久久蜜桃臀| 91系列在线播放| 久久99热这里只有精品国产| 日韩一级精品视频在线观看| 国产精品1区2区| 欧美激情亚洲| 成人在线视频你懂的| 手机在线免费av| 亚洲成人观看| 天天操夜夜添| 日韩欧美在线综合| 国产熟女一区二区丰满| 国产在线视频你懂的| 日韩a∨精品日韩在线观看| 国产精品视频500部| 国产成人免费av| 久久的精品视频| 亚洲欧美日韩直播| 欧美一二三四区在线| 97人人精品| 性欧美video另类hd尤物| 青草视频在线免费直播| 免费在线视频你懂得| www.男人的天堂| 看全色黄大色黄大片免责看的| 午夜在线观看视频18| 中文字幕制服诱惑| 羞羞影院体验区| www.色小姐com| 波多野结衣一本| 久久无码专区国产精品s| 精品免费国产一区二区| 成年人看的毛片| 国产欧美综合一区| 国产免费久久av| 亚洲精品在线观| 国产精品沙发午睡系列990531| 久久国产尿小便嘘嘘| 精品国产乱码久久久久久1区2匹| 国产亚洲字幕| 午夜视频在线观看免费视频| 在线成人动漫| 欧美18一12sex性处hd| 97涩在线观看视频| 1024欧美极品| www99avcom| 777永久免费网站国产| av先锋影音少妇| 国产富婆一级全黄大片| 亚洲天天综合网| 夜夜躁很很躁日日躁麻豆| 久久人妻免费视频| 欧美a视频在线观看| 亚洲天堂男人av| 特一级黄色大片| 99热在线观看免费精品| 免费观看成人毛片| 成人公开免费视频| 国产精品久久无码一三区| 国产在成人精品线拍偷自揄拍| 亚洲专区在线播放| 亚洲第一黄色片| 黄色三级网站在线观看| 天天综合天天综合| 中文字幕国产欧美| 91free张津瑜movies| 免费网站你懂的| 在线观看亚洲电影| 亚洲国产精品无码久久久| 久久久久精彩视频| 亚洲成a人片77777精品| 一区二区三区小视频| 亚洲视频日韩| 欧美丰满老妇熟乱xxxxyyy| 欧美bbbbb性bbbbb视频| 亚洲欧美精品久久| 极品白嫩的小少妇| 国产成人无码一区二区在线观看 | 欧美激情女人20p| 91黑丝高跟在线| 久久韩国免费视频| 97色伦亚洲国产| 国产精品一二三在线| 国内精品久久久久久久果冻传媒| 亚洲一区二区三区在线观看视频 | 日韩av黄色在线观看| 国产精品亚洲美女av网站| 国产精品一区二区欧美| 天堂v在线视频| 久草精品在线播放| 亚洲图片综合网| 久热这里只有精品在线| 国产一区二区三区视频播放| 久久久全国免费视频| 亚洲天堂狠狠干| 欧美日韩**字幕一区| av网站网址| 精品无人乱码| 天堂91在线| av电影免费在线观看| 日韩精品视频无播放器在线看| 黄网站免费入口| 久久精品蜜桃| 神马电影网我不卡| 国产精品一区二区99| 国产精品亚洲综合久久| 99精品国产视频| 精品美女国产在线| 亚洲丝袜在线视频| 国产玖玖精品视频| 无码人妻精品一区二区三区99v| 亚洲一区精品视频在线观看| 免费观看精品视频| 欧美精品第三页| 毛茸茸多毛bbb毛多视频| 亚洲欧美另类在线视频| 欧美成人免费视频a| 久草在线官网| 欧洲一级精品| 欧美va天堂| 99久久er热在这里只有精品15| 五月激情六月综合| 色青青草原桃花久久综合 | 91精品国产自产在线观看永久| 亚欧精品在线| 农村末发育av片一区二区| 国产无精乱码一区二区三区| 婷婷伊人综合中文字幕| 国产va在线观看| 韩日毛片在线观看| 亚洲精品动漫| 99精品网站| 91视频观看免费| 91精品国产色综合久久不卡蜜臀| 欧美videossexotv100| 欧美性受xxxx黑人猛交| 亚洲免费视频播放| 亚洲一区二区三区日韩| 99热这里只有精品9| 18av.com视频| 99久久婷婷国产综合精品首页 | 制服丝袜av成人在线看| 亚洲福利在线观看| 国产精品jvid在线观看蜜臀| 久久久久久久香蕉| 青青操在线播放| 新久草在线视频| av每日在线更新| 日韩精品一区二区三区| 国产一区日韩一区| 亚洲欧美成aⅴ人在线观看 | 欧美韩国日本在线| 久久久精品视频在线| 国内精品区一区二区三| 成人国产免费电影| 国产精品成人**免费视频| 影音先锋久久资源网| 欧美激情一区二区在线| 精品亚洲aⅴ在线观看| 国产精品推荐精品| 一级黄色免费视频| 国产刺激高潮av| 狠狠v欧美ⅴ日韩v亚洲v大胸| 美女av一区| 26uuu欧美| 亚洲欧美日韩国产中文| 日韩精品欧美在线| 国产一区二区三区视频播放| 国产网站免费看| 看电影就来5566av视频在线播放| 高清日韩欧美| 久久久久久久久久久久久久久99| 亚洲精品久久视频| 日本在线免费观看一区| 欧美午夜激情影院| 一分钟免费观看视频播放www| 涩涩涩视频在线观看| 美女精品在线| 国产色产综合色产在线视频| 亚洲欧美在线播放| 一卡二卡3卡四卡高清精品视频| 国产老头老太做爰视频| 日韩一级片免费| 日本中文字幕视频在线| 欧美日韩1区| 91成人免费网站| 亚洲tv在线观看| 亚洲AV无码国产成人久久| 国产美女主播在线观看| 人成免费电影一二三区在线观看| 视频精品在线观看| 亚洲乱码中文字幕| 国产激情视频一区| 97人妻精品一区二区三区免费| 亚洲国产成人综合| 日产精品一区| 成人v精品蜜桃久久一区| 色噜噜狠狠狠综合曰曰曰88av| 久久成人福利视频| 日本成人一级片| 超碰免费97在线观看| 亚洲一区二区成人| 精品国产精品网麻豆系列| 亚洲v国产v在线观看| 91精品国产综合久久精品| 开心色怡人综合网站| 91啦中文在线| 日本精品在线一区| 久久99精品一区二区三区| 制服丝袜激情欧洲亚洲| 九色91在线视频| 天天天天天天天天操| 天天操天天是| 最近中文字幕免费视频| 国产精品无码AV| 在线观看免费网站黄| 99香蕉国产精品偷在线观看| 丰满少妇久久久久久久| 亚洲天堂av电影| 在线观看免费不卡av| 吴梦梦av在线| 欧美性猛交bbbbb精品| 欧美日韩免费做爰大片| 国产精品大片免费观看| 欧美色涩在线第一页| 欧美一区视久久| 69av视频在线观看| 在线免费观看的av| 国产精品1区2区| 久久免费视频在线观看| 国产偷人妻精品一区| 天天操天天舔| 欧美久久99| 精品福利一区二区三区免费视频| 超碰97在线看| 姝姝窝人体www聚色窝| 精品久久在线| 亚洲欧美日本国产专区一区| 亚洲国产毛片完整版| 无码播放一区二区三区| 中文乱码字幕午夜无线观看| 国产一区二区视频在线看| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美日韩中文播放| 中文字幕精品一区二区精品绿巨人| 亚洲成人三级在线| 美女黄色免费看| 丰满人妻一区二区三区无码av| 老司机2019福利精品视频导航| 久久久www成人免费无遮挡大片 | 红桃成人av在线播放| 欧美亚洲综合另类| 亚洲国产精品无码观看久久| 色偷偷av男人的天堂| 国产suv精品一区| 欧美日韩一级二级| 欧美在线观看www| 淫行教师动漫| 午夜国产精品视频| 中文字幕无线精品亚洲乱码一区 | 久久99国内精品| 午夜免费久久久久| 欧美成人手机视频| 手机av免费在线| 17c精品麻豆一区二区免费| 欧美日韩在线播放一区二区| 午夜精品一二三区| 麻豆视频一区| 亚洲国产精品国自产拍av秋霞| 色啦啦av综合| 啦啦啦在线视频免费观看高清中文| 久久国产88| 欧美做受高潮电影o| 巨乳女教师的诱惑| 欧美jizzhd欧美精品巨大| 国产探花在线精品一区二区| 日韩经典第一页| 37pao成人国产永久免费视频| 91高清视频| 久久亚洲一区| 国产精品69久久| 中文亚洲av片在线观看| 日韩av综合| 精品国产露脸精彩对白 | 国产资源精品在线观看| 国产精品久久中文| 在线观看不卡的av| 欧美调教视频| 亚洲色图35p| 成人在线观看高清| 日韩在线影院| 天天干天天摸天天操| 国产精品原创视频| 欧美日韩激情一区二区| 成人性生交免费看| 国产美女极品在线| 久久一夜天堂av一区二区三区| 久久综合一区| 韩日三级av| 丝袜诱惑制服诱惑色一区在线观看 | 爱啪导航一精品导航站| 一区精品久久| 国产美女搞久久| 亚洲天堂视频在线观看免费| 欧美女人交a| 国产精品色午夜在线观看| 欧美日韩三级一区二区| 日日噜噜噜噜久久久精品毛片| 福利在线国产| 欧美国产亚洲另类动漫| 8x8ⅹ国产精品一区二区二区| fc2ppv在线观看| jlzzjlzz亚洲日本少妇| 午夜老司机精品| 黄网站免费看| 不卡的电视剧免费网站有什么| 日韩av免费电影| heisi视频网在线观看| www激情久久| 激情五月宗合网| 色在线免费视频| 偷拍一区二区三区| 绯色av蜜臀vs少妇| a级大胆欧美人体大胆666| 国产精品天美传媒| 欧美乱大交xxxxx潮喷l头像| 特黄aaaaaaaaa毛片免费视频| 99久久伊人网影院| 日本韩国在线不卡| 中文字幕18页| av在线播放观看| 91精品福利视频| 毛片网站免费观看| 久久91导航| 亚洲天堂影视av| av片免费观看| 性高潮久久久久久久久久| 婷婷色在线资源| 91精品中文字幕一区二区三区| 黄色a一级视频| а√天堂资源国产精品| 神马国产精品影院av| 中文字幕+乱码+中文字幕明步 | 亚洲私人影吧| 国产一区二区在线观看免费| 日本精品视频一区| 男人的天堂在线播放| 一区二区三区在线视频免费观看 | 性生活视频网站| 国产日韩欧美精品综合| 婷婷六月天在线| 欧美一区二区视频| 色丁香久综合在线久综合在线观看| 少妇按摩一区二区三区| 日韩高清在线观看一区二区| 羞羞色国产精品| 欧美一级淫片a免费视频| 成+人+亚洲+综合天堂| 成年人在线看片| 看黄在线观看| 视频直播国产精品| 黄色av中文字幕| 国产成人一区二区精品非洲| 国产又大又硬又粗| 男人天堂亚洲| 中文字幕无线精品亚洲乱码一区 | 久久久久久久久久久久av| 亚洲成年人电影网站| 伊人久久亚洲热| 色一情一乱一伦一区二区三欧美 | 久久国产精品99久久久久久老狼| 99久久久无码国产精品性色戒| 国产三级在线免费| 欧美成人精精品一区二区频| 日本特级黄色片| 久久av最新网址| 男人添女人下部高潮视频在观看| 日本欧美电影在线观看| 久久精品国产一区二区电影| 中文字幕2020第一页| 国产日本欧洲亚洲| 美国黄色一级毛片| 色欧美自拍视频|