📄 ex8-1ba.asm
字号:
$include (STC12C5A.INC) ;包含STC12C5A60S2单片机寄存器定义文件
ADDRR EQU 0100H
ORG 0000H
LJMP MAINR ;转主程序
ORG 0023H
LJMP INTSE2 ;转串行口中断服务程序
ORG 0100H
MAINR:MOV SP,#60H ;设置堆栈指针
MOV SCON,#01010000B ;置串行口工作方式1,允许接收
MOV TMOD,#20H ;定时器1为工作方式2
MOV TH1,#0FDH ;产生9600bps的时间常数
MOV TL1,#0FDH
SETB TR1 ;启动定时器1
SETB ES ;串行口开中断
SETB EA ;开中断
MOV DPTR,#ADDRR ;数据缓冲区首址送DPTR
MOV R0,#00H ;置传送字节数初值
SJMP $ ;等待中断
;中断服务程序
INTSE2:CLR RI ;清接收中断标志
MOV A,SBUF ;取接收的数据
MOVX @DPTR,A ;接收的数据送缓冲区
CJNE R0,#7FH,LOOPR ;判别接收完没有。若没有,转LOOPR继续接收
CLR ES ;若接收完,则关串行口中断
LJMP ENDR
LOOPR:INC R0 ;修改计数指针
INC DPTR ;修改地址指针
ENDR:RETI ;中断返回
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -