專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

關于51單片機串口的使用

作者:未知   來源:chenxitianlan   點擊數(shù):  更新時間:2014年06月19日   【字體:

  51單片機串口的使用有兩種方法,一個是查詢法,還有就是中斷法,查詢法相對簡單就是不斷查詢是否有數(shù)據(jù),而中斷就是利用串口中斷interrupt 4,這里給出中斷法,大家參考!

 
#include
unsigned char a,flag;
void main()
{
 TMOD=0X20;//設置定時器1為方式2
 TH1=0XFD;// 裝入初值(由軟件計算一下)
 TL1=0XFD; 
 TR1=1;//啟動定時器1
 SM0=0;//設置為方式1
 SM1=1;
 REN=1;//允許接受
 EA=1;//打開總中斷開關
 ES=1;//打開串口中斷開關
 while(1)
 {
  if(flag==1)
   {
   flag=0;//將標志位置0
   SBUF=a;
   while (TI==0);
   TI=0; 
   ES=1;//發(fā)送數(shù)據(jù)時關閉串口中斷    
   }
  }
}           
void serial()interrupt 4 //串口中斷用于接收數(shù)據(jù)
{
 RI=0; //軟件使RI置0
 P1=SBUF;//數(shù)據(jù)送入緩沖區(qū)(SBUF)哪個口需要哪個口在這里取數(shù)據(jù)
 a=SBUF;//將緩沖區(qū)的數(shù)據(jù)保存到a中以便以后使用
 flag=1;//標志位
 ES=0;//發(fā)送數(shù)據(jù)時關閉串口中斷
}
關閉窗口

相關文章