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

📄 ex8-3ba.asm

📁 《增强型8051单片机实用开发技术》例程代码
💻 ASM
字号:
$include (STC12C5A.INC) ;包含STC12C5A60S2单片机寄存器定义文件
ADDRR	EQU		0000H
SLAVE	EQU		5			;从机地址号
	ORG		0000H
	LJMP	MAINR			;从机主程序入口地址
	ORG		0023H
	LJMP	INTSR			;串行口中断入口地址
	ORG		0100H
MAINR:MOV	SP,#60H
	MOV		SCON,#0F0H		;串行口方式3,SM2=1,REN=1,接收状态
	MOV		TMOD,#20H		;置T1为工作方式2
	MOV		TH1,#0FAH		;置4800波特率
	MOV		TL1,#0FAH		;相应的时间常数
	MOV		DPTR,#ADDRR		;置数据地址指针
	MOV		R0,#0AH			;置接收数据字节数指针
	SETB	TR1				;启动T1
	SETB	ES				;串行口开中断
	SETB	EA				;CPU开中断
	SJMP	$				;等待中断
INTSR:CLR	RI				;清接收中断标志
	MOV		A,SBUF			;取接收信息
	MOV		C,RB8			;取RB8(信息特征位)→C
	JNC		LOOPR1			;RB8=0为数据帧信息,转LOOPR1
	XRL		A,#SLAVE		;RB8=1为地址帧信息,与本机地址号SLAVE相比较
	JZ		LOOPR2			;地址相等,则转LOOPR2
	LJMP	ENDR			;地址不相等,则转中断返回ENDR
LOOPR2:CLR	SM2				;清SM2,为后面接收数据帧信息作准备
	LJMP	ENDR			;中断返回
LOOPR1:MOVX	@DPTR,A			;接收的数据→数据缓冲区
	INC		DPTR			;修改地址指针
	DJNZ	R0,ENDR			;数据字节没全部接收完,则转LOOPR2
	SETB	SM2				;全部接收完,置SM2=1
ENDR:RETI				    ;中断返回
	END

⌨️ 快捷键说明

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