APP下载

基于单片机简易温度报警器设计与实现①

2022-11-22乔学增

关键词:三极管数码管报警器

乔学增

(安徽医学高等专科学校,安徽 合肥 230006)

0 引 言

单片机技术的发展为快速且精准获取信息提供了有效的途径,单片机在日常生活中和工业生产中有效应用得到逐渐普及。当今社会对安全越来越重视,与安全密切相关的其中之一就是温度,温度在日常生活中和工农业生产中具有重要地位,人们经常关注的一个数值是温度的高低,在很多方面对温度不但有要求,而且对温度的要求还比较高,因此能有一个对当前温度实时检测和数字显示[1]仪器还是很有必要,该仪器最好能根据需要任意设定温度范围,如果当前温度超过设定范围时就会报警提醒,引起人们注意[2],该仪器应该是一款具有较高灵敏性和较高精确度的温度报警装置。设计一种温度报警器,用单片机为该设备核心部分,单片机型号为STC89c52,温度传感器使用数字温度传感器,其型号为DS18B20,以LED 数码管、蜂鸣器等为外围电路共同组成的温度报警器。对于这个温度报警器,如果我们需要设置报警范围,通过按键就可以设置上、下限[3]。当使用温度报警器去测温,所测得温度不在不报警温度范围中时,报警器能够及时报警提醒。该报警器具有制作简单容易,携带方便,使用简单。

1 系统设计及硬件设计

1.1 系统整体设置

利用STC89c52芯片和DS18B20型温度传感器为温度报警器核心部件。STC89c52负责整个温度报警器运行,数字温度传感器DS18B20负责测温,所测得结果需经A/D转换,再由单片机进行一系列处理,最后由LED 数码管进行显示。如果我们想查看该温度报警器的报警温度范围,只需按设置键和加、减温度键就可以实现,也可重新设定上、下限值。如果温度报警器所需要检测物体的温度值不在所设定的不报警温度范围内时,单片机就会驱动蜂鸣器进行报警,二极管发光,温度报警器报警时人们既能听到蜂鸣器响声,也能看到二极管发光,实现声光同时报警,整体结构见图1。

1.2 单片机最小系统

单片机中最重要的就是单片机最小系统,也可以说是单片机的最小配置,最小配置主要由单片机、复位电路、晶振电路和供电电源构成。电源也是电子设备的必备,STC89c52单片机用5伏直流电源供电。STC89c52单片机有功耗低、运行速度快和抗干扰能力强[4]等特点,有着容量可达8K的系统在线可编程Flash 存储器[5],还可以任意选择12时钟/机器周期或者6时钟/机器周期[6]等性能。单片机复位电路作用跟电脑重启按键的作用非常相似,如果想让单片机再次重新运行,只需要按下这个复位电路的复位键,单片机就可以重新从头开始运行。只要给单片机的9脚输入持续两个机械周期高电平,单片机程序从头执行,也就是说单片机复位了。在单片机刚一开机时,复位电路中的RC电路进行充放电,会给与其连接的9脚有一段时间的高电平输出,单片机就会重头执行其程序进行复位,也可以通过按键来让单片机复位。在常态时9脚保持低电平,只有在复位时才需要高电平。51单片机晶振电路中的晶振采用是一个无源晶体,普遍选择6MHz和11.0592MHz的晶振,晶振相当于单片机的工作速度,一般选取都不会超过24MHz,如果太高速度可能会出现不稳定。本文所使用的这个单片机最小系统,其晶振电路是采用两个电容量都是30pF的电容c1、电容c2和一个常用的石英晶振[7]共同组成,电容c1和石英晶振共同连接放大器输入端,电容c2与石英晶振共同连接单片机放大器的输出端,电容c1和电容c2的一端与地连接。晶振电路提供给单片机一个稳定的时钟信号作为时钟基准,单片机最小系统见图2。

1.3 温度传感器

在温度报警器设计中,温度传感器是直接探测温度,因此也是非常重要。目前市场上的温度传感器分两类。一类叫模拟温度传感器,如果用模拟温度传感器去测温,所得到的结果只是模拟量,但是单片机是数字电路,不会处理模拟量,因此还需要经A/D转换处理,,再把经A/D转换后的结果送给单片机进行一系列处理,才能得到模拟温度传感器检测到的温度值,在市场上由于价格低,应用较为广泛。另一类叫数字温度传感器,DS18B20型数字温度传感器在数字温度传感器中较具代表性,形状有直插式和贴片式。贴片式测温不是很方便,所以在这里用直插式。单从外形上很容易把直插式DS18B20型传感器和三极管弄混淆,DS18B20传感器除了检测温度的范围广和精度高外,还存在运行稳定、抗干扰等特点,外围不需要任何器件。系统中DS18B20传感器的DAT端既是信号输入端也是输出端,芯片DS18B20型数字温度传感器通过DAT端与单片机进行相应的读和写双向信号通讯,DAT端与单片机引脚之间串联一个10KΩ的上拉电阻,串联这个电阻的目的就是为了稳定信号。DS18B20内部电路连接见图3,外形及外部电路连接见图4。

1.4 LED数码显示

所设计的温度报警器使用LED 数码管显示检测到的温度值,数码管有七段数码管和八段数码管之分,设计中显示器使用的是四位一体八段共阳数码管。LED数码管连接在三极管集电极与单片机之间,三极管相当于开关,当单片机让三极管导通,电流会由电源通过三极管的发射极、集电极到LED数码管的位选端,最后通过LED数码管段选流入单片机。在单片机、电源和三极管的共同作用下使得数码管的位选是高电平,根据共阳数码管的特性,在位选处于高电平,段选处于低电平的数码管部分就会亮,数码管根据单片机提供给位和段选的高低电完成数值显示。

1.5 报警电路

报警电路由两部分构成,一部分是一个LED二极管与一个2.2KΩ的分压电阻串联组成的通路,电源是5V而LED二极管只需3V的驱动电压,因此必须加一个分压电阻来分压,当单片机引脚给出低电平时,LED二极管就会亮;正常情况下引脚是高电平,LED灯不亮,单片机通过这种方式控制LED灯亮灭。 另一部分是由电源、三极管和蜂鸣器组成一个由PNP型三极管8550[8]充当电路开关的通路,三极管的导通与否是由单片机进行控制。我们在三极管8550基极和单片机引脚之间连接一个2.2KΩ的电阻,该电阻的作用是防止通过三极管的电流过大。当单片机给出三极管基极一个低电平,三极管就会导通,有电流流过蜂鸣器,蜂鸣器发声报警,单片机通过对蜂鸣器和LED二极管的控制实现温度报警器的报警功能。

1.6 按键电路及供电模块

设计采用独立按键输入,除去单片机复位电路中的复位按键(RESET)外,还有设置键(SET)、加温键(ADD)、减温键(DEC),外加单片机的一个开关键共5个按键。把设置键、加温键和减温键的一端连接到一起,把连到一起的那一端与地相连,剩下的一端分别与单片机上不同的引脚连接起来。如果三个键中的某一个键被按下,与该键相连的单片机引脚就是低电平,单片机就会执行与之相应的功能。设计供电部分是把报警器上所有模块的电源(VCC)正极相连给各模块供电。因为设计每个模块电源都是使用5VDC电源供电,只需一根电源线连接到报警器DC电源输入接口,整个报警器就可以通过接口自锁开关供电,用电脑或者充电宝均可以供电,既简单又方便。

2 软件系统

软件系统主要根据设计目的和要求设计程序流程图,见图5。程序使用C语言编程[9],下面只给出一部分程序代码,代码如下:

void int0(void) interrupt 0

{

EX0=0; if(!DEC&&set_st==1)

{

do{

Disp_alarm(shangxian);

}

while(!DEC);

shangxian--;

if(shangxian

}

else if(!DEC&&set_st==2)

{

do{

Disp_alarm(xiaxian);

}

while(!DEC);

xiaxian--;

if(xiaxian<-10)xiaxian=-10;

}

}void int1(void) interrupt 2

{

EX1=0; if(!ADD&&set_st==1)

{

do{

Disp_alarm(shangxian);

}

while(!ADD);

shangxian++;

if(shangxian>85)shangxian=85;

}

else if(ADD==0&&set_st==2)

{

do{

Disp_alarm(xiaxian);

}

while(!ADD);

xiaxian++;

if(xiaxian>shangxian)xiaxian=shangxian;

}

}

3 硬件系统组装

硬件系统我们还需要对电路进行设计,电路设计好后就可以准备焊接元器件和按图连线了。按设计购买相应的元器件,检查元器件的质量、规格型号和数量等,必要时还需对购买来的元器件进行相应的检测,以防焊接出错导致损坏或影响产品效果,在检查好后再进行连线焊接元器件。为了操作方便[10],焊接时按照电路图将元器件核对清楚后分开归类放置、焊接,这样可以尽量避免操作失误导致返工。焊接时先焊接相对较小的元器件,然后再焊接相对较大的元器件,遵循焊好小的再焊大的原则。特别注意焊接那些易损坏或较为精密的元器件,焊好后最好检测一下。完成焊接后接上电源看电路能否正常,如正常把程序烧入再进行调试,直到实现测温报警。

4 温度报警器功能实现

温度报警器制作成功后可以设置报警温度范围。报警温度范围设置方法为:接通电源启动温度报警器,温度报警器初始化后,就会检测到当下温度,温度数值就会在数码管上显示,显示数值的最后一位是温度符号℃,这里用C代替。用手按一下设置键(SET),数码管的显示结果为H+温度值,按加温键(ADD)增加温度,按减温键(DEC)减小温度,每按一次加或减温度按键,温度值增加0.1℃,如果想快速增加或减小温度,可以按着加或减键不动,直到达到想设置的上限温度值。停止按加温或减温键,再次按下设置键,完成报警温度上限设置。这时数码管显示结果为L+温度值,用同样的方法设置报警温度下限,完成报警温度下限设置后,用手再按一下设置键,报警器退出设置,数码管再次回到设置前的显示状态,这样报警温度范围就设置好了。

本温度报警器可设置报警温度值范围为:报警温度上限为85℃,下限为-10℃,当上下限设置数值相同时报警器不报警,即退出报警功能。如果报警器检测到当前温度比上限温度值高,或者比下限报警温度值低,报警系统就会自动报警,蜂鸣器会不停地响,LED二极管会伴随蜂鸣器不停闪烁发光。如果想查看报警温度设置范围,方法与设置报警温度范围相似,按下设置键,你会看到数码管显示为H+数值,这个数值也就是为温度报警器已设置的报警值上限,用手再次按设置键后去看数码管显示,你会发现显示的数值已变成L+数值,这个数值也就是温度报警器已设置的报警值下限,再按一次设置键数码管显示就会回到查看前状态。为了检测设计的温度报警器的可靠性,对报警器温度显示,温度报警范围设置、报警功能等进行测试,测试结果显示,该报警器的温度显示、温度报警设置等可靠性高,效果较好。

5 结 语

设计的温度报警器可以准确显示当下温度,最小显示到0.1℃,误差不超过0.1℃,可以根据具体需要在-10℃到85℃范围内,通过按键任意设置报警温度范围,如果想扩大最大或最小报警温度范围,可通过修改程序实现。这个温度报警器具有操作简单、便于使用、制作容易、成本低下、携带也方便等优点,也能实现其测温报警功能,经实测得出运行中性能稳定等特点,经过实际焊接使用,能达到预测的目标,但也存在功能较少的不足,在未来,就进一步优化温度报警器的体积、检测精度、灵敏度、功能设计等方面有待更深的探究,设计出体积更小、精度更高、灵敏度更好、功能更全面的温度报警器。

猜你喜欢

三极管数码管报警器
智能报警器
物理项目教学设计,用单片机控制四位数码管显示
基于51单片机的分数计数器设计
基于Multisim 的三极管共射极放大电路分析
传感器背景下家用电动车报警器的创新设计
可燃气体报警器常见问题分析及处理分析
Arduino编程
MC9S08FL16单片机数码管静态显示分析
巧用三极管内部结构图分析三极管电路
日本推出芥末报警器