STC15单片机串行口S1初始化程序的编写STC15单片机串行口S1设置波特率时定时器初始化程序的编写
STC15单片机串行口S1初始化程序的编写:
```c
void UART_Init() {
SCON = 0x50; // 8位数据位,可变波特率,允许接收
TMOD &= 0x0F; // 清零T1的控制位
TMOD |= 0x20; // 设置T1为模式2
TH1 = 0xFD; // 波特率为9600,定时器初值
TL1 = 0xFD; // 波特率为9600,定时器初值
TR1 = 1; // 启动定时器1
ES = 1; // 使能串口中断
EA = 1; // 使能总中断
}
```
STC15单片机串行口S1设置波特率时定时器初始化程序的编写:
```c
void Timer1_Init() {
TMOD &= 0x0F; // 清零T1的控制位
TMOD |= 0x20; // 设置T1为模式2
TH1 = 0xFD; // 波特率为9600,定时器初值
TL1 = 0xFD; // 波特率为9600,定时器初值
TR1 = 1; // 启动定时器1
}
```
其中,波特率为9600时,TH1和TL1的初值为0xFD。如果需要设置其他波特率,可以根据公式TH1 = 256 - (Fosc / 12 / 波特率)进行计算。其中,Fosc为单片机的工作频率。
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。