0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈51内核单片机中断源

GReq_mcu168 作者:工程师飞燕 2018-10-21 10:15 次阅读

51内核的最基础的中断源请求有外部中断、定时器中断和串口中断,这也是学习和开发者最长用的。当然还有其他的中断源,比如ADC、SPI、PWM等。以外部中断0为例,在编程中常使用的方式为:

void INT0()interrupt 0 using 1

{

……

}

在这里特别做上笔记:其中前面的void INT0() 只是代表一个普通没有形参的函数而已,函数名写成什么都是可以的,这个到不重要。那么后面的就一个一个词的扣把:(2-1-i-c-中国-电子网,防抓取)

其中 interrupt n 组成一组,n用来指明中断号,在函数后使用了interrupt关键字后,就会自动的生成中断向量,51内核中断号如下图,这是我今天查的正在使用的MCU

浅谈51内核单片机中断源

例如:

12

interrupt 1 指明是定时器中断0;

interrupt 2 指明是外部中断1;

interrupt 3 指明是定时器中断1

。。。

对于51内核的MCU,不同厂家及不同型号的内部资源会有所不同,上图是我正在开发的一款中颖SH88F516单片机,由上图可见内部资源还算可以,能够满足一般的产品。后面的using n 指的是使用第n组寄存器。这个之前我在使用的过程中往往忽略了这个,也没有出现什么问题。但是今天注意到这个问题,查完资料后用上发现效果还不如不用,很有肯能是没有把这个知识用好的原因把。对比之后给我的感觉是在使用C语言写程序时,能不用就不用吧。查资料解释说假如在中断函数中使用了using n,中断不再保存R0-R7的值,这也就意味着假如一个高优先级的中断及一个低优先级的中断同时使用了using n,而这个n恰恰相等,那就等着哭把,因为这个BUG还真不是那么好找出来的(今天我就遇到了这个问题)。

其次就是中断优先级的问题了,如图上面的中断表,在右侧第二栏标的很清楚,除了复位之外,就数外部中断0优先级最高了,依次往下排列,那么问题来了,今天刚好就碰到了需要串口0的优先级比定时器0的优先级高。没办法,只好接着啃数据手册,还好这寄存器不多,一会就查到了下表和相关的描述:

浅谈51内核单片机中断源

所以按照描述修改下优先级就可以达到目的了。

总结:用到回过头来用到51的中断,发现有些东西在之前学习的时候并没有太在意,导致现在在开发产品上使用的时候不清楚用途。因为工作跟学习性质是不一样的,作为开发者的角度来说,质量往往是第一要求。同时会接触到很多新鲜的事物和技术,但是话又说回来了,最基本的知识还是需要打牢。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 51单片机
    +关注

    关注

    269

    文章

    5648

    浏览量

    120692
  • 定时器
    +关注

    关注

    23

    文章

    3146

    浏览量

    112033
  • 串口中断
    +关注

    关注

    0

    文章

    63

    浏览量

    13603

原文标题:51单片机内核的中断及中断向基础知识

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    中断中断入口、中断的控制(2)#单片机

    单片机中断
    未来加油dz
    发布于 :2023年08月08日 20:55:26

    中断中断入口、中断的控制(3)#单片机

    单片机中断
    未来加油dz
    发布于 :2023年08月08日 20:56:06

    C51单片机只有5个中断,却有32个中断

    在C51单片机中,只有5个中断(80C51等),最多有6个中断
    发表于 08-29 15:02

    请问51单片机内核中断是怎么实现的?

    51内核的最基础的中断请求有外部中断、定时器中断和串口中断
    发表于 05-07 07:55

    51单片机有几个不同的中断

    我们都知道,51单片机有几个不同的中断。对于一个系统的设计,通常在初始化程序里面需要定义各个中断等。
    发表于 11-02 09:06

    51单片机中断原理及配置

    51单片机中断51单片机中断原理中断的概念:
    发表于 11-18 08:09

    51单片机中断优先级与向量

    并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。51单片机中断优先级与向量号如下表:中断
    发表于 11-18 06:45

    MCS-51单片机中断嵌套的概念如何通过IP控制各中断中断优先级?

    MCS-51单片机中断嵌套的概念如何通过IP控制各中断中断优先级?
    发表于 03-24 17:16

    请问51单片机内核中断是如何实现的?

    51内核的最基础的中断请求有外部中断、定时器中断和串口中断
    发表于 10-25 06:53

    第7章单片机C51中断

    第7章单片机C51中断
    发表于 12-16 15:43 13次下载

    51单片机定时器中断_51单片机中断系统_51单片机扩展中断的四种方法

    中断是为使单片机具有对外部或内部随机发生的事件进行处理而设置的。51单片机有5种中断源,即有5种对应的情况发生时会使
    发表于 12-08 10:15 1.1w次阅读
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>定时器<b class='flag-5'>中断</b>_<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统_<b class='flag-5'>51</b><b class='flag-5'>单片机</b>扩展<b class='flag-5'>中断</b>的四种方法

    浅谈51单片机中断控制

    51系列单片机有5个中断源,2个优先级,可以实现二级中断服务嵌套结构。
    发表于 05-29 14:07 3698次阅读
    <b class='flag-5'>浅谈</b><b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>控制

    51单片机中断

    51单片机中断(interrupt)
    发表于 11-20 16:51 13次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>之<b class='flag-5'>中断</b>

    51单片机中断系统

    文章目录1 51单片机中断系统1.1 中断的固有优先级和抢占优先级1 51单片机
    发表于 11-22 13:36 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统

    51单片机中断系统

    文章目录1 51单片机中断系统1.1 中断的固有优先级和抢占优先级1 51单片机
    发表于 11-23 16:51 14次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统