c单片机红外解码程序汇编版和c语言版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c单片机红外解码程序汇编版和c语言版
集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-
纯软件解码 --- 汇编版
利用程序判电平和时间进行解码,缺点是浪费系统软件资源;优点是对系统硬件要求稍低
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 ;四字节数据是否接收完
MOV A,33H
CPL A
CJNE A,32H,DDXH ;键值确认,解码
MOV R4,A
;==========这里已经取出键值,存在R4中
==================================================
MOV R7,#100;
TSY:MOV R6,#255
DJNZ R6,$
CPL BB
DJNZ R7,TSY
MOV A,#0CDH ;键值高位输出
LCALL YJP_XZL
MOV A,R4
MOV B,#10H
DIV AB
MOVC A,@A+DPTR
LCALL YJP_XSJ
MOV A,#0CEH ;键值低位输出
LCALL YJP_XZL
MOV A,B
MOVC A,@A+DPTR
LCALL YJP_XSJ ;
LCALL DYBF ;调用灯控制子程序
LJMP DDXH ;返还等待下一次信号
YS845: ;延时845微秒
MOV R7,#255
DJNZ R7,$
MOV R7,#165
DJNZ R7,$
RET
YS3MS: ;延时3ms
MOV R7,#8
DDD:
MOV R6,#255
DJNZ R6,$
DJNZ R7,DDD
RET
T0ZDCX: ;T0中断程序
MOV TL0,#00H
MOV TH0,#00H
DJNZ R5,T0FH
SETB T0ZD
T0FH:
RETI
;===============以下是多余部分
=============================================================== ============
DYBF:
MOV A,#0C0H ;用号码前高位输出
LCALL YJP_XZL
MOV A,30H
MOV B,#10H
DIV AB
MOVC A,@A+DPTR
LCALL YJP_XSJ