4个中断应用实例讲解
【例1】 利用单片机的外部中断0响应按键开关的按键信号,当有按键按下时,单片机响应中断,并使内部某变量加1,硬件电路如图4-4所示。
图4-4 单片机外部中断检测按键电路图
C51源程序如下:
提示
将按键电路改为其他传感器电路,如光电传感器检测电路,霍尔传感器检测电路,热释电传感器检测电路等即可实现不同的检测控制功能。
【例2】 2个按健中断控制流水等灯的速度,按健K0用以减慢速度控制,按健K1用以加快速度控制,硬件电路如图4-5所示。
图4-5 流水灯控制电路图
C51源程序如下:
【例3】 利用单片机外部中断即时实现不同方式的流水灯控制,L2开关实现2只灯循环亮,L1开关实现1只灯循环亮,两个控制开关具有不同的优先级别,L2比L1具有更高的优先级。硬件电路如图4-6所示。
C51源程序如下:
图4-6 不同优先级别控制流水灯电路图
【例4】 利用单片机外部中断实现遥控解码。具体功能:通过电视机遥控器向单片机系统板上的一体化红外线接收头发射红外遥控编码信号,由于一体化红外线接收头的输出端与单片机的外部中断0相连,从而触发单片机产生中断,单片机根据红外遥控信号的组成对功能码进行识别,并通过P1口的发光二极管显示该功能码。
单片机与一体化红外接收头HS0038的引脚连接如图4-7所示,单片机与发光二极管的连接可以参照本章之前案例中的硬件电路图,这里省略未画出。
图4-7 HS0038引脚连接图
系统分析如下:
遥控编码脉冲信号通常由引导码、系统码、系统反码、功能码和功能反码组成。引导码由宽度为9ms的高电平和宽度为4.5ms的低电平组成。8位的系统码又称为识别码,主要是为了区分不同的控制系统,防止误动作。8位功能码也称为数据码,其代表相应的控制功能。8位的系统反码和功能反码的加入是为了校对传输过程中产生的差错提高抗干扰性能,遥控编码脉冲信号组成如图4-8所示。
图4-8 遥控编码脉冲信号的组成图
当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。
解码的关键是如何识别“0”和“1”,采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。其串行码波形如图4-9所示。
图4-9 0和1的构成串行码波形图
从上图中可以发现,位“0”、“1”均以0.565ms的高电平开始,不同的是低电平的宽度不同,“0”为0.56ms,“1”为1.685ms,所以可以根据低电平的宽度区别“0”和“1”。如果从0.565ms高电平过后,开始延时,0.56ms以后,若读到的电平为高,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.125ms,否则如果该位为“0”,读到的已是下一位的低电平,因此一般取(1.125ms+0.56ms)/2≈0.84ms。
C51源程序如下:
【干货】8位单片机采用中断方式实现的按键程序
要实现一个采用中断方式的8位单片机按键程序,首先需要了解8051单片机的基本结构和工作原理。以下是一个简单的示例代码,用于检测按键输入并控制LED灯的亮灭。
```c
#include <reg52.h> // 包含头文件,定义了8051单片机的寄存器
sbit LED = P1^0; // 定义LED灯连接的端口和引脚
sbit KEY = P3^2; // 定义按键连接的端口和引脚
void delay(unsigned int xms) // 延时函数
{
unsigned int i, j;
for (i = xms; i > 0; i--)
for (j = 112; j > 0; j--);
}
void main() // 主函数
{
IT0 = 1; // 设置外部中断0为下降沿触发
EX0 = 1; // 使能外部中断0
EA = 1; // 使能总中断
while (1) // 无限循环
{
// 主循环中的其他代码
}
}
void isr_key() interrupt 0 // 外部中断0的中断服务程序
{
delay(10); // 延时消抖
if (KEY == 0) // 检测按键是否按下
{
LED = ~LED; // 控制LED灯的亮灭
while (!KEY); // 等待按键释放
}
}
```
以上代码实现了一个简单的按键控制LED灯的程序。当按键被按下时,LED灯的状态会发生改变。注意,这个程序是基于8051单片机的,如果你使用的是其他类型的单片机,可能需要进行相应的修改。
相关问答
单片机 应用中 按键 的 中断 控制方式?在单片机应用中,按键的中断控制方式是一种常见的处理按键输入的方法。其主要思想是,当按键被按下或释放时,会产生一个电信号,这个信号可以被单片机检测到,并...
什么是 单片机 的 中断 ?单片机中断是指CPU在正常执行程序的过程中,由于计算机内部或外部发生了另一事件(如定时时间到,超压报警等),请求CPU迅速去处理,CPU暂时停止当前程序的运行,...
为什么51 单片机 的外部 中断 0没有按下 按键 就会自动进入?这是不可能的,不是程序有问题就是电路有问题。你先自己检查,自己不能解决就贴程序代码和电路图,帮你分析。这是不可能的,不是程序有问题就是电路有问题。你...
STC15F104W 单片机 外部 中断 怎么不工作?STC15F104W单片机外部中断源有5个,如下引脚可知,由于INT4在P3.0上,最好不用。而INT0,INT1与传统的51单片机用法都完全一样的,你用是哪个中断,外部是接按键...
51 单片机 怎么用 按键 控制内 中断 ?在使用51单片机控制内中断时,我们首先需要配置按键引脚为输入口,并设置相应的中断方式,例如下降沿触发或上升沿触发。然后在主程序中,需要通过循环不断检测...
单片机 外部 中断 实验p1口接八个发光二极管,实现:s1加1键,s2减...[最佳回答]很容易写的,在INT0中断左移P1在INT1中断右移P1外部中断设为下降沿方式
MCS-51系列 单片机 的 中断 系统分为几个优先级?怎么设定?-ZOL问答3条回答:8051单片机的中断系统总共有两个优先级,有关设定在寄存器IE中,搞三位不用管,低5位分别是PX0,PT0,PX1,PT1,PS(由低到高),通过设置他们的状态0或者1,就可...
单片机中断 和暂停的区别?在于:中断是实时处理系统内部事件,比如外部设备信号、定时器溢出等。当这些事件发生时,单片机会停止当前的程序执行,保存现场,跳转到指定的中断服务程序(IS...
单片机 外部 中断 和定时器 中断 的区别和用法?正如大家所说的,外部中断是与外接接触,当条件满足时,进入中断。但我要强调的是定时器中断定时中断可以用于自检测、扫描等等但不要忘记了,定时中断还有个...
描述stc 单片机 , 按键 控制灯亮灭和闪烁,上电灯不亮,按一下 按键 灯亮,再按一下灯闪烁,再按一下?51单片机的IO口接按键,实现外部触发(外部中断,高低电平,上下降沿),触发后再通过IO控制LED的开关即可。51单片机的IO口接按键,实现外部触发(外部中断,高低电平...