关于51单片机的串口方式0通讯

关于51单片机的串口方式0通讯,第1张

严格来说,51单片机的串口方式0,并不是用于串口通信的,只用于在RXD,TXD引脚上接有74LS164,串入/并出,或74LS165,并入串出。也就是只能与串行芯片配合使用的。

而真正用串口实现串行通信的是方式1。所以,你的程序要改成方式1。在方式1时,只有开中断允许标志位和接收到数据后,才会申请中断,单片机才会响应中断。

#include<reg51.h>

#define uchar unsigned char

sfr AUXR=0x8e

sfr S2CON=0x9a

sfr S2BUF=0x9b

sfr BRT=0x9c

sfr IE2=0xaf

#define S2RI=0x01

#define S2TI=0x02

uartinit()

{

S2CON=0x50

BRT=-12000000/32/9600

AUXR=0x14

IE2=0x01

EA=1

}

我看你程序的意思是要用串口方式0(8位移位寄存器工作方式)来发送数据。程序中你打开了串口中断,但没有编写中断服务程序,而是采用的查询方式。个人认为估计是程序跑飞了。你把main程序中串口中断关掉试试,应该可以的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12151244.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存