实验七:基于89C51和DS18B20的温度采集与显示
一、实验目的
- 学习使用DS18B20数字温度传感器采集温度数据。
- 使用4位共阳极数码管显示温度数据,显示精度到小数点后两位。
- 熟悉89C51单片机的I/O口操作和位选控制。
-
二、实验器材
- 89C51单片机开发板
- DS18B20数字温度传感器
- 4位共阳极数码管
- 三极管8550(用于位选驱动)
- 电阻、电容等辅助元件
- 杜邦线若干
-
三、硬件连接
-
(1)数码管连接:
-
P1.0 - P1.7:分别连接数码管的A - G段和DP(小数点)。
-
P2.4、P2.5、P2.6、P2.7:分别控制数码管的不同位显示。
-
使用8550(PNP型)作为位选驱动,控制数码管位选通。
(2)DS18B20连接
- DQ端连接89c51的P2.3
四、软件设计
DS18B20的工作步骤可以分为三步:
- 初始化DS18B20
- 执行ROM指令
- 执行DS18B20功能指令
其中第二步执行ROM指令,也就是访问每个DS18B20,搜索64位序列号,读取匹配的序列号值,然后匹配对应的DS18B20,如果我们仅仅使用单个DS18B20,可以直接跳过ROM指令。而跳过ROM指令的字节是0xCC。
五、实验结果
- 通过上述代码,数码管应能正确显示温度数值,包括小数点后一位,满足实验要求。
六、注意事项
- 确保硬件连接正确,尤其是位选控制(P2.4 - P2.7)和电流放大(8550驱动)。
- 定期检查硬件连接,确保功能正常。
提交:(1)C51代码实现 (2)仿真或实验图 (3)实验总结
七、补充材料
(1)DS18B20温度传感器特点
- 使用电压范围更宽,电压范围:3.0V ~ 5.5V,在寄生电源方式下可由数据线供电。