加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機(jī)的溫度報警系統(tǒng)

09/13 08:49
882
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實物圖
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

功能:

設(shè)計一個溫度報警系統(tǒng),可以設(shè)定溫度上、下限的值,到達(dá)設(shè)定值時,蜂鳴器響;按鍵設(shè)定有設(shè)置、確定、取消、減少與增加功能,LCD1602實時顯示相關(guān)溫度信息

設(shè)定界面:

溫度超過設(shè)定值,蜂鳴器響:

溫度超過設(shè)定值,蜂鳴器響:溫度超過設(shè)定值??????

溫度低于設(shè)定值,蜂鳴器響:

部分程序:

#include <reg52.h>

#include "SETTEM.h"????? //設(shè)置報警的上下限值頭文件

#include "Lcd1602.h"???? //LCD顯示模塊功能頭文件

#include "DS18B20.h"???? //DS18B02模塊功能頭文件

#include "IntToChar.h"?? //存放整型數(shù)轉(zhuǎn)換為字符串頭文件

#include "Alarm.h"? ???? ?//報警功能頭文件

bit flag1s = 0;????????? //1s定時標(biāo)志

unsigned char T0RH = 0;? //T0重載值的高字節(jié)

unsigned char T0RL = 0;? //T0重載值的低字節(jié)

int key=0;

char Hint1[]={"Current temperature"};

void ConfigTimer0(unsigned int ms);

void main()

{

bit res;

int temp;???????????????????????????????? //讀取到的當(dāng)前溫度值

int intT, decT;?????????????????????????? //溫度值的整數(shù)和小數(shù)部分

unsigned char len;

unsigned char str[12];

EA = 1;?????????????????????????????????? //開總中斷

ConfigTimer0(10);???????????????????????? //T0定時10ms

Start18B20();???????????????????????????? //啟動DS18B20

InitLcd1602();??????????????????????????? //初始化液晶

ConfigInt0();???????????????????????????? //設(shè)置溫度

while (1)

{

if (flag1s)?????????????????????????? //每秒更新一次溫度

{

flag1s = 0;

res = Get18B20Temp(&temp);??????? //讀取當(dāng)前溫度

if (res)????????? ????????????????//讀取成功時,刷新當(dāng)前溫度顯示

{

intT = temp >> 4;???????????? //分離出溫度值整數(shù)部分

decT = temp & 0xF;??????????? //分離出溫度值小數(shù)部分

len = IntToString(str, intT); //整數(shù)部分轉(zhuǎn)換為字符串

str[len++] = '.';???????????? //添加小數(shù)點(diǎn)

decT = (decT*10) / 16;??????? //二進(jìn)制的小數(shù)部分轉(zhuǎn)換為1位十進(jìn)制位

str[len++] = decT + '0';????? //十進(jìn)制小數(shù)位再轉(zhuǎn)換為ASCII字符

str[len++] = key + '0';

while (len < 6)?????????????? //用空格補(bǔ)齊到6個字符長度

{

str[len++] = ' ';

}

str[len] = '?';????????????? //添加字符串結(jié)束符

LcdShowStr(0, 0, Hint1);????? //提示顯示到液晶屏上

LcdShowStr(0, 1, str);??????? //溫度顯示到液晶屏上

}

else????????????????????????????? //讀取失敗時,提示錯誤信息

{

LcdShowStr(0, 0, "error!");

}

Start18B20();???????????????????? //重新啟動下一次轉(zhuǎn)換

Alarm((float)temp*0.0625,Htem,Ltem);

}

}

}

資料包括:

 

需要完整的資料可在我的資源里下載,也可以加入我的紛傳圈子,里面有資源壓縮包的百度網(wǎng)盤下載地址及提取碼。

紛傳點(diǎn)擊用微信打開即可,過程有點(diǎn)繁瑣請見諒。

  • 有需要資料的可了解一下.docx

相關(guān)推薦

電子產(chǎn)業(yè)圖譜