📄 rs232串口通信实验.asm
字号:
;*************************************************************
;程序名称:RS232串口通信实验
;MCU:89S51 COLCK:11.0592MHZ
;程序编写 联系QQ:
;程序功能:单片机把数据通过串口送入电脑,电脑上用串口调试程序来接收并显示数据.
;发送数据
;单片机送入电脑的数据可以是16进制,也可是ASCII码的数据,本程序是先送16个16进制
;而后接收电脑发来的数据,并把收到的数据送回电脑
;程序最后修改时间:2008/8/1
;*************************************************************
ORG 0000H
AJMP RS232
ORG 0080H
RS232: MOV R0,#57 ;
MOV R1,#00H
; 串行口发送到电脑显示 波特率为19200.
MOV TMOD,#20H;设定T1为定时方式2
MOV TH1,#0FDH;定时初值
MOV TL1,#0FDH;
MOV PCON,#80H;波特率为19200
SETB TR1;;;;;启动定时器
MOV SCON,#50H;串口方式1
MOV R1,#00;;数据地址指针
MOV R0,#57;;;数据长度
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV DPTR,#TABLE
AAA0: MOV A,R1
MOVC A,@A+DPTR
MOV SBUF,A;发送一个数据
INC R1;;;;;;;;数据地址指针加1
AAA1: JBC TI,AAA2;;;
SJMP AAA1;;;;
AAA2: DJNZ R0,AAA0;;数据发送完了吗?
ACALL A200MS ;200MS延时
ACALL A200MS
ACALL A200MS
;功能:实现接收数据并把接收到的数据发送出去
AAA3: JBC RI,AAA4 ;接收数据
AJMP AAA3
AAA4: MOV A,SBUF
NOP
NOP
MOV SBUF,A ;数据发送出去
AAA5: JBC TI,AAA3;;;
SJMP AAA5;;;;
AJMP aaa3;RS232
A200MS: ;200MS延时
MOV R6,#00
A200MS1: MOV R7,#0EFH
A200MS2: NOP
DJNZ R7,A200MS2
DJNZ R6,A200MS1
RET
;;;;;单片机把数据通过串口送入电脑,电脑上用串口调试程序来接收并显示数据:
TABLE:DB 0B5H, 0A5H, 0C6H, 0ACH, 0BBH ,0FAH, 0B0H, 0D1H, 0CAH, 0FDH, 0BEH,
DB 0DDH, 0CDH, 0A8H, 0B9H, 0FDH, 0B4H, 0AEH, 0BFH, 0DAH, 0CBH, 0CDH, 0C8H,
DB 0EBH, 0B5H, 0E7H, 0C4H, 0D4H, 02CH, 0B5H, 0E7H, 0C4H, 0D4H, 0C9H, 0CFH,
DB 0D3H, 0C3H, 0B4H, 0AEH, 0BFH, 0DAH, 0B5H, 0F7H, 0CAH, 0D4H, 0B3H, 0CCH,
DB 0D0H, 0F2H, 0C0H, 0B4H, 0BDH, 0D3H, 0CAH, 0D5H, 0B2H, 0A2H, 0CFH, 0D4H,
DB 0CAH, 0BEH, 0CAH, 0FDH, 0BEH, 0DDH, 03AH, 00DH, 00AH,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -