27,374
社区成员
发帖
与我相关
我的任务
分享
void UartInit()//放在main前,可以免除函数声明的麻烦
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0x95; //设定定时初值
TH1 = 0x95; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1;
EA=1;
ES=1;
}
void main()
{
bit bStart=0;
UartInit();
while(1)
{
if(!bStart)
{
SBUF=0x01;//这样就可以启动发送数据
bStart=1;
}
}
}
void UartRoutine() interrupt 4
{
if(RI)
{
RI=0;
}
if(TI)
{
TI=0;
SBUF=0x01;//连续不断发送0x01
}
}