⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6221.asm

📁 6221红外遥控解码程序
💻 ASM
字号:
;倚天版遥控器控制显示0123456789
;***************************************************************************
;*  Date :  2003.10.22                                                     *
;*  Support telephone:  0755-27529065,27529081(51c51 test web)             *
;*  Support fax :0755-28068492 Support E-mail:sxj1974@163.com,aa815@163.com*
;*  Create by :石学军,刘永忠      www.51c51.com 更多例程请登陆网站         *
;***************************************************************************
	org 00h
	ORG 0000H 
START:
	MOV P0,#0ffH
	MOV P1,#0FFH
	MOV P2,#0FFH
	MOV P3,#0FFH
	JNB P3.7,$	;等待遥控信号出现
	MOV R6,#10
SB: 	ACALL YS1	;调用882微秒延时子程序
	JB P3.7,START	;延时882微秒后判断P3.7脚是否出现高电平如果有就退出解码程序
	DJNZ R6, SB	;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
	JNB P3.7, $ 	;等待高电平避开9毫秒低电平引导脉冲
	ACALL YS2 	;延时4.74毫秒避开4.5毫秒的结果码
	MOV R1,#1AH 	;设定1AH为起始RAM区
	MOV R2,#4 
	PP: MOV R3,#8
JJJJ: JNB P3.7,$ 	;等待地址码第一位的高电平信号
	LCALL YS1 	;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
	MOV C,P3.7  	;将P3.7引脚此时的电平状态0或1存入C中
	JNC UUU     	;如果为0就跳转到UUU
	LCALL YS3
	JB P3.7,$   	;如果为1就等待高电平信号结束
UUU:	MOV A,@R1 	;将R1中地址的给A
	RC A            ;将C中的值0或1移入A中的最低位
	MOV @R1,A       ;将A中的数暂时存放在R1中
	DJNZ R3,JJJJ    ;接收地址码的高8位
	INC R1      	;对R1中的值加1,换成下一个RAM
	DJNZ R2,PP  	;接收完16位地址码和8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH的RAM中
;以下对代码是否正确和定义进行识别
	MOV A,1AH	;比较高8位地址码
	XRL A,#00000000B ;判断1AH的值是否等于00000000,相等的话A为0
	JNZ EXIT	;如果不相等说明解码失败退出解码程序
	MOV A,1BH	;比较低8位地址
	XRL A,#11111111B ;再判断高8位地址是否正确
	JNZ EXIT	;如果不相等说明解码失败退出解码程序
	LCALL YS3
	MOV A,1CH	;比较数据码和数据反码是否正确?
	CPL A
	XRL A,1DH 	;将1CH的值取反后和1DH比较 不同则无效丢弃,核对数据是否准确
	JNZ EXIT	;如果不相等说明解码失败退出解码程序
	LCALL YS3
	CLR P2.6 	;选中数码管
	CLR P3.3	;解码成功喇叭响

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -