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

          新聞中心

          89C52串口通信

          作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          #include

          unsigned char flag,a;
          void main()
          {

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

          TMOD=0x20;//設(shè)置定時器1為工作方式2
          TH1=0xfd; //

          TL1=0xfd; //用T1定時器設(shè)置波特率
          TR1=1; //定時器1工作
          REN=1; //串口允許接收
          SM0=0; //
          SM1=1; //串行口工作方式1
          EA=1; //CPU中斷允許
          ES=1; //串行口中斷允許
          while(1)
          {

          if(flag==1) //中斷法串口通信
          {
          ES=0; //單片機向PC發(fā)數(shù)據(jù)時應關(guān)掉串口中斷,因為發(fā)數(shù)據(jù)時
          //也會引起中斷,會進入中斷服務(wù)程序,從而引起死循環(huán),這一步很重要
          flag=0;
          SBUF=1;//發(fā)字符1
          while(!TI); //等待TI是否為1,TI=1時說明發(fā)送數(shù)據(jù)完成
          TI=0;//手動清零TI
          SBUF=a; //把a的值放入發(fā)送緩沖器;
          while(!TI);
          TI=0;
          ES=1; //開串口中斷
          }
          }
          }

          void ser() interrupt 4 //用中斷方式接收串行數(shù)據(jù),當RI=1或者TI=1時進入此中斷服務(wù)程序
          {
          RI=0; //手動清零RI
          a=SBUF; //把接受緩沖器的值賦給變量a
          flag=1; //自己定義的標志位
          }

          上面給出了兩種串口通信方法:查詢法和中斷法,一般用中斷法(中斷多好用啊?。?,注意用中斷法時一定要注意軟件清零 RI和 TI寄存器,因為串口中斷服務(wù)程序進入的條件是RI=1或者TI=1,而只要接受完一幀數(shù)據(jù)后RI會自動置1(發(fā)送完一幀數(shù)據(jù)后TI會自動置1),RI,TI只能手動軟件清零,如果不清零則會反復進入中斷服務(wù)程序,從而使程序進入循環(huán)發(fā)送或者接受的狀態(tài)。



          關(guān)鍵詞: 89C52串口通

          評論


          技術(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); })();