電熱水器溫度智能控制系統的設計_第1頁
電熱水器溫度智能控制系統的設計_第2頁
電熱水器溫度智能控制系統的設計_第3頁
電熱水器溫度智能控制系統的設計_第4頁
電熱水器溫度智能控制系統的設計_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

IPAGE附錄C:硬件實物圖附錄D:C語言程序代碼#include<reg52.h>#include<DS18B20.h>#include<HW.h>ude<LCD1602.h>#include<INTERRUPT.h>#include<EEPROM.h>sbitkey_set=P1^0;sbitkey_jia=P1^1;sbitkey_jian=P1^2;sbitkey_ok=P1^3sbitbuzz=P2^4;sbitrelay=P3^6;ucharTemperature_up,Temperature_down;ucharset_f=0;ucharnum=99; /*********蜂鳴器********/voiddidi(){ buzz=0; delayms(5); buzz=1;}/*********LCD顯示部分********/voiddisplay(){ if(presence==0) { if(fuhao==0) LCD_disp_char(0,1,'+'); else LCD_disp_char(0,1,'-'); lcd1602_write_character(1,1,temp_t); LCD_disp_char(8,1,0); LCD_disp_char(9,1,'C'); if(fen==0) { if(wendu<Temperature_down) { relay=0; buzz=1; } else if(wendu>=Temperature_up) { relay=1; buzz=0; } else buzz=1; } } else { buzz=1; relay=1; lcd1602_write_character(0,1,"NOT"); } lcd1602_write_character(11,1,"T:"); LCD_disp_char(13,1,ASCII[fen/100]); LCD_disp_char(14,1,ASCII[fen%100/10]); LCD_disp_char(15,1,ASCII[fen%10]); lcd1602_write_character(0,2,"Up:"); LCD_disp_char(3,2,ASCII[Temperature_up/100]); LCD_disp_char(4,2,ASCII[Temperature_up%100/10]); LCD_disp_char(5,2,ASCII[Temperature_up%10]); lcd1602_write_character(8,2,"Down:"); LCD_disp_char(13,2,ASCII[Temperature_down/100]); LCD_disp_char(14,2,ASCII[Temperature_down%100/10]); LCD_disp_char(15,2,ASCII[Temperature_down%10]);}/*********設置模式*******/voiddisplay2(){ num++; EX0=0; DS18B20_Read_Temperature(); DS18B20_Temperature(); EX0=1; if(fuhao==0) LCD_disp_char(0,1,'+'); else LCD_disp_char(0,1,'-'); lcd1602_write_character(1,1,temp_t) LCD_disp_char(8,1,0); LCD_disp_char(9,1,'C'); lcd1602_write_character(11,1,"T:"); lcd1602_write_character(0,2,"Up:"); lcd1602_write_character(8,2,"Down:"); if(num%2==0) { LCD_disp_char(13,1,ASCII[fen/100]); LCD_disp_char(14,1,ASCII[fen%100/10]); LCD_disp_char(15,1,ASCII[fen%10]); LCD_disp_char(3,2,ASCII[Temperature_up/100]); LCD_disp_char(4,2,ASCII[Temperature_up%100/10]); LCD_disp_char(5,2,ASCII[Temperature_up%10]); LCD_disp_char(13,2,ASCII[Temperature_down/100]); LCD_disp_char(14,2,ASCII[Temperature_down%100/10]); LCD_disp_char(15,2,ASCII[Temperature_down%10]); } else { switch(set_f) { case1:lcd1602_write_character(13,1,"");break; case2:lcd1602_write_character(3,2,"");break; case3:lcd1602_write_character(13,2,"");break; default:break; } }}/*********按鍵處理********/voidscan(void){ if(key_set==0||rec==1) { delayms(7); if(key_set==0||rec==1) { didi(); buzz=1; relay=1; set_f++; if(set_f==4) { set_f=0; EEPROM_delete(0x2002); EEPROM_write(0x2002,Temperature_up); EEPROM_delete(0x2202); EEPROM_write(0x2202,Temperature_down); if(fen!=0) TR0=1; } } while(!key_set); } if((key_ok==0||rec==4)&&set_f!=0) { delayms(7); if(key_ok==0||rec==4) { didi(); set_f=0; EEPROM_delete(0x2002); EEPROM_write(0x2002,Temperature_up); EEPROM_delete(0x2202); EEPROM_write(0x2202,Temperature_down); if(fen!=0) TR0=1; } while(!key_ok); } if((key_jia==0||rec==2)&&set_f!=0) { delayms(3); if(key_jia==0||rec==2) { didi(); if(set_f==1) { fen++; if(fen>999) fen=0; } if(set_f==2) { if(Temperature_up<125) Temperature_up++; } if(set_f==3) { if(Temperature_down<125&&Temperature_down+1<Temperature_up) Temperature_down++; } } } if((key_jian==0||rec==3)&&set_f!=0) { delayms(3); if(key_jian==0||rec==3) { didi(); if(set_f==1) { if(fen==0) fen=999; else fen--; } if(set_f==2) { if(Temperature_up!=0&&Temperature_up>Temperature_down+1) Temperature_up--; } if(set_f==3) { if(Temperature_down!=0) Temperature_down--; } } } if(rec==5&&set_f!=0) { didi(); if(set_f==1) set_f=3; else set_f--; } if(rec==6&&set_f!=0) { didi(); if(set_f==3) set_f=1; else set_f++; } rec=0;}/*********主函數********/voidmain(){ if(key_ok==0) { delayms(100); if(key_ok==0) { EEPROM_delete(0x2002); EEPROM_write(0x2002,38); EEPROM_delete(0x2202); EEPROM_write(0x2202,16); } } Temperature_up=EEPROM_read(0x2002); Temperature_down=EEPROM_read(0x2202); LCD_init(); lcd1602_write_pic(0,pic); display(); DS18B20_init(); HW_init(); T0_init(); for(num=0;num<250;num++) DS18B20_Read_Temperature(); while(1) { scan(); if(set_f==0) { num++; if(num>=100) { EX0=0; num=0; DS18B20_Read_Temperature(); DS18B20_Temperature(); EX0=1; display(); } } else display2(); }}#ifndef_DS18B20_H_#define_DS18B20_H_#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint/*********DS18B20溫度傳感器********/uchartemp_data[2];uchartemp_t[7];uchardatatemp_d[5];bitpresence=1;ucharfuhao=0;ucharwendu;ucharcodeASCII2[]={'0','1','2','3','4','5','6','7','8','9','.'};voidDelay(unsignedintnum);voidDS18B20_

溫馨提示

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

評論

0/150

提交評論