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

📄 serial.asm

📁 这 是 单 片 机 一个串行口方式1用法的例子
💻 ASM
字号:
;这是一个串行口方式1用法的例子
;系统的晶振频率11.0592MHz,通信波特率9600
;要求每秒钟将以ADDR1为首地址的内部RAM8字节数据块发送出去
;接收的数据块长为8字节,收到后存放到ADDR2为首地址的内部RAM中
ADDR1	EQU	30H
ADDR2	EQU	40H
SEC	BIT	00H	;秒标志
CR2	EQU	0AH	;1区R2
BR0	EQU	10H	;2区R0
BR1	EQU	11H	;2区R1
BR2	EQU	12H	;2区R2
BR3	EQU	13H	;2区R3
	ORG	0
	LJMP	START
	ORG	0BH
	LJMP	TS
	ORG	23H
	LJMP	TR
	ORG	30H
START:	MOV	SP,#60H
;==============================================
;给发送缓冲区赋值
;==============================================
	MOV	R0,#ADDR1
	MOV	R2,#8
	MOV	A,#30H
LL1:	MOV	@R0,A
	INC	A
	INC	R0
	DJNZ	R2,LL1
;=============================================
	MOV	TMOD,#21H
	MOV	TH0,#4CH
	MOV	TL0,#0		;50mS定时初值
	MOV	TH1,#0FDH
	MOV	TL1,#0FDH	;9600波特
	ANL	PCON,#7FH
	MOV	SCON,#50H
	SETB	ET0
	SETB	ES
	SETB	PT0
	SETB	EA
	MOV	BR0,#ADDR1
	MOV	BR1,#ADDR2
	MOV	BR2,#8
	MOV	BR3,#8
	MOV	CR2,#20
	CLR	SEC
	SETB	TR0
	SETB	TR1
LOOP:	JNB	SEC,$
	CLR	SEC
	MOV	R0,BR0
	MOV	A,@R0
	MOV	SBUF,A	;启动发送,发送第一个字节
	SJMP	LOOP	;等待下一秒钟时间到
TS:	PUSH	PSW
	SETB	RS0
	CLR	RS1	;选1区工作寄存器
	CLR	TR0
	MOV	TH0,#4CH
	MOV	TL0,#0
	SETB	TR0
	DJNZ	R2,TS1
	MOV	R2,#20
	SETB	SEC
TS1:	POP	PSW
	RETI
TR:	PUSH	PSW
	PUSH	ACC
	SETB	RS1
	CLR	RS0	;选择2区工作寄存器
	JNB	TI,SR2
	CLR	TI
	DJNZ	R2,SR1
	MOV	R0,#ADDR1
	MOV	R2,#8
	SJMP	SR2
SR1:	INC	R0
	MOV	A,@R0
	MOV	SBUF,A
SR2:	JNB	RI,SR3
	CLR	RI
	MOV	A,SBUF
	MOV	@R1,A
	INC	R1
	DJNZ	R3,SR3
	MOV	R1,#ADDR2
	MOV	R3,#8
SR3:	POP	ACC
	POP	PSW
	RETI
	END

⌨️ 快捷键说明

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