DS18B20溫度顯示程序(共3頁)_第1頁
DS18B20溫度顯示程序(共3頁)_第2頁
DS18B20溫度顯示程序(共3頁)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、DS18B20傳感器溫度數(shù)碼管顯示#include#include /傳感器 DS18B20#include /字符操作庫sbit g1=P27;sbit g2=P26;sbit g3=P25;sbit g4=P24;sbit lv=P22; sbit jin=P33; /進(jìn)sbit jia=P34; /加sbit jian=P35; /減uint shiwen;uint zuigao=30; /最高30度uint zuidi=20; /最低20度/*鍵盤調(diào)節(jié)/uchar flag=0; /記錄第一個(gè)按鍵次數(shù) flag=0正常 1最高 2最低 uchar flag2=0; /記錄第四個(gè)按鍵次數(shù)

2、 flag2=0正常 1調(diào)節(jié)小時(shí) 2調(diào)節(jié)分鐘 uchar tableshu=0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xe0,0xff ,0xf7 ; uchar tableshudi=0x08,0xcb,0x12,0x82,0xc1,0x84,0x04,0xca,0x00,0xc0,0xff ; void main()uchar TL; /儲(chǔ)存暫存器的溫度低位 uchar TH; /儲(chǔ)存暫存器的溫度高位 uint TN; /儲(chǔ)存溫度的整數(shù)部分 uchar TD; /儲(chǔ)存溫度的小數(shù)部分 uchar ba,sh,ge,di,ba1,sh1,ge1

3、,di1;bit flag1; /判斷顯示正負(fù)0負(fù) 1正 delay1(5); /延時(shí)5ms給硬件一點(diǎn)反應(yīng)時(shí)間 while(1) /不斷檢測(cè)并顯示溫度 init();/讀溫度準(zhǔn)備if(flag1=1) dis(ba,sh,ge,di); else dis(11,sh,ge,di); TL=ReadOneChar(); /先讀的是溫度值低位 TH=ReadOneChar(); /接著讀的是溫度值高位 if(TH&0xf8)!=0x00)/判斷高五位 得到溫度是負(fù) flag1=0; TL=TL; /取反 TH=TH; /取反 TL=TL+1; /低位加1 TN=(TH*256+TL)*0.625;

4、 /實(shí)際溫度值10倍=(TH*256+TL)*0.625,if(TN%160=0) TN=TN+160; sh=TN/100%10; ge=TN/10%10; di=TN%10; dis(ba,sh,ge,di); /顯示溫度 else/判斷高五位 得到溫度是正 flag1=1; TN=(TH*256+TL)*0.625; /實(shí)際溫度值10倍=(TH*256+TL)*0.625, /這樣前幾位是溫度的整數(shù)部分,最后一位是溫度的小數(shù)部分 ba=TN/1000; sh=TN/100%10; ge=TN/10%10; di=TN%10; dis(ba,sh,ge,di); /顯示溫度的整數(shù)部分 sh

5、iwen=TN; biaozhun(); tfz();if(flag1=1) dis(ba,sh,ge,di); else dis(11,sh,ge,di);kongzhi()/溫度調(diào)整驅(qū)動(dòng)程序void kongzhi() if(shiwenzuidi) lv=0; /控制P2口輸出電平 else lv=1; void dis(uchar ba,uchar sh,uchar ge,uchar di) g1=0;P0=tableshuba; delay1(5); g1=1;P0=tableshu10;g2=0;P0=tableshush; delay1(5); g2=1;P0=tableshu1

6、0;g3=0;P0=tableshudige; delay1(5); g3=1;P0=tableshudi10; g4=0;P0=tableshudi;delay1(5); g4=1;P0=tableshu10; void disdi(uchar ba,uchar sh,uchar ge,uchar di) g1=0;P0=tableshudiba; delay1(5); g1=1;P0=tableshu10; g2=0;P0=tableshudish;delay1(5); g2=1;P0=tableshu10; g3=0;P0=tableshudige; delay1(5); g3=1;P0

7、=tableshudi10; g4=0;P0=tableshudidi; delay1(5); g4=1;P0=tableshu10;void biaozhun() if(jin=0) delay1(5); if(jin=0) while(!jin);flag+; if(flag=3) flag=0; /*調(diào)幅值*/ void tfz() uchar ba,sh,ge,di; if(flag=1) while(1) ba=zuigao/1000; sh=zuigao/100%10; ge=zuigao/10%10; di=zuigao%10; dis(ba,sh,ge,di); if(jia=0) delay1(5); if(jia=0) zuigao=zuigao+10;while(!jia); dis(ba,sh,ge,di); if(jian=0) zuigao=zuigao-10;while(!jian);dis(11,sh,ge,di); biaozhun(); if(flag!=1) break; if(flag=2) while(1) ba=zuidi/1000; sh=zuidi/100%10; ge=zuidi/10%10; di=zuidi%10; dis(ba,sh,ge,di);if(ji

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論