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

📄 u1_2.asm

📁 单片机双机通信(较强的抗干扰能了和纠错能力)
💻 ASM
字号:
;===========================================================
;无线模块调试程序:U1波特率9600,U1中40H-43H存储数据段
;一秒钟后U1把数据通过串行通信传至U2
;双机通信u1LED2.4.6.8(点亮个数)显示,U2进行1.3.5.7的显示
;系统采用的是一应一答的方式
;很好的抗干扰性!纠错能力也较强!
;============================================================
	ORG	0
	LJMP	START
	ORG	0BH ;T0中断向量
	LJMP	TS
	ORG	23H ;串行中断向量
	LJMP	TII
	ORG	30H
START:	MOV	40H, #01H;数据地址赋值
	MOV	41H, #07H	
	MOV	42H, #1FH	
	MOV	43H, #7FH
	MOV	R3,  #0AAH;;;;;接受正确代码AA。
	MOV	R4,  #90H;;;;错误发送90H		
	MOV	R0, #40H
	MOV	R1,#04H	
	MOV	SP,#70H
	MOV	TMOD,#21H ;T1方式2,T0方式0,定时
    	MOV	PCON,#00H ;波特率不加倍
	MOV	TH1,#0FDH ;对于11.0592MHz的晶振,波特率为9600
	MOV	TL1,#0FDH
	SETB	TR1
	MOV	SCON,#50H;串口工作在方式1,允许接收
	MOV	TH0,#4CH;11.0592MHz晶振下的50ms定时常数
	MOV	TL0,#0
	MOV	R2,#20	;1秒钟计数初值
	SETB	ET0
	SETB	ES
	SETB	EA
	SETB	TR0
WAIT:	SJMP $
TS:	MOV	TH0,#4CH
	MOV	TL0,#0
	DJNZ	R2,TR_END
	MOV	R2,#20
	MOV	A,@R0
	MOV	SBUF,A
	RETI
TII:	JNB	TI,RII
	CLR	TI	
TR_END:	RETI
RII:	JNB	RI,TR_END
	CLR	RI
	MOV	A,SBUF
	MOV	50H,A
	CJNE	A,#0AAH,L1;接收AA正确返回
	LJMP	RIGHT
L1:	CJNE	A,#90H,	L2;90为错误,送上次R0值给SBUF
	LJMP	ERR	
L2:	CPL	A
	MOV	P1,A
	SETB	TR0	
	MOV	SBUF,R3	;数据正确发送80H
	RETI
RIGHT:	INC	R0
	CLR	TR0	
	DJNZ	R1, TR_END
	MOV	R0, #40H
	MOV	R1, #04
	RETI
ERR:	MOV	SBUF,@R0;处理发送错误,再次发送上次r0值
	RETI
ERR0:	MOV	SBUF,R4;错误发送代码90
	RETI
	END

⌨️ 快捷键说明

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