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

📄 ex8-2ba.asm

📁 《增强型8051单片机实用开发技术》例程代码
💻 ASM
字号:
$include (STC12C5A.INC) 	;包含STC12C5A60S2单片机寄存器定义文件
ADDRR	EQU	0100H
	ORG		0000H 
	LJMP	MAINR	  	;主程序入口
	ORG		0023H		;串行中断入口地址
	LJMP	INTSER		;转至串行口中断服务程序
	ORG		0100H
MAINR:MOV	SP,#60H
	MOV		PCON,#80H	;波特率加倍
	MOV		SCON,#10010000B	;置串行口为工作方式2,允许接收
	MOV		DPTR,#ADDRR	;数据指针首址
	MOV		R0,#00H		;接收数据字节数初值
	SETB	ES			;串行口开中断
	SETB	EA			;CPU开中断
	SJMP	$			;等待中断串行口中断服务程序:
INTSER:JB     	RI,LOOPR1      	;判断是否接收中断,若RI=1,则转接收程序入口
	CLR    	TI			;若RI=0,必有TI=1,是发送中断,故应清零
	LJMP	ENDR		;跳至中断返回程序
LOOPR1:CLR	RI			;清接收中断标志
	MOV		A,SBUF		;读取接收的数据
	MOV		C,P			;奇偶校验
	JC		LOOPR2		;如8位数为奇,则转LOOPR2再检测RB8位
	ORL    	C,RB8		;8位数为偶,若RB8=1,则奇偶校验错误,转LOOPR3
	JC		LOOPR3
	LJMP	LOOPR4		;补偶正确,转LOOPR4
LOOPR2:ANL	C,RB8		;8位数为奇,再检测RB8位
	JC		LOOPR4		;RB8=1,补偶正确,转LOOPR4
LOOPR3:MOV  A,#0FFH		;发出应答信息"0FFH"给甲机,表明数据不正确
	MOV		SBUF,A
	LJMP	ENDR		;跳至中断返回程序
LOOPR4:MOVX	@DPTR,A		;将接收的正确数据送数据缓冲区
	MOV		A,#00H		;发出应答信息"00H"给甲机,表明数据传送正确,
;甲机应发送下一个数据
	MOV		SBUF,A
	INC		R0			;修改指针
	INC		DPTR		
	CJNE   	R0,#80H,ENDR;若128B数据没有接收完毕,则跳至中断返回
	CLR		ES			;接收完毕,关串行口中断
ENDR:RETI				;中断返回
	END

⌨️ 快捷键说明

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