|
回答你的2个问题
1:
在定时器中断服务程序中如果不重新赋初值的话,则由于进入中断的条件是TH0TL0=0000H,因此不重新赋初值相当于初值为0000H,而0000H是定时时间最长的初值,即下次进入中断所需的时间将不按照你预定的定时时间,而是最长的时间。
这就相当于一瓶水,是由65536滴水组成的,如果从0开始,需要最多65536滴水才能滴满,而如过预装半瓶水,则只要65536的一半,即32768滴水就满了。
2:
方式2和方式1不同,方式一是两个8位都参与滴水,一滴一滴地需要2的16次方65536滴水才能滴满,而方式2把TH0TL0分为两个8位的,TL0用于滴水,供需滴2的8次方256滴水就满了,而TH0这个寄存器就相当于一个固定大小的瓢,每次都预先装上一定量的水,等待TL0滴满后变空,TH0就由内部硬件电路自动把TH0里面的水倒进TL0中去了,叫自动装水。
计数和滴水这个比喻唯一不同的,就是滴水满了不会突然变空,而计数满了(65535,或256)再加1就溢出,而溢出是变0。仅此不同。 |
赞赏
-
1
查看全部赞赏
-
|