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单片机
    +关注

    关注

    274

    文章

    5702

    浏览量

    123469
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114705
  • 串口中断
    +关注

    关注

    0

    文章

    64

    浏览量

    13880

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

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

收藏 人收藏

    评论

    相关推荐

    MCS-51单片机中断软件编程

    MCS-51单片机中断软件编程 MCS-51单片机有多个中断
    发表于 03-06 10:08 1322次阅读
    MCS-<b class='flag-5'>51</b><b class='flag-5'>单片机</b>外<b class='flag-5'>中断</b>软件编程

    51单片机中断扩展

    单片机外部中断拓展 中断太多时可以使用次方法。
    发表于 04-12 15:02 8次下载

    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 3963次阅读
    <b class='flag-5'>浅谈</b><b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>控制

    51单片机教程之51单片机中断系统的详细资料概述

    本文档的主要内容详细介绍的是51单片机教程之51单片机中断系统的详细资料概述主要内容介绍的是中断
    发表于 11-19 09:56 17次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>教程之<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统的详细资料概述

    51单片机中断系统详细资料总结

    本文档的详细介绍的是51单片机中断系统详细资料总结。主要内容包括了:1 中断的概念,2 中断系统结构,3
    发表于 03-07 16:37 3次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统详细资料总结

    51单片机外部中断的C51编程程序和相关知识免费下载

    1、51单片机的5大中断:串行口中断、定时中断1、外部中断
    发表于 08-27 17:30 6次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>外部<b class='flag-5'>中断</b>的C<b class='flag-5'>51</b>编程程序和相关知识免费下载

    51单片机外部中断0实例详解

    今天就以51单片机的外部中断0为例,来简单讲解一下单片机中断的用法。1 51
    发表于 11-11 12:51 19次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>外部<b class='flag-5'>中断</b>0实例详解

    51单片机中断

    51单片机中断51单片机中断原理中断的概念:
    发表于 11-11 14:36 52次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>中断</b>篇

    单片机(AT89C51中断系统详解和中断系统应用实验

    工作效率 ⑵ 具有实时处理功能 ⑶ 具有故障处理功能 ⑷ 实现分时操作中断中断是指能发出中断请求,引起
    发表于 11-17 11:06 14次下载
    <b class='flag-5'>单片机</b>(AT89C<b class='flag-5'>51</b>)<b class='flag-5'>中断</b>系统详解和<b class='flag-5'>中断</b>系统应用实验

    51单片机中断

    中断中断时为使单片机具有对外部或内部随机发生的事件实时处理而设置的,51单片机内部一共有5个中断
    发表于 11-19 09:06 18次下载
    <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单片机中断

    51单片机中断总序51中断分为两种类型,一类是外部中断
    发表于 11-22 12:21 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>

    51单片机学习笔记———10.中断机制

    中断单片机中断系统是最基础也是最重要的部分,博主在学习这个的时候踩到了很多的坑,于是写下这篇笔记来整理一下自己的思路。中断涉及的内容:中断
    发表于 11-22 13:51 11次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>学习笔记———10.<b class='flag-5'>中断</b>机制

    51单片机中断程序示例

    51单片机中断程序示例
    发表于 05-17 18:03 0次下载