日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于温度传感器的智能热水器

發布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于温度传感器的智能热水器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?熱水器水溫顯示器


?

問題咨詢及項目源碼下載請加群:

群名:IT項目交流群

群號:245022761

?

一、設計目的

1. 了解DS18B20溫度傳感器工作原理及引腳功能。

2. 理解DS18B20溫度傳感器的單總線工作時序。

3. 學會使用DS18B20溫度傳感器采集溫度信號。

4. 了解繼電器工作原理及引腳功能。

5. 學會使用面包板搭建外部電路

6. 會使用八段數碼管顯示溫度值。

?

二、項目設計要求

使用51單片機控制DS18B20溫度傳感器檢測熱水器水溫,并將水溫值顯示在八段數碼管顯示模塊上,當溫度處于35-45度之間時綠燈亮,否則紅燈亮,并且蜂鳴器發出報警聲。

三、系統實現圖

?四、代碼實現

?

DS18b20溫度傳感器 代碼實現:#include <ds18b20.h> sbit ds=P2^2; //溫度傳感器信號線 void dsreset() //18B20復位,初始化函數 {u16 i;ds=0;i=103;while(i>0)i--; //延時ds=1;i=4;while(i>0)i--; //延時 }bit tempreadbit() //讀1位函數 {u16 i;bit dat;ds=0;i++; //i++ 起延時作用ds=1;i++;i++;dat=ds;i=8;while(i>0)i--; //延時return(dat); }u8 tempread() //讀1個字節 {u8 i,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1); //讀出的數據最低位在最前面,這樣剛好一個字節在DAT里}return(dat); }void tempwritebyte(u8 dat) //向18B20寫一個字節數據 {u16 i;u8 j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb) //寫 1{ds=0;i++;i++; //延時ds=1;i=8;while(i>0)i--; //延時長}else{ds=0; //寫 0i=8;while(i>0)i--; //延時長ds=1;i++;i++; //延時}} }void tempchange() //DS18B20 開始獲取溫度并轉換 {dsreset();delay_ms(1);tempwritebyte(0xcc); // 寫跳過讀ROM指令tempwritebyte(0x44); // 寫溫度轉換指令 }float get_temp() //讀取寄存器中存儲的溫度數據 {u8 a,b;u16 t;int temp;float f_temp;dsreset();delay_ms(1);tempwritebyte(0xcc);// 寫跳過讀ROM指令tempwritebyte(0xbe);// 發讀數據指令a=tempread(); //讀低8位b=tempread(); //讀高8位if(b&0x08) b=b|0xf0;t=b;t*=256; //兩個字節組合為1個字t=t|a; temp=t;f_temp=temp*0.0625; //溫度在寄存器中為12位 分辨率位0.0625°return f_temp; } //數碼管代碼實現:#include <shumaguan.h> sbit DX=P2^6; sbit WX=P2^7; u8 code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00}; //共陰數碼管編碼void Print_u32_LED(u32 n)//輸出6位無符號整數(0-999999)到6位數碼管,不足6位時,前面不顯示 {u8 t=0xdf;while(n){ P0=0xff; //消影WX=1;//允許更新位碼P0=t; //送位碼WX=0;//鎖存位碼P0=0x00; //消影DX=1;//允許更新段碼P0=table[n%10]; //送段碼DX=0;//鎖存段碼n=n/10;t=_cror_(t,1);delay_ms(3);} } void Print_str_LED(u8 *f)//輸出數字串到數碼管 {u8 t=0xdf,i;i=strlen(f);while(i){ P0=0xff; //消影WX=1;//允許更新位碼P0=t; //送位碼WX=0;//鎖存位碼P0=0x00; //消影DX=1;//允許更新段碼switch(f[i-1]){case '.':i--;P0=table[f[i-1]-'0']|0x80;break;case '-':P0=0x40;break;case ' ':P0=0x00;break;default:P0=table[f[i-1]-'0']; } //送段碼DX=0;//鎖存段碼i--;t=_cror_(t,1);delay_ms(3);}}void Print_float_LED(float n,u8 x)//輸出小數(有效數字不超過6位)到6位數碼管,保留x(0-3)位小數 {u8 prtstr[10];switch(x){case 0:sprintf(prtstr,"%.0f",n);break;case 1:sprintf(prtstr,"%.1f",n);break;case 2:sprintf(prtstr,"%.2f",n);break;case 3:sprintf(prtstr,"%.3f",n);break;} Print_str_LED(prtstr);} main函數實現:#include <reg51.h> #include <config.h> #include <stdio.h> #include <1602.h> #include <shumaguan.h> #include <uart.h> #include <ds18b20.h> #include <12864.h> #define N 25float n; sbit FM=P2^3; //u8 print[N];//輸出緩沖區 //u8 print2[N];//輸出緩沖區 //sbit SW=P1^0; sbit RL=P2^0; int k=0; void delay_ms(u16 x)//毫秒延時函數 {u16 i,j; for(i=0;i<x;i++)for(j=0;j<115;j++); }void main() {// unsigned int kk;u8 i,j;FM=1;TMOD=0X10;TL0=(8192-1000)%32;TH0=(8192-1000)/32;TL1=(65536-10000)%256;TH1=(65536-10000)/256;EA=1; //總中斷IT0=1; // 外部中斷0為1下降觸發IT1=1;//外部中斷1為電平觸發方式EX0=1;// 外部中斷0允許// EX1=1; // 外部中斷1允許ET0=1;// 定時、計數器T0允許// ET1=1; // 定時,計數T1允許TR0=0;//TR0=1啟動定時器工作//init_com(); //串口初始化 //LCD1602_Init(); //1602初始化 //lcd12864_init();//12864初始化while(1){ //kk=SW;//RL=kk;tempchange(); //啟動溫度變換n=get_temp(); //讀取溫度for(i=50;i>0;i--) print_float_LED(n,2); //輸出到數碼管 if(n>=15&&n<=45){// SW=1;RL=0;TR0=1;//報警}else{// SW=0;RL=1;TR0=0;//不報警// sprintf(print,"Temp: %.1f",n); print_str_uart(print);delay_ms(800);//輸出到串口// sprintf(print,"Temp: %.1f",n);LCD1602pos(0,0); LCD1602disstr(print); delay_ms(800); //輸出到1602// sprintf(print,"溫度:%.1f",n);//i=0;while(i<6){print2[i]=print[i];i++;}//j=6;while(print[i]){print2[j]=0xa3;j++;print2[j]=print[i]+0x80;i++;j++;} print2[j]='\0'; //半角轉全角//lcd12864_pos(0,0);LCD12864disp(print2); delay_ms(800);//輸出到12864// sprintf(print2,"溫度:%.1f",n);} } } void time0() interrupt 1//發聲中斷 {TL0=(6500)%32;TH0=(6500)/32;FM=~FM;}

?五、效果實現及總結

達到了預期實驗效果,使用51單片機控制DS18B20溫度傳感器檢測熱水器水溫,并將水溫值顯示在八段數碼管顯示模塊上,當溫度處于35-45度之間時綠燈亮,否則紅燈亮,并且蜂鳴器發出報警聲。不足之處各位碼友多多指教,多多關注互相交流。

附上本人在大學學習期間所有學習實現的demo,這些項目的實現都通過本人親自測試運行,也是自己學習中知識的一點一點積累,整理不易,希望能幫到大家,不足之處大家多多交流。

?

QQ:1805523903

郵箱:1805523603@qq.com

昵稱:忘塵

?

世界不同角落共同努力,變成更優秀的我們。

?

1.51單片機學習整理

?

基于51單片機的智能光控路燈 :https://download.csdn.net/download/qq_37037348/11071869

基于51單片機超聲波測距(內含源程序,原理圖及PCB源文件):https://download.csdn.net/download/qq_37037348/11071866

?

?

基于51單片機的智能安防報警系統:https://download.csdn.net/download/qq_37037348/11071865

?

基于51單片機模塊化編程模塊 (紅外、液晶顯示屏、溫濕度等傳感器模塊化)

:https://download.csdn.net/download/qq_37037348/11053222

?

基于51單片機pwm控制的呼吸燈程序

https://download.csdn.net/download/qq_37037348/11053195

?

51單片機與上位機串口通信實例包含詳細講解的完整代碼

https://download.csdn.net/download/qq_37037348/11053164

?

?

基于51單片機的直交流電壓表仿真 (詳細代碼實現,設計講解)

https://download.csdn.net/download/qq_37037348/11053145

?

?

?

基于51單片機胸牌 詳細代碼實現,設計講解)

https://download.csdn.net/download/qq_37037348/11053125

?

基于51單片機3x4按鍵撥號 (詳細代碼實現,設計講解)

https://download.csdn.net/download/qq_37037348/11053093

?

?

基于51單片機撥號 (詳細代碼實現,設計講解)

?

https://download.csdn.net/download/qq_37037348/11053090

?

?

基于51單片機警燈系統設計(詳細代碼實現,設計講解)

https://download.csdn.net/download/qq_37037348/11053086

?

?

基于51單片機點亮一個小燈(詳細代碼實現,設計講解,學習51基礎實驗)

https://download.csdn.net/download/qq_37037348/11053084

?

基于51單片機開發的排球計時器,附有詳細注釋講解,為大家提供最真心的幫助

https://download.csdn.net/download/qq_37037348/11053024

?

?

基于51單片機的音樂播放器,源碼詳細注釋

https://download.csdn.net/download/qq_37037348/11053022

?

?

?

2.Android 開發學習整理:

?

Android-serialport 手機App串口通信代碼實現:

?

https://download.csdn.net/download/qq_37037348/11050521

?

Android-serialport 手機App網絡通信實例代碼實現:

https://download.csdn.net/download/qq_37037348/11050516

?

Android 第一個App詳細教程、基礎實驗 :

https://download.csdn.net/download/qq_37037348/11050515

?

?

3.計算機視覺(深度學習、神經網絡的學習)

?

feature extraction(深度學習,特征提取,神經網絡:https://download.csdn.net/download/qq_37037348/11065968

?

feature extraction(深度學習,特征提取,神經網絡多種訓練模型詳細實現):

https://download.csdn.net/download/qq_37037348/11065974

?

?

?

歡迎大家加入學習項目交流,為大家分享各類個人學習項目及學習資料,互相交流互相學習。

總結

以上是生活随笔為你收集整理的基于温度传感器的智能热水器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品视频播放 | 97超碰碰 | 在线视频综合网 | 久久99精品久久久久 | 交视频在线播放 | 69精品久久久 | 91成人免费看 | 欧美巨乳在线 | 亚洲aaa| 天天爽天天操 | 欧美香蕉在线 | 成人毛片观看 | 国产精品一区二区av | 91国产丝袜播放在线 | 97超碰人人澡 | 一级黄毛片 | 蜜美杏av | 欧美青青草 | 亚洲欧美大片 | 欧美黑人做爰爽爽爽 | 欧美手机在线观看 | 欧美日韩一区二区三区不卡视频 | 亚洲第一黄色网址 | 久草五月天 | 四虎永久网址 | 男人天堂网在线视频 | 亚洲欧美另类激情 | 日韩欧美一区二 | 成人久久精品人妻一区二区三区 | 在线观看日韩国产 | 欧美视频一区二区三区四区在线观看 | 午夜中文字幕 | 加勒比不卡视频 | 黄色网战入口 | 乱一色一乱一性一视频 | 91快射 | 天堂网中文在线观看 | 精东影业一区二区三区 | 嫩草研究院在线 | 国产三级小视频 | 久久久久久久 | 91口爆一区二区三区在线 | 一级黄av| 亚洲女同一区二区 | 婷婷亚洲天堂 | 欧美日韩在线成人 | 一区二区免费在线 | 黄色永久视频 | 免费h漫禁漫天天堂 | 精品少妇人妻av免费久久洗澡 | 中文字幕第九页 | 九九热8 | aaaaa毛片| 黄色无遮挡网站 | 日韩毛片在线免费观看 | 国产又粗又大又爽 | 制服.丝袜.亚洲.中文.综合 | 成人看片网 | 国产精品无码免费专区午夜 | 男女日批网站 | 91蝌蚪91九色| 国产欧美网站 | 中国极品少妇xxxx做受 | 亚洲成人精品久久 | 粉嫩aⅴ一区二区三区 | 国产精品久久久久久久一区二区 | 亚洲国产成人精品久久 | 黄色小视频免费在线观看 | 国产三级精品在线 | 99久久久无码国产精品 | 免费看欧美成人a片无码 | 日韩超碰| 午夜精品久久久久久久99热黄桃 | 成人精品视频一区二区 | 天天毛片 | 欧洲成人综合网 | 亚洲人高潮女人毛茸茸 | 成人片片 | 中文字幕在线网站 | 一级全黄裸体免费观看视频 | 午夜久久久久久久久久久 | 色哟哟在线免费观看 | 少妇精品无码一区二区免费视频 | 黄色大全免费观看 | 日韩精品网址 | 久久久久久久久久久久国产精品 | 国产精品女优 | 一本到在线 | 福利视频导航网 | 国产精品久久国产愉拍 | 国产乱妇4p交换乱免费视频 | 韩国黄色片网站 | 91国产大片| 老湿机69福利 | 成人午夜电影网站 | 亚洲com | 国产精品成人3p一区二区三区 | 乐播av一区二区三区 | 精品一区二区久久 |