版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本程序?yàn)閐s18b20的多路溫度采集程序,是我自己參考其他程序后改寫而成,可顯示4路正負(fù)溫度值,弁有上下限溫度報警(聲音、燈光報警).親測,更改端口即可使用.(主要器件:51單片機(jī),ds18b20,led顯二皿zKw)附有proteus仿真圖,及序列號采集程序 U2_b , p*噂叩,.,«TE7T =;, us - 乂T昌1_司fO I4blXT*LZFO3*lKLFQ睜FCi.CMMI'U.OMitCH5TFOJjWpTP2 Ij此FWFhl叩印11i!EApa.iMHi” 7質(zhì)情Fl IJT淚;w.igatpi用m flP4CE P1.7JCEK4M.aimiF3則他P
2、3 3£ti ,研麗TF3.7IH&一TEHPERRRTURE:U2 '020.2善妥善獸翼1費(fèi)才,P露坪腳.-n Q- LUh p- (ll iH "m Q1 Q 口、> > P n: ® iu aaaaaaa/*上限62度下限一20度*/#include<reg51.h#defineueharunsignedchar#defineuintunsignedintsbitds=P1A1;sbitrs=P1A4;sbite=P1A6;sbitsp=P1A0;sbitd1=P1A2;sbitd2=P1A3;ucharIcdrom48=
3、0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e,0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9,0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0,0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7;unsignedcharcodetable0=”TEMPERARTURE:U”;unsignedcharcodetablel口="0123456789ABCDEF;intf4;inttvalue;floatftvalue;uintwarnl=320;uintwarnh=
4、992;/lcd程序/uinti,j;for(i=ms;i>0;i-)for(j=110;j0;j-);voidwrcom(ucharcom)/寫指令delayms(1);rs=0;P3=com;delayms(1);e=1;delayms(1);e=0;voidwrdat(uchardat)/寫數(shù)據(jù)rs=1;e=0;P3=dat;delayms(5);delayms(5);e=0;voidlcdinit()/初始化lcddelayms(15);wrcom(0x38);delayms(5);wrcom(0x0c);delayms(5);wrcom(0x06);delayms(5);wrc
5、om(0x01);delayms(5);voiddisplay(uchar*p)/顯示while(p!='0')wrdat(p);p+;delayms(1);displayinit()/初始化顯示lcdinit();wrcom(0x80);display(table0);/*ds18b20程序*/voiddsrst()/ds18b20復(fù)位uinti;ds=0;i=103;while(i0)i-;ds=1;i=4;while(i0)i;bitdsrd0()/讀一位數(shù)據(jù)uinti;bitdat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;while(i>0)i
6、;return(dat);uchardsrd()/讀1個字節(jié)數(shù)據(jù)uchari,j,dat;dat=0;for(i=8;i0;i-)j=dsrd0();dat=(j<<7)|(dat1);return(dat);voiddswr(uchardat)/寫數(shù)據(jù)uinti;ucharj;bittestb;for(j=8;j0;j-)testb=dat&0x01;dat=dat>>1;if(testb)ds=0;i+;i+;ds=1;i=8;while(i>0)i)elseds=0;i=8;while(i>0)ids=1;i+;i+;)voidtmstart(
7、)初始化ds18b20sp=1;d1=1;d2=1;dsrst();delayms(1);dswr(0xcc);dswr(0x44);voidread_dealtemp()/讀取并處理溫度uchari,j,t;uchara,b;for(j=0;j4;j+)dsrst();delayms(1);dswr(0x55);for(i=0;i8;i+)dswr(lcdromji);/發(fā)送64位序列號dswr(0xbe);a=dsrd();b=dsrd();tvalue=b;tvalue<=8;tvalue=tvalue|a;if(tvalue<0)d1=1;tvalue=tvalue+1;w
8、rcom(0xc0);wrdat(0x2d);if(tvalue>warnl)d2=0;sp=0;elsed2=1;elsed2=1;wrcom(0xc0);wrdat(;)if(tvaluewarnh)d1=0;sp=0;elsed1=1;sp=1;if(j=0)wrcom(0x8e);wrdat('2);if(j=1)wrcom(0x8e);wrdat(3;')if(j=2)wrcom(0x8e);wrdat(4);if(j=3)wrcom(0x8e);wrdat();5'ftvalue=tvalue*0.0625;tvalue=ftvalue*10+0。5;
9、ftvalue=ftvalue+0.05;fj=tvalue;/溫度擴(kuò)大十倍,精確到一位小數(shù)tvalue=fj;t=tvalue/1000;wrcom(0x80+0x41);wrdat(table1t);/顯示百位t=tvalue1000/100;wrdat(table1t);/顯示十位t=tvalue%100/10;wrdat(table1t);/顯示個位wrdat(0x2e);/顯示小數(shù)點(diǎn)兒t=tvalue%10/1;wrdat(table1t);/顯示小數(shù)位delayms(5000);/*主函數(shù)*/voidmain()d1=1;d2=1;sp=1;displayinit();/初始化顯示
10、while(1)tmstart();/初始化read_dealtemp();/讀取溫度/*序列號讀取程序*/include<reg52。h>defineucharunsignedchar/溫度傳感defineuintunsignedintsbitDQ=P1八1;器信號線sbitrs=P1八4;命令選擇端(H/L)位聲明sbitIcden=P1八6;位聲明voiddelay(uintz);函數(shù)voidDS18B20_Reset(void/DQ18B20復(fù)位,初始化函數(shù)bitDS18B20_Readbit(void);函數(shù)ucharDS18B20_ReadByte(void);節(jié)數(shù)據(jù)函
11、數(shù)voidDS18B20_WriteByte(uchardat);一個字節(jié)數(shù)據(jù)函數(shù)voidLCD_WriteCom(ucharcom);晶命令寫入函數(shù)voidLCD_WriteData(uchardat);晶數(shù)據(jù)寫入函數(shù)voidLCD_Init(/LCD 數(shù)據(jù) /LCD 使能信號端/延時);/讀 1 位數(shù)據(jù)/ 讀 1 個字/向 DQ18B20 寫/1602 液/1602 液);/LCD初始化函數(shù)voidDisplay18B20Rom(charRom);/顯示18B20序列號函數(shù)/*/*主函數(shù)*/*voidmain()uchara,b,c,d,e,f,g,h;LCD_Init();DS18B20
12、_Reset();delay(1);DS18B20_WriteByte(0x33);delay(1);a=DS18B20_ReadByte();b=DS18B20_ReadByte();c=DS18B20_ReadByte();d=DS18B20_ReadByte();e=DS18B20_ReadByte();f=DS18B20_ReadByte();g=DS18B20_ReadByte();h=DS18B20_ReadByte();LCD_WriteCom(0x80+0x40);Display18B20Rom(h);Display18B20Rom(g);Display18B20Rom(f);
13、Display18B20Rom(e);Display18B20Rom(d);Display18B20Rom(c);Display18B20Rom(b);Display18B20Rom(a);while(1);/*/*延 時 函 數(shù) : void delay ( )功能延時函數(shù)/*/voiddelay(uintz)/延時函數(shù)uintx,y;forx=z;x0;x-)for(y=110;y0;y-);/*/*DS18B20函數(shù)voidDS18B20_Reset()臺匕能復(fù)位18B20/*voidDS18B20Resetvoid)/DQ18B20復(fù)位,初始化函數(shù)uinti;DQ=0;i=103;wh
14、ile(iDQ=1;i=4;while(i>0)/*/DS18B20函數(shù):voidDS18B20_Readbit()*/功能:讀1個字節(jié)數(shù)據(jù)函數(shù)*/* * * * * * *bitDS18B20_Readbit(void)/讀1位數(shù)據(jù)函數(shù)uinti;bitdat;DQ=0;i+;i+起延時作用DQ=1;i+;i+;dat=DQ;i=8;while(i0)i-;return(dat);*/*DS18B20函數(shù):voidDS18B20_ReadByte()/功能:讀1個字節(jié)數(shù)據(jù)函數(shù)*/*/ucharDS18B20_ReadByte(void)/讀1個字節(jié)數(shù)據(jù)函數(shù)uchari,j,dat;da
15、t=0;for(i=1;i<=8;i+)j=DS18B20_Readbit();dat=(j7)|(dat>>1);return(dat);* * * * * * * * * * */DS18B20函數(shù):voidDS18B20_WriteByte()*/功能:向DQ18B20寫一個字節(jié)數(shù)據(jù)函數(shù)*/*/voidDS18B20_WriteByte(uchardat)/向DQ18B20寫一個字節(jié)數(shù)據(jù)函數(shù)uinti;ucharj;bittestb;for(j=1;j<=8;j+)testb=dat&0x01;dat=dat1;if(testb)/寫1DQ=0;i+;i+
16、;DQ=1;i=8;while(i0)i-;elseDQ = 0;i = 8 ; while ( iDQ = 1;i+ ; i+;/* */LCD*/*功 能*/ * *void LCD_WriteCom*/函 數(shù) : void:向LCD*/uchar com)/ 寫 00) i- ;*LCD_WriteCom( )寫入命令*rs=0;P3=com;delay(5);lcden=0;delay(5);lcden=1;delay(5);lcden=0;/* * * * * * */*/LCD 函 數(shù)臺匕能voidLCD_WriteData(ucharLCD* * * * * * * * * *
17、*dat)/將待寫入數(shù)*/voidLCD_WriteData(uchardat)rs=1;選擇LCD為寫入數(shù)據(jù)狀態(tài)lcden=0;P3=dat;據(jù)放到總線上delay(5);lcden=1;/給LCD使能端一個脈沖delay(5);/信號將之前放到總線上lcden=0;/的數(shù)據(jù)寫入LCDdelay(5);/*/LCD函數(shù):voidLCD_Init()*/功能:初始化LCD,設(shè)定LCD的初始狀態(tài)/*/voidLCD_Init()LCD_WriteCom(0x38);/LCD顯示模式設(shè)定delay(15);LCD_WriteCom(0x08);/關(guān)閉LCD顯示delay(3);LCD_WriteCom(0x01);清屏delay(3);LCD_WriteCom(0x06);地址指針為自動加1delay(3);LCD_WriteCom(0x0c);顯示,但不顯示光標(biāo)/LCD顯示/設(shè)定光標(biāo)/打開LCD/*/*/顯示18B20序列號*v
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版電力工程項(xiàng)目居間代理傭金服務(wù)合同2篇
- 二零二五版電子商業(yè)買賣合同模板3篇
- 二零二五年度工地鋼管外架施工環(huán)保設(shè)施設(shè)計(jì)與安裝承包合同3篇
- 白葉2025版離婚協(xié)議中共同財(cái)產(chǎn)分割及子女撫養(yǎng)費(fèi)用支付合同二零二五年度3篇
- 二零二五版30天退換租免傭租賃服務(wù)合同2篇
- 二零二五年生活垃圾收運(yùn)一體化服務(wù)合同2篇
- 二零二五年度神東派遣工權(quán)益同工同酬合同3篇
- 2025年度彩鋼圍擋施工及租賃一體化合同3篇
- 二零二五年度食品安全風(fēng)險評估模型構(gòu)建合同3篇
- 二零二五年度鋼筋產(chǎn)品研發(fā)與技術(shù)轉(zhuǎn)移合同3篇
- 優(yōu)秀支行行長推薦材料
- 公司設(shè)備轉(zhuǎn)讓合同協(xié)議書
- 2023年全國統(tǒng)一建筑工程預(yù)算工程量計(jì)算規(guī)則完整版
- 教科版四年級科學(xué)下冊第三單元巖石與土壤4.制作巖石和礦物標(biāo)本(教學(xué)設(shè)計(jì))教案
- 大學(xué)《工程力學(xué)》期末考試試題庫含詳細(xì)答案
- 2022年湖北省武漢市中考數(shù)學(xué)試卷含解析
- TLFSA 003-2020 危害分析與關(guān)鍵控制點(diǎn)(HACCP)體系調(diào)味面制品生產(chǎn)企業(yè)要求
- LY/T 2244.3-2014自然保護(hù)區(qū)保護(hù)成效評估技術(shù)導(dǎo)則第3部分:景觀保護(hù)
- 紀(jì)律教育月批評與自我批評五篇
- GB/T 26480-2011閥門的檢驗(yàn)和試驗(yàn)
- GB/T 13342-2007船用往復(fù)式液壓缸通用技術(shù)條件
評論
0/150
提交評論