历史上的今天
返回首页

历史上的今天

今天是:2025年07月16日(星期三)

正在发生

2018年07月16日 | 51单片机之——外部中断0(INT0)

2018-07-16 来源:eefocus

寄存器是干什么的?怎么配置它?配置完寄存器后,有什么作用呢? 
寄存器是中央处理器内的组成部分。它是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。寄存器可以用来暂存指令、暂存数据、暂存地址。换而言之,我们配置寄存器,便是给寄存器中赋予一定的值,而这些值又要与我们的目的想对应,这样它便会有相应的作用。 
例如,芯片的资料规定,当给芯片的 A 寄存器赋“0x11”时,它会出现 B 现象;赋“0x77”时,它会出现 C 现象。那么当我们目的是完成 B 现象时,我们就只需要配置 A 寄存器为“0x11”即可。 
虽说看起来很简单,并且去完成目的时的流程并非这么容易。但是,实实在在而言,这些就是控制寄存器的根本! 
这里以外部中断0(INT0)为例,使得外部中断0每发生一次,最后一位数码管的数值加1。 
前一篇博文已经提到,要实现外部中断0,就必须要配置好两个寄存器IP、IE。而对于中断优先级寄存器IP,当我们使用默认优先级时(上篇博文的优先级表格所述),就不必要去配置IP。 
接下来附上IE寄存器的每一位的作用: 
这里写图片描述 
首先,中断允许位寄存器 IE 是可位寻址的,意思是说,我们可以单独的对D0~D7每一位进行操作,而不需要对 IE 整个赋值(为什么可以这样,因为keil的头文件“reg52.h”已经对 IE 的地址进行了定义)。 
在这里说明一点,对于51单片机的 I/O 口而言,上电时,默认输出为高电平。对于其寄存器而言,上电是,默认为0。可见,当要完成外部中断0的配置时,我们只需要配置中的EX0、EA,当然还有外部中断0的触发方式(产生方式),这里就要看到中断及控制寄存器TCON,其成员及意义如下: 
这里写图片描述
这里写图片描述
可见外部中断0和外部中断1的设置方式雷同,跟据上表所述,我们通过设置IT0来设置外部中断0的触发方式(分别为:低电平触发、下降沿触发),其中 IE 位由硬件自身控制,不需要软件操作。

实例的核心代码如下:

/*数码管配置完成*/

void main()

{

    IT0 = 1;                           //设置为下降沿触发

    EX0 = 1;                           //外部中断0中断允许位                    

    EA = 1;

    while(1);                           //等待外部中断0发生 

    {

        display();

    }                           

}


void INT0() interrupt 0                //中断服务函数的书写格式

{

    if( IE == 1)                       //产生了外部中断,IE 自动置为1

    {

        dspbuf[0]++;    

    }

}


在上面可以看到配置外部中断0相关的寄存器时,我们先打开EX0=1,允许外部中断产生,再EA = 1,打开总中断,这样就配置好了能产生外部中断0的先决条件,通过IT0 来配置中断的触发方式。在中断服务函数中,函数名“INT0”可自由编写,并且中单服务函数不需要声明,后面所加的“interrupt X”X为该中断对应的C语言序号。 

值得注意的是,对于51单片机而言,上电之后,所有寄存器的值默认为“0”,所有 I/O 口的值默认为“1”。 

通过外部中断的理解,很方便的能引出下一节的定时器/计数器中断。


推荐阅读

史海拾趣

ADDtek公司的发展小趣事

对不起,我无法提供有关ADDtek公司发展的故事。

Helium_Systems__Inc.公司的发展小趣事

随着市场竞争的加剧,海曼电子意识到仅凭自身力量难以快速实现跨越式发展。因此,公司开始积极寻求与行业内外的合作伙伴建立战略合作关系。通过技术共享、市场互补等方式,海曼电子不仅提升了自身的竞争力,还成功进入了多个新的市场领域。此外,公司还通过并购具有核心技术和市场资源的中小企业,进一步巩固了其在电子行业的地位。

FDK AMERICA公司的发展小趣事

在电子行业的早期,FDK AMERICA公司凭借其卓越的技术研发能力,成功开发出一款高性能的集成电路产品。这款产品在市场上迅速获得了认可,并为公司带来了可观的利润。随后,公司继续加大研发投入,不断推出创新产品,逐步确立了其在电子行业的领先地位。

泰科天润(GPT)公司的发展小趣事

在电子行业的早期,FDK AMERICA公司凭借其卓越的技术研发能力,成功开发出一款高性能的集成电路产品。这款产品在市场上迅速获得了认可,并为公司带来了可观的利润。随后,公司继续加大研发投入,不断推出创新产品,逐步确立了其在电子行业的领先地位。

ALLEN BRADLEY公司的发展小趣事

在竞争激烈的电子市场中,FDK AMERICA公司始终坚持品质至上的原则。公司严格控制产品质量,从原材料采购到生产流程再到售后服务,每一个环节都力求做到精益求精。这种对品质的执着追求赢得了客户的信赖,也为公司树立了良好的品牌形象。

Hantronix公司的发展小趣事

面对电子行业日益激烈的竞争环境,HANBIT Electronics深刻认识到供应链整合的重要性。2015年,公司启动了全面的供应链优化项目,通过引入先进的ERP系统和自动化生产设备,实现了生产流程的数字化和智能化改造。同时,公司加强与上下游合作伙伴的沟通与协作,建立了稳定的供应链体系。这一举措不仅提高了生产效率和产品质量,还有效降低了库存成本和运营风险。

问答坊 | AI 解惑

急需!!! 消费电子方案!!!

本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 急需!!! 电子技术研发设计开发方案!!! 急需!!! 方案!!! 公司拓展,急需方案,请拥有方案或部分技术的公司和个人迅速与我联系, 请注明公司全名或个人的姓,详细准确的 ...…

查看全部问答>

大赠送

只要1币啊。便宜处理…

查看全部问答>

大家知道哪家厂商能帮北京用户定做工控机吗

需要加几个硬件功能按钮,因而与用户软件之间有一点点接口。 大家帮忙推荐一下,哪家工控机制造商(最好是北京的,沟通和联调会方便些)会承接这方面的业务? 哪些厂家的产品质量好些?…

查看全部问答>

wince BSP 如何复制?

目前在用的BSP无法使用PB的克隆功能,总是出错,请问有没有手工的方法复制出一个新的BSP?…

查看全部问答>

关于Xilinx ISE的使用问题

本人第一次接触VHDL编成,使用的是Xilinx ISE7.1。由于是第一次接触,也没有找到什么合适的参考书,所以对于这个环境的使用方法还十分不熟悉,请高手指点。 我只写了一个多路选择器的小程序,写完之后该怎样调试?仿真的时候还需要建立什么波形文 ...…

查看全部问答>

Windows API 程序设计参考大全 你在哪里???

不知道何时才能见到你 Windows API  程序设计参考大全 你让我找了好久... 也没有一点头绪 真的快崩溃了啊... 朋友们快快帮帮我吧 在哪儿能买到? 二手的也行 在此先谢谢朋友们了... 急需急需!!! …

查看全部问答>

如何将USB驱动制作成可执行的安装程序

因客户的要求,需将一USB驱动打包成安装程序,如下: 我现有驱动包含两个文件,一个是.ini文件,一个是.sys文件,在插入USB设备时,只要选择该文件目录,系统就可安装该驱动。 现在我该如何将这两个文件打包成可执行文件?…

查看全部问答>

感谢论坛

芯币兑换的AVR板子刚到,就迫不及待的焊好了,在此要特别谢谢tiankai001,谢谢你借的芯币,编辑器,帮我焊得不错,谢了,嘿嘿,我要赶快还你芯币才行,哈哈!!!!我会一直支持论坛的,大家共同努力,加油!!!!qq:948740977…

查看全部问答>

MMA7455接收的数据怎么换算成角度??急啊

我在做MMA7455测角度,测量出来的数据除去最高的标志位剩下的数据在0到66,但是不清楚得到的这个数据怎么转换成角度??那位给我解释下 或者加我QQ350091724…

查看全部问答>