
而真正用串口实现串行通信的是方式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程序中串口中断关掉试试,应该可以的。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)