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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機技術(shù)C51串口輸出輸入函數(shù)

          單片機技術(shù)C51串口輸出輸入函數(shù)

          作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          *----------------------------------------
          ComFun.c
          C51串口輸出輸入函數(shù)

          外部聲明 ComFun.h
          ----------------------------------------*/
          #include

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

          //串口初始化 晶振為11.0592M 方式1 波特率300-57600
          void InitCom(unsigned char BaudRate)
          {
          unsigned char THTL;
          switch (BaudRate)
          {
          case 1: THTL = 64; break; //波特率300
          case 2: THTL = 160; break; //600
          case 3: THTL = 208; break; //1200
          case 4: THTL = 232; break; //2400
          case 5: THTL = 244; break; //4800
          case 6: THTL = 250; break; //9600
          case 7: THTL = 253; break; //19200
          case 8: THTL = 255; break; //57600
          default: THTL = 208;
          }
          SCON = 0x50; //串口方式1,允許接收
          TMOD = 0x20; //定時器1定時方式2
          TCON = 0x40; //設(shè)定時器1開始計數(shù)
          TH1 = THTL;
          TL1 = THTL;
          PCON = 0x80; //波特率加倍控制,SMOD位
          RI = 0; //清收發(fā)標志
          TI = 0;
          TR1 = 1; //啟動定時器
          }

          //向串口輸出一個字符(非中斷方式)
          void ComOutChar(unsigned char OutData)
          {
          SBUF = OutData; //輸出字符
          while(!TI); //空語句判斷字符是否發(fā)完
          TI = 0; //清TI
          }

          //向串口輸出一個回車換行
          void ComOutEnter(void)
          {
          SBUF = 0x00;
          while(!TI);
          TI = 0;
          SBUF = 0x0A;
          while(!TI);
          TI = 0;
          }

          //向串口輸出一個字符串(非中斷方式)
          void ComOutStr(unsigned char *Str)
          {
          while(*Str != 0x00) //判斷是否到了字符串的尾部
          {
          SBUF = *Str; //輸出字符
          while(!TI); //空語句判斷字符是否發(fā)完
          TI = 0; //清TI
          Str++; //字符串指針加一
          }
          }

          //從串口接收一個字符(非中斷方式)
          unsigned char ComInChar()
          {
          unsigned char InData;
          while(!RI); //空語句判斷字符是否收完
          InData = SBUF; //保存COM緩沖字符
          RI = 0; //清RI
          return (InData); //返回收到的字符
          }

          //從串口接收一個定長字符串(非中斷方式,只用于字符需有一個的idata字符串?dāng)?shù)組)
          //如unsigned char *Str;
          //unsigned char i[]="abcd";
          //InHandStr = &i;
          void ComInStr(unsigned char *Str)
          {
          while(*Str != 0x00) //判斷是否到了字符串的尾部
          {
          while(!RI); //空語句判斷字符是否收完
          *Str = SBUF; //保存字符
          RI = 0; //清RI
          Str++; //字符串指針加一
          }
          }



          評論


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