文档详情

c51单片机红外解码程序-汇编版和c语言版.pdf

发布:2019-09-20约1.54万字共25页下载文档
文本预览下载声明
纯软件解码 汇编版 利用程序判电平和时间进行解码,缺点是浪费系统软件资源;优点是对系统硬件 要求稍低 ORG 0000H T0ZD BIT 20H.2 XH BIT P3.3 ; 红外接收头数据接口 RS BIT P2.3 RW BIT P2.4 E BIT P2.5 BB BIT P3.6 ORG 0000H ; AJMP MAIN ORG 000BH ;T0 中断入口 LJMP T0ZDCX ORG 0100H ; 主程序首地址 MAIN: LCALL CSH MOV DPTR,#TAB ; 总查表 SETB EA ;T0 中断设定 SETB ET0 MOV TMOD,#01H DDXH: ; 信号接收前准备 SETB P2.0 ; 关信号指示灯 MOV P0,#0FFH CLR TR0 ; 关 T0 中断 CLR T0ZD ; 接收信号时间判断 MOV R5,#4 ; 延时计数 MOV TH0,#00H MOV TL0,#00H ;================ 解码主要过程 =========== 关键 =================================================== ========= JB XH,$ ; 等待电平变低,解码从这开始 CLR P2.0 ; 开信号指示灯,表示正在接收信号 MOV P0,#8EH SETB TR0 ; 开 T0 中断 LCALL YS3MS JB XH,DDXH ; 干扰检测 LCALL YS3MS JB XH,DDXH ; 干扰检测 DD1: JB T0ZD,DDXH ; 是否超出接收允许时间 JNB XH,DD1 ; 等待电平变高 LCALL YS3MS JNB XH,DDXH ; 干扰检测 DD2: JB T0ZD,DDXH ; 是否超出接收允许时间 JB XH,DD2 ; 等待电平变低 JSSJ: ; 信号确认,开始接收数据 MOV R0,#30H ZJ: ; 接收一个字节数据 MOV R2,#8 WEI: ; 位数据,分辩 0 和 1 JB T0ZD,DDXH ; 是否超出接收允许时间 JNB XH,WEI ; 等待电平变高 LCALL YS845 MOV C,XH ; 取位数据 RRC A DD3: JB T0ZD,DDXH ; 是否超出接收允许时间 JB XH,DD3 ; 等待电平变低,为 1 的高电平提供过度 DJNZ R2,WEI ;8 位数据是否接收完 MOV @R0,A INC R0 CJNE R0,#34H,ZJ ; 四字节数据是否接收
显示全部
相似文档