- STC定时器TH、TL值,基于16位自动重装、12T模式!
TH0 = (65536 - FOSC/x_us/12) / 256;
TL0 = (65536 - FOSC/x_us/12) % 256;
12T模式下, FOSC/12,每分钟的计数次数,
FOSC/12/x_us,x_us时间内的计数次数(FOSC/12/1000,1ms的计数次数),
那么就得到了1ms需要计数n次,2^16-n,
定时了1ms!
=========================================================================
=========================================================================
- STC串口TH、TL值,基于8位自动重装、12T模式!
TH1 = ((256 - (FOSC / 32/ 12) / BaudRate));
TL1 = ((256 - (FOSC / 32/ 12) / BaudRate));
12T模式下, FOSC/12,每分钟的计数次数,
FOSC/12/32,SMOD=0波特率不加倍,物理意义:每分钟计数(FOSC/12/16,SMOD=1波特率倍速)
BaudRate为每分钟需要发送的码元数,
(FOSC/12/32)/BaudRate,规定波特率下,每个码元需要的计数次数,
2^8-(FOSC/12/32)/BaudRate,得到了初值。
为什么串口通讯的晶振频率要为11.0592MHz,才没有误差,因为波特率9600的制约!!