t.asm

来自「鹦鹉学舌:单片机与上位机PC的通信程序设计方法: ⑴串口初始化:波特率定为48」· 汇编 代码 · 共 28 行

ASM
28
字号
	ORG 0000H
	AJMP MAIN
	ORG 0030H
MAIN:							
;----------串口初始化-----------
	MOV TMOD,#20H ;T1置方式2自动重装初始值
	MOV TH1,#0FAH ;波特率4800,方式1的波特率=T1的溢出率/32=(1/32)*f/[12*(256-TH1)]
	MOV TL1,#0FAH
	SETB TR1 ;启动T1
	MOV SCON,#50H;串行口工作于方式1,REN=1,表示允许接收数据
LOOP:	MOV R7,#1;接收数据的个数
	MOV R0,#20H;接收缓存区首址
RECEIVE:JBC RI,RE_1;等待接收,当RI=1时RI清零且转移。RI=1表示帧接收完
	SJMP RECEIVE	
RE_1:	MOV @R0,SBUF;向20H地址存储将向PC机发送的十六进制数据
	INC R0
	DJNZ R7,RECEIVE;判断数据都接收到吗?若接收完,则往下执行单片机向PC机发送数据,若没有接收完,则继续循环等待
	MOV 	R0,#20H
	MOV	R7,#1
BACK:	MOV A,@R0 ;开始往PC机发送接收缓存20H中存储的数据
	MOV	SBUF,A
SE_1:	JBC	TI,SE_2;等待发送,TI=1表示帧发送完
	AJMP	SE_1
SE_2:	DJNZ	R7,BACK
	AJMP LOOP ;开始新的一轮循环
	END

⌨️ 快捷键说明

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