首页 > 编程知识 正文

外部中断汇编程序,51单片机int0是什么意思

时间:2023-05-04 03:10:33 阅读:168253 作者:14

寄存器在做什么? 怎么配置? 配置寄存器后,有什么作用?

寄存器是中央处理器内的构成要素。 这是一种存储容量有限的高速存储部件,可用于临时存储指令、数据和地址。 寄存器可用于临时保存命令、数据和地址。 也就是说,我们配置寄存器就是给寄存器赋予一定的值,使这些值与我们的目的相对应,并使其适当发挥作用。

例如,芯片的数据中规定,如果对芯片的a寄存器赋予“0x11”,就会发生b现象。 给定“0x77”,就会发生C现象。 那么,以完成b现象为目的时,将a寄存器设定为“0x11”即可。

看起来很简单,但达到目的的过程没那么简单。 但实际上,这些是控制寄存器的基本!

这里,以外部中断0(int0)为例,每次发生外部中断0时,最后一位的数值加1。

根据前面的博客,为了实现外部中断0,必须配置两个寄存器IP、IE。 对于中断优先级寄存器IP,如果要使用上一个博客优先级表中介绍的默认优先级,则不需要配置IP。

下面附上IE寄存器各位的作用。

首先,中断允许位寄存器IE是位可寻址的。 这意味着无需为整个IE赋值,就可以分别操作D0~D7的各位。 (为什么会这样,是因为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; wile(1; //等待外部中断0发生({ display ); }voidint0(interrupt0) /中断服务函数的表示形式(if ) IE==1)//发生外部中断,ie自动置1 ) DSPbuf(0); }如上所述,在配置与外部中断0相关的寄存器时,首先接通EX0=1,允许外部中断的发生,然后接通EA=1,接通总中断,由此配置能够发生外部中断0的前提条件,在IT0中采用中断的触发方式在中断服务函数中,可以自由描述函数名“INT0”。 此外,单个服务函数不需要声明。 在后面添加的“interrupt X”X是与该中断对应的c语言编号。

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

通过理解外部中断,可以轻松引出下一节的定时器/计数器中断。

没有后续了……

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。