51单片机中 定时器定时到了,进入中断

2024-11-27 20:23:35
推荐回答(2个)
回答1:

记得在介绍51单片机对中断服务程序的处理时,说的是中断发生时不管在处理什么程序都会停下来转去处理中断服务程序,并保存当前pc地址,以能在中断服务程序处理完成之后能返回这个地址继续处理之前未处理完毕的程序。所以呢,若是在中断发生之前有一个比中断发生时间更长的延时函数,不外乎就两种情况,要么保存当前pc地址,待中断服务程序处理完成重新开始执行被中断处的函数,要么保存当前pc地址并记录程序状态,待处理完成后接着延时,不重新延时。
如果刚才所说的没帮到你,我建议你自己写一个实验程序,就用定时器产生中断,4.5s一次吧,在写一个简单的延时函数,多延时一些,尽量大于4.5s,然后延时函数中用到的变量使用全局变量以方便在主函数中读取值并显示。如果每次读取为0,那么就是重新开始延时,如果每次都不一样,说明保存了状态的,中断服务程序用来读取值。
希望我的回答能帮助到你。

回答2:

哪里进中断, 就回哪里去