全球旧事资料 分类
52单片机DS18B20温度计1602显示
f精品资料
按下K1显示序列码,按下K2显示实时温度(本实验适合初学者调试理解18B20用,)i
cludereg52h52单片机defi
eucharu
sig
edchar仅供学习与交流,如有侵权请联系网站删除谢谢2
f精品资料
defi
eui
tu
sig
edi
tui
t无符号整数
sbitDQP22单总线(与自己的开发板相匹配)
ui
ttemp
温度
ucharflag1
符号
sbitrsP10控制LCD(与自己的开发板相匹配)
sbitrwP11控制LCD(与自己的开发板相匹配)
sbitlcde
P25led使能端
(与自己的开发板相匹配)
sbitK1P34独立按键k1(与自己的开发板相匹配)
sbitK2P35
独立按键k2
(与自己的开发板相匹配)
sbitduP26
位选防LED灯乱闪(与自己的开发板相匹配)
sbitweP27段选防LED灯乱闪(与自己的开发板相匹配)
ucharabcdefghA1A2A2tA3A4A5写在LCD上的字符,具体在程序中看
voiddelayui
tcou
t
延迟程序200cou
t8毫秒
ui
tiwhilecou
ti200whilei0icou
t
voidDQresetvoid
初始化,主机将DQ拉高上升沿(从机检测到上升沿
后延时15到60毫秒,从机拉低总线60到240毫秒表示“我”在线)

ui
tiDQ0
从机的工作是自动完成的
仅供学习与交流,如有侵权请联系网站删除谢谢3
f精品资料
i103whilei0iDQ1i4whilei0i
bittmpreadbit
从18b20读1位
ui
tibitdatDQ0iDQ1iidatDQi8whilei0i
retur
dat返回dat

uchartmpread
从18b20读1字节
ucharijdatdat0fori1i8ijtmpreadbitdatj7dat1retur
dat
voidtmpwritebyteuchardat18b20写1bit(只能用于写命令)
ui
tiucharjbittestb
forj1j8j
一位一位地传
testbdat0x01datdat1iftestb
仅供学习与交流,如有侵权请联系网站删除谢谢4
f精品资料
DQ0iiDQ1i8whilei0ielseDQ0i8whilei0iDQ1ii

voidtmpcha
gevoid温度转换子程序
DQresetdelay1
tmpwritebyte0xccCCH跳过ROM
tmpwritebyte0x4444H温度转换
ui
ttmp
读取温度子程序
floatttucharab
DQreset无论什么命令首先都要发起初始化
delay1tmpwritebyte0xcc跳过ROM(本实验中实验板上只连接一块18B20)
tmpwritebyte0xbe读便签存储器(温度以二进制储存于BEH)
atmpreada为低八位
btmpreadb为高八位
tempbtemp8
仅供学习与交流,如有侵权请联系网站删除谢谢5
f精品资料
temptempatttemp00625二进制乘00625为十进制
temptt1000
retur
temp
精度为0001
voidLCD_WriteComucharcomLCD写入命令
rs0r
好听全球资料 返回顶部