標題: 基于單片機DS18B20溫度報警系統 無線藍牙顯示 控制 [打印本頁]
作者: bbxyliyang 時間: 2023-7-21 17:53
標題: 基于單片機DS18B20溫度報警系統 無線藍牙顯示 控制
一、系統方案
隨著科學技術的不斷發展帶動著電子行業的地位越來越重,現在電子產品幾乎在社會的各個領域都可以見到。這些技術的發展有效的帶動著社會生產力的發展和信息化的提高,同時電子產品也越來越智能。
本設計采用AT89C51單片機為主控芯片,采用數字型防水溫度傳感器DS18B20制作溫度檢測報警器,通過四位數碼管顯示溫度值,系統設立幾個按鍵,可以通過按鍵進行設置溫度的上、下限值,當所采集溫度超過設定值時,系統會控制蜂鳴器和對應LED發出聲光報警。這個設計簡單、成本低、具有實用性。
1.png (6.89 KB, 下載次數: 33)
下載附件
2023-7-21 17:52 上傳
二、硬件設計
原理圖如下:
2.png (18.07 KB, 下載次數: 34)
下載附件
2023-7-21 17:52 上傳
三、單片機軟件設計
1、首先是串口初始化:
void Uart_init()
{
TMOD=0x20;//定時器0工作方式1
EA=1;//開總中斷
TH1=0xfd;
TL1=0xfd;
TR1=1;
ET1=0;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
}
2、中斷服務程序
void Usart() interrupt 4
{
receiveData=SBUF;//出去接收到的數據
RI = 0;//清除接收中斷標志位
ES=0;
SBUF=receiveData;//將接收到的數據放入到發送寄存器
while(!TI); //等待發送數據完成
TI=0; //清除發送完成標志位
ES=1;
}
3、按鍵檢測程序
/*****外部中斷0服務程序*****/
void int0(void) interrupt 0
{
EX0=0; //關外部中斷0
if(DEC==0&&set_st==1)
{
BEEP=0;
Delay(2000);
BEEP=1;
do
{
Disp_alarm(shangxian);
}
while(DEC==0);
if(H_ZF==0&&L_ZF==0)
{
shangxian--;
if(shangxian<=xiaxian+1)
shangxian=xiaxian+1;
}
else if(H_ZF==0&&L_ZF==1)
{
shangxian--;
if(shangxian<0&&xiaxian==1)
{
shangxian=0;
H_ZF=0;
}
else if(shangxian<0&&xiaxian>1)
{
shangxian=1;
H_ZF=1;
}
}
else if(H_ZF==1)
{
shangxian++;
if(shangxian>=xiaxian-1)
shangxian=xiaxian-1;
}
}
else if(DEC==0&&set_st==2)
{
BEEP=0;
Delay(2000);
BEEP=1;
do
{
Disp_alarm(xiaxian);
}
while(DEC==0);
if(L_ZF==0)
{
xiaxian--;
if(xiaxian<0)
{
xiaxian=1;
L_ZF=1;
}
}
else if(L_ZF==1)
{
xiaxian++;
if(xiaxian>=55)
{
xiaxian=55;
}
}
}
}
/*****外部中斷1服務程序*****/
void int1(void) interrupt 2
{
EX1=0; //關外部中斷1
if(ADD==0&&set_st==1)
{
BEEP=0;
Delay(2000);
BEEP=1;
do
{
Disp_alarm(shangxian);
}
while(ADD==0);
if(H_ZF==0)
{
shangxian++;
if(shangxian>=125)shangxian=125;
}
else if(H_ZF==1)
{
shangxian--;
if(shangxian<=0)
{
shangxian=0;
H_ZF=0;
}
}
}
else if(ADD==0&&set_st==2)
{
BEEP=0;
Delay(2000);
BEEP=1;
do
{
Disp_alarm(xiaxian);
}
while(ADD==0);
if(L_ZF==0)
{
xiaxian++;
if(xiaxian>=shangxian-1)
xiaxian=shangxian-1;
}
else if(H_ZF==0&&L_ZF==1)
{
xiaxian--;
if(xiaxian<=0)
{
if(shangxian==0)
{
xiaxian=1;
L_ZF=1;
}
else
{
xiaxian=0;
L_ZF=0;
}
}
}
else if(H_ZF==1&&L_ZF==1)
{
xiaxian--;
if(xiaxian<=shangxian+1)
xiaxian=shangxian+1;
}
}
}
4、核心算法程序
/*****讀取溫度*****/
unsigned int ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0x44); //啟動溫度轉換
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器
a=ReadOneChar(); //讀低8位
b=ReadOneChar(); //讀高8位
t=b;
t<<=8;
t=t|a;
if(t&0xf800)
{
t=~t+1;
fuhao=1;
}
else
fuhao=0;
tt=t*0.0625;
t= tt*10+0.5; //放大10倍輸出并四舍五入
return(t);
}
四、proteus仿真設計
Proteus軟件是一款應用比較廣泛的工具,它可以在沒有硬件平臺的基礎上通過自身的軟件仿真出硬件平臺的運行情況,這樣就可以通過軟件仿真來驗證我們設計的方案有沒有問題,如果有問題,可以重新選擇器件,連接器件,直到達到我們設定的目的,避免我們搭建實物的時候,如果當初選擇的方案有問題,我們器件都已經焊接好了,再去卸載下去,再去焊接新的方案的器件,測試,這樣會浪費人力和物力,也給開發者帶來一定困惑,Proteus仿真軟件就很好的解決這個問題,我們在設計之初,就使用該軟件進行模擬仿真,測試,選擇滿足我們設計的最優方案。最后根據測試沒問題的仿真圖紙,焊接實物,調試,最終完成本設計的作品。
3.png (76.95 KB, 下載次數: 36)
下載附件
2023-7-21 17:52 上傳
作者: 風箏123 時間: 2023-7-22 01:50
真不錯真不錯,謝謝大佬分享
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
久久99精品国产麻豆婷婷
|
亚洲成人精
|
日韩视频国产
|
久久久久黄
|
亚洲精品aⅴ
|
国产视频精品免费
|
亚洲丝袜天堂
|
日韩一区二区三区在线观看
|
国产成人精品一区二三区在线观看
|
亚洲福利在线观看
|
亚洲一区二区不卡在线观看
|
国产一区二区三区精品久久久
|
日本在线视频一区二区
|
日日拍夜夜
|
三级在线观看
|
欧洲av在线
|
国产99精品
|
久久久精|
av在线播放国产
|
中文字幕亚洲一区
|
cao在线|
欧美性大战久久久久久久蜜臀
|
久久尤物免费一区二区三区
|
超碰欧美
|
亚洲精品在线观看网站
|
国产精品久久久久久久久久免费看
|
a在线视频观看
|
欧美日韩国产在线观看
|
91色网站
|
午夜影视网
|
爱爱视频在线观看
|
国产精品美女久久久久久久网站
|
黄色亚洲
|
视频一区二区三区中文字幕
|
国产目拍亚洲精品99久久精品
|
一区二区三区在线电影
|
亚洲一区在线日韩在线深爱
|
毛片一区二区三区
|
国产精品夜夜春夜夜爽久久电影
|
国产网站在线
|
99久久精品免费视频
|