初值c语言,单片机定时器初值计算公式(51单片机和AVR单片机的初值计算三种方法)"/>
51单片机外部计数初值c语言,单片机定时器初值计算公式(51单片机和AVR单片机的初值计算三种方法)
单片机定时器初值计算公式
一、51单片机定时器初值计算
1、方法一
void main(void)
{
s1=1;
TMOD=0x01; //使用定时器T0的模式1
TH0=(65536-46083)/256; //定时器T0的高8位设置初值
TL0=(65536-46083)%256; //定时器T0的低8位设置初值
函数功能:定时器T0的中断服务函数
********************************************************/
void TIme0(void ) interrupt 1 using 0 //定时器T0的中断编号为1,使用第1组工作寄存器
{
count++; //每产生1次中断,中断累计次数加1
if(count==20) //如果中断次数计满20次
count=0; //中断累计次数清0
s++; //秒加1
网络上阅读一段程序,定时器初值 46083 是怎么计算出来的? 一般我们如用 AT892051的话 定时50MS 就是 TH0=(65536-50000)/256;
猜想应该是使用的12M晶体 ,20次为1S.
2、方法二
10MS定时器初值的计算:
1)晶振12M
12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次 机器周期。
65536-10000=55536(d8f0)
TH0=0xd8,TL0=0xf0
2)晶振11.0592M
11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。
65536-9216=56320(dc00)
TH0=0xdc,TL0=0x00
3、方法三
50MS定时器初值的计算:
1)晶振12M
12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。
65536-50000=15536(3cb0)
TH0=0x3c,TL0=0xb0
2)晶振11.0592M
11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=460
更多推荐
51单片机外部计数初值c语言,单片机定时器初值计算公式(51单片机和AVR单片机的初值计算三种方法)
发布评论