在单片机中如何扩展中断?
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
更多
在单片机中,扩展中断的主要目的是通过有限的硬件中断资源(如较少的INT引脚)处理更多的中断源。以下是常用的扩展方法及步骤,以中文说明:
1. 硬件扩展法(使用逻辑门电路)
原理
通过外部硬件电路(如与门、或门、优先编码器)将多个中断信号合并,共享同一个单片机中断引脚。
步骤:
- 连接电路:
将多个中断源(如按键、传感器等)接入或门(OR Gate)的输入,或门的输出连接到单片机的某个外部中断引脚(如INT0)。
示意图:中断源1 --> [或门] --> INT0 (引脚) 中断源2 --> [或门] 中断源3 --> [或门] - 中断服务程序(ISR):
当INT0触发中断时,在ISR中读取所有中断源的状态(如扫描GPIO引脚),判断具体是哪个设备产生了中断。 - 关键点:
- 逻辑门需满足中断的电气特性(如电压、电平类型)。
- 实时性要求高的场景需配合优先级处理。
2. 软件轮询法(查询法)
原理
将多个中断信号合并到一个中断引脚,在中断服务函数中通过轮询确定中断源。
步骤:
- 硬件连接:
将多个中断源通过二极管或或门连接到同一个中断引脚(例如INT0)。 - ISR设计:
void INT0_ISR() interrupt 0 { if (P1_0 == 0) { // 检查中断源1的状态 // 处理中断源1 } if (P1_1 == 0) { // 检查中断源2的状态 // 处理中断源2 } // ... 继续检测其他中断源 } - 优缺点:
- 优点:硬件简单,成本低。
- 缺点:响应时间不确定,不适合高实时性场景。
3. 使用专用中断扩展芯片
原理
利用外部中断控制器(如74HC148优先编码器或8259A可编程中断控制器)扩展中断源。
步骤:
- 硬件连接:
中断源接入扩展芯片(如74HC148)的输入,芯片输出连接到单片机的中断引脚。
示例:中断源1~8 --> [74HC148] --> 3位编码输出 + 中断请求信号 --> 单片机INT0 - ISR设计:
在INT0的ISR中,读取扩展芯片的编码输出,确定具体中断号。 - 适用场景:
适合需要高优先级管理和多中断源的复杂系统。
4. 利用定时器中断模拟
原理
将定时器配置为外部事件计数器,通过计数器溢出产生中断。
步骤:
- 配置定时器:
- 设为计数模式(非定时模式)。
- 外部脉冲信号接到定时器引脚(如T0)。
- 设置计数初值(如1),使其在第一个脉冲到来时即溢出。
- 中断处理:
定时器溢出中断相当于外部中断,在ISR中处理事件。 - 适用场景:
脉冲计数型设备(如编码器)。
关键注意事项
- 中断优先级:
在复杂系统中配置中断优先级,避免冲突(通过寄存器IP或硬件扩展芯片设置)。 - 消抖处理:
机械开关类中断源需加硬件消抖(RC电路)或软件消抖(延时检测)。 - 资源开销:
软件轮询法会增加中断响应时间,高实时性场景建议使用硬件扩展。 - 电气隔离:
强干扰环境需添加光耦隔离,保护单片机引脚。
示例代码(8051 + 软件轮询法)
#include <reg51.h>
#define KEY_PINS P1 // 假设中断源接在P1口
void INT0_ISR() interrupt 0 {
if ((KEY_PINS & 0x01) == 0) { // 检测P1.0的按键
// 处理中断源1
}
if ((KEY_PINS & 0x02) == 0) { // 检测P1.1的按键
// 处理中断源2
}
}
void main() {
IT0 = 1; // 设置INT0为下降沿触发
EX0 = 1; // 使能INT0中断
EA = 1; // 全局中断使能
while (1); // 主循环等待中断
}
通过上述方法,可根据系统复杂度、成本和实时性需求,灵活选择适合的中断扩展方案。硬件扩展适合高性能场景,软件轮询适合低成本简单应用。
单片机的中断源有哪些及单片机中断的资料和程序说明
中断是为使单片机具有对外或内部随机发生的事件实时处理的能力而设置的,中断功能的存在,很大程度上提高了
资料下载
佚名
2019-09-25 17:17:00
STM32单片机外部中断简介 STM32单片机外部中断的配置过程
STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块以及优秀的扩展性,开发周期短、成本低。在
2023-08-15 18:21:05
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 传感器常见类型有哪些?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机