📄 ex8-1aa.asm
字号:
$include (STC12C5A.INC) ;包含STC12C5A60S2单片机寄存器定义文件
ADDRT EQU 0100H
ORG 0000H
LJMP MAINT ;跳至主程序入口
ORG 0023H
LJMP INTSE1 ;转至串行中断服务程序
ORG 0100H
MAINT: MOV SP,#60H ;设置堆栈指针
MOV SCON,#01000000B ;置串行口工作方式1
MOV TMOD,#20H ;定时器1为工作方式2
MOV TH1,#0FDH ;产生9600bps的时间常数
MOV TL1,#0FDH
SETB TR1 ;启动定时器1
SETB ES ;串行口开中断
SETB EA ;开中断
MOV DPTR,#ADDRT ;ADDRT是首址,可以使用EQU定义
MOV R0,#00H ;传送字节数初值
MOVX A,@DPTR ;取第一个发送字节
MOV SBUF,A ;启动串行口发送
SJMP $ ;等待中断
;中断服务程序
INTSE1: CLR TI ;将中断标志清零
CJNE R0,#7FH,LOOPT ;判断128B是否发送完,若没完,则转LOOPT继续取下一发送数据
CLR ES ;全部发送完毕,禁止串行口中断
LJMP ENDT ;转中断返回
LOOPT:INC R0 ;修改字节数指针
INC DPTR ;修改地址指针
MOVX A,@DPTR ;取发送数据
MOV SBUF,A ;启动串行口
ENDT:RETI ;中断返回
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -