本文通过电脑串口发送文本模式和HEX模式进行介绍串口的简单使用!
注意事项:
1.本节通过定时器2的串口1进行串口控制。
2.串口如果开启了“编程完成后自动打开串口会导致第一次发送无法看到”
(HEX模式)整体代码如下:
void UartInit(void) //9600bps@12.000MHz
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x01; //串口1选择定时器2为波特率发生器
AUXR |= 0x04; //定时器时钟1T模式
T2L = 0xC7; //设置定时初始值
T2H = 0xFE; //设置定时初始值
AUXR |= 0x10; //定时器2开始计时
}
void GS1()
{
char a;
if(RI)
{
RI=0;
a=SBUF;
SBUF=a;
while(!TI);
TI=0;
switch(a)
{
case 0x01 : SL(LED,0xfe);break;//文本模式则把 0x01改为 'a'
case 0x02 : SL(LED,0xef);break;
}
}
}
void main()
{
UartInit();
EA=1;
GS1();
}
代码解读:
首先是当 RI 接收端 为 1时,也就是接收到了数据,这时先把接收位 置零。然后把 接收的数据 SBUF传给 a。
然后把 a 的值 传给 SBUF 也就是发送作用。当串口发送成功后,把发送位置零。
|