计中,我们遇到了一些问题,有过争吵,有过做不好时的烦闷以及当时一时气话的放弃,但不论怎样我们在争吵、郁闷、生气的后来都重拾了这次设计。每个人都想更好地做好设计,尽自己最大的努力。因此此次课程设计,不但让我们学习了更多的单片机知识,增强了我们的动手能力,锻炼了我们的耐心与细心;还让我们明白了团结的意义,以及合作的快乐。
附录1原理图
附录2源程序清单
defi
eucharu
sig
edcharvoiddelayui
tcou
tdelayui
tiwhilecou
ti200whilei0icou
t
242020年4月19日
f文档仅供参考,不当之处,请联系改正。
voiddsresetvoidse
dreseta
di
itializatio
comma
d初始化DS18B20
ui
tiDS0i103whilei0iDS1i4whilei0ibittmpreadbitvoidreadabit读一位ui
tibitdatDS0iifordelay小延时一下DS1i
252020年4月19日
f文档仅供参考,不当之处,请联系改正。
idatDSi8whilei0iretur
datuchartmpreadvoidreadabytedate读一个字节ucharijdatdat0
fori1i8ijtmpreadbitdatj7dat1读出的数据最低位在最前面,这样刚好一个字节在DAT里
retur
datvoidtmpwritebyteuchardatwriteabytetods18b20写一个字节到DS18B20里面
262020年4月19日
f文档仅供参考,不当之处,请联系改正。
ui
tiucharjbittestbforj1j8jtestbdat0x01datdat1iftestbwrite1写1部分DS0iiDS1i8whilei0ielseDS0write0写0部分i8whilei0iDS1
272020年4月19日
f文档仅供参考,不当之处,请联系改正。
iivoidtmpcha
gevoidDS18B20begi
cha
ge发送温度转换命令dsreset初始化DS18B20delay1延时tmpwritebyte0xccaddressalldriverso
bus跳过序列号命令tmpwritebyte0x44i
itiatesasi
gletemperatureco
versio
发送温度转换命令ui
ttmpgetthetemperature获得温度floatttucharabdsresetdelay1tmpwritebyte0xcc
282020年4月19日
f文档仅供参考,不当之处,请联系改正。
tmpwritebyte0xbeatmpread
btmpreadtempbtemp8twobytecomposeai
tvariable两字节合成一个整型变量temptempatttemp00625得到真实十进制温度值,因为DS18B20能够精确到00625度,因此读回数据的最低位代表的是00625度。
temptt1005放大十倍,这样做的目的将小数点后第一位
也转换为可显示数字,同时进行一个四舍五入操作。retur
temp
voiddisplayui
ttemp显示程序ucharA1A2A2tA3A1temp100
A2ttemp100
292020年4月19日
f文档仅供参考,不当之处,请联系改正。
A2A2t10A3A2t10dula0r