找回密码
 注册
关于网站域名变更的通知
查看: 482|回复: 6
打印 上一主题 下一主题

关于51单片机“外部中断触发方式”的经验总结

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-10-21 14:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 行者~ABC 于 2020-10-21 14:44 编辑
" m4 [: I5 F  `2 U- r
0 i( K6 p3 F8 T' O
下面是本人使用51单片机的一点经验,写出来分享,请批评指正
51单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。
这个原理很好理解。但应用时需要特别注意的几点:电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单片机把每个机器周期的S5P2采样到的外部中断源口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要使电平触发的中断被CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被执行为止。因此当CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为高电平)了,那么将得不到响应,就如同没发生一样。同样,当CPU在执行不可被中断的指令(如REti)时,产生的电平触发中断如果时间太短,也得不到执行。
2)$ o. y6 f/ s  t8 ^# `% a
边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中,直到CPU响应并转向该中断服务程序时,由硬件自动清除。因此当CPU正在执行同级中断(甚至是外部中断本身)或高级中断时,产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你不希望这样,必须在中断退出之前,手工清除外部中断标志。
3) 中断标志可以手工清除。一个中断如果在没有得到响应之前就已经被手工清除,则该中断将被CPU忽略。就如同没有发生一样。

: j" ]9 y! q; L$ G8 j5 Q2 ]
4) 选择电平触发还是边沿触发方式,TCON 控制寄存器8 Y+ h6 [4 u7 K5 w
设置。应从系统使用外部中断的目的上去考虑,而不是如许多资料上说的根据中断源信号的特性来取舍。比如,有的书上说(《KeilC51使用技巧及实战》),就有类似的观点。

, f. Y; N, v4 v8 U8 R

该用户从未签到

2#
发表于 2020-10-21 14:45 | 只看该作者
定时器中断比较重要

该用户从未签到

3#
发表于 2020-10-21 17:26 | 只看该作者
串口用的多

点评

赞同 现在2个串口都不够用  详情 回复 发表于 2020-10-21 19:11
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2020-10-21 19:11 | 只看该作者
    yiwangxip 发表于 2020-10-21 17:26
      r) _% r- K% X7 K4 g串口用的多
    4 D+ ~  f! S, U
    赞同
    4 D- N: S% x: I% y" N现在2个串口都不够用
    - Y% o! `% f- h' N8 G, w

    该用户从未签到

    5#
    发表于 2021-1-25 22:55 | 只看该作者
    感谢楼主分享666666
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-10 11:41 , Processed in 0.156250 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表