STC12C5A60S2雙串口應用
增強型8051芯片,具有雙串口。我以前通常采用軟件模擬一個串口來實現(xiàn),要占用太多的系統(tǒng)資源。該芯片可以通過一個內置的波特率發(fā)生器,實現(xiàn)兩個串口同時工作在一個波特率下,或一個通過內置,一個通過TH1實現(xiàn)不同波特率的通訊。通過配置AUXR來配置波特率發(fā)生器 BRT設置波特率重入裝載數(shù),S2CON 配置通訊模式。
例如: 在12MHz 頻率下 兩串口工作在 9600,8,1 配置如下
//配置串口1
SCON=0x40; /* n,8,1 */
PCON=0x80; //Bps加倍
TCON=0;
ES=1;
REN=1;
//STC 串口2定義
AUXR=0x1d; //配置兩個串口波特率發(fā)生器采用內置,1個時鐘/機器周期
BRT=0xb2; //重裝載數(shù)
S2CON=0x50;
IE2=0x01; //ES2=1 //開中端
//串口1中斷
void serial_1() interrupt 4 using 2
{
unsigned char in_data;
if(RI)
{
in_data=SBUF;
RI=0;
}
if(TI)
{
TI=0;
}
}
//串口2中斷
void serial_2() interrupt 8 using 2
{
unsigned char rti;
unsigned char in_data;
rti=S2CON;
rti=rti & 0x01;
if (rti==1) // 接收
{
In_Data=S2BUF;
S2CON=S2CON & 0xfe;
}
else // 發(fā)送
{
S2CON=S2CON & 0xfd;
//S2BUF=0x55; //發(fā)送數(shù)據(jù)
}
}