基于51单片机的DS18B20温度显示的仿真设计

一、设计要求

采用AT89C52单片机为控制核心、DS18B20数字温度传感器测量温度、数码管显示温度,实现基于51单片机的DS18B20温度显示的仿真设计。

二、设计内容

单片机控制DS18B20采集温度、并读取采集后的温度值(16位二进制数)。单片机将温度值按分辨率(本设计中分辨率为0.0625℃)处理后,最后保留两位小数在8位数码管上动态显示。通过按键可以实现摄氏温度和华氏温度之间的切换。

摄氏温度和华氏温度的转换公式如下:

c=\frac{5}{9}(f-32)

注:其中c代表摄氏温度,f代表华氏温度。

三、设计模块

DS18B20温度采集模块:51单片机与DS18B20温度传感器之间是通过单总线协议进行数据交换的,本设计中DS18B20的DQ引脚与单片机的P3^7引脚相连。

关于DS18B20的相关知识及工作时序我在之前的文章中已详细说明,在此就不赘述了。想了解的可以访问下面的链接

https://blog.youkuaiyun.com/weixin_45755708/article/details/142387374?spm=1011.2415.3001.10575&sharefrom=mp_manage_linkhttps://blog.youkuaiyun.com/weixin_45755708/article/details/142387374?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

数码管显示模块:本设计中采用共阴的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

最重要的一点,祝大家天天开心!

设计一个基于51单片机的简易温度计时,我们首先需要了解DS18B20传感器的数据读取方式,51单片机DS18B20及数码管的硬件连接方法,以及如何在Proteus中进行电路仿真。这里推荐参考《基于51单片机实现的DS18B20数码管温度显示设计》资源。 参考资源链接:[基于51单片机实现的DS18B20数码管温度显示设计](https://wenku.youkuaiyun.com/doc/5st0pi4qu4?spm=1055.2569.3001.10343) 在硬件连接方面,51单片机的一个端口需要连接DS18B20的DQ数据线,另一端口连接数码管。DS18B20的VDD接电源正极,GND接电源负极。为了保证数据传输的准确性和抗干扰性,可能还需要在数据线上串接一个4.7kΩ的上拉电阻。 在软件编程方面,需要编写代码实现以下功能: - 初始化DS18B20传感器; - 通过单总线协议向DS18B20发送温度转换命令; - 读取DS18B20传感器的温度数据; - 将读取到的温度数据转换为人类可读的格式; - 控制数码管显示当前的温度值。 下面是一个简化的源代码示例(省略了部分实现细节): ```c // 51单片机程序代码示例 #include <REGX51.H> // 其他头文件和DS18B20初始化、温度读取、数码管显示函数的声明 void main() { float temp; unsigned char temp_high, temp_low; while(1) { // 调用函数读取DS18B20温度数据 temp = ReadTemperature(); // 将温度数据转换为整数形式 temp_high = (unsigned char)(temp/10.0); temp_low = (unsigned char)(temp - temp_high*10.0); // 显示温度到数码管 DisplayTemperature(temp_high, temp_low); } } ``` 在Proteus仿真软件中,你需要按照实际电路图搭建电路,并导入源代码,进行仿真测试。仿真时,可以设置DS18B20的初始温度值,观察数码管显示是否与预期一致,以及程序运行是否稳定。 完成以上步骤后,你将掌握利用51单片机DS18B20传感器制作简易温度计的关键技能,以及如何通过Proteus软件进行电路仿真测试。为了进一步提高电路设计和编程的能力,建议深入研究单片机与传感器的通信协议,以及数码管的驱动技术,这将有助于你在嵌入式系统设计领域取得更大的进步。 参考资源链接:[基于51单片机实现的DS18B20数码管温度显示设计](https://wenku.youkuaiyun.com/doc/5st0pi4qu4?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值