久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于單片機的熱水器水溫控制系統源程序與原理圖
[打印本頁]
作者:
flipzzd
時間:
2021-4-19 15:56
標題:
基于單片機的熱水器水溫控制系統源程序與原理圖
附件里面有程序和電路圖
基于弱電控制強電的原理設計并制作一個溫度控制系統,控制對象為水溫。本課題要求能夠利用STC89C52單片機實現水溫的控制,運用顯示屏顯示出水的實時溫度,并在此基礎上控制調節水溫加熱到我們通過按鈕設定的溫度(其方式是通過加熱或者自然降溫),當加熱到設定的溫度時,利用單片機控制繼電器,使其斷開,進而使加熱裝置斷電。
根據溫度測量系統框圖,所需的硬件電路主要有STC89C52單片機、DS18B20、加熱電路和按按鍵電路等。首先由DS18B20實現數據的場采集,由按鍵輸入設定值,數據進入單片機后,由單片機控制加熱電路,或自然冷卻,1602顯示器來顯示實測溫度值
電路原理圖如下:
51hei截圖_20210419155242.png
(73.34 KB, 下載次數: 62)
下載附件
電路圖
2021-4-19 15:53 上傳
單片機源程序如下:
#include<reg52.h>
#include"lcd.h"
#include"temp.h"
sbit key2 = P1^0; //對應+鍵,低電平有效
sbit key3 = P1^1; //對應-鍵,低電平有效
sbit key1 = P1^2; //對應開始鍵,低電平有效
sbit relay = P2^1;
//--定義全局變量--//
unsigned int wendu;
unsigned char mubiao=30;
unsigned char cishu;
unsigned char code kaiji1[14] = "Welcome to use";
unsigned char code kaiji2[12] = "this product";
unsigned char code dis1[71] = "shezhi:";
unsigned char code dis2[71] = "wendu :";
//--定義全局函數--//
void Delay10ms(unsigned int c); //延時10ms
void Key_Scan();
/*******************************************************************************
* 函數名 : main
* 函數功能 : 主函數
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void main()
{
float tp;
unsigned char i;
unsigned char disbuff[4] ={ 0,0,0,0,};
unsigned char disbuffset[4] ={ 0,0,0,0,};
LcdInit(); //初始化LCD1602
LcdWriteCom(0x80); //寫地址 80表示初始地址
for(i=0; i<14; i++)
{
LcdWriteData(kaiji1[i]);
}
LcdWriteCom(0xc0); //寫地址 c0表示初始地址
for(i=0; i<12; i++)
{
LcdWriteData(kaiji2[i]);
}
Delay10ms(100);
LcdWriteCom(0x01); //清屏
LcdWriteCom(0x80); //寫地址 80表示初始地址
for(i=0; i<7; i++)
{
LcdWriteData(dis1[i]);
}
LcdWriteCom(0xc0); //寫地址 c0表示初始地址
for(i=0; i<7; i++)
{
LcdWriteData(dis2[i]);
}
LcdWriteCom(0x80+15); //寫地址 80表示初始地址
LcdWriteData('C');
LcdWriteCom(0xc0+15); //寫地址 80表示初始地址
LcdWriteData('C');
while(1)
{
Key_Scan();
disbuffset[0]=mubiao%1000/100;
disbuffset[1]=mubiao%100/10;
disbuffset[2]=mubiao%10;
LcdWriteCom(0x80+9); //寫地址 80表示初始地址
LcdWriteData('0'+disbuffset[1]); //顯示小數點
LcdWriteCom(0x80+10); //寫地址 80表示初始地址
LcdWriteData('0'+disbuffset[2]); //顯示小數點
tp=Ds18b20ReadTemp();//因為數據處理有小數點所以將溫度賦給一個浮點型變量
//如果溫度是正的那么,那么正數的原碼就是補碼它本身
wendu=tp*0.0625*100+0.5;
//留兩個小數點就*100,+0.5是四舍五入,因為C語言浮點數轉換為整型的時候把小數點
//后面的數自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進1了,小于0.5的就
//算加上0.5,還是在小數點后面。
wendu=wendu/10;
disbuff[0]=wendu%1000/100;
disbuff[1]=wendu%100/10;
disbuff[2]=wendu %10;
LcdWriteCom(0xc0+9); //寫地址 80表示初始地址
LcdWriteData('0'+disbuff[0]); //個位
LcdWriteCom(0xc0+10); //寫地址 80表示初始地址
LcdWriteData('0'+disbuff[1]); //顯示小數點
LcdWriteCom(0xc0+11); //寫地址 80表示初始地址
LcdWriteData('.'); //顯示 ‘.’
LcdWriteCom(0xc0+12); //寫地址 80表示初始地址
LcdWriteData('0'+disbuff[2]); //顯示小數點
if(cishu==1)
{
if(wendu < (mubiao*10) )
{
relay=0;
}
else
{
relay=1;
}
}
else
{
relay=1;
}
//delayms(10); //
}
}
/*******************************************************************************
* 函 數 名 : Key_Scan()
* 函數功能 : 掃描鍵盤
* 輸 入 : 無
* 輸 出 : 讀取到的鍵值
*******************************************************************************/
void Key_Scan()
{
unsigned char i; //保存鍵值
//--檢測按鍵1--//
if (key1==0) //檢測按鍵K1是否按下
{
Delay10ms(1); //消除抖動
if (key1==0) //再次檢測按鍵是否按下
{
cishu ++ ;
if(cishu > 1)
{
cishu = 0 ;
}
i = 0;
while ((i<50) && (key1==0)) //檢測按鍵是否松開
{
Delay10ms(1);
i++;
}
}
}
if (key2==0) //檢測按鍵K1是否按下
{
Delay10ms(1); //消除抖動
if (key2==0) //再次檢測按鍵是否按下
{
mubiao++;
i = 0;
while ((i<50) && (key2==0)) //檢測按鍵是否松開
{
Delay10ms(1);
i++;
}
}
}
if (key3==0) //檢測按鍵K1是否按下
{
Delay10ms(1); //消除抖動
if (key3==0) //再次檢測按鍵是否按下
{
mubiao--;
i = 0;
while ((i<50) && (key3==0)) //檢測按鍵是否松開
{
Delay10ms(1);
i++;
}
}
}
}
/*******************************************************************************
* 函 數 名 : Delay10ms
* 函數功能 : 延時函數,延時10ms
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Delay10ms(unsigned int c) //誤差 0us
{
unsigned char a, b;
//--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了--//
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
復制代碼
所有程序51hei提供下載:
059水溫控制系統.zip
(249.05 KB, 下載次數: 101)
2021-4-19 15:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
地方的紛紛擾擾
時間:
2021-6-3 22:31
怎么解決誤差,
有好幾°的誤差
55555
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美视频在线免费
|
精品视频国产
|
日韩性生活网
|
黄色片在线观看网址
|
日韩一三区
|
国产精华一区
|
国产精品久久国产精品久久
|
高清一区二区三区
|
视频在线一区二区
|
国产精品欧美一区二区三区不卡
|
日韩欧美视频在线
|
久久91精品国产一区二区
|
91网站视频在线观看
|
色视频网站在线观看
|
久久久精品一区二区三区
|
亚洲精品中文字幕在线
|
一区二区免费
|
国产欧美日韩精品一区
|
国产精久久久久久久
|
国产黄色网
|
日韩国产精品一区二区三区
|
日韩久久在线
|
91精品国产综合久久久久久
|
国产日韩欧美另类
|
久久777
|
久久成人免费
|
久久国产精品亚洲
|
日韩欧美在线视频播放
|
国产一级视频在线播放
|
国产女人与拘做受视频
|
日韩在线不卡视频
|
久久精品小视频
|
国内精品久久久久
|
亚洲成人av在线播放
|
福利一区二区在线
|
久久99精品久久久久久青青日本
|
欧美一区二区三区
|
国产成人免费
|
人人鲁人人莫人人爱精品
|
欧美日韩在线精品
|
日韩精品a在线观看图片
|