51单片机定时器计数器中断总结

来源:互联网 发布:麻将源码 编辑:程序博客网 时间:2024/04/25 20:40

        比如我要计1000个数,可是16位的计数器要计到65536才满(若初值为0,记数1后变成0001H,计数65535后变成0FFFFH,再计数1次变成65536,溢出了,各位都为0了,然后申请中断。所以是能计数65536个的,虽然最后一次溢出了。),怎么办呢?我们讨论后得出的办法是用预置数,先在计数器里放上64536,再来1000个脉冲,不就行了吗?是的,但是计满了之后我们又该怎么办呢?要知道,计数总是不断重复的,流水线上计满后马上又要开始下一次计数,下一次的计数还是1000吗?当计满并溢出后,计数器里面的值变成了0,因此下一次将要计满65536后才会溢出,这可不符合要求,怎么办?当然办法很简单,就是每次一溢出时执行一段程序(这通常是需要的,要不然要溢出干吗?)可以在这段程序中做把预置数64536送入计数器中的事情。所以采用工作方式0或1都要在溢出后做一个重置预置数的工作,做工作当然就得要时间,一般来说这点时间不算什么,可是有一些场合我们还是要计较的,所以就有了第三种工作方式��自动再装入预置数的工作方式。

原创粉丝点击