1、利用单片机的串口用查询方式发送英文字符的 ASCII 码,波特率为 9600,可以在示波器上正确显示时序波形。
2、 在 PC 机上通过串口调试软件发送英文字符,单片机端通过中断方式接收并应答相同的字符。
在发送时,采用查询方式,因为发送时是 CPU 主动的行为,一般不需要额外的使用中断,但是在接受时,CPU 处于被动状态,如果不适用中断,需要 CPU 一直处于查询状态,才能确保每个数据都被接受,比较浪费资源,这时采用中断的方式是一种比较好的选择
中断接收 -------------脱机运行
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP INTT0
ORG 0100H
MAIN: MOV TMOD,#20H ;方式 2 计时
MOV TH1, #0FDH ;波特率 9600
MOV TL1, #0FDH
MOV SCON, #50H ;方式 1 串口通信,允许接收
MOV PCON, #00H
MOV 8EH,#00H;
SETB TR1 ;开始计时
SETB ES ;允许串行口中断
SETB EA ;允许 CPU 中断
SJMP $
INTT0:
CLR RI ;接收数据完毕,中断标志位复位
MOV A,SBUF ;读取接收数据
MOV SBUF,A ;应答相同数据
LOOP: JNB TI,LOOP ;等待一帧数据发送结束
CLR TI ;发送数据完毕,中断标志位复位
RETI ;中断返回
END
查询发送
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV TMOD,#20H ;设置定时器 T1 为方式 2
MOV TH1, #0FDH ;设置波特率 9600
MOV TL1, #0FDH
MOV SCON, #50H ;设置串口为方式 1
MOV PCON, #00H
SETB TR1 ;定时器 1 开始计数
LOOP: MOV SBUF, #41H ;开始发送数据
SEND: ;查询发送中断标志位 TI
JBC TI, LOOP ;若完成,再次发送
AJMP SEND ;若非,则继续查询
END
|