#include <STC8.h>
void ConfigUART(void);//波特率发生器设置函数定义
void main()
{
EA = 1; //允许中断
ConfigUART(); //调用函数
while(1); //死循环
}
void ConfigUART(void)
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 =0xB2;//256-(11059200/12/32)/baud; //设定定时初值
TH1 = TL1; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
ES = 1;
TR1 = 1; //启动定时器1
}
void InterruptUART() interrupt 4
{
if(RI) //检测接收标志位是否为1
{
RI = 0; //为1则清零
SBUF = SBUF +1; //数据加1
}
if(TI) //检测发送标志位是否为1
{
TI = 0; //为1清零
}
}
|