APP下载

基于51单片机的温度控制系统设计与实现

2021-12-09吴海红

通化师范学院学报 2021年12期
关键词:三极管数码管低电平

吴海红

温度是现代工业生产中的重要参数,很多材料的特性都与其密切相关,而且生产中产生的物理变化和化学反应都与温度有关,温度的控制将直接关系到产品的质量、生产效率的提高、能源的可持续利用等,特别在机械、冶金、电力、建材、石油、化工等领域,其应用范围更为广泛[1].

传统的温度控制系统存在系统实时性差、设备体积大、精度低及功耗高等缺点,难以满足现代化系统的设计要求[2].单片机是一种将中央处理器、存储器、定时/计数器、中断系统、各种输入/输出接口电路集成在一块芯片上,只需要外加晶振和电源就可实现对数字信号进行处理和控制的器件.随着电子信息技术及计算机技术的快速发展,利用单片机对温度进行控制能够增强系统的可靠性和灵活性,使系统控制更加方便,控制的温度范围更加广泛,可以极大提高被控温度的技术指标.

1 总体方案设计

本文设计的温度控制系统以51单片机为控制内核,系统具有温度检测、温度预置、温度控制、温度显示及报警等功能.

①对温度进行实时采集与转换,并实时显示当前温度和设定的上下限温度;

②可对上限温度和下限温度进行设定,超出上限温度启动制冷开关,低于下限温度启动制热开关;

③温度超出规定范围蜂鸣器发出报警.

2 系统硬件设计

2.1 系统结构

该温度控制系统主要由AT89C51单片机最小系统、温度检测模块、温度上下限调节模块、报警/显示模块,以及温度控制模块组成,系统结构如图1所示.

图1 温度控制系统结构

2.2 单片机最小系统

单片机最小系统是指用最少的元件组成的能使单片机正常工作的电路.对于51系列单片机而言,最小系统一般包括单片机、电源、时钟电路及复位电路,电路如图2所示.

图2 AT89C51单片机最小系统

单片机内部电路及外围部件的运行都是以时钟控制信号为基准,时钟控制信号由时钟电路产生.AT89C51单片机的时钟电路分为内部时钟和外部时钟两种方式,但因为外部方式电路结构较复杂,且没有内部直接接入晶振稳定,所以没有特殊要求一般都选择内部方式.如图2所示,在单片机的18、19两脚间跨接石英晶体振荡器和两个微调电容,构成一个稳定的自激振荡电路.时钟频率越高,系统运行速度越快,综合考虑系统稳定性,本系统选用12 M的晶振[3].

当程序出错(如程序跑飞)或操作错误使系统处于死锁状态时,需要对系统进行复位操作.复位电路包括上电自动复位和手动按键复位,复位时需要给单片机第9脚RST提供至少持续2个机器周期的高电平信号,复位后所有I/O口将被重置为高电平,特殊功能寄存器里的数据也将被恢复为初始值.当第9脚RST电平重新被拉低时,整个系统恢复正常运行.

2.3 温度检测模块

本系统采用温度传感器DS18B20对温度进行实时采集与转换.DS18B20是美国DAL⁃LAS公司生产的一款单总线数字温度传感器,具有体积小、低功耗、抗干扰能力强等优点.可直接将温度转化成数字信号传送给单片机处理,因而省去了传统的信号放大、滤波、A/D转换等外围电路.而且DS18B20属于单总线芯片,仅需要一条口线即可实现与单片机的通信,电路如图3所示,通信端口选用单片机的P3.7口.工作温度范围为-55℃~+125℃,分辨率可通过编程控制设置为0.5℃、0.25℃、0.125℃和0.062 5℃[4].

图3 温度检测模块

2.4 温度上下限调节模块

温度控制系统的温控范围可通过按键进行设置,本系统采用4个独立的按键分别实现上、下限温度的加、减控制,电路如图4所示.其中上限温度的按键与单片机的P1.0、P1.1端口相连,可通过对按键判断查询调节上限温度.下限温度的按键与单片机的P3.2、P3.3端口相连,工作于外部中断模式.

图4 温度上下限调节模块

2.5 报警/显示模块

温度控制系统的显示采用8位共阴极数码管,可实时显示当前温度和设定的上下限温度,电路如图5所示.数码管工作在动态显示模式,段选端接单片机P0端口,单片机的P2.0、P2.1、P2.2端口接74HC138译码器的3个地址输入端,译码器的8个输出端分别接8个数码管的位选端.通过控制P2.0、P2.1、P2.2三个端口的高低电平轮流向各数码管送出相应的字型码和位选码,利用数码管的余辉和人眼的视觉暂留作用,实现各数码管同时稳定地显示.数码管采用动态显示方式可以极大节省单片机的输入输出端口,而且功耗比静态显示方式更低.

报警电路主要由蜂鸣器和三极管组成,电路如图6所示.由单片机P1.7端口输出高、低电平控制NPN型三极管的导通和断开.当温度传感器DS18B20检测到的温度超出系统设定的上、下限值时,则P1.7端口输出高电平使三极管Q3导通,蜂鸣器发出报警声[5].

图5 显示模块

图6 报警模块

2.6 温度控制模块

温度控制系统的作用是将温度控制在设定的范围之内,当温度超出限定范围就要启动制热、制冷电路进行加温和降温,电路如图7所示.用两路继电器和灯泡、风扇模拟制热、制冷电路,分别用单片机的P2.3、P2.4端口输出高低电平控制两个PNP型三极管的导通和断开.当温度低于下限温度时,P2.4端口输出低电平,与之相连的三极管导通,对应的继电器吸合,灯泡点亮,启动制热电路.当温度高于上限温度时,P2.3端口输出低电平,与之相连的三极管导通,对应的继电器吸合,风扇转动,启动制冷电路.

图7 温度控制模块

3 系统软件设计

系统软件部分采用模块化设计方法,由主程序、DS18B20温度检测模块、按键检测模块、温度控制/报警模块、显示模块组成.

3.1 主程序流程图

系统启动后,先进行初始化设置,主要设置制热电路、制冷电路、蜂鸣器均为关闭状态,之后进入按键检测、温度实时采集、显示、温度比较、输出控制这个大循环.主程序流程图如图8所示.

图8 主程序流程图

3.2 DS18B20温度采集子程序流程图

温度传感器DS18B20的工作过程主要有系统的初始化、向ROM发送工作指令、存储器执行收到的工作指令、数据的处理和存储[6],具体流程图如图9所示.在程序设计时,首先对DS18B20进行初始化,判断其是否在线.由于系统中只有一个DS18B20模块,不需要读取其序列号进行匹配,所以直接写入代码CCH执行跳过ROM命令.之后就可以启动DS18B20进行温度转换,转换完成后的温度值以补码的形式存储在高速暂存器中,单片机就可以通过单线接口读取该数据[7].

图9 DS18B20温度采集子程序流程图

4 测试结果与分析

利用Proteus软件完成电路图的绘制,利用Keil软件完成程序编写及调试后,就可以利用两个软件联调对系统的功能进行测试.

(1)当DS18B20检测到的当前温度在上下限温度之间时,单片机的P2.3、P2.4端口均为高电平,两个三极管都截止,继电器RL1、RL2的开关均打向右边,制冷、制热电路都不工作,仿真测试结果如图10所示.

(2)当DS18B20检测到的当前温度高于上限温度时,单片机的P2.3端口输出低电平,三极管Q2导通,继电器RL2的开关打向左边,系统启动制冷模式,仿真测试结果如图11所示.

图10 当前温度在限定范围内时仿真结果

图11 当前温度大于上限温度时仿真结果

(3)当DS18B20检测到的当前温度低于下限温度时,单片机的P2.4端口输出低电平,三极管Q1导通,继电器RL1的开关打向左边,系统启动制热模式,仿真测试结果如图12所示.

图12 当前温度小于下限温度时仿真结果

5 结论

本文设计的温度控制系统,以51单片机最小系统为基础,充分利用了单片机的I/O接口和内部资源.用DS18B20温度传感器为温度检测模块,用按键组成的键盘作为输入设备,用8位共阴极数码管为显示模块,蜂鸣器为报警模块.并且通过Proteus软件和Keil软件对系统功能进行了仿真测试,验证了系统方案的正确性及功能的有效性和可行性.软件仿真为后续的系统设计提供了理论支持,缩短了系统的开发时间,降低了成本,对同种类型的控制系统设计具有一定的参考价值[8].

猜你喜欢

三极管数码管低电平
基于51单片机的分数计数器设计
微课教学设计之“数码管动态显示”
一种实用的电脑接口判断方法
Arduino编程
MC9S08FL16单片机数码管静态显示分析
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
数字电子技术的应用
浅谈物理电路与数字电路
三极管放大电路的研究
巧用三极管内部结构图分析三极管电路