功能
本設計采用51單片機+DS18B20溫度傳感器+數碼管顯示+繼電器+功能按鍵組成。DS18B20溫度傳感器檢測水溫并將水溫信息轉換成電信號傳送給單片機,單片機將得到的數據進行處理、顯示與控制。上電后數碼管顯示當前的水溫溫度,通過按鍵可設置水溫值,當檢測到的水溫低于設置的水溫值時,繼電器吸合接通外部加熱裝置,使水溫達到設定水溫值。當水溫值超過設定水溫值時,繼電器斷開,停止加熱。溫度檢測精確到0.1度。并具有掉電保存功能,數據保存在單片機內部EEPOM中,按鍵還具有連加、減功能。
原理圖
PCB圖
程序源碼
#include//調用單片機頭文件 #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次連加后使能 加的數就越大了 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:數據寄存器 L:指令寄存器 sbit rw=P1^1; //寄存器選擇信號 H:數據寄存器 L:指令寄存器 sbit e =P1^2; //片選信號 下降沿觸發 /****************主函數***************/ 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(); //測距離函數 clock_h_l(); //報警函數 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(); //設置報警溫度 } } /*************定時器0中斷服務程序***************/ 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秒連加大些 } } } }
元器件清單
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
繼電器
+關注
關注
132文章
5350瀏覽量
148921 -
單片機
+關注
關注
6037文章
44558瀏覽量
635356 -
超聲波
+關注
關注
63文章
3017瀏覽量
138398 -
熱水器
+關注
關注
5文章
217瀏覽量
27076
原文標題:【畢業設計008】基于51單片機的超聲波智能熱水器(源代碼、原理圖、參考論文、調試步驟、答辯解答等)
文章出處:【微信號:精通單片機與嵌入式,微信公眾號:精通單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
基于51單片機的超聲波測距系統
250CM之間。誤差:1%。距離顯示:用三位LED數碼管進行顯示(單位是CM)。該接收電路結構簡單,性能較好。 硬件電路的設計主要包括單片機系統及顯示電路、超聲波發射電路和超聲波接收電路三部分。
發表于 03-25 10:21
怎樣去設計一種基于51單片機的超聲波避障小車
模塊(hc-sr04)、L293D電機驅動器和直流減速電機。這樣配合51單片機的控制,小車可以完成自主避障功能。超聲波模塊此圖為Proteus 8 提供的
發表于 07-20 07:17
基于51單片機的超聲波測距模塊設計
超聲波測距的模塊,51單片機接上12864液晶,HC-SR04超聲波模塊,就可以了,具體程序沒怎么看,超聲波模塊的硬件也不曉得。
發表于 12-10 16:33
?6975次閱讀
基于單片機的超聲波測距
設計簡介:本設計是基于單片機的超聲波測距系統,主要實現以下功能:可通過LCD1602顯示溫度、距離和最小距離; 可通過按鍵設置最小距離; 可通過蜂鳴器和LED進行不同頻率的聲光報警;標簽:51
發表于 11-12 15:06
?41次下載
評論