#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,S2CON=0x50是方式1把
追答哦,对,S2CON=0x00,定时器模式
S2CON=0x40,计数器模式
追问BRT还用设初值吗?AUXR怎么设置
追答BRT当然得设置初值了,这是一个波特率发生器,但是多大的波特率你的设置呀。
AUXR直接赋值就可以了。当然这里是用BRT做波特率发生器,所以是赋值14H,置BTR有效,采用1T模式。
本回答被提问者采纳