功能
本設(shè)計采用51單片機+DS18B20溫度傳感器+數(shù)碼管顯示+繼電器+功能按鍵組成。DS18B20溫度傳感器檢測水溫并將水溫信息轉(zhuǎn)換成電信號傳送給單片機,單片機將得到的數(shù)據(jù)進行處理、顯示與控制。上電后數(shù)碼管顯示當前的水溫溫度,通過按鍵可設(shè)置水溫值,當檢測到的水溫低于設(shè)置的水溫值時,繼電器吸合接通外部加熱裝置,使水溫達到設(shè)定水溫值。當水溫值超過設(shè)定水溫值時,繼電器斷開,停止加熱。溫度檢測精確到0.1度。并具有掉電保存功能,數(shù)據(jù)保存在單片機內(nèi)部EEPOM中,按鍵還具有連加、減功能。
原理圖
PCB圖
程序源碼
#include//調(diào)用單片機頭文件 #define uchar unsigned char //無符號字符型 宏定義 變量范圍0~255 #define uint unsigned int //無符號整型 宏定義 變量范圍0~65535 #include sbit dq = P1^5; //18b20 IO口的定義 sbit beep = P1^4; //蜂鳴器IO口定義 uint temperature ; // bit flag_300ms ; bit flag_lj_en; //按鍵連加使能 bit flag_lj_3_en; //按鍵連3次連加后使能 加的數(shù)就越大了 uchar key_time,key_value; //用做連加的中間變量 bit key_500ms ; sbit relay1 = P1^6; //加熱繼電器IO口定義 sbit relay2 = P1^3; //加水繼電器IO口定義 uchar code table_num[]="0123456789abcdefg"; sbit rs=P1^0; //寄存器選擇信號 H:數(shù)據(jù)寄存器 L:指令寄存器 sbit rw=P1^1; //寄存器選擇信號 H:數(shù)據(jù)寄存器 L:指令寄存器 sbit e =P1^2; //片選信號 下降沿觸發(fā) /****************主函數(shù)***************/ void main() { beep = 0; //開機叫一聲 delay_1ms(150); P0 = P1 = P2 = P3 = 0xff; init_1602(); //1602初始化 time_init(); //初始化定時器 while(1) { if(flag_300ms == 1) //300ms 處理一次溫度程序 { flag_300ms = 0; temperature = read_temp(); //先讀出溫度的值 shuiwei_dis() ; //水位顯示 send_wave(); //測距離函數(shù) clock_h_l(); //報警函數(shù) write_sfm3_18B20(1,8,temperature); dingshi_dis(); //定時控制 if(distance > 10 + sw_jz) //說明水位出錯 { beep = 1; write_string(2,8,"--.-m"); }else { if(sw_jz >= distance) { shuiwei = sw_jz - distance; //計算出液位 }else shuiwei = 0; write_sfm3(2,8,shuiwei); } } key(); //按鍵程序 key_with(); //設(shè)置報警溫度 } } /*************定時器0中斷服務(wù)程序***************/ void time0_int() interrupt 1 { static uchar value; TH0 = 0x3c; TL0 = 0xb0; // 50ms value ++; if(value % 6 == 0) { flag_300ms = 1; //300ms value = 0; } if(flag_lj_en == 1) //按下按鍵使能 { key_time ++; if(key_time >= 10) //500ms { key_time = 0; key_500ms = 1; //500ms key_value ++; if(key_value > 3) { key_value = 10; flag_lj_3_en = 1; //3次后1.5秒連加大些 } } } }
元器件清單
審核編輯:湯梓紅
-
繼電器
+關(guān)注
關(guān)注
132文章
5350瀏覽量
148934 -
單片機
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635399 -
超聲波
+關(guān)注
關(guān)注
63文章
3017瀏覽量
138399 -
熱水器
+關(guān)注
關(guān)注
5文章
217瀏覽量
27077
原文標題:【畢業(yè)設(shè)計008】基于51單片機的超聲波智能熱水器(源代碼、原理圖、參考論文、調(diào)試步驟、答辯解答等)
文章出處:【微信號:精通單片機與嵌入式,微信公眾號:精通單片機與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論