×
单片机 > 单片机程序设计 > 详情

玩转单片机之五--串口多数据收发

发布时间:2020-06-05 发布时间:
|

#include

#define uchar unsigned char    //byte
#define uint unsigned int    //word

sbit led1=P0^0; 
sbit led2=P0^1; 

#define INBUF_LEN 8 //数据长度 
unsigned char inbuf[INBUF_LEN]; //存储数据数组
unsigned char count3; //计数器

//向串口发送一个字符 
void send_char_com( unsigned char ch) 

     SBUF=ch; 
     while (TI== 0 ); 
      TI= 0 ; 
}

//向串口发送一个字符串,strlen为该字符串长度 
void send_string_com( unsigned char *str, unsigned int strlen) 

          unsigned int k= 0 ; 
    do 
    { 
        send_char_com(*(str + k)); 
       k++; 
       } while (k < strlen); 

void main(void)
{           //串口初始化
            TMOD=0x20;
             PCON=0x00;
               SCON=0x50;
            TL1=0xfd;
             TH1=0xfd;
                  TR1=1;
                     //计数
                   count3= 0 ; 
  
 while(1) //动态现实是接收多个数据
 { 
               if (RI) 
         { 
            //接收数据
       unsigned char ch; 
             RI = 0 ; 
             ch=SBUF; 
             inbuf[count3]=ch;   //存储数据
                count3++; //计数器增加
           if ( (count3==INBUF_LEN ))    
           {              count3= 0 ; //计数器清零
                send_string_com(&inbuf,INBUF_LEN);//向串口发送一个字符串
              }
  } 
 
 //串口数据的检验,可以删除
         if(inbuf[3]==0x11 )  
             { led1=0;}
     }
}




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址