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

          新聞中心

          STC12C5A16S2雙串口的使用

          作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
          stc雙串口的使用:

          MCU:STC15C5A16S2

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

          時(shí)鐘:11.0592

          S2SMOD=1,BRTX12=1;

          串口波特率:9600

          #include
          #define uint8 unsigned char
          #define uint16 unsigned int

          #define Fclk 11059200UL /*使用22.1184M晶體*/
          #define BitRate 9600UL /*波特率定義為9600*/
          #define RELOAD_COUNT 0Xb8

          volatile uint8 Buf[4]={0x00,0x00,0x00,0x00};//
          volatile uint8 BufBack[4]={0x00,0x00,0x00,0x00};
          uint8 Num=4;


          void UartInit()
          {
          SCON=0X50;//8位可變波特率,無(wú)奇偶校驗(yàn)
          TMOD=0X21; //設(shè)置定時(shí)器1,自動(dòng)重裝數(shù)
          TH1=256-Fclk/(BitRate*12*16); //計(jì)算定時(shí)器重裝值
          TL1=256-Fclk/(BitRate*12*16);
          PCON|=0X80; //波特率加倍
          TR1=1; //開(kāi)定時(shí)器1
          REN=1; //允許接收
          ES=1; //允許串口1中斷
          EA=1; //開(kāi)總中斷
          }
          void UartSendByte(unsigned char i)
          {
          ES=0;
          TI=0;
          SBUF=i;
          while(TI==0);
          TI=0;
          ES=1;
          }


          /********************************************************************
          函數(shù)功能:串口中斷處理。
          入口參數(shù):無(wú)。
          返 回:無(wú)。
          備 注:無(wú)。
          ********************************************************************/
          void UartISR(void) interrupt 4
          {
          if(RI) //收到數(shù)據(jù)
          {
          if(Num>0)
          {
          Buf[4-Num]=SBUF;
          Num--;
          }
          RI=0; //清中斷請(qǐng)求
          }
          }

          /********************以上為串口1收發(fā)程序***********************/
          /********************以下為串口2收發(fā)程序***********************/
          void UartInit2()
          {
          S2CON=0X50; //8位可變波特率,無(wú)奇偶校驗(yàn)
          BRT=RELOAD_COUNT;//波特率發(fā)生器裝載
          AUXR=0X1c;

          IE2=0X01; //允許串口2中斷
          EA=1;
          }


          void UartSendByte2(unsigned char i)
          {
          uint8 temp=0;
          IE2=0X00;
          S2CON=S2CON&0XFD;
          S2BUF=i;
          do{
          temp=S2CON;
          temp=temp&0x02;
          }while(temp==0);
          S2CON=S2CON&0XFD;
          IE2=0X01;
          }

          void UartISR2(void) interrupt 8
          {
          unsigned char k=0;
          k=S2CON;
          k=k&0X01;
          if(k==1)
          {
          S2CON=S2CON&0XFE;
          if(Num>0)
          {
          BufBack[4-Num]=S2BUF;//
          Num--;
          }
          }
          else
          {
          S2CON=S2CON&0XFD;
          }
          }


          void main()
          {
          UartInit();
          UartInit2();
          //接收電腦發(fā)來(lái)的數(shù)組
          while(Num>0);
          //把接收到的數(shù)組發(fā)給從機(jī)

          UartSendByte2(Buf[0]);
          UartSendByte2(Buf[1]);
          UartSendByte2(Buf[2]);
          UartSendByte2(Buf[3]);

          //接收從機(jī)回來(lái)的數(shù)據(jù)
          Num=4;
          while(Num>0);
          //把從機(jī)回來(lái)的數(shù)據(jù)發(fā)回給電腦
          UartSendByte(BufBack[0]);
          UartSendByte(BufBack[1]);
          UartSendByte(BufBack[2]);
          UartSendByte(BufBack[3]);
          while(1);
          }



          關(guān)鍵詞: STC12C5A16S2雙串

          評(píng)論


          技術(shù)專(zhuān)區(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); })();