1.引言
目前,温度控制器存在的问题是如何缩减成本,减少功耗,温度测量的准确性和多路温度的同时显示。基于本方案设计的实现C51单片机的两个温度控制器可以在温度超过设定的最高温度时启动电风扇冷却,当温度低于设定的最低温度时启动蜂鸣器报警,用户可以设定最高和最低温度。
2.系统结构
温度控制器系统包括温度传感器、报警电路、LED显示电路,键盘控制,89C51控制部分。如图所示:
系统设计实现:启动温度控制器后,绿灯亮起,四位LED前两个数字显示器是温度传感器1测量的环境温度,后两个是温度传感器2测量的环境温度。
3.硬件结构
3.1 温度传感器
本设计采用DS18B20作为温度传感器,DS18B与传统的热敏电阻相比,20具有精度高、测量误差小、测温方便等优点DS18B20制作温度传感器。
3.2 报警电路
本设计采用蜂鸣器和电风扇报警电路。蜂鸣器报警电路由三极管和蜂鸣器组成。当温度低于设定的最低温度时,蜂鸣器报警。电风扇报警电路由三极管和电风扇组成。当温度高于设定的最高温度时,电风扇报警。
3.3 显示电路
本系统采用L E D数字显示管显示,LED亮度高,视角高。LCD视角低,亮度低,价格高。考虑到这种温度传感器主要用于低亮度环境,如温室,从经济实用的角度来看LED作为显示器。
3.4 键盘控制
该系统使用三个独立的按钮作为键盘控制电路。键盘通常分为独立键盘和矩阵键盘。独立键盘结构简单,但占用资源较多;矩阵键盘结构复杂,但占用的口线较少。考虑到本设计所需的按钮数量较少,两个温度传感器的温度设置由三个独立键盘完成。
3.5 89C51控制部分
本系统采用AT89C51、小电子产品51,硬件设计电路如图1所示。
4.软件设计
该系统采用汇编语言编码,处理时间比C语言编码快。
主程序包括系统初始化、键盘扫描选择子程序、温度比较子程序、温度测量子程序、温度计算子程序、显示子程序。
4.1 主程序模块
首先在主程序中初始化数据,然后调用键盘扫描子程序KEY_TEST,温度比较子程序C O M P A R E,温度采集子程序G E T _ T E M P,温度显示子程序D I S _ S E T和DISPLAY,再次判断采集,显示第二个温度传感器的温度值。编写程序如下:
4.2 LED显示模块
LED显示器可分为动态显示器和静态显示器。静态显示器占用更多的口线。为了降低硬件成本,本设计采用动态扫描显示的方法来显示两个温度传感器的温度值。
DISPLAY和DISPLAY1函数读取第一个和第二个温度传感器的温度,并根据临时存储单元的数据显示两个温度传感器的温度。编程思路:根据SIGN将检查表获得的数据存储在不同的单元中并显示在不同的显示器中LED上。
4.3 键盘控制模块
设置键盘SIGN编程思路是第二个温度传感器的最高温度或最低温度的编程思路是:SIGN初始设置为0。按下第一个按钮时,将其赋予1。再次按下时,加1,直到第五次重新赋值为0。SIGN确定不同设置的值。
4.4 温度传感器模块
根据温度传感器DS18B完成温度转换所需的三个步骤:MOV A,#0CCH//跳过ROM MOV A,#44H / / 温度变化 MOV A,#0BEH//阅读临时存储器内容。
4.5 报警模块
当实时温度高于设定的最高温度或实时温度低于设定的最低温度时,单片机会控制蜂鸣器或电风扇工作,判断当前温度是否在正常范围内COMPARE,部分高温程序如下:
5.仿真测试
我们对DS18B在写入程序之前,您必须调试您的程序。但我们看不到程序是如何运行的。因此,我们可以使用模拟器进行模拟。我们可以通过模拟器看到它DS18B发送的数据,读取的温度值,存储值的变化。系统连接示意图如下图所示:
我们现在能把DS18B收集到的20个温度在PC显示在机器上,每个温度值显示后更换一行。试验证明系统实用性强,达到预定功能。
6.结语
本文提出了基于51单片机两路温度控制器的设计方案,采用两种设计方案DS18B20温度传感器通过两个不同的地方收集温度AT89C51处理由四位进行,LED前两个是第一个温度传感器的温度,后两个是第二个温度传感器的温度。使用三个按钮实现温度最高和最低的设置,使用蜂鸣器和电机实现温度过高或过低的报警。然后经过模拟测试,确认改造设计方案经济实用,可测量温度,满足温室、室内家居、工业控制等不同环境的使用。