前面第5部分,我们讲解了 51 定时器的使用。那么现在你手头上也就有了一块带数字显示的手表,它能不停的循环跑起来(从 初始值 -> 最大值 -> 0 -> 最大值).
其实呀,每次 51 定时器在从最大值跳转到 0 的时候会有一个检测。就好像闹钟一样(比如你设置了 8 点的闹钟,但是闹铃你没有开。虽然8点钟到了,闹钟会启动,但是不会吵醒你。所以你就迟到了。)这里一样,51单片机在从最大值跳转到0的时候也会启动一个事情,但是,这个事情到底会不会去叫单片机还需要设置一个开关。而这个开关我们就叫它(定时器溢出中断 ET0)也就是说,如果我们只需要在昨天的代码上增加两行如下代码:
这样,只要定时器从最大值跳转到 0 的时候,它就会发生中断(也就是闹醒正在干其他事的单片机过来)。
那么单片机到底被叫去哪里了呢?只要定时器的闹钟一发生,它就会告诉单片机时间到了。而这时单片机就会去寻找如下形式的函数。(为什么单片机知道它呢?就是因为函数屁股后面跟了一个 interrupt 0 ,主要函数配备了这个东西,闹钟一响就会跑过来执行它。不过尽量只有1个函数绑定它,否则单片机也会懵的,我到底选择哪一个?)