利用外部中断实现清零_AVR单片机中断实现 ATmega16 INT ISR(INT0_vect)

本篇博客详细介绍了如何利用AVR单片机的外部中断INT0 Vect,实现对按键事件的响应。通过设置中断源、中断信号、中断向量和中断服务程序,实现在数码管上显示按键按下的次数。讨论了中断的触发方式、中断响应条件、中断服务程序编写,并给出了具体的电路设计和程序设计,包括中断函数、变量和函数说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.21实例功能

前面例子中分别介绍了按键控制发光二极管的亮灭,但是我们注意到,在程序中需要一直检测按键的状态,这样明显的浪费了单片机的资源,降低了单片机的工作效率,。那么有没有一种方法可以让单片机不用一直检测按键的状态,而只在有按键动作时才去响应呢?

当然有!单片机中除了具有基本输入输出功能的作用外,还有专门检测外界信号并作出响应的中断系统。在本例中,通过利用外部中断实现单片机对按键事件的响应和处理。

本例中三个功能模块描述如下:

● 单片机系统:对按键事件产生的中断时间作出响应,并在数码管上显示按键按下的次数。

● 外围电路:通过将按键连接到单片机的外部中断检测端口,实现中断产生电路,数码管显示电路用于指示按键的按下状态。

● 软件程序:编写AVR单片机的外部中断服务程序,从而实现对中断事件的响应。

2.2.2器件和原理

1单片机的中断系统

关于中断的概念可以在一般的教材中找到,本例中只做简要叙述,不再详细说明。

中断属于一种对事件的实时处理过程。中断源可能随时停止单片机当前正在处理的工作,转而去处理中断事件,待中断时间处理完毕之后,再返回原来工作的断点处,继续原来的工作。

对于单片机的中断系统,需要了解这几个概念:中断源、中断信号、中断向量、中断优先级、中断嵌套、中断控制(屏蔽)、中断响应条件、中断响应过程(中断服务程序)。

●中断源

中断源是指能够向单片机发出中断请求信号的部件和设备。对于单片机来讲,往往存在多个中断源。中断源一般可分为内部中断源和外部中断源。

单片机内部集成的许多功能模块,如定时器、串行通讯口、模/数转换器等,它们在正常工作时往往无需CPU参与,而当处于某种状态或达到某个规定值需要程序

控制时,会通过发出中断请求信号通知CPU。这一类的中断源位于单片机内部,称作内部中断源。内部中断源在中断条件成立时,一般通过片内硬件会自动产生中

断请求信号,无须用户介入,使用方便。内部中断是CPU管理片内资源的一种高效的途径。

系统中的外部设备也可以用作中断源,这时要求它们能够产生一个中断信号(通常是高(低)电平或者电平跳变的上升(下降)沿),送到单片机的外部中断请求引

脚供CPU检测。这些中断源位于单片机外部,称为外部中断源。通常用作外部中断源的有输入输出设备、控制对象、以及故障源等。

● 中断信号

中断信号是指内部或外部中断源产生的中断申请信号,这个中断信号往往是电信号的某种变化形式,通常有以下几种类型: 脉冲的上跳沿或下降沿(上升沿触发型或下降沿触发型)

高电平或低电平(电平触发型)

电平的变化(状态变化触发型)

对于单片机来讲,不同的中断源,产生什么类型的中断信号能够触发申请中断,取决于芯片内部的硬件结构,而且通常也可以通过用户的软件来设定。

单片机的硬件系统会自动对这些中断信号进行检测。一旦检测到规定的信号出现,将会把相应的中断标志位置“1”(在I/O空间的控制或状态寄存器中),通知CPU进行处理。

● 中断向量

中断源发出的请求信号被CPU检测到之后,如果单片机的中断控制系统允许响应中断,CPU会自动转移,执行一个固定的程序空间地址中的指令。这个固定的地址称作中断入口地址,也叫做中断向量。中断入口地址往往是由单片机内部硬件决定的。

一个单片机有若干个中断源,每个中断源都有着自己的中断向量。这些中断向量一般在程序存储空间中占用一个连续的地址空间段,称为中断向量区。由于一个中断

向量通常仅占几个字节或一条指令的长度,所以在中断向量区一般不放置中断服务程序的。中断服务程序一般放置在程序存储器的其它地方,而在中断向量处放置一

条跳转到中断服务程序的指令。这样,CPU响应中断后,首先自动转向执行中断向量中的转移指令,再跳转执行中断服务程序。

● 中断优先级

单片机系统一般有多个中断源,当某一时刻同时有多个中断产生时,单片机该如何处理呢?这就有了中断优先级的概念。

通常,单片机可以接收若干个中断源发出的中断请求。但在同一时刻,MCU只能响应这些中断请求中的其中一个。为了避免MCU同时响应多个中断请求带来的混

乱,在单片机中为每一个中断源赋予一个特定的中断优先级。一旦有多个中断请求信号,MCU先响应中断优先级高的中断请求,然后再逐次响应优先级次一级的中

断。中断优先级也反映了各个中断源的重要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值