一、设计要求
采用AT89C52单片机为控制核心、DS18B20数字温度传感器测量温度、数码管显示温度,实现基于51单片机的DS18B20温度显示的仿真设计。
二、设计内容
单片机控制DS18B20采集温度、并读取采集后的温度值(16位二进制数)。单片机将温度值按分辨率(本设计中分辨率为0.0625℃)处理后,最后保留两位小数在8位数码管上动态显示。通过按键可以实现摄氏温度和华氏温度之间的切换。
摄氏温度和华氏温度的转换公式如下:
注:其中c代表摄氏温度,f代表华氏温度。
三、设计模块
DS18B20温度采集模块:51单片机与DS18B20温度传感器之间是通过单总线协议进行数据交换的,本设计中DS18B20的DQ引脚与单片机的P3^7引脚相连。
关于DS18B20的相关知识及工作时序我在之前的文章中已详细说明,在此就不赘述了。想了解的可以访问下面的链接
数码管显示模块:本设计中采用共阴的8位数码管显示温度值(包括符号及单位),用AT89C52单片机的P0端口控制数码管的段码,AT89C52单片机的P2^2、P2^3、P2^4引脚分别连接三八译码器的A、B、C引脚、三八译码器的输出端Y0~Y7引脚对8位数码管进行位选。如下图:
独立按键模块:本设计中单片机的P3^2引脚连接一个独立按键,用于实现摄氏温度和华氏温度间的切换。对51单片机而言,P3^2引脚同时还是外部中断0输入引脚。如下图:
四、设计仿真
仿真环境:Proteus 8 Professional
功能描述:
1.单片机读取DS18B20内的温度,并将温度值保留两位小数用8位数码管动态显示。
2.通过按键实现摄氏温度和华氏温度之间的切换。
演示视频如下:
基于51单片机的DS18B20温度显示的仿真设计
关于本设计的具体Keil工程和Proteus电路图可以访问下方链接
https://item.taobao.com/item.htm?ft=t&id=903674998248
最重要的一点,祝大家天天开心!