c51单片机红外解码程序-汇编版和c语言版(19页).doc
《c51单片机红外解码程序-汇编版和c语言版(19页).doc》由会员分享,可在线阅读,更多相关《c51单片机红外解码程序-汇编版和c语言版(19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-c51单片机红外解码程序-汇编版和c语言版-第 19 页 纯软件解码 - 汇编版利用程序判电平和时间进行解码,缺点是浪费系统软件资源;优点是对系统硬件要求稍低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中断设定SETB ET0MOV TMOD,#0
2、1HDDXH: ;信号接收前准备SETB P2.0 ;关信号指示灯MOV P0,#0FFHCLR TR0 ;关T0中断CLR T0ZD ;接收信号时间判断MOV R5,#4 ;延时计数MOV TH0,#00HMOV TL0,#00H;=解码主要过程=关键=JB XH,$ ;等待电平变低,解码从这开始CLR P2.0 ;开信号指示灯,表示正在接收信号MOV P0,#8EH SETB TR0 ;开T0中断LCALL YS3MSJB XH,DDXH ;干扰检测LCALL YS3MSJB XH,DDXH ;干扰检测DD1:JB T0ZD,DDXH ;是否超出接收允许时间JNB XH,DD1 ;等待电平
3、变高LCALL YS3MSJNB XH,DDXH ;干扰检测 DD2:JB T0ZD,DDXH ;是否超出接收允许时间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,A
4、INC R0CJNE R0,#34H,ZJ ;四字节数据是否接收完MOV A,33HCPL ACJNE A,32H,DDXH ;键值确认,解码MOV R4,A ;=这里已经取出键值,存在R4中= MOV R7,#100;TSY:MOV R6,#255 DJNZ R6,$ CPL BB DJNZ 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_XS
5、J ;LCALL DYBF ;调用灯控制子程序LJMP DDXH ;返还等待下一次信号 YS845: ;延时845微秒MOV R7,#255DJNZ R7,$MOV R7,#165DJNZ R7,$RETYS3MS: ;延时3msMOV R7,#8DDD:MOV R6,#255DJNZ R6,$DJNZ R7,DDDRETT0ZDCX: ;T0中断程序MOV TL0,#00HMOV TH0,#00HDJNZ R5,T0FHSETB T0ZDT0FH:RETI;=以下是多余部分=DYBF:MOV A,#0C0H ;用号码前高位输出LCALL YJP_XZLMOV A,30HMOV B,#10HD
6、IV ABMOVC A,A+DPTRLCALL YJP_XSJMOV A,#0C1H ;用户码前低位输出LCALL YJP_XZLMOV A,BMOVC A,A+DPTRLCALL YJP_XSJ MOV A,#0C4H ;用户码后高位输出LCALL YJP_XZLMOV A,31HMOV B,#10HDIV ABMOVC A,A+DPTRLCALL YJP_XSJMOV A,#0C5H ;用户码后低位输出LCALL YJP_XZLMOV A,BMOVC A,A+DPTRLCALL YJP_XSJ;=此处专门针对我的开发板和遥控,不是解码的关键,只是一种应用举例MOV A,R4CJNE A,#
7、0CH,BA1 ;是否1号键按下CPL P1.0 ;点亮1号灯BA1:CJNE A,#18H,BA2 ;是否2号键按下CPL P1.1 ;点亮1号灯BA2:CJNE A,#5EH,BA3 ;是否3号键按下CPL P1.2 ;点亮1号灯BA3:CJNE A,#08H,BA4 ;是否4号键按下CPL P1.3 ;点亮1号灯BA4:CJNE A,#1CH,BA5 ;是否5号键按下CPL P1.4 ;点亮1号灯BA5:CJNE A,#5AH,BA6 ;是否6号键按下CPL P1.5 ;点亮1号灯BA6:CJNE A,#42H,BA7 ;是否7号键按下CPL P1.6 ;点亮1号灯BA7:CJNE A,
8、#52H,BAB ;是否8号键按下CPL P1.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,#83
9、H ;LCALL YJP_XZLMOV A, #47H ;G的ASCII码LCALL YJP_XSJMOV A,#85H ;LCALL YJP_XZLMOV A, #58H ;X的ASCII码LCALL YJP_XSJMOV A,#88H ;LCALL YJP_XZLMOV A, #5AH ;Z的ASCII码LCALL YJP_XSJMOV A,#89H ;LCALL YJP_XZLMOV A, #68H ;h的ASCII码LCALL YJP_XSJMOV A,#8AH ;LCALL YJP_XZLMOV A, #69H ;i的ASCII码LCALL YJP_XSJMOV A,#8CH ;LC
10、ALL YJP_XZLMOV A, #5AH ;Z的ASCII码LCALL YJP_XSJMOV A,#8DH ;LCALL YJP_XZLMOV A, #61H ;a的ASCII码LCALL YJP_XSJMOV A,#8EH ;LCALL YJP_XZLMOV A, #6FH ;o的ASCII码LCALL YJP_XSJMOV A,#0C2H ;LCALL YJP_XZLMOV A, #48H ;H的ASCII码LCALL YJP_XSJMOV A,#0C6H ;LCALL YJP_XZLMOV A, #48H ;H的ASCII码LCALL YJP_XSJMOV A,#0CAH ;LCAL
11、L YJP_XZLMOV A, #4AH ;J的ASCII码LCALL YJP_XSJMOV A,#0CBH ;LCALL YJP_XZLMOV A, #5AH ;Z的ASCII码LCALL YJP_XSJMOV A,#0CCH ;LCALL YJP_XZLMOV A, #3AH ;:的ASCII码LCALL YJP_XSJMOV A,#0CFH ;LCALL YJP_XZLMOV A, #48H ;H的ASCII码LCALL YJP_XSJRET;=写指令到液晶=YJP_XZL:LCALL CHECK_BUSY;查询忙碌状态CLR ECLR RSCLR RWSETB EMOV P0,A;写指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c51 单片机 红外 解码 程序 汇编 语言版 19
限制150内