📄 drs232send.asm
字号:
DATAIN BIT P1.0
DCLK BIT P1.1
ORG 0000H
AJMP START
ORG 0030H
START: MOV SP,#60H
MOV SCON,#01010000B ;设定串口MODE1
MOV TMOD,#20H ;设定计时器1 为模式2
ORL PCON,#10000000B ;SMOD=1,波特率为2 倍
MOV TH1,#0F4H ;设定波特率为4800
MOV TL1,#0F4H
SETB TR1 ;启动定时器
AGAIN1: MOV R2,#00H
MOV A,R2 ;发送0
AGAIN: MOV SBUF,A
JNB TI,$
CLR TI
JNB RI,$
CLR RI
MOV A,SBUF ;接收
CALL DISP
MOV A,R2
INC A
MOV R2,A
CJNE A,#0AH,AGAIN ;>9转
AJMP AGAIN1
;*****************************************************************************
; /*显示子程序*/
;*****************************************************************************
DISP: MOV DPTR,#SGTB1
MOVC A,@A+DPTR ;取字符
MOV R1,A
CALL SEND ;发送字符
MOV A,R1
CALL SEND
CALL DELAY
CALL DELAY
CALL DELAY
RET
SEND: MOV R0,#8 ;发送8位
SEND1: CLR DCLK
RLC A
MOV DATAIN,C
SETB DCLK
NOP
DJNZ R0,SEND1
SETB DATAIN
RET
;*****************************************************************************
; /*延时子程序*/
;*****************************************************************************
DELAY: MOV R6,#250 ;延时
DELAY1: MOV R7,#250
DJNZ R7,$
DJNZ R6,DELAY1
RET
;*****************************************************************************
; /*字符编码*/
;*****************************************************************************
SGTB1: DB 0C0H ;0
DB 0F9H ;1
DB 0A4H ;2
DB 0B0H ;3
DB 99H ;4
DB 92H ;5
DB 82H ;6
DB 0F8H ;7
DB 80H ;8
DB 90H ;9
DB 88H ;A
DB 83H ;B
DB 0C6H ;C
DB 0A1H ;D
DB 86H ;E
DB 8EH ;F
DB 00H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -