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

上传人:hs****ma 文档编号:473064422 上传时间:2023-08-20 格式:DOC 页数:27 大小:209KB
返回 下载 相关 举报
c51单片机红外解码程序-汇编版和c语言版_第1页
第1页 / 共27页
c51单片机红外解码程序-汇编版和c语言版_第2页
第2页 / 共27页
c51单片机红外解码程序-汇编版和c语言版_第3页
第3页 / 共27页
c51单片机红外解码程序-汇编版和c语言版_第4页
第4页 / 共27页
c51单片机红外解码程序-汇编版和c语言版_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《c51单片机红外解码程序-汇编版和c语言版》由会员分享,可在线阅读,更多相关《c51单片机红外解码程序-汇编版和c语言版(27页珍藏版)》请在金锄头文库上搜索。

1、纯软件解码 - 汇编版利用程序判电平和时间进行解码,缺点是浪费系统软件资源;优点是对系统硬件 要求稍低ORG 0000HT0ZD BIT 20H.2XH BIT P3.3 ; 红外接收头数据接口RS BIT P2.3RW BIT P2.4E BIT P2.5BB BIT P3.6ORG 0000H ;AJMP MAINORG 000BH;T0 中断入口LJMP T0ZDCXORG 0100H; 主程序首地址MAIN:LCALL CSHMOV DPTR,#TAB ; 总查表SETB EA ;T0 中断设定SETBMOVET0TMOD,#01HDDXHJ信号接收前准备SETBP2.0 ;关信号指示

2、灯MOVP0,#0FFHCLRTR0 ;关 T0 中断CLRT0ZD ;接收信号时间判断MOVR5,#4; 延时计数MOVTH0,#00HMOVTL0,#00H解码主要过程 = 关键JBXH,$ ;等待电平变低,解码从这开始CLRP2.0; 开信号指示灯,表示正在接收信号MOVP0,#8EHSETBTR0; 开 T0 中断LCALL YS3MSJBXH,DDXH; 干扰检测LCALL YS3MSJBXH,DDXH; 干扰检测DD1:JBT0ZD,DDXH; 是否超出接收允许时间JNBXH,DD1; 等待电平变高LCALL YS3MSJNB XH,DDXH ; 干扰检测DD2:JB T0ZD,D

3、DXH ; 是否超出接收允许时间JB XH,DD2 ; 等待电平变低JSSJ: ; 信号确认,开始接收数据MOV R0,#30HZJ: ; 接收一个字节数据MOV R2,#8WEI: ; 位数据,分辩 0 和 1JB T0ZD,DDXH ; 是否超出接收允许时间JNB XH,WEI; 等待电平变高LCALL YS845MOV C,XH; 取位数据RRC ADD3:JB T0ZD,DDXH ; 是否超出接收允许时间JB XH,DD3 ; 等待电平变低,为 1 的高电平提供过度DJNZ R2,WEI ;8 位数据是否接收完MOV R0,AINC R0CJNE R0,#34H,ZJ ; 四字节数据是

4、否接收完MOVA,33HCPLACJNEA,32H,DDXH; 键值确认,解码MOVR4,AR4 中;= 这里已经取出键值,存在MOV R7,#100;TSY:MOV R6,#255DJNZ R6,$CPL BBDJNZ R7,TSYMOV A,#0CDH ; 键值高位输出LCALL YJP_XZLMOV A,R4MOV B,#10HDIV ABMOVC A,A+DPTRLCALL YJP_XSJMOV A,#0CEH ; 键值低位输出LCALL YJP_XZLMOV A,BMOVC A,A+DPTRLCALL YJP_XSJ ;LCALL DYBF ; 调用灯控制子程序LJMP DDXH返还

5、等待下一次信号YS845: ; 延时 845 微秒MOV R7,#255DJNZ R7,$MOV R7,#165DJNZ R7,$RETYS3MS: ; 延时 3msMOV R7,#8DDD:MOV R6,#255DJNZ R6,$DJNZ R7,DDD;T0 中断程序RETT0ZDCX:MOVTL0,#00HMOVTH0,#00HDJNZR5,T0FHSETBT0ZDT0FH:RETI以下是多余部分DYBF:MOV A,#0C0H ; 用号码前高位输出LCALL YJP_XZLMOV A,30HMOV B,#10HDIV AB MOVC A,A+DPTRLCALL YJP_XSJMOV A,

6、#0C1H ; 用户码前低位输出LCALL YJP_XZLMOV A,BMOVC A,A+DPTRLCALL YJP_XSJMOV A,#0C4H ; 用户码后高位输出LCALL YJP_XZLMOV A,31HMOV B,#10HDIV AB MOVC A,A+DPTRLCALL YJP_XSJMOV A,#0C5H ; 用户码后低位输出LCALL YJP_XZLMOV A,BMOVC A,A+DPTRLCALL YJP_XSJ= 此处专门针对我的开发板和遥控,不是解码的关键,只是种应用举例MOVA,R4CJNEA,#0CH,BA1; 是否 1 号键按下CPLP1.0 ;点亮 1 号灯BA1

7、:CJNEA,#18H,BA2; 是否 2 号键按下CPLP1.1 ;点亮 1 号灯BA2:CJNEA,#5EH,BA3; 是否 3 号键按下CPLP1.2 ;点亮 1 号灯BA3:CJNEA,#08H,BA4; 是否 4 号键按下CPLP1.3 ;点亮 1 号灯BA4:CJNEA,#1CH,BA5; 是否 5 号键按下CPLP1.4 ;点亮 1 号灯BA5:CJNEA,#5AH,BA6; 是否 6 号键按下CPLP1.5 ;点亮 1 号灯BA6:CJNEA,#42H,BA7; 是否 7 号键按下CPLP1.6 ;点亮 1 号灯BA7:CJNEA,#52H,BAB; 是否 8 号键按下CPLP

8、1.7 ;点亮 1 号灯BAB:RETCSH:;= 液晶初始化 =MOV A, #00111000B ;8 位数据,双行显示, 5-7 字型LCALL YJP_XZL ; 调用写液晶指令MOV A, #00001100B ; 显示屏开启,光标出现在地址计数器位置,光标不闪烁LCALL YJP_XZL ; 调用写液晶指令MOV A, #00000110B ; 光标右移一格, AC 值加一,字符全部不动LCALL YJP_XZL ; 调用写液晶指令MOV A,#81H ;LCALL YJP_XZLMOV A, #4CH ;L 的 ASCII 码LCALL YJP_XSJMOV A,#83HLCAL

9、L YJP_XZLMOV A, #47H;G 的 ASCII 码LCALL YJP_XSJMOV A,#85HLCALL YJP_XZLMOV A, #58H;X 的 ASCII 码LCALL YJP_XSJMOV A,#88H ;LCALL YJP_XZLMOV A, #5AH ;Z 的 ASCII 码LCALL YJP_XSJ MOV A,#89H ;LCALL YJP_XZLMOV A, #68H;hLCALL YJP_XSJMOV A,#8AH ;LCALL YJP_XZLMOV A, #69H;iLCALL YJP_XSJMOV A,#8CH ;LCALL YJP_XZLMOV A,

10、 #5AH;ZLCALL YJP_XSJMOV A,#8DH ;LCALL YJP_XZLMOV A, #61H;aLCALL YJP_XSJMOV A,#8EH ;LCALL YJP_XZLMOV A, #6FH;oLCALL YJP_XSJMOV A,#0C2H ;LCALL YJP_XZLMOV A, #48H;HLCALL YJP_XSJ MOV A,#0C6H ;LCALL YJP_XZLMOV A, #48H;H的 ASCII 码的 ASCII 码的 ASCII 码的 ASCII 码的 ASCII 码的 ASCII 码的 ASCII 码LCALL YJP_XSJMOV A,#0CA

11、HLCALL YJP_XZLMOV A, #4AHLCALL YJP_XSJMOV A,#0CBHLCALL YJP_XZLMOV A, #5AHLCALL YJP_XSJMOV A,#0CCHLCALL YJP_XZLMOV A, #3AHLCALL YJP_XSJMOV A,#0CFHLCALL YJP_XZLMOV A, #48HLCALL YJP_XSJRET;J 的 ASCII 码;Z 的 ASCII 码的 ASCII 码;H 的 ASCII 码;= 写指令到液晶 =YJP_XZL:LCALL CHECK_BUSY;查询忙碌状态CLR ECLR RSCLR RWSETB EMOV P

12、0,A; 写指令CLR ERET;= 写数据到液晶 =YJP_XSJ:LCALL CHECK_BUSY;查询忙碌状态CLRESETBRSCLRRWSETBEMOVP0,A; 写数据CLRERET;= 查询忙碌标志CHECK_BUSY:PUSHACCBUSYLOOP:CLRESETBRWCLRRSSETBEMOVA,P0; 读取状态JB p0.7,BUSY_LOOPPOPACCLCALL DELRETDEL: MOV R6,#5L1: MOV R7,#248DJNZ R7,$DJNZ R6,L1RETTAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39HDB 41H,42H,43H,44H,45H,46HEND中断加定时器 -C 语言版优点:完全是状态解码,极少的占用系统软件资源(CPU),随时都可以解码,而不管系统此时运行到何处。缺点:占用系统两个硬件资源,一个外部中断和一个定时器。土*六哥红外解码程序*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

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