STC12C5A60S2双串口应用
时间:04-08 11:49 阅读:1185次
*温馨提示:点击图片可以放大观看高清大图
简介:增强型8051芯片,具有双串口。我以前通常采用软件模拟一个串口来实现,要占用太多的系统资源。该芯片可以通过一个内置的波特率发生器,实现两个串口同时工作在一个波特率下,或一个通过内置,一个通过TH1实现不同波特率的通讯。通过配置AUXR来配置波特率发生器 BRT设置波特率重入装载数,S2CON 配置通讯模式。
例如: 在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;//发送数据
}
}