这个原理很好理解。但应用时需要特别注意的几点:
1) 电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单片机把每个机器周期的S5P2采样到的外部中断源口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要使电平触发告陆的中断被CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被执行为止。因此当CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为高电平)了,那么将得不到响应,就如同没发生一样。同样,当CPU在执行不可被中断的指令(如RETI)时,产生的电平触发中断如果时间太短,也得不到执行。
2) 边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中,直到CPU响应并转向该中断服务程序时,由硬件自动清除。因此当CPU正在执行同级中断(甚至是外部中断本身)或高级中断时,产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你不希望这样,必须在中断退出之前,手工清除外部中断标志。
3) 中断标志可以手工清除。一个中断如果在没有得到响应之前就已经被手工清除,则该中断将被CPU忽略。就如同没有发生一样。
4) 选择电平触袜配顷发还是卖搜边沿触发方式,TCON 控制寄存器
设置。应从系统使用外部中断的目的上去考虑,而不是如许多资料上说的根据中断源信号的特性来取舍。比如,有的书上说(《Keil C51使用技巧及实战》),就有类似的观点。
外部中断意思就是是说:
1,主程序一直在运行,当你在外部施加一个中断
脉通
信号后。就停止主程序滑信世,然坦丛后去执行你所编信肢的中断程序,完成中断程序又回到主程序。当然这是人为的对单片机的某些引脚施加高低脉通而已。可以是按键,也可以是外部做的定时器,来触发外部中断程序。
2,如果是内部中断仅仅是吧中断程序当做定时器而已,意思是说多少时间后就执行中断程序。
希望能够帮到你!!
*^________,^*
嘿嘿俺来帮你解决1 选择计数脉冲的上升沿触发中断 即设外部中断0为边沿触发方式
2 进入外部中断0的中断服务程序伏弯码后,首先要让外部中断0关中断,避免计一个脉冲时产生多次中断。
3 计数加1后,要延时一段缺哪时间,让计数脉冲稳定后,再让外部中断0重新开中断。
呵呵赶快试试吧 如果对的话 就给俺加分闹段吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)