REMOTE.为51单片机编写的红外遥控解码程序

上传人:野鹰 文档编号:3157961 上传时间:2017-07-31 格式:DOC 页数:19 大小:301KB
返回 下载 相关 举报
REMOTE.为51单片机编写的红外遥控解码程序_第1页
第1页 / 共19页
REMOTE.为51单片机编写的红外遥控解码程序_第2页
第2页 / 共19页
REMOTE.为51单片机编写的红外遥控解码程序_第3页
第3页 / 共19页
REMOTE.为51单片机编写的红外遥控解码程序_第4页
第4页 / 共19页
REMOTE.为51单片机编写的红外遥控解码程序_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《REMOTE.为51单片机编写的红外遥控解码程序》由会员分享,可在线阅读,更多相关《REMOTE.为51单片机编写的红外遥控解码程序(19页珍藏版)》请在金锄头文库上搜索。

1、OPE Shanghai Module Specification Progress File17-7-30 1模块开发文件夹工程项目名称 MC-55模块名称 REMOTE 版本号 1.0程序员姓名完成日期修改日期源程序行数目标代码长度(字节)模块类型 GENERAL BIOS SYSTEM 最大执行时间(指令周期)模块简要描述REMOTE 模块主要功能为:接收遥控信号,对遥控信号进行识别、解码,并在码值有效后,输出统一编码。REMOTE 模块是在有遥控信号或电磁干扰时,由系统调用。由于该模块包含三部分:INT0 处理模块和 TIMER0 处理模块及初始化模块。REMOTE 模块是采用中断处理

2、信号,占用 INT0 和 TIMER0 两个资源。为了尽可能减少堆栈的使用,以避免堆栈溢出,该模块的内部已经对 INT0 和 TIMER0 的中断地址做了处理,即两个长跳转指令已经被绝对定位在相应的中断地址上了。在主程序中已无须对上述两中断源再做处理。只须做下面三点:1在主程序的开始部分加入下面语句:#include “remote.h”2在主程序的初始化中加入 REMOTE 的初始化程序:REMOTE_INIT() ;3在链接时需加入文件 REMOTE.OBJ(由 REMOTE.ASM 和 REMOTE.INC 汇编生成)。开发起止时间表预计起止时间 实际起止时间设计编码单元测试集成测试OP

3、E Shanghai Module Specification Progress File17-7-30 21 模块详细设计结果描述1.1 基本原理REMOTE 模块是针对 NEC 标准的遥控发射信号设计的。共占用 MCU 两个资源:INT0 和TIMER0。通过 INT0 接收遥控信号,侦测脉冲信号的起止点。通过 TIMER0 计算脉冲信号的时间长度。根据时间的长短可识别出各种码值,从而可判断出是否是电磁干扰,或码值是否有效。1.2 扇出无。1.3 硬件接口请查阅 “TOP LOAD SYSTEM MCU BOARD REV:01” 的原理图。2 源程序清单2.1 源程序:下面所列为 REM

4、OTE 模块的程序清单,(文件名:REMOTE.ASM)$INCLUDE(REMOTE.INC)CSEG AT EX_ADDR ;ADDR=03H FOR EXTERN INTERUPTER 0;ADDR=13H FOR EXTERN INTERUPTER 1LJMP EX_SERVERCSEG AT ET_ADDR ;ADDR=0BH FOR TIMER0 INTERUPTER;ADDR=1BH FOR TIMER1 INTERUPTERLJMP ET_SERVER;*;* NAME: REMOTE_INIT *;* PURPOSE: Initial the Remote periphera

5、l-INT0,TIMER1 *;* FUNCTION: Be called when system reset *;* OUTPUT: ET0,EX0,IT0,TMOD,REMMODE,REMCONT,REMVALID,RPTVALID *;* RAM:ACC,DPTR,TEMPDATA,LOWCONT *;* Excuting: Be called After main() *;*C-Declare: void REMOTE_INIT(void); *;*RSEG ?PR?REMOTE?REMOTE INBLOCKREMOTE_INIT:SETB ET_ENABLE ;T0 enableSE

6、TB EX_ENABLE ;INT0 OR INT1 enableSETB EX_TRIG ;INT0 OR INT1MOV A,TMOD ;Set T0ANL A,#TMOD_MOD1ORL A,#TMOD_MOD2MOV TMOD,A MOV REMMODE,#0HMOV REMCONT,#0HCLR REMVALIDCLR REMTEMPCLR RPTVALIDOPE Shanghai Module Specification Progress File17-7-30 3RET;*;* NAME: EX_SERVER *;* PURPOSE: Analyse and calculate

7、remote wave,get the valid wave. *;* FUNCTION: wil be called When rmeote wave is received. *;* return REMMDOE,REMCONT *;* SCOPE:NONE. *;* INPUT:REMMODE,REMCONT,REMVALID,RPTVALID *;* OUTPUT:REMMODE,REMCONT *;* RAM:ACC,DPTR,TEMPDATA,LOWCONT *;* Time(MAX): 80T+100us *;* Excuting: Be called in INT0 inter

8、rupt *;* Ref.Flowchart: REMOTE.wmf *;*RSEG ?PR?REMOTE?REMOTE INBLOCKEX_SERVER:PUSH ACCPUSH DPHPUSH DPLPUSH PSWJB POWER_EN,SERVER1JB EX_TRIG,SERVER1SETB EX_TRIGLJMP EX_RSETALLSERVER1:MOV A,#DELAY100USDELAY_LOOP:DEC AJNZ DELAY_LOOPMOV DPTR,#MODETABMOV A,REMMODESUBB A,#9HJNC EX_RSETMOV A,REMMODERL AJMP

9、 A+DPTRMODETAB:AJMP CODEMODE0AJMP CODEMODE1AJMP CODEMODE2AJMP CODEMODE3NOPOPE Shanghai Module Specification Progress File17-7-30 4NOPNOPNOPAJMP EX_RSETALLNOPNOPCODEMODE0:JB REM_RECEIVE,EX_RSETCLR TI_CTRLMOV TCON_HIGH,#PT1200_HIGH1MOV TCON_LOW,#PT1200_LOW1SETB TI_CTRL ;Start T0 1.72ms timer.MOV TEMPD

10、ATA,#80HAJMP EX_RSETCODEMODE1:JB REM_RECEIVE,EX_RSETAJMP EX_RTNCODEMODE2: JB REM_RECEIVE,EX_RTNCLR TI_CTRLMOV A,TCON_HIGHCLR CSUBB A,#R4500_lOWJC CHK_REPEATSUBB A,#RANGE4500JNC EX_RSETALLMOV TCON_HIGH,#0H ;Timer=4.5ms,the leader code valid MOV TCON_LOW,#R1125_PRESETB TI_CTRL ;Start timer.MOV REMMODE

11、,#3H ;turn to mode3AJMP EX_RTNCHK_REPEAT:MOV A,TCON_HIGHCLR CSUBB A,#R2250_lOW1JC EX_RSETALLSUBB A,#RANGE2250JNC EX_RSETALLJB REMTEMP,SET_MODE5 ;Timer=2.25msJNB RPTVALID,EX_RSETSET_MODE5:MOV TCON_HIGH,#PT1200_HIGH ;The repeat leader code validMOV TCON_LOW,#PT1200_LOWSETB TI_CTRL ;Start 1.125ms timer

12、OPE Shanghai Module Specification Progress File17-7-30 5MOV REMMODE,#5H ;turn to mode5AJMP EX_RTNEX_RSETALL:CLR REMVALIDCLR REMTEMPCLR RPTVALIDEX_RSET:MOV REMMODE,#0HMOV REMCONT,#0HEX_RTN:POP PSWPOP DPLPOP DPHPOP ACCRETICODEMODE3:JB REM_RECEIVE,EX_RSETCLR TI_CTRLMOV A,TCON_HIGHMOV TCON_HIGH,#0HMOV T

13、CON_LOW,#R1125_PRESETB TI_CTRLCJNE A,#R1125_HIGH,MOD3_LPWR ;TCON_HIGH=0,跳转 DATA_CHK,检查 TCON_LOW。DATA_OPTN:MOV A,TEMPDATA ;data saveRRC AMOV TEMPDATA,AJNC EX_RTNMOV A,REMCONTRL AMOV DPTR,#COMP_TABJMP A+DPTRMOD3_LPWR:CJNE A,#R1125_lOW,MOD3_HPWRAJMP DATA_OPTNMOD3_HPWR:CJNE A,#R2250_HIGH2,MOD3_HPWR1SETB CAJMP DATA_OPTNMOD3_HPWR1:CJNE A,#R2250_lOW2,EX_RSETALLSETB CAJMP DATA_OPTNCOMP_TAB:OPE Shanghai Module Specification Progress File17-7-30

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号