<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機 串口通信 中斷

          51單片機 串口通信 中斷

          作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
          從一段程序開始 實現(xiàn)電腦向單片機發(fā)送一些數(shù)據(jù),單片機返回Iget +數(shù)據(jù)

          #include #define uchar unsigned char

          本文引用地址:http://www.ex-cimer.com/article/201611/318433.htm

          #define uint unsigned int unsigned char flag,a,i;//聲明標志位 flag

          uchar code table[]="I get"

          void init()

          {

          TMOD=0x20;//設(shè)置T1定時器工作方式為2 8位初值自動重裝的8位定時器 這里設(shè)置了兩個計數(shù)器的工作方式

          TH1=0xfd; / /T1定時器裝初值(高八位) 控制串口通信的波特率(由定時器1的溢出率控制)

          TL1=0xfd; //T1定時器裝入初值(低八位)

          TR1=1; //定時器1運行控制位 置一啟動定時器1

          REN=1; //允許串口接收

          SM0=0; //設(shè)置串口工作方式為一

          SM1=1; EA=1; //全局中斷允許位 置一開全局中斷

          ES=1; //串口中斷允許位

          }

          void main()

          {

          init();

          while(1)

          {

          if(flag==1)

          {

          ES=0;

          for(i=0;i<6;i++)

          {

          SBUF=table[i];

          while(!TI);

          TI=0;//發(fā)送中斷標志 發(fā)送數(shù)據(jù)完成后觸發(fā)中斷 硬件置一 必須軟件清零

          }

          SBUF=a; // 串口發(fā)送數(shù)據(jù)

          while(!TI);

          TI=0;

          ES=1;

          flag=0;

          }

          }

          }

          void ser() interrupt 4 //串口中斷服務(wù)程序

          {

          RI=0; // 收到數(shù)據(jù)硬件置一,由軟件清零

          a=SBUF; //將寄存器的值 賦給a flag=1; //標志位

          }

          此程序中共用的串口中斷,

          定時器1中斷 特殊功能寄存器SBUF

          中斷響應(yīng)的條件

          中斷源有中斷請求 此中斷源允許位為1 cpu開中斷(即EA=1)以上三個條件同時滿足

          串口通信設(shè)置

          確定串口通信波特率(編程TMOD寄存器定時器工作方式寄存器)

          計算定時器初值轉(zhuǎn)載THX TLX

          確定串行口工作方式(編程SCON寄存器串行口控制方式寄存器)

          串行口工作在中斷方式時,要進行中斷設(shè)置如TI,RI軟件清零



          關(guān)鍵詞: 51單片機串口通信中

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();