关于中断寄存器,如下图所示:图1IE-中断使能寄存器的位分配(地址0xA8,可寻址位)图2IE-中断使能寄存器的位描述由中断使能寄存器IE的位0至5控制允许6个中断,并且不使用第6位,第7位是主控开关。主开关相当于我们家庭或学生宿舍中的主电源门,从0到5的6个位置等效于每个子开关。也就是说,只要使用中断,就必须写成EA = 1,打开中断主开关,然后使用哪个子中断,再打开相应的控制位。图3中断的查询序列此表也不需要每个人都记住,只需在需要时检查一下即可。现在,我们在第二行中查看T0中断。要启用该中断,请将其中断允许位ET0设置为1。当其中断标志位TF0变为1时,将触发T0中断,这是时候执行中断功能了。微控制器如何找到该中断功能?它取决于中断向量地址,因此从中断向量中得出中断后的中断功能编号x,其计算方法为x * 8 + 3 =向量地址。当然,表中的所有计算都已经放在第一列中,因此我们可以将其检出并直接使用。到目前为止,我们都已经弄清楚了中断函数的命名规则。写入中断功能后,只要满足中断条件并触发中断,系统就会自动调用中断功能。例如,上面的程序总是在主程序while(1)的循环中执行。如果程序有100行,当执行到50行时,定时器溢出,则微控制器将立即运行到中断功能以执行中断程序,在执行中断程序后,它将自动返回到第50行,并且继续执行以下程序。这样可以确保动态显示间隔固定为1ms,并且由于程序执行时间不一致,数字显像管显示也不会抖动。向上。为什么要使用中断?我们数码管上的数字每秒变化一次。更改时,不参与更改的数码管可能会抖动一次。此抖动没有专业名称。我们称其为数字电子管抖动。是什么原因导致数字电子管抖动?数据更改时为什么会抖动?让我们分析一下我们的程序。当程序计时到1秒时,它将执行“秒+1”的操作,并转换为数字显像管显示字符。 32位整数的除法运算实际上比较耗时。关于该程序花了多少时间,您可以使用第4章中介绍的调试方法来查看该程序花了多少时间。因为每次计时到达1秒,程序都会运行这样的时间段。 ,导致某个数码管点亮比其他情况更长,总时间变为1ms +程序本节的运行时间,与此同时,其他数字灯管关闭5ms +程序本节的运行时间,如果该程序的运行时间很短,可以忽略不计,但是很明显,该程序的运行时间现在已经比较长,严重影响了视觉效果,因此我们不得不采取中断措施来解决这个问题。问题。 q