关于51单片机“外部中断触发方式”的经验总结
来源:互联网 发布:windows recovery key 编辑:程序博客网 时间:2024/06/10 13:36
标签: 无标签
关于51单片机“外部中断触发方式”的经验总结
下面是本人使用51单片机的一点经验,写出来分享,请批评指正
51单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。
这个原理很好理解。但应用时需要特别注意的几点:
1) 电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单片机把每个机器周期的S5P2采样到的外部中断源口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要使电平触发的中断被CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被执行为止。因此当CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为高电平)了,那么将得不到响应,就如同没发生一样。同样,当CPU在执行不可被中断的指令(如RETI)时,产生的电平触发中断如果时间太短,也得不到执行。
2) 边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中,直到CPU响应并转向该中断服务程序时,由硬件自动清除。因此当CPU正在执行同级中断(甚至是外部中断本身)或高级中断时,产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你不希望这样,必须在中断退出之前,手工清除外部中断标志。
3) 中断标志可以手工清除。一个中断如果在没有得到响应之前就已经被手工清除,则该中断将被CPU忽略。就如同没有发生一样。
4) 选择电平触发还是边沿触发方式,TCON 控制寄存器 设置。应从系统使用外部中断的目的上去考虑,而不是如许多资料上说的根据中断源信号的特性来取舍。比如,有的书上说(《Keil C51使用技巧及实战》),就有类似的观点。
- 关于51单片机“外部中断触发方式”的经验总结
- 关于51单片机“外部中断触发方式”的经验总结
- 关于51单片机外部中断的触发方式
- 51单片机的外部中断
- STC15单片机外部中断仅上升沿触发的方法
- 51单片机外部中断
- 关于中断触发方式的选择
- 51单片机外部中断的C51编程
- "单片机外部中断0由数据信号线的下降沿触发"是什么意思
- 51单片机STC89C52 外部中断
- 51单片机外部中断示例
- 51单片机 外部中断实验
- 51 单片机扩充外部中断
- 51单片机边沿触发中断响应时刻的测量
- 51单片机边沿触发中断响应时刻的测量
- 51单片机边沿触发中断响应时刻的测量
- ARM9260内部中断和外部中断触发方式
- Linux下的51单片机简单的外部中断实验
- ooc翻译项目google code托管
- 让按钮倒计时10秒以后才能点击提交
- 将数字转成英文描述(sql函数方法)
- MySQL Query Profiler 的使用 show profiles
- 理解C#面向对象编程
- 关于51单片机“外部中断触发方式”的经验总结
- 刚登陆 记录我的租房看房之路
- 关于哪种杀毒软件最好的一些个人见解[转载]
- Wince6.0 添加IOCTL
- 请教 我没学过VB,请问我这样声明可以吗?有什么语法错误?请指正 谢谢了!!!
- 好的学习方法。
- display属性对table的影响
- Debian下Mysql源码安装出现No curses/termcap library found报错的解决办法【zz】
- Linux进程-信号