如何计算,等下再说,先费话一下.
T0定时器是十六位的,所以计满是2^16,也就是65536,计满后就溢出.只有溢出,定时器才会运行定时中断程序,这个记住哦,等下用.
比如,你的晶振是12M的,那么一个指令周期就是1us吧,所以呢最大只能定时65.536ms.
打个比方,要定时50ms,50ms也就是50000,如果把50000直接给定时器的话,它只会定时(65536-50000)us就运行定时中断程序,定时器只有溢出才运行定时中断程序,所以,要定时50ms,就先65536减50000后,再把减后的结果高八位给TH0,低八位给TL0.
❷ 单片机中TH0和TL0是什么意思
TH 0和TL0都是单片机的8位定时器。TH 0中的H即为HIGH缩写,它是表示定时器高八位。TL 0中L即为LOW缩写,它所代表为低八位。
单片机定时器的工作就是,当低八位定时器满溢后,向高八位进行进位。两个八位的TH 0和TL 0构成了单片机的16为定时/计数器。
8051系列单片机有两个定时器:T0和T1,分别称为定时器和定时器T1,这两个定时器都是16位的定时器/计数器;8052系列单片机增加了第三个定时器/计数器T2;它们都有定时或事件计数功能,常用于时间控制、延时、对外部时间计数和检测等场合。
8051单片机的两个定时器T0和T1分别都由两个特殊功能寄存器组成;T0由特殊功能寄存器TH0和TL0构成,而T1则是由TH1和TL1构成。
作为定时器使用时,定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始循环计数;所以,定时器的分辨率是时钟振荡频率的1/12。
作为计数器使用时,通过引脚T0(P3.4)或T1(P3.5)对外部脉冲信号进行计数,当输入的外部脉冲信号发生从1到0的负跳变时,计数器的值就自动加1;计数器的最高频率一般是时钟振荡频率的1/24。
由此可知,不论是定时器还是计数器工作方式,定时器T0和T1均不占用CPU的时间,除非定时器/计数器T0和T1溢出,才可能引起CPU中断,转而去执行中断处理程序;所以说,定时器/计数器是单片机中效率高而工作灵活的部件。
❸ 单片机的计时器TH和TL怎么计时,如每秒运行一次中断程序
溢出的时候进入中断,也就是从0xFFFF到0x0000的时候,标准51的晶振频率除以12就是计时器加1的频率,如果你用的是12MHz的晶体,那就是每隔1us你的计时器自动加1,所以最大能计时的时间范围就是从0x0000到0xFFFF,也就是从0到65535,65.5ms左右,你要每秒定时,或者你用频率很低的晶振,或者你要设置一个变量来计数,把定时器设置到50ms一中断,然后在中断中给变量加1,等变量到20,就证明到1秒了,再执行你的程序。