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

📄 rf.asm

📁 说明: 1. DL1MS: 延时1ms 子程序, DL01MS : 延时0.1ms 子程序 2. MOV R0,#80H 红外接收的数据的地址 80H~8DH 3. SHOW_RFCO
💻 ASM
字号:
	  IRDA_RD_BIT	BIT	P3.3	    ; 红外接收

	RF_JS:	CLR	EA		    ; 红外接收及译码程序
		MOV	R0,#80H
		SETB	IRDA_RD_BIT
	RF_1:	JNB	IRDA_RD_BIT,RF_2
		RET
	RF_2:	LCALL	DL1MS
		LCALL	DL1MS
		JB	IRDA_RD_BIT,RF_1    ; 消抖动,确认信号
		JNB	IRDA_RD_BIT,$	    ; 等待高电平
		MOV	R3,#00H		    ; 8位计数初始化
	RF_3:	JB	IRDA_RD_BIT,$	    ; 开始等待低电平
		JNB	IRDA_RD_BIT,$	    ; 再等高电平
		MOV	R2,#00H		    ; 0.1ms延时几次
	RF_4:	LCALL	DL01MS 
		JNB	IRDA_RD_BIT,RF_5    ; 高电平结束
		INC	R2		    ; 次数加一
		CJNE	R2,#30,RF_4	    ; 计数超过30次自动结束
		LJMP	RF_CODE
	RF_5:	MOV	A,#08H
		CLR	C
		SUBB	A,R2		    ; 用进位C判别信号是0还是1
		MOV	A,@R0
		RRC	A		    ; 右移入寄存器
		MOV	@R0,A		    ; 重新存入内存单元
		INC	R3		    ; 判别下一位
		CJNE	R3,#08H,RF_3	    ; 8位没到继续判别
		MOV	R3,#00H		    ; 8位到,清位计数器
		INC	R0		    ; 接收下一个字节
		CJNE	R0,#8EH,RF_3
	RF_CODE:LCALL	SHOW_RFCODE
		SETB	EA
		RET


说明:
1.	DL1MS:    延时1ms 子程序,    	DL01MS : 延时0.1ms 子程序

2.	MOV	R0,#80H    红外接收的数据的地址  80H~8DH

3.	SHOW_RFCODE  在LCD上显示红外接收的数据(演示用)

4.   	在中断中建立红外接收数据标记,在主程序中调用RF_JS

⌨️ 快捷键说明

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