描述
下面是一個(gè)對(duì)51實(shí)驗(yàn)板配套的紅外線遙控器的解碼程序,它可以把紅外遙控器每一個(gè)按鍵的鍵值讀出來,并且通過實(shí)驗(yàn)板上P1口的8個(gè)LED顯示出來,在解碼成功的同時(shí)并且能發(fā)出“嘀嘀嘀”的提示音。
;=================================================
; 紅外遙控接收
;=================================================
; ew51仿真編程器 配套實(shí)驗(yàn)板學(xué)習(xí)例程
;
; 中山單片機(jī)學(xué)習(xí)網(wǎng) 智佳科技 逸風(fēng)
;
; http://www.zsMCU.com
; E-mail:info@zsmcu.com
;=================================================
ORG 0000H
MAIN:
JNB P2.2,IR ;遙控掃描
LJMP MAIN ;在正常無遙控信號(hào)時(shí),一體化紅外接收頭輸出是高電平,程序一直在循環(huán)。
;=================================================
; 解碼程序
IR:
;以下對(duì)遙控信號(hào)的9000微秒的初始低電平信號(hào)的識(shí)別,波形見圖5。
MOV R6,#10
IR_SB:
ACALL DELAY882 ;調(diào)用882微秒延時(shí)子程序
JB P2.2,IR_ERROR ;延時(shí)882微秒后判斷P2.2腳是否出現(xiàn)高電平如果有就退出解碼程序
DJNZ R6,IR_SB ;重復(fù)10次,目的是檢測(cè)在8820微秒內(nèi)如果出現(xiàn)高電平就退出解碼程序
;識(shí)別連發(fā)碼,和跳過4.5ma的高電平。
JNB P2.2, $ ;等待高電平避開9毫秒低電平引導(dǎo)脈沖
ACALL DELAY2400
JNB P2.2,IR_Rp ;這里為低電平,認(rèn)為是連發(fā)碼信號(hào),見圖6。
ACALL DELAY2400 ;延時(shí)4.74毫秒避開4.5毫秒的結(jié)果碼
;以下32數(shù)據(jù)碼的讀取 ,0和1的識(shí)別 請(qǐng)看圖2
MOV R1,#1AH ;設(shè)定1AH為起始RAM區(qū)
MOV R2,#4
IR_4BYTE:
MOV R3,#8
IR_8BIT:
JNB P2.2,$ ;等待地址碼第一位的高電平信號(hào)
LCALL DELAY882 ;高電平開始后用882微秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平狀態(tài)
MOV C,P2.2 ;將P2.2引腳此時(shí)的電平狀態(tài)0或1存入C中
JNC IR_8BIT_0 ;如果為0就跳轉(zhuǎn)到IR_8BIT_0
LCALL DELAY1000
IR_8BIT_0:
MOV A,@R1 ;將R1中地址的給A
RRC A ;將C中的值0或1移入A中的最低位
MOV @R1,A ;將A中的數(shù)暫時(shí)存放在R1中
DJNZ R3,IR_8BIT ;接收地址碼的高8位
INC R1 ;對(duì)R1中的值加1,換下一個(gè)RAM
DJNZ R2,IR_4BYTE ;接收完16位地址碼和8位數(shù)據(jù)碼和8位數(shù)據(jù),
;存放在1AH/1BH/1CH/1DH的RAM中
;解碼成功
JMP IR_GOTO
IR_Rp:
;這里為重復(fù)碼執(zhí)行處
;按住遙控按鍵時(shí),每過108ms就到這里來
JMP IR_GOTO
IR_ERROR:
;錯(cuò)語退出
LJMP MAIN ;退出解碼子程序
;=================================================
;遙控執(zhí)行部份
IR_GOTO:
;這里還要判斷1AH和1BH 兩個(gè)系統(tǒng)碼或用戶碼,用于識(shí)別不同的遙控器
;MOV A,1AH
;CJNE A,#xxH,IR_ERROR ;用戶碼1不對(duì)則退出
;MOV A,1BH
;CJNE A,#xxH,IR_ERROR ;用戶碼2不對(duì)則退出
;判斷兩個(gè)數(shù)據(jù)碼是否相反
MOV A,1CH
CPL A
CJNE A,1DH,IR_ERROR ;兩個(gè)數(shù)據(jù)碼不相反則退出
;遙控執(zhí)行部份
;MOV A,1DH ;判斷對(duì)應(yīng)按鍵
;CJNE A,#xxH,{1}6
;LJMP -à跳到對(duì)應(yīng)按鍵執(zhí)行處
;CJNE A,#xxH,{1}6
;LJMP -à跳到對(duì)應(yīng)按鍵執(zhí)行處
;。
MOV P1,1DH ;將按鍵的鍵值通過P1口的8個(gè)LED顯示出來!
CLR P2.3 ;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功
LCALL DELAY2400
LCALL DELAY2400
LCALL DELAY2400
SETB P2.3 ;蜂鳴器停止
;清除遙控值使連按失效
MOV 1AH,#00H
MOV 1BH,#00H
MOV 1CH,#00H
MOV 1DH,#00H
LJMP MAIN
;=================================================
; 延時(shí)子程序
;=============================882
DELAY882: ;1.085x ((202x4)+5)=882
MOV R7,#202
DELAY882_A:
NOP
NOP
DJNZ R7,DELAY882_A
RET
;=============================1000
DELAY1000: ;1.085x ((229x4)+5)=999.285
MOV R7,#229
DELAY1000_A:
NOP
NOP
DJNZ R7,DELAY1000_A
RET
;=============================2400
DELAY2400: ;1.085x ((245x9)+5)=2397.85
MOV R7,#245
DELAY2400_A:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,DELAY2400_A
RET
END
上一篇:使用Keil C進(jìn)行51單片機(jī)延時(shí)程序編寫的幾點(diǎn)心得
下一篇:51單片機(jī)開發(fā)之DS18B20溫度傳感器
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- IAA MOBILITY移動(dòng)出行趨勢(shì)指數(shù)發(fā)布
- 寧德時(shí)代CTP 2.0電池包產(chǎn)線投產(chǎn),助力問界系列車型加速交付
- 研究人員開發(fā)出新型多功能電池陰極材料
- 特斯拉中國大陸首批V4超級(jí)充電樁上線
- 方向盤消失前夜:特斯拉、百度、哈啰三巨頭的Robotaxi戰(zhàn)爭
- 均普智能人形機(jī)器人開賣,拿下約3000萬元訂單
- 博世推出超低功耗全集成MEMS傳感器
- 福特汽車申請(qǐng)新專利:基于手勢(shì)的虛擬鍵盤
- 一汽大眾:智能網(wǎng)聯(lián)汽車的信息安全攻防之道
- 一文講透汽車區(qū)域控制架構(gòu),以及那些關(guān)鍵技術(shù)
- 2009 EEWORLD 年度人物大評(píng)選活動(dòng)評(píng)獎(jiǎng)揭曉
- 開學(xué)總動(dòng)員,書籍開發(fā)板低價(jià)購!
- KOL實(shí)戰(zhàn)分享|無刷直流電機(jī)(BLDC)的驅(qū)動(dòng)及控制方法
- 第二季學(xué)習(xí)體驗(yàn)活動(dòng)風(fēng)暴來襲!
- 【干貨視頻】走進(jìn)TE智能制造工廠,追蹤連接器綠色生產(chǎn)全過程
- 泰克示波器旅行指南 更高帶寬、更低噪聲、更多通道
- 有獎(jiǎng)評(píng)測(cè)+DIY:玩轉(zhuǎn)新版1.3元單片機(jī)CH554,贏以太網(wǎng)分析儀器/USB分析儀
- 直播已結(jié)束|淺談Microchip的FPGA產(chǎn)品與智能嵌入式視覺解決方案
- 使用HAL庫對(duì)STM32F030系列芯片做RTC低功耗喚醒
- STM32 低功耗模式STOP、STANDBY配合RTC應(yīng)用實(shí)例
- STM32開發(fā) -- RTC詳解
- STM32中RTC喚醒停止模式
- STM32進(jìn)入低功耗模式以及喚醒(RTC+中斷)
- 持久內(nèi)存將正式推出,存儲(chǔ)業(yè)2018或迎來大爆發(fā)
- 氮化鎵襯底晶片實(shí)現(xiàn)“中國造”
- 傳特朗普擬建立國家級(jí)5G網(wǎng)絡(luò)以防御竊聽行為
- 同樣是高層“出事”,為何樂視向左三星向右
- 中國手機(jī)需求下修無損MLCC供需結(jié)構(gòu)