蓝桥杯STC基础代码-串口通信

上一章-蓝桥杯STC基础代码-基础外设

上一章讲了开发板上面最基础的外设,led 数码管 以及按键,并给出了代码。
文章地址

串口

原理图

STC15串口引脚跟80c51是同样的。
P30 - TX ; P31 -RX

这里是引用

串口的代码配置

串口在比赛中好像很少用到,在比赛主办方提供的书上面好像没有关于串口的题,但是以防万一还是得知道怎么配置。
其实也挺简单~
首先 打开 烧录软件 ,打开到波特率计算器

这里是引用

看 ,代码就写好了49%。

记得打开串口中断
ES = 1;
总体代码如下

 SCON = 0x50;  //8位数据,可变波特率
 AUXR |= 0x40;  //定时器1时钟为Fosc,即1T
 AUXR &= 0xFE;  //串口1选择定时器1为波特率发生器
 TMOD &= 0x0F;  //设定定时器1为16位自动重装方式
 TL1 = 0xE0;  //设定定时初值
 TH1 = 0xFE;  //设定定时初值
 ET1 = 0;  //禁止定时器1中断
 TR1 = 1;  //启动定时器1
 ES = 1;
 

至此,代码就完成了**50%**了

再加上串口中断函数就完成了。
记住串口1中断 号 是 4

// 一下中断函数是把串口接收到的字符串发送回去
void usart_intrrupt(void) interrupt 4
{
 u8 rece;
 
 if(RI)
 {
  rece = SBUF;
  RI = 0;
  
  SBUF = rece;
  
  while(TI == 0);
  TI = 0;
 }
 
}

串口发送函数


//发送单个字符
void usart_send_char(u8 str)
{
 SBUF = str;
 
 while(TI == 0);
 TI = 0; 
}

//发送整个字符串
void usart_send_str( u8 *str)
{
 while(*str  != '\0')
 {
   usart_send_char(*str);
    str++;
 }
}

值得一提的是
当串口发送完成后,TI是置1 ,我之前就以为是置 0,导致程序死机。

代码下载地址

下载地址

下一章-时钟芯片-DS1302

文章地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章