#include"reg51.h"
#defineFOSC18432000L
#defineBAUD115200
#defineNONE_PARITY0//無校驗(yàn)位
#defineODD_PARITY1//奇校驗(yàn)
#defineEVEN_PARITY2//偶校驗(yàn)
#defineMARK_PARITY3//標(biāo)記校驗(yàn)
#defineSPACE_PARITY4//空校驗(yàn)
#definePARITYBITEVEN_PARITY
#defineS2RI0x01
#defineS2TI0x02
#defineS2RB80x04
#defineS2TB80x08
sfrAUXR=0x8e;
sfrS2CON=0x9a;
sfrS2BUF=0x9b;
sfrBRT=0x9c;
sfrIE2=0xaf;
bitbusy;
voidSendData(chardat);
voidSendString(char*s);
voidmain()
{
#if(PARITYBIT==NONE_PARITY)
S2CON=0x5a;//8位可變波特率(無校驗(yàn)位)
#elif(PARITYBIT==ODD_PARITY)||(PARITYBIT==EVEN_PARITY)||(PARITYBIT==MARK_PARITY)
S2CON=0xda;//9位可變波特率,校驗(yàn)位初始為1
#elif(PARITYBIT==SPACE_PARITY)
S2CON=0xd5;//9位可變波特率,校驗(yàn)位初始為0
#endif
BRT=-(FOSC/32/BAUD);//設(shè)置獨(dú)立波特率發(fā)生器的重載初值
AUXR=0x14;//獨(dú)立波特率發(fā)生器工作在1T模式
IE2=0x01;//使能串口2中斷
EA=1;//開總中斷
SendString("STC12C5A60S2\r\nUART2Test!\r\n");
while(1);
}
voidUart2()interrupt8using1
{
if(S2CON&S2RI)
{
S2CON&=~S2RI;//清除接收完成標(biāo)志
P0=S2BUF;//P0顯示串口數(shù)據(jù)
P2=(S2CON&S2RB8);//P2.2顯示校驗(yàn)位
}
if(S2CON&S2TI)
{
S2CON&=~S2TI;//清除發(fā)送完成標(biāo)志
busy=0;
}
}
voidSendData(chardat)
{
while(busy);//等待上個(gè)數(shù)據(jù)發(fā)送完成
ACC=dat;//取得偶校驗(yàn)位P
if(P)//根據(jù)P來設(shè)置串口數(shù)據(jù)的校驗(yàn)位
{
#if(PARITYBIT==ODD_PARITY)
S2CON&=~S2TB8;//置校驗(yàn)位為0
#elif(PARITYBIT==EVEN_PARITY)
S2CON|=S2TB8;//置校驗(yàn)位為1
#endif
}
else
{
#if(PARITYBIT==ODD_PARITY)
S2CON|=S2TB8;//置校驗(yàn)位為1
#elif(PARITYBIT==EVEN_PARITY)
S2CON&=~S2TB8;//置校驗(yàn)位為0
#endif
}
busy=1;
S2BUF=ACC;//發(fā)送數(shù)據(jù)
}
voidSendString(char*s)
{
while(*s)//判斷字符串結(jié)束標(biāo)志
{
SendData(*s++);//發(fā)送字符
}
}
-
STC12C5A60S2
+關(guān)注
關(guān)注
36文章
219瀏覽量
70040
發(fā)布評論請先 登錄
相關(guān)推薦
STC12C5A60S2的相關(guān)資料分享
STC12C5A60S2/STC12C5201AD系列單片機(jī)
stc12c5a60s2中文資料_引腳定義圖及最小系統(tǒng)
![<b class='flag-5'>stc12c5a60s2</b>中文資料_引腳定義圖及最小系統(tǒng)](https://file1.elecfans.com//web2/M00/A6/D4/wKgZomUMQL-Ac5yYAAAPCmI8o7s238.png)
stc12c5a60s2串口程序
STC12C5A60S2精簡開發(fā)板介紹
![<b class='flag-5'>STC12C5A60S2</b>精簡開發(fā)板介紹](https://file.elecfans.com/web1/M00/45/58/pIYBAFppP9uAQPqWAAXb71ZfLHA570.png)
STC12C5A60S2單片機(jī)不同波特率串口12通訊演示的程序和工程文件
![<b class='flag-5'>STC12C5A60S2</b>單片機(jī)不同波特率<b class='flag-5'>串口</b><b class='flag-5'>12</b>通訊<b class='flag-5'>演示</b>的<b class='flag-5'>程序</b>和工程文件](https://file.elecfans.com/web1/M00/A3/00/pIYBAF1QyV-APXKYAAWt57vmg0s170.png)
STC12C5A60S2串口演示9位數(shù)據(jù)的程序和工程文件免費(fèi)下載
![<b class='flag-5'>STC12C5A60S2</b><b class='flag-5'>串口</b><b class='flag-5'>演示</b>9位數(shù)據(jù)的<b class='flag-5'>程序</b>和工程文件免費(fèi)下載](https://file.elecfans.com/web1/M00/A3/00/pIYBAF1Qx9WAMiUxAAKsZADaOAE466.png)
STC12C5A60S2單片機(jī)11.0592晶振實(shí)現(xiàn)115200波特率串口通信
![<b class='flag-5'>STC12C5A60S2</b>單片機(jī)11.0592晶振實(shí)現(xiàn)115200波特率<b class='flag-5'>串口</b>通信](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STC12C5A60S2單片機(jī)雙串口通信,互相發(fā)送
![<b class='flag-5'>STC12C5A60S2</b>單片機(jī)雙<b class='flag-5'>串口</b>通信,互相發(fā)送](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論