一、完整代码如下:C#include#define uchar unsigned char
#define uint unsigned int
void send(uchar state)
{
SBUF=state;
while(TI==0);
TI=0;
}
void SCON_init(void)
{
TMOD=0x20;//6T模式,11.05992@115200
SCON=0x50;
PCON=0x80;
TL1=0xFF;
TH1=0xFF;
TR1=1;
/*SCON=0x50;//定时器2模式,11.0592@115200
TH2=0xFF;
TL2=0xFD;
RCAP2H=0xFF;
RCAP2L=0xFD;
TCLK=1;
RCLK=1;
C_T2=0;
EXEN2=0;
TR2=1;*/
}
void main()
{
SCON_init();
while(1)
{
send('A');
}
}
二、备注
“SCON_init”子程序是串口波特率设置和初始化的子程序,在主程序开始时调用一次即可。在整个串口波特率初始化子程序中,我们两种方式完整的代码都在里面,没有用注释符号标注的是6T模式方式的代码,用注释符号标注的是12T模式下通过定时器2来实现的代码。
6T或12T模式的设置是在烧写程序时自己选择的,不需要代码设置。定时器2只有在STC89C52RC这种增强型51单片机才有。
网友评论