设计与开发

单片机中断程序例子 4个中断应用实例讲解

小编 2024-10-20 设计与开发 23 0

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源程序如下:

实例讲解,单片机常用中断控制子程序

单片机系统中,应用最多的中断方式是中断I/O方式。中断I/O方式提供了5个中断源,即两个外部输入中断源INT0(P3.2或称为外部中断源0)和INT1(P3.3或称为外部中断源1),两个片内定时器T0和T1的溢出中断源TF0和TF1,一个片内串行口发送或接收中断源TI或RI。

中断由中断控制寄存器控制,不论哪个中断,都必须进行初始化,中断响应必须有中断响应程序。5个中断的控制编程如下。

相关问答

单片机 定时器 中断程序 怎么写?

在单片机中,定时器中断程序通常需要先初始化定时器的计数值和工作模式,然后编写中断服务程序。在中断服务程序中,需要清除中断标志位、处理需要执行的操作,最...

简述8051 单片机中断 响应过程?

中断,无非就是你正在运行当前程序的时候有中断条件产生,进入中断函数,中如果是汇编写的程序就要手动保护中断要用的寄存器里之前的程序运行的数据,(压栈),...

单片机 如何利用 中断 进行复位?

谢谢邀请:1.题主你提出的问题好像本身就有问题,首先通过按压一个按键使单片机复位的方法,这个跟中断没有关系,每一个单片机系统都可以设计一个复位电路,这个...

什么是 单片机 中断 ?

单片机中断是指CPU在正常执行程序的过程中,由于计算机内部或外部发生了另一事件(如定时时间到,超压报警等),请求CPU迅速去处理,CPU暂时停止当前程序的运行,...

单片机中断 代码包括内容?

单片机中断代码一般包含中断返回地址,中断时候的各个寄存器地址。单片机中断代码一般包含中断返回地址,中断时候的各个寄存器地址。

单片机中断 初始化 程序 编程试编写一段中断初始化 程序 ,使中断...

[最佳回答]voidINT_init()//初始化{\x05IT0=0;//外部中断0低电平触发\x05IT1=1;//外部中断1低电平触发\x05PX0=1;//外部中断0分配高优先级\x05PX...

stc15f2k60s2 单片机中断 撤销方式?

1.有两种:软件撤销和硬件撤销。2.软件撤销是通过在中断服务程序中设置标志位来实现的,当标志位被设置时,中断服务程序会被撤销,返回到主程序继续执行。硬件...

51 单片机 中断 分哪几种?

按大类区分,基本型51单片机的中断分为外部中断、定时计数中断和通讯中断三种,扩展型单片机又增加了模数转换中断、低压检测中断、PCA中断等等。每种中断又都...

51 单片机 如何实现用按键 中断 响应及处理?

在51单片机中,可以通过外部中断来实现按键的响应和处理。下面是一个基本的示例代码,演示了如何使用按键中断来检测按键的状态并进行相应的处理:首先,需要定...

51 单片机 C语言,如何在一 程序 后使用 中断 运行另外一个 程序 ?

中断是为了使时间更精确。使用中断一般要先设置使用哪个定时/计数器的模式几,之后再设置定时器的使能为,再打开总中断使能位,启动定时器。外部中断比定时器的...

猜你喜欢