张海龙
(焦作技师学院,河南 焦作 454000)
2019年底新冠肺炎疫情的暴发给全球人民生命安全带来了严重威胁,疫情初期,口罩、酒精、温度计等医疗用品出现了严重短缺和供应不足的现象。伴随疫情的常态化,温度计作为识别发热人群和新冠症状患者的重要工具,在日常生活中不可或缺。普通水银温度计由于测量时间较长,每次测量需要5~10 min,对于人数多、流量大的待检测人群非常不实用。电子温度计具有测量时间短,每次测量只需几秒钟即可完成,非常适合需要快速高效测量的场合。所以电子温度计在车站、学校、商场等人员较为密集的场合应用非常广泛。另外,电子温度计也可用于需要对工作环境温度进行实时监测的场合。
该电子温度计采用 DS18B20数字温度传感器进行温度的测量,DS18B20将测量得到的数字信号发送给单片机,单片机再将接收到的数字信号进行变换处理后,发送给数码管进行显示,完成温度测量。总体设计框图如图1所示。
图1 总体设计思路框图
硬件电路包含按键控制、温度测量、数据运算和处理、显示输出和报警处理五部分。其中,按键控制用于启动温度测量;温度测量由DS18B20数字温度传感器来完成;数据运算和处理采用AT89C2051单片机来实现;显示输出采用经济实用的数码管,当测量温度高于程序设定温度(如测量体温高于37.3℃)时蜂鸣器报警提示。该系统具有电路简单、功能实用、便于维护和价格低廉等特点。
该电路的温度测量采用了Dallas半导体公司的数字化温度传感器 DS18B20,是世界上第一片支持“一线总线”接口的温度传感器。适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。
DS18B20数字温度传感器提供9~12-Bit的摄氏温度测量精度和用户可编程的非易失性且具有过温和低温触发报警的报警功能。该传感器的温度检测范围为-55℃~125℃,并且在温度-10℃~85℃时,还具有±0.5℃的精度。不仅能满足人体测温需要,还适用于各种温度测量场合。此外,DS18B20可以直接由数据线供电而不需要外部电源供电。
DS18B20的核心功能是直接温度-数字测量。其温度转换可由用户自定义为9、10、11、12位,精度分别为0.5℃、0.25℃、0.125℃、0.062 5℃分辨率。值得注意的是,上电默认为12位转换精度。
因该系统电路简单、程序简短,所用单片机I/O接口较少,所以选用了ATMEL公司的AT89C2051单片机,AT89C2051是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,只有20引脚。片内含有2K字节可反复擦写的只读程序存储器和128字节的随机数据存储器,兼容标准MCS-51指令系统,内置通用8位中央处理器和Flash存储单元。
该系统中AT89C2051作为总控芯片,具有对测量结果进行运算处理、控制显示及保证系统正常工作等功能。
该电路具有测量温度显示输出功能,显示电路采用了较为经济实用的三位一体数码管作为显示输出。前两位显示十位和个位,第三位显示小数部分。电路采用动态扫描方式可以节省单片机I/O接口。
该测量系统具有报警输出功能,报警输出采用蜂鸣器来实现。当测量温度高于程序设定温度(如测量体温高于37.3℃)时蜂鸣器报警提示。报警时蜂鸣器每隔0.5 s发出提示,周期为1 s。
该程序采用模块化设计,主要包含初始化、温度检测、显示、报警处理等内容。初始化用于启动DS18B20和数码管的清屏,主程序完成温度检测、显示和报警处理的循环执行。
DS18B20采用的是1-Wire总线协议方式,即用一根数据线实现数据的双向传输,而对AT89C2051单片机来说,硬件上并不支持单总线协议,因此必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
DS18B20控制程序包含初始化、读、写操作。数据和命令的传输都是低位在先。初始化包括主机发送的复位脉冲和器件向主机返回的存在脉冲。主机总线最小发出480μs的低电平复位脉冲,接着释放总线并进接收状态,器件在接收到总线的电平上升沿后,等待15~60 μs发出60~240 μs的低电平存在脉冲信号,通知主机器件已接在总线上。
DS18B20的访问程序如图2所示。
图2 DS18B20的访问程序
为了提高数码管显示亮度,显示电路设计了段码端和位码端的驱动电路,段码和位码由同一数据端口发出,通过片选信号进行选择。显示控制程序如图3所示。
图3 显示控制程序
该电子温度计采用AT89C2051单片机作为核心控制元件,通过DS18B20数字温度传感器进行温度测量,具有测量速度快、性能可靠、电路简单、成本低等特点,注重实用性。