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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)與PC串口通信程序

          51單片機(jī)與PC串口通信程序

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

          #define BUFFERLEGTH 10
          //-----------------------------------------------------------------
          void UART_init(); //串口初始化函數(shù)
          void COM_send(void); //串口發(fā)送函數(shù)
          char str[20];
          char j;
          //-------------------------------------------------------------------
          void main(void)
          {
          unsigned char i;
          UART_init();
          j=0; //初始化串口
          for(i = 0;i < 10 ;i++)
          {
          COM_send(); //首先發(fā)送一次數(shù)據(jù)作為測(cè)試用

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

          };

          while(1);
          }


          //-------------------------------------------------------------
          //--------------------------------------------------------------------------------------------------
          // 函數(shù)名稱: UART_init()串口初始化函數(shù)
          // 函數(shù)功能: 在系統(tǒng)時(shí)鐘為11.059MHZ時(shí),設(shè)定串口波特率為9600bit/s
          // 串口接收中斷允許,發(fā)送中斷禁止
          //--------------------------------------------------------------------------------------------------
          void UART_init()
          {
          //初始化串行口和波特率發(fā)生器
          SCON =0x50; //選擇串口工作方式1,打開接收允許
          TMOD =0x20; //定時(shí)器1工作在方式2,定時(shí)器0工作在方式1
          TH1 =0xfA; //實(shí)現(xiàn)波特率9600(系統(tǒng)時(shí)鐘11.0592MHZ)
          PCON = 0x80;
          TR1 =1; //啟動(dòng)定時(shí)器T1
          ET1 =0;
          ES=1; //允許串行口中斷
          PS=1; //設(shè)計(jì)串行口中斷優(yōu)先級(jí)
          EA =1; //單片機(jī)中斷允許
          }
          //------------------------------------------------------------
          void COM_send(void)
          {
          unsigned char point = 0;
          for(point=0;str[point]!=/0;point++) //連續(xù)發(fā)送二十位數(shù)據(jù) //把緩存區(qū)的數(shù)據(jù)都發(fā)送到串口
          {
          SBUF=str[point];
          while(!TI);
          TI=0;
          //str[point]=/0;
          }

          }
          //--------------------------------------------------------------
          //--------------------------------------------------------------------------------------------------
          // 函數(shù)名稱: com_interrup()串口接收中斷處理函數(shù)
          // 函數(shù)功能: 接收包括起始位S在內(nèi)的十位數(shù)據(jù)到數(shù)據(jù)緩沖區(qū)
          //--------------------------------------------------------------------------------------------------
          void com_interrupt(void) interrupt 4 using 3
          {
          unsigned char RECEIVR_buffer;
          bit flag=1;
          if(RI) //處理接收中斷
          {
          RI=0; //清除中斷標(biāo)志位
          RECEIVR_buffer=SBUF; //接收串口數(shù)據(jù)
          str[j]=SBUF;
          if (RECEIVR_buffer == $)
          { ES=0;
          str[j]=/0;
          SCON =0x40; //接收不允許
          COM_send(); //發(fā)送數(shù)據(jù)
          ES=1;
          j=0;
          flag=0;
          SCON=0x50; //接收允許
          }
          if(flag)
          j++;
          }
          }



          關(guān)鍵詞: 51單片機(jī)PC串口通

          評(píng)論


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