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

📄 接收.asm

📁 红外接受的发送程序载波38k
💻 ASM
字号:
r_byte_i equ 30h	;30H代表中断接收到的字节数
r_byte_in equ 31h	;中断需要接收的字节数
r_data_i equ 32h	;中断接收使用的数据
r_bit_i	 equ 33h	;中断接收的位数	
r_data_l equ 34h	;接收的临时数据

r_addr_i equ 20h	;中断接收到的字节的起始单元

	org 0000h
	ajmp start
	org 0003h
	ajmp int_outside
	org 0003h
	ajmp int_outside
	org 0040h
start:
	mov sp,#60h
	mov r_bit_i,#0	
	
	mov a,#0
	mov p1,#00111111b
	setb p3.2
	setb p3.3
	clr p3.7
	setb ea
	setb it0
	setb ex0
	mov r_data_i,#0
	mov r_byte_i,#0	
	mov r0,#20h	
	mov r_byte_in,#1
	lcall rece_onebyte_int0
	mov p1,r_data_l
	
	
	ajmp $
	

rece_severalbyte_int0:		;中断接收多字节
rre:
	lcall rece_onebyte_int0
	mov @r0,r_data_l
	inc r_byte_i
	inc r0
	djnz r_byte_in,	rre
	ret


rece_onebyte_int0:		;中断接收1字节
coo:
	mov r2,r_bit_i
	cjne r2,#8,coo
	mov r_bit_i,#0
	mov r_data_l,r_data_i
	mov r_data_i,#0
	ret




int_outside:				;外中断
	push psw
	push acc
        nop
        nop
	mov a,r_data_i
	rl a
	mov r3,#0
test:					;5条指令数数
	jb p3.3,out
	inc r3
	ajmp test
out:
	cjne r3,#70,j70
j70:
	jnc up70
	ajmp error
up70:
	cjne r3,#110,j110
j110:
	jnc up110
	ajmp exit
up110:
	cjne r3,#140,j140
j140:
	jnc up140
	ajmp error
up140:
	cjne r3,#180,j180
j180:
	jnc up180	
	inc a
	ajmp exit
up180:
	ajmp error
exit:
	inc r_bit_i
	ajmp last
error:
	rr a
last:
	mov r_data_i,a
	pop acc
	pop psw	
	reti

	end

⌨️ 快捷键说明

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