外部中断0用于设定定时开关,外部中断1用于设定秒表的计时和清零。
单片机可以连续用两个中断,相互独立,但同时发生中断(这种几率太小了)响应有先后顺序,并且程序中可设置两种优先级,高优先级中断可打断低先级中断。
单片机中只要开总中断,再同时打开外部中断和定时中断,编写相应的中断程序即可。外部中断0采用下降沿触发中断优先级不设定,两个中断谁也打断不了谁,同时发生中断时外部中断0优先于定时器0。
基本上是把寄存器和函数里是0的改成1
函数名()interrupt 0 {} //对应外部中断0;----》函数名()interrupt 1 {} //对应外部中断1;
EX0---》EX1 等!!
不知你 time2 是否有用
EW_FREE_SN_FREE();执行一次要多长时间?若时间很短的话,有可能一直执行下去,因你不断地把 time1清0,time1<10永远满足 若时间较长的话,执行一次 EW_FREE_SN_FREE()后发现 不仅time1>10 而且 time1>20, 所以EW_FREE_SN_NOR()执行不了,但你说的中断次数为11,再次偱环 到else if(time1<20)时 EW_FREE_SN_NOR()应该可执行1次
EW_FREE_SN_NOR()执行时间不超过10次中断的话,又回到 if(time1<10)而执行 EW_FREE_SN_FREE(); 这也许是你想要和结果
若EW_FREE_SN_NOR()执行时间超过10次不超过20次中断的话,程序在此此反复执行
若EW_FREE_SN_NOR()执行时间超过20次中断的话,程序跑飞,两条语句都不执行,我也不知当time1溢出后它会不会回来
若EW_FREE_SN_FREE()和EW_FREE_SN_NOR()两条语句占用时间不是定值的话,执行情况就更复杂了
151外部中断0函数执行时,又来了个外部中断0信号,那这个中断函数是继续执行还是重新执行?
答:不会执行。只有更高级别的中断出现时,才会停止执行当前中断程序,转而执行新中断。对于同一级或低一级的中断申请,不会执行。
2问:在执行中断函数时,外部信号变回高电平,那中断函数应该继续执行吧?
答:提问问的含糊不清(中断是低电平触发,不是高电平)。实际情况是这样的:当一个中断函数执行时,外部信号变成高电平,不影响当前中断函数的执行,它会一直执行到结束。你的意思是说,在当前中断执行时,如果又来了一个同一级的中断,而当前中断执行完后,那个外部信号仍保持低电平,会不会再次触发中断程序?会!但如果前一个中断程序执行完之前,外部信号变成了高电平,那么这第二次中断申请被完全忽略!!单片机不会存储中断申请记录!!
以上就是关于外部中断0和外部中断在秒表中的作用全部的内容,包括:外部中断0和外部中断在秒表中的作用、51单片机外部0中断变成外部1中断,程序怎么修改、单片机外部中断0和外部中断1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)