产品选型

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

小编 2025-09-10 产品选型 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源程序如下:

如何给Atmega328P单片机烧录Arduino引导程序

用USBISP/USBasp编程器给Atmega328P下载Arduino bootloader引导程序

bootloader引导程序是什么

Arduino UNO引导程序下载接口

几种常见的下载器和6P转接头

Arduino Bootloader下载

总结

bootloader引导程序是什么

犹如电脑主板的BIOS,开机或重启时先自动进行BIOS设置。有些单片机出厂时芯片厂商已经烧录好了引导程序,例如串口方式下载的引导程序。单片机复位或重新上电时先从引导程序执行代码检测是否有其他命令需要执行,再跳转到用户程序代码执行。

Arduino开发板预先写入了bootloader,通过USB转串口芯片下发下载命令给Arduino开发板使其复位进入bootloader,bootloader识别到下载命令后接着引导新的用户程序下载到单片机内部flash,若没有识别到下载命令则跳转到原来的用户应用程序继续执行。

对于新出厂的atmega328p芯片内部是没有arduino引导程序的,需要用户预先下载bootloader后才能用串口下载自己的应用程序.在某些罕见情况下旧的bootloader会导致一些bug,这个时候写入新版本bootloader可能会解决问题。

Arduino UNO引导程序下载接口

Arduino UNO使用的是AVR芯片,AVR芯片烧写程序是通过ICSP(in-circuit serial programmming)硬件接口来实现的,左上角是atmega16u2芯片作为USB转TTL串口用,也有ICSP接口,不用去下载引导程序,右边中间ICSP作为Atmega328P芯片的引导程序下载接口

几种常见的下载器和6P转接头

安装USBasp驱动

免驱版直接插入电脑就能被识别到

下载器与Arduino UNO开发板连接

USBas驱动与烧录软件下载地址:https://pan.baidu.com/s/1ovbBz5D4a2MRvxWPAloXYg 提取码:mg21

Arduino Bootloader下载

连接好下载器和Arduino uno开发板或atmega328p单片机最小系统ICSP引脚,打开ProgISP下载软件

熔丝位配置好后点写入,再点读出,看是否与写入相同!

固件在Arduino安装目录中找到,如下图

引导程序下载好后,打开Arduino IDE给Arduino UNO开发板下载一个例程检查芯片能否通过串口下载Arduino的用户应用程序。

总结

烧写bootloader与使用编程器给单片机烧写程序是一样的,有的厂商的单片机出厂时已烧录好自己的引导程序,有的没有,烧录方法也会不同。长期发布类似文章,欢迎关注,欢迎随时留言,需要程序或者软件也可以在下方留言喔!

相关问答

在实际生产中贴片的MCU是先下载好 程序 再焊到电路板上还是先焊上再接线下载然后再?

这个要分几种情况:1.如果单片机是可以在线编程的可以在做好电路板后再把程序烧录进单片机。这里又可以根据你的单片机的规模以及需要引导代码来决定,比如c8...

单片机 系统开发如何入门?

单片机是一门更偏重于动手的技术,需要涉及的基础知识比较多,学了这么多年的理论知识突然要应用起来发现难度很大无从下手。所谓万事开头难,所以学习单片机要趁...

单片机 的第一行指令是什么?

如果是C,一般是#include等一些伪指令什么的。真正地程序开始肯定是main(){}如果是ASM汇编语言,那么第一句一般是ORGXXXX,也可以再前面有一些定义和库的引导...

单片机 rst是什么?

就是引导内部复位程序或电路。可以看到SFR的复位值,同时等待时钟电路稳定工作,提高抗干扰能力,提供一种有效的重启方式,目的就是单片机重生。就是引导内部复...

单片机 能做什么?能从事什么工作?

我之前有回答过类似的问题。可以翻看我之前的记录。单片机的应用很广泛,凡是我们能说的出来的电子产品,电气产品都离不开单片机的应用,比如我们普遍能见到一...

怎么样往 单片机 AT89S51烧录 程序 -ZOL问答

他是通过MAX232串口芯片来连接电脑与AT89S51单片机的P1.5,P1.6和P1.7端口,通过专门的ISP编程软件把.HEX(十六进制文件)或.BIN(二进制文件)文件下载到单片机里。...

51 单片机 烧录波特率是多少?

早期的51单片机串口烧录波特率一般默认为9600,目前,以STC为代表的51单片机,其烧录波特率是自适应调整的,下载时只需设定最高(115200)和最低(1200)波特率...早...

单片机 实验板可以做哪些实验,尽量具体一点?

这个问题相当于:大学物理实验课中学习使用分光镜观察干涉条纹,以后有什么用、可做什么工作?这类实验器具有发展前景么?(观察干涉条纹的实验,也是基...在单片...

C51 单片机程序 烧录問題-ZOL问答

把52单片机那几个口引出来对应连接就行单片机有串口,就是使用串口下载的,除你...至于过程,不是这里可以说清楚的,大概就是烧录软件引导单片机进入烧录模式,然后...

大神们!有谁能解答一下吗!!江苏常州定制电烧建盏,电烧建...

[回答]热得快功率一般在1000-1500W烧一瓶开水一般5-6分钟那就要看它的功率了,1000W的电器指使用一个小时耗一度电。如果烧一壶水用10分钟的话,那连续烧6壶...

猜你喜欢