单片机外部中断有限,仅有两个,在某些系统设计中可能会不够用。这里给大家推荐一个比较简单的扩展外部中断的方法。灵感来至于单片机键盘设计!
在有些键盘设计中,如果在程序中采用轮询的方法在检测按键,会花费大量的cpu资源,特别是还要进行大量的数据处理的情况下。所以很多按键设计都加入了中断,上一篇博文里的按键设计其实都可以加入中断,这样可以更好的利用cpu资源。
一般在按键设计中只会用一个中断,但是却可以控制n多的按键。每一个按键的按下都相当于产生了一个中断,所以利用这个原理,我们也可以‘无限’的扩展外部中断。一个简单的电路图如下:
这样当外部送来一个低电平的信号时,通过与非门后将产生一个中断信号,这个信号可以送到单片机的外部中断1,然后检测p00到p03的电平状态,就可以判别是根线上产生了外部中断,从而运行相应的中断服务子程序。
这个电路原理可以结合前面的按键来进行进一步的发挥(每个按键信号可以当做一个中断信号),那样可以产生跟多的中断信号。
关键字:单片机 外部中断 扩展
引用地址:
关于单片机外部中断的扩展
推荐阅读最新更新时间:2024-03-16 14:34
基于AT89S51单片机的冲床控制器设计
系统硬件配置以AT89S51单片机为核心。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4Kb ISP(In-system programmable)可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,内置看门狗(WDT)电路。 功能强大的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。采用该单片机设计的冲床控制器,具有以下几个特点: 图1 控制器的硬件结构框图 ● 控制器采用PLC设计的理念,可靠性高,抗干扰能力强。 ● 面板上6位七段 LED 显示,既可以用来调节参数,工
[单片机]
51单片机(STC89C52)的多路PWM脉冲宽度调制输出
软件方式输出PWM PWM用于输出强度的控制, 例如灯的亮度, 轮子速度等, STC89/90系列没有硬件PWM, 需要使用代码模拟 使用纯循环的方式实现PWM 非中断的实现(SDCC环境编译) #include 8052.h #define Led10 P0_7 typedef unsigned int u16; int atime = 64; // 仅作为延时, pms取值区间为 0 - 64 void delay(u16 pms) { u16 x, y; for (x=pms; x 0; x--) { for (y=11; y 0; y--); } } // 这里控制占空比, i取值区间为
[单片机]
单片机NTC温敏电阻的模拟温度传感器
1、功能:实现温度的测量,温度达到或超过设定温度时,蜂鸣器发出报警声 。2、性能指标:温度范围:-40℃~300℃,分辨率 0.1℃,温度误差≤±2℃,转换时间:100ms 在上电之后,STC89C52 单片机进行相关的初始化,并启动 ADC,初始化完毕之后,进入 while 循环并不断通过串行口的移位寄存器功能扫描数码管,实时显示所控温度值和当前温度值,当达到所控温度时,蜂鸣器发出报警。 温度测量:当启动 ADC 之后,每间隔 100ms 进行一次测量,ADC 测量完毕之后产生一个下降沿触发,单片机的外部中断口检测到外部中断后立即通过一根时钟线和一根数据线完成 ADC 数据的读取,并计算出温敏电阻的压降和电流,根据
[单片机]
浅谈分析51,AVR,PIC单片机的区别
我觉得51比较好。因为51是比较标准的复杂指令单片机,通过学习51可以比较全面掌握单片机和通用CPU知识,达到触类旁通的目的(Z80也不错,可惜有些过时了,开发工具也很落后)。而PIC是一种精简指令系统,虽然机器码好懂,但是局限性较大,就是说会过分偏重理解MicroChip的设计思想。其实全面掌握单片机技术较用精某一种芯片来得划算(不要被某一个公司捆住思想)。 类似PIC的芯片很多,比如AVR、MSP430、Z8等,掌握51的结构和指令系统之后理解这些单片机的原理就很容易。而反过来也许就要各个击破。 还有一些理由: 就芯片而言:51单片机有非常低廉的价格和数不胜数的衍生芯片系列,这些产品从低速(1MPS)到高速(30MPS)几乎涵
[单片机]
解读51单片机LED系统电路设计方案
简介:旋转LED 显示器是一种通过同步控制发光二极位置和点亮状态来实现图文显示的新型显示器,其结构新颖,成本低廉,可视角度达360°。 LED 旋转显示器时基于视觉暂留原理,开发的一种旋转式LED 显示屏。其在具有一定转速地载体上安装16 个LED 发光器件,各LED 发光管等间距排位一条直线,随着旋转速度的加快,在计算机软件精确的时序控制下,不断扫描出预设的文字,图案等。使用一个光耦(U 型槽的红外对管)作为定位传感器,当旋转一周时,挡光板遮挡光源,光敏三极管的集电极输出高电平,当离开挡光板时,集电极再次输出低电平,从而给单片机一个下降沿的跳变型号,产生一个中断,从而更新显示。供电部分,因为整个装置是在不停的高速旋转当中,所
[单片机]
单片机控制的LED数码管动态驱动电路
数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。 两位共阳数码管的单片机驱动方法,电路如下图: P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。 因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。
[单片机]
利用AVR单片机制作电压表
通过研究和实验,用mega16可以制作5V电压。电压值从LED显示出来。 下面是部分源程序: uint mega16_ad() { uint addata; DDRD|=BIT(4)|BIT(5)|BIT(6); DDRA&=~BIT(PA3); PORTA&=~BIT(PA3); ADMUX=0x03; ADCSR=0X80;//转换使能 ADCSR|=BIT(ADSC);//开始转换 while(!(ADCSR&(BIT(ADIF))));//等待转换结束. addata=ADC*4.8876; //转换为四位5V电压数 return addata; } void main() {
[单片机]
基于MCS-51单片机的智能机器人迷宫车设计
摘要:机器人在军事侦察、扫雷排险、防核化污染等危险与恶劣环境中以及工业自动化生产的物料搬运上应用很广,随着任务复杂性的增加,对移动机器人的要求也越来越智能化。然而,功能较完备的路径跟踪控制方法普遍具有计算复杂,不易实现等特点。主要针对移动机器人即智能小车的行走系统进行设计,以MCS-51单片机为控制核心的智能小车利用单光束反射取样红外传感器,探测正前方及左右两侧障碍物,利用控制算法寻找行进路线,在无人控制的情况下自主地走出迷宫。设计采用了轮式移动机构,使机器人能直线行走、左右转弯、主要针对路径跟踪算法优化问题,提出一种有效可行的方法,该法比以往算法更简单易行。 关键词:智能小车;迷宫;控制算法;避障 机器人应当具有几个特征:移动
[工业控制]