005b.asm

来自「盛方学习板单片机实验全部源码 新手宝典」· 汇编 代码 · 共 44 行

ASM
44
字号
/***************************************************************************
****************************************************************************
*           description:
*           双机通信,乙机接收程序

***************************************************************************
***************************************************************************/

    	MOV	TMOD,	#20H
	MOV	TH1,	#0F3H
	MOV	TL1,	#0F3H
	SETB	TR1
	MOV	SCON,	#50H			;串行通信方式1,允许接收
RPT:	MOV	R1,	#20H			;置接收缓冲区首址
L0:	JBC	RI,	L1
	AJMP	L0
L1:	MOV	A,	SBUF			;接收数据长度
	MOV	R6,	A
	MOV	R5,	#00H			;累加和寄存器清0
WTD:	JBC	RI,	L2
	AJMP	WTD
L2:	MOV	A,	SBUF			;接收数据
	MOV	@R0,	A
	INC	R0
	ADD	A,	R5
	MOV	R5,	A			;计算累加效验和
	DJNZ	R6,	WTD			;未接收完,继续
L5:	JBC	RI,	L4			;接收对方发来的效验和
	AJMP	L5
L4:	MOV	A,	SBUF
	XRL	A,	R5			;接收的效验码和计算的效验码是											
						;否相同
	MOV	R5,	#00H
	JZ		L6			;同,转L6
	MOV	SBUF,	#0FFH			;不同,出错发送0FFH
L8:	JBC	TI,	L7
	AJMP	L8				;等待0FFH发送完
L7:	AJMP	RPT				;重新接收
L6:	MOV	SBUF,	#00H			;正确,发送00H
L9:	JBC	TI,	L10
	AJMP	L9				;等待00H发送完
L10:	RET
	END

⌨️ 快捷键说明

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