📄 serial.asm
字号:
;每个串行中断发送一次30H~32H中的十六进制数,1sm延时保证同步
ORG 0000H
LJMP START
ORG 0023H
LJMP SINT
ORG 30H
START:MOV 30H,#0FFH;向存储区内送数
MOV 31H,#0FFH
MOV 32H,#0FFH
MOV TMOD,#20H ;定时器1初始化
MOV TH1,#0F3H ;设置波特率为1200MHz,6MHz的晶振
MOV TL1,#0F3H ;
MOV SCON,#50H ;串口初始化为可以接收
MOV PCON,#00H ;波特率不倍增
SETB TR1 ;启动定时器
SETB EA ;开中断
SETB ES ;允许串口中断
MOV R0,#30H;定义数据存储区首地址和个数
MOV R3,#3
MAIN:NOP ;主程序主要是等中断
NOP
SJMP MAIN
SINT:CLR EA ;关闭系统中断
CLR RI ;清除中断标志位
SENT:MOV A,@R0
MOV SBUF,A
WAIT:JNB TI,WAIT
LCALL DELAY
CLR TI
INC R0
DJNZ R3,SENT
MOV R0,#30H
MOV R3,#3
NEXT:CLR RI ;清除中断标志位
SETB EA ;打开系统中断
RETI ;中断程序返回
DELAY:MOV R6,#02H
AGAIN:MOV R7,#0F8H
DELAY1:DJNZ R7,DELAY1
DJNZ R6,AGAIN
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -