单片机:DS18B20温度传感器(内含芯片介绍+硬件设计+软件设计+配置环境)
时间:2022-08-12 15:30:02
DS18B20介绍
1.工作电压相对较宽 3.0v---5.5v
2.接口简单(左上角除外)VCC,GND,只剩下一条数据线DQ)
3.工作范围 -55°~125°
4.9、10、11、12位可设置分辨率.对应温度误差为正负0.5,0.25,0.125,0.0625(默认)
5.理论上,VCC和GND反转后,只会发热,不会烧坏(注:理论上)
PCD板中,1脚为GND,2脚为DQ,3脚为VCC
TM选择测试位或使用位,出现时已设置,无法更改
R1 R0位一般选择最高精度,即 R1=1,R0=1
MS 前五位是符号位,后三位和LS8位为温度位
温度位*0.0625=实际温度
若为正数,则前五名为0万
如果是负数,前五名是11111(其他人按位取反 1)*0.0625
如 85° 数据输出0550h 对应0000 0101(=05) 0101 0000(=50)前五位(00000)为符号位,0550(16进制)=1360(十进制)=1360*0.0625=85°
-0.5° 数据输出FFF8h 对应1111 1111 1111 1000,先取反为0000 0000 0000 0111变成16进制为0x0007, 1得,0x0008,=0008*0.0625=-0.5°
相当于复位环节
数据读写过程都是低位的LSB--->高位MSB
480-960us,低电平,15-30us,拉高电平
电平降低后,60-240us,如果没有高电平,需要480us
注:黑色部分(前4000)us和后240us)灰色部分由单片机产生DS18B20输出响应信号
注:写时序的整个过程至少需要60个us,每个写作时序需要1us间隔,拉低总线作为开始标志
左边是0。写0时,主机降低电平,然后持续60us
右边是写1。写1时,主机降低电平,然后间隔2us,不变,然后拉高到高电平,持续60us
注:阅读时间序列的整个过程至少为60us,每个读时序至少需要1us
左图为读时序0,右图为读时序1,区别在于15us内部是否含有拉高电平(1)
注:复位环节=时序初始化,发命令=写0或1,读温度=读0或1
硬件部分
左侧为A2-A4版 右侧为A5-A7版
区别在于总线是否绑定IO口, A2-A4,绑定 A5-A7,未绑定
注:A2-A4的P37脚有上拉电阻,A5-A7也有上拉电阻,但重新设置BUS的上拉电阻目的是可独立使用该模块
软件部分
注意环境的配置: