51單片機(jī)串口的使用有兩種方法,一個(gè)是查詢法,還有就是中斷法,查詢法相對(duì)簡(jiǎn)單就是不斷查詢是否有數(shù)據(jù),而中斷就是利用串口中斷interrupt 4,這里給出中斷法,大家參考!
#include
unsigned char a,flag;
void main()
{
TMOD=0X20;//設(shè)置定時(shí)器1為方式2
TH1=0XFD;// 裝入初值(由軟件計(jì)算一下)
TL1=0XFD;
TR1=1;//啟動(dòng)定時(shí)器1
SM0=0;//設(shè)置為方式1
SM1=1;
REN=1;//允許接受
EA=1;//打開(kāi)總中斷開(kāi)關(guān)
ES=1;//打開(kāi)串口中斷開(kāi)關(guān)
while(1)
{
if(flag==1)
{
flag=0;//將標(biāo)志位置0
SBUF=a;
while (TI==0);
TI=0;
ES=1;//發(fā)送數(shù)據(jù)時(shí)關(guān)閉串口中斷
}
}
}
void serial()interrupt 4 //串口中斷用于接收數(shù)據(jù)
{
RI=0; //軟件使RI置0
P1=SBUF;//數(shù)據(jù)送入緩沖區(qū)(SBUF)哪個(gè)口需要哪個(gè)口在這里取數(shù)據(jù)
a=SBUF;//將緩沖區(qū)的數(shù)據(jù)保存到a中以便以后使用
flag=1;//標(biāo)志位
ES=0;//發(fā)送數(shù)據(jù)時(shí)關(guān)閉串口中斷
}