




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于ds18b20 STC89s51單片機(jī)測(cè)溫系統(tǒng)LCD1602液晶可調(diào)時(shí)鐘+溫度顯示(C程序完整版)溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場(chǎng)合時(shí) DALLAS(達(dá)拉斯)公司生產(chǎn)的 DS18B20 溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得 DS18B20 更受歡迎。對(duì)于我們普通的電子愛好者來(lái)說(shuō),DS18B20 的優(yōu)勢(shì)更是我們學(xué)習(xí)單片機(jī)技術(shù)和開發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇。了解其工作原理和應(yīng)用可以拓寬您對(duì)單片機(jī)開發(fā)的思路。如果要更全的資料請(qǐng)搜索“完整的ds18b20中文資料.pdf “。 DS18B20 的主要特征: 全數(shù)字溫度轉(zhuǎn)換及輸出。
2、 先進(jìn)的單總線數(shù)據(jù)通信。 最高 12 位分辨率,精度可達(dá)土 0.5攝氏度。 12 位分辨率時(shí)的最大工作周期為 750 毫秒。 可選擇寄生工作方式。 檢測(cè)溫度范圍為55C +125C (67F +257F) 內(nèi)置 EEPROM,限溫報(bào)警功能。 64 位光刻 ROM,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接。 多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。 DS18B20 引腳功能: GND 電壓地 DQ 單數(shù)據(jù)總線 VDD 電源電壓 NC 空引腳 DS18B20 工作原理及應(yīng)用: DS18B20 的溫度檢測(cè)與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。其一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)和數(shù)據(jù)處理。在講解其工
3、作流程之前我們有必要了解 18B20的內(nèi)部存儲(chǔ)器資源。18B20 共有2種形態(tài)的存儲(chǔ)器資源,它們分別是: 1 ROM 只讀存儲(chǔ)器,用于存放 DS18B20ID 編碼,其前 8 位是單線系列編碼(DS18B20 的編碼是19H) ,后面48 位是芯片唯一的序列號(hào),最后 8位是以上 56的位的 CRC碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶更改。DS18B20 共 64 位 ROM。 2 RAM 數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20 共9 個(gè)字節(jié) RAM,每個(gè)字節(jié)為 8 位。第1、2 個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第 3、4 個(gè)字節(jié)是用戶 EEPROM(常用于溫度
4、報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第 5 個(gè)字節(jié)則是用戶第 3 個(gè) EEPROM的鏡像。第 6、7、8 個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。第 9 個(gè)字節(jié)為前 8個(gè)字節(jié)的 CRC碼。EEPROM 非易失性記憶體,用于存放長(zhǎng)期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù), DS18B20共3位EEPROM,并在 RAM 都存在鏡像,以方便用戶操作。C程序(獨(dú)家專售):#include#define uchar unsigned char #define uint unsigned int#define LCDIO P2sb
5、it DQ=P37;/ds18b20與單片機(jī)連接口sbit rs=P30; sbit rd=P31;sbit lcden=P32;sbit s1=P13;sbit s2=P14;sbit s3=P15;uchar data disdata5;uint tvalue;/溫度值uchar tflag;uchar count,s1num;char miao,shi,fen,day=18,mon=11,week=0;uint year=2010;uchar code table= 2010-11-18 THU;uchar code table1=00:00:00 000.0 C;uchar code
6、table2= THUFRISATSUNMONTUEWES;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com)rs=0;rd=0;lcden=0;P2=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)rs=1;rd=0;lcden=0;P2=date;delay(5);lcden=1;delay(5);lcden=0;void init()uchar num;lcden=0;write_com(0x
7、38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num15;num+)write_date(tablenum);delay(5);write_com(0x80+0x40);for(num=0;num16;num+)write_date(table1num);delay(5);TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void write_sfm(uchar add,uchar date)u
8、char shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);void write_md(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(0x30+shi);write_date(0x30+ge);void write_year(uchar add,uint date)uchar qian,bai,shi,ge;qian=date
9、/1000;bai=date%1000/100;shi=date%1000%100/10;ge=date%1000%100%10;write_com(0x80+add);write_date(0x30+qian);write_date(0x30+bai);write_date(0x30+shi);write_date(0x30+ge);void write_week(uchar add,uchar date)uchar num;write_com(0x80+add);for(num=0;num0;i-) DQ = 0; /給脈沖信號(hào) dat=1; DQ = 1; /給脈沖信號(hào) if(DQ) d
10、at|=0x80; delay_18B20(10); return(dat); void ds1820wr(uchar wdata)/*寫數(shù)據(jù)*/ unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; read_temp()/*讀取溫度值并轉(zhuǎn)換*/ uchar a,b; ds1820rst(); ds1820wr(0xcc);/*跳過(guò)讀序列號(hào)*/ ds1820wr(0x44);/*啟動(dòng)溫度轉(zhuǎn)換*/ ds1820rst(); ds1820wr(0xcc);/*
11、跳過(guò)讀序列號(hào)*/ ds1820wr(0xbe);/*讀取溫度*/ a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.625);/溫度值擴(kuò)大10倍,精確到1位小數(shù)return(tvalue); void ds1820disp()/溫度值顯示 uchar flagdat; disdata0=tvalue/1000+0x30;/百位數(shù) disdata1=tvalue%1000
12、/100+0x30;/十位數(shù) disdata2=tvalue%100/10+0x30;/個(gè)位數(shù) disdata3=tvalue%10+0x30;/小數(shù)位 if(tflag=0) flagdat=0x20;/正溫度不顯示符號(hào) else flagdat=0x2d;/負(fù)溫度顯示負(fù)號(hào):- if(disdata0=0x30) disdata0=0x20;/如果百位為0,不顯示 if(disdata1=0x30) disdata1=0x20;/如果百位為0,十位為0也不顯示 write_com(0xc8); write_date(flagdat);/顯示符號(hào)位 write_com(0xc9); write
13、_date(disdata0);/顯示百位 write_com(0xca); write_date(disdata1);/顯示十位 write_com(0xcb); write_date(disdata2);/顯示個(gè)位 write_com(0xcc); write_date(0x2e);/顯示小數(shù)點(diǎn) write_com(0xcd); write_date(disdata3);/顯示小數(shù)位 write_com(0xcf); write_date(C); void main()init();delay(5);read_temp();/讀取溫度ds1820disp();/顯示while(1)keys
14、can();delay(5);void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=18)count=0;miao+;if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;day+;week=week+3;if(week=21) week=0; if(mon=1)|(mon=3)|(mon=5)|(mon=7)|(mon=8)|(mon=10)|(mon=12)&(day=32) day=1; display(); if(mon=4)|(mon=6)|(mon=9)|(mon=11)&(day=31) day=1; display(); if(mon=2)&(year%4=0)&(year%100!=0)|(year%400=0)&(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考語(yǔ)文文言文閱讀訓(xùn)練經(jīng)典題目(及答案)50
- 2025年春季學(xué)期主題班會(huì)教案:探索人工智能的未來(lái)
- 2025年新學(xué)期攻略:《囊螢夜讀》教學(xué)課件更新
- 學(xué)校比賽活動(dòng)方案(30篇)
- 政教處2025德育工作計(jì)劃(6篇)
- 2024年關(guān)于高二迎接高三演講稿范文(17篇)
- 水果的創(chuàng)業(yè)計(jì)劃書(4篇)
- 電力修理知識(shí)培訓(xùn)課件
- 路政業(yè)務(wù)知識(shí)培訓(xùn)課件
- DB31∕601-2012 地理標(biāo)志產(chǎn)品 金山蟠桃
- (新版)廣電全媒體運(yùn)營(yíng)師資格認(rèn)證考試復(fù)習(xí)題庫(kù)(含答案)
- 2024年法律職業(yè)資格考試(試卷一)客觀題試卷與參考答案
- 安全生產(chǎn)重大事故隱患排查報(bào)告表
- 慢性心功能不全護(hù)理查房
- 秘書理論與實(shí)務(wù)教案
- 社區(qū)矯正人員工作手冊(cè)
- 淺圓倉(cāng)滑模及倉(cāng)頂板施工方案
- 應(yīng)用文第一章緒論2016春
- 統(tǒng)編版必修上冊(cè)第五《鄉(xiāng)土中國(guó)》導(dǎo)讀優(yōu)質(zhì)課件PPT
- 電纜敷設(shè)施工方案及安全措施范文
- 市場(chǎng)營(yíng)銷課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論