1.单片机定时器中知道溢出时间,知道取值范围,知道时间间隔,怎么算TH0和TL0的值,求详细解答?

1.单片机定时器中知道溢出时间,知道取值范围,知道时间间隔,怎么算TH0和TL0的值,求详细解答?2:比如24HZ的51单片机,时间间隔0.2秒.溢出时间0.4秒范围0到99,请问代码里里TH0和TL0的取值?

首先应该知道一个脉冲周期是多少 ?24MHZ时,输给定时器的脉冲频率是2MHZ,一个脉冲周期是0.5US因此,此时定时 器可以最长定时65536*0.5=32.768MS 0.2秒一次不能完成,需多次累积,如一次定时20ms,累积10次,定时20MS需要计数的脉冲个数是40000个初值可以直接这么写
初值=65536-40000
且初值=TH0*256+TL0所以
TH0=(65536-40000)/256
TL0=(65536-40000)%256
因初值=TH0*256+TL0
当然也可以直接写出数值,有专门的小程序可以完成这个计算追问

频率是24,那个40000怎么算出来的,,算出TH,TL后还要换成16进制,,求详细教,,学生一枚,谢谢您啦

追答

传统51单片机的计时脉冲是晶振频率经12分频得到的,计时脉冲周期也就是机器周期,因此24MHZ的晶振频率对应2MHZ的计时脉冲频率,40000个脉冲就是20ms
c语言编程时直接写十进制编译器是可以识别的
且写出公式就行,编译器会自动计算
至于10进制转成16进制,只要知道A一F对应旧进制的几就可以,反复除16求余数即可,当然你不会算也不要紧,工程计算器都有这个功能

追问

我现在学单片机,老师考试,打代码,需要算TH,TL的初值,,他给的有6.12.24hz,,还有溢出时间,,时间间隔,以及时间范围,,我们学做定时器,谢谢大神,教教我

温馨提示:答案为网友推荐,仅供参考
相似回答