早教吧 育儿知识 作业答案 考试题库 百科 知识分享

那(65536-50000)除以256是怎么算出1秒的呢?

题目详情
那(65536-50000)除以256是怎么算出1秒的呢?
▼优质解答
答案和解析
如果选的单片机的晶振一定,比如12MHZ来说吧,机器周期是1us,就是说每1us产生一次计数,就拿50ms来说,这是你想要的计时,意思是,对机器周期进行50000计数就可以得到我想要的,可T0是一个可以对机器周期能进行65536次计数,也就是说我想要的50MS不能让T0溢出,怎么办,那么先给这个定时器里面放些数,放多少,就是我们想要的50MS在加上一个多少就能等于65536,也就是65536和50000的差值,这个值就是我们说的初值.
为什么除以256,因为我们的计时器是两个8位组成的,那么要把那些差值装进这两个8位,那么低8位最多能装256个机器周期,那么256计满了就用高8位的,就是说低8位满一次高8位加1,那么高8位装多少,低8位就满了几次,算法就是用差值除一下256取其整数,剩下的,就是还剩了小于256次数的就放在低8位,就是差值 的余数.
TMR1L=(65536-50000)%256;
TMR1H=(65536-50000)/256;
所以这个50000就是50ms 你原来有个tt计数20次的 这个 20 ×50ms 就是1s