例如: 在12MHz 频率下 两串口工作在 9600,8,1 配置如下
//配置串口1
SCON=0x40;/*n,8,1*/
PCON=0x80;//Bps加倍
TCON=0;
ES=1;
REN=1;
//STC串口2定义
AUXR=0x1d;//配置两个串口波特率发生器采用内置,1个时钟/机器周期
BRT=0xb2;//重装载数
S2CON=0x50;
IE2=0x01;//ES2=1//开中端
//串口1中断
voidserial_1()interrupt4using2
{
unsignedcharin_data;
if(RI)
{
in_data=SBUF;
RI=0;
}
if(TI)
{
TI=0;
}
}
//串口2中断
voidserial_2()interrupt8using2
{
unsignedcharrti;
unsignedcharin_data;
rti=S2CON;
rti=rti&0x01;
if(rti==1)//接收
{
In_Data=S2BUF;
S2CON=S2CON&0xfe;
}
else//发送
{
S2CON=S2CON&0xfd;
//S2BUF=0x55;//发送数据
}
}