上一章-蓝桥杯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,导致程序死机。