




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharsbitlcdrs=P3^0;sbitlcdrw=P3^1;sbitlcden=P3^2;//LCD選通線sbitDQ=P1^7;//18B20引腳uintvalue;//溫度值sbitsound=P1^6;//蜂鳴器sbitwarning=P3^5;//LED報(bào)警燈sbitgreenled=P3^6;//LED報(bào)警燈sbitk1=P1^0;//setsbitk2=P1^1;//+sbitk3=P1^2;//-charmax=40;//初始溫度最大值charmin=10;//初始溫度最小值ucharchange_flag;//按鍵次數(shù)ucharcodetable1[]={0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e};//rom1測得旳序列號ucharcodetable2[]={0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9};//rom2ucharcodetable3[]={0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0};//rom3ucharcodetable4[]={0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7};//rom4ucharcodetable5[]="Temple";ucharcodetable6[]="max:min:";uinttemper[5];//溫度值緩存bitfg=0;//溫度正負(fù)標(biāo)志voiddelay(uintn){uintx,y;for(x=n;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharcom){ lcdrs=0; //rs=0時輸入指令 P2=com; delay(5); lcden=1; //en=1時讀取信息 delay(5); lcden=0; //1->0執(zhí)行指令}voidwrite_dat(uchardat){ lcdrs=1; //rs=1時輸入數(shù)據(jù) P2=dat; delay(5); lcden=1; delay(5); lcden=0;}voidinit_lcd(){ lcden=0; lcdrw=0; write_com(0x38); //8位數(shù)據(jù),雙列,5*7字形 write_com(0x0c); //啟動顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍 write_com(0x06); //顯示地址遞增,即寫一種數(shù)據(jù)后,顯示位置右移一位 write_com(0x01);}voiddelay_us(uchart)//微妙延時{ while(t--);}voidinit_ds18b20() //數(shù)據(jù)初始化{ DQ=1; delay_us(4); DQ=0; delay_us(80); DQ=1; delay_us(200);}voidwrite_ds18b20(uchardat)//寫數(shù)據(jù){ uchari; for(i=0;i<8;i++) { DQ=0; DQ=dat&0x01; delay_us(15); DQ=1; dat=dat>>1; } delay_us(10);}ucharread_ds18b20()//讀數(shù)據(jù){ uchari=0,readat=0; for(i=0;i<8;i++) { DQ=0; readat=readat>>1;//八位所有都是0,向右移一位后,仍然全是0 DQ=1; if(DQ)//假如DQ為1,readat進(jìn)行或運(yùn)算,假如為0,則子語句不執(zhí)行,直接for循環(huán)此時采集旳數(shù)據(jù)是0 readat=readat|0x80;//此時最高位為1 ,然后再進(jìn)行for循環(huán)最高位成為第七位,依次往復(fù) delay_us(10); } returnreadat;}voidcheck_rom(uchara) //匹配序列號{ ucharj; write_ds18b20(0x55); if(a==1) { for(j=0;j<8;j++) { write_ds18b20(table1[j]); } } if(a==2) { for(j=0;j<8;j++) { write_ds18b20(table2[j]); } } if(a==3) { for(j=0;j<8;j++) { write_ds18b20(table3[j]); } } if(a==4) { for(j=0;j<8;j++) { write_ds18b20(table4[j]); } }}uintchange_ds18b20(ucharz)//為DS18B20序號{ uchartl,th; init_ds18b20(); //初始化 write_ds18b20(0xcc);//跳過 init_ds18b20(); if(z==1) { check_rom(1); // 匹配rom1 } if(z==2) { check_rom(2); // 匹配rom2 } if(z==3) { check_rom(3); // 匹配rom3 } if(z==4) { check_rom(4); // 匹配rom4 } write_ds18b20(0x44); init_ds18b20(); write_ds18b20(0xcc); init_ds18b20(); if(z==1) { check_rom(1); // } if(z==2) { check_rom(2); // } if(z==3) { check_rom(3); // } if(z==4) { check_rom(4); // } write_ds18b20(0xbe);//啟動讀暫存器。讀內(nèi)部ram中9字節(jié)溫度數(shù)據(jù) tl=read_ds18b20(); th=read_ds18b20(); value=th; value=value<<8; value=value|tl; if(th<0x80) { fg=0;} if(th>=0x80) { fg=1; value=~value+1; } value=value*(0.0625*10); returnvalue;}voiddisplay_lcd1602(ucharz)//顯示各個溫度{ uchari; if(z==1) { write_com(0x80); for(i=0;i<6;i++) { write_dat(table5[i]); delay(3); } write_dat(0x2d); write_dat(0x41); write_dat(0x3a); if(fg==1) { write_dat(0xb0); } if(fg==0) { write_dat(0x20); } write_dat(value/100+0x30); write_dat(value%100/10+0x30); write_dat(0x2e); write_dat(value%10+0x30); write_dat(0xdf); write_dat(0x43); } if(z==2) { write_com(0x80); for(i=0;i<6;i++) { write_dat(table5[i]); delay(3); } write_dat(0x2d); write_dat(0x42); write_dat(0x3a); if(fg==1) { write_dat(0xb0); } if(fg==0) { write_dat(0x20); } write_dat(value/100+0x30); write_dat(value%100/10+0x30); write_dat(0x2e); write_dat(value%10+0x30); write_dat(0xdf); write_dat(0x43); }if(z==3) { write_com(0x80); for(i=0;i<6;i++) { write_dat(table5[i]); delay(3); } write_dat(0x2d); write_dat(0x43); write_dat(0x3a); if(fg==1) { write_dat(0xb0); } if(fg==0) { write_dat(0x20); } write_dat(value/100+0x30); write_dat(value%100/10+0x30); write_dat(0x2e); write_dat(value%10+0x30); write_dat(0xdf); write_dat(0x43); } if(z==4) { write_com(0x80); for(i=0;i<6;i++) { write_dat(table5[i]); delay(3); } write_dat(0x2d); write_dat(0x44); write_dat(0x3a); if(fg==1) { write_dat(0xb0); } if(fg==0) { write_dat(0x20); } write_dat(value/100+0x30); write_dat(value%100/10+0x30); write_dat(0x2e); write_dat(value%10+0x30); write_dat(0xdf); write_dat(0x43); }}voidlcd_set_mun()//顯示設(shè)置菜單{ uchari; write_com(0x80); for(i=0;i<16;i++) { write_dat(table6[i]); delay(3); }}voidlcd_set(charmax,charmin)//顯示最大最小值{ ucharx1,x2,x3,x4;ucharflag_max,flag_min; if(max<0) { flag_max=1; max=-max; } else flag_max=0; if(min<0) { flag_min=1; min=-min; } else flag_min=0;x1=max/10; x2=max%10; x3=min/10;x4=min%10; write_com(0x80+0x40+0x03); if(flag_max==1)write_dat('-'); elsewrite_dat('');write_dat(x1+0x30);write_dat(x2+0x30); write_com(0x80+0x40+0x0b);if(flag_min==1)write_dat('-'); elsewrite_dat('');write_dat(x3+0x30);write_dat(x4+0x30);}voidkey1(){ if(k1==0){ change_flag++;if(change_flag>2)change_flag=0;}while(k1==0);}voidkey2(){ if(k2==0){ if(change_flag==1)max++; if(change_flag==2)min++;}while(k2==0);}voidkey3(){ if(k3==0){if(change_flag==1)max--;if(change_flag==2)min--;}while(k3==0);}voidkey()//按鈕{key2(); key1(); key3();}voidalarm(uintt){ inttt;//t是溫度絕對值,tt是有符號數(shù),需要轉(zhuǎn)換 t=t*0.1; if(fg==0)//正溫度 { tt=t; } if(fg==1) //負(fù)溫度 { tt=~t+1; } if(tt>max) { sound=0; warning=1; green
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年天津市安全員知識題庫
- 重慶工程職業(yè)技術(shù)學(xué)院《朗讀與講故事指導(dǎo)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西南民族大學(xué)《古生物學(xué)含實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京農(nóng)業(yè)大學(xué)《教育評價(jià)與測量》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈爾濱劍橋?qū)W院《廣告創(chuàng)意與策劃》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西體育高等??茖W(xué)?!峨姶艌隼碚撆c光波導(dǎo)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆河南省周口市西華縣三校聯(lián)考高三上學(xué)期一模歷史試卷
- 贛南師范大學(xué)《幼兒園體育游戲》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇聯(lián)合職業(yè)技術(shù)學(xué)院《分子生物學(xué)(英文)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州城建職業(yè)學(xué)院《銷售管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年河北省邢臺市公開招聘警務(wù)輔助人員(輔警)筆試專項(xiàng)訓(xùn)練題試卷(2)含答案
- 家政公司服務(wù)員考試題庫單選題100道及答案解析
- 人工智能:AIGC基礎(chǔ)與應(yīng)用 課件 實(shí)訓(xùn)項(xiàng)目九 使用度加創(chuàng)作工具和剪映進(jìn)行智能化短視頻創(chuàng)作
- 《日影的朝向及長短》課件
- 中職普通話教師教案模板
- 施工后期的場地恢復(fù)措施
- 七年級歷史下冊 第一單元 隋唐時期繁榮與開放的時代 第1課 隋朝的統(tǒng)一與滅亡說課稿1 新人教版
- 智能教育機(jī)器人AI項(xiàng)目策劃創(chuàng)業(yè)計(jì)劃書
- 《MATLAB編程及應(yīng)用》全套教學(xué)課件
- T-CCSAS 001-2018 危險(xiǎn)與可操作性分析(HAZOP分析)質(zhì)量控制與審查導(dǎo)則
- 2025年春人教版九年級英語下冊 2025年中考模擬測試卷
評論
0/150
提交評論