|
|
整點(diǎn)溫度記錄裝置基于DS18B20,程序?qū)崿F(xiàn)比較簡(jiǎn)單,適于初學(xué)者
由于本設(shè)計(jì)是測(cè)溫電路,進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,電路簡(jiǎn)單,精度高,軟硬件都以實(shí)現(xiàn),而且使用單片機(jī)的接口便于系統(tǒng)的再擴(kuò)展,滿足設(shè)計(jì)要求。當(dāng)溫度傳感器DS18B20把所測(cè)得的溫度發(fā)送到STC12C5A60S2單片機(jī)上,經(jīng)單片機(jī)處理,將把溫度通過(guò)串口輸出。利用STC12C5A60S2芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度。單片機(jī)從時(shí)鐘芯片DS12C887上讀取時(shí)間數(shù)據(jù),并且在顯示電路上顯示和進(jìn)行串口輸出。設(shè)計(jì)框圖如下:
0.png (32.26 KB, 下載次數(shù): 29)
下載附件
2019-6-21 02:49 上傳
主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并串口輸出DS18B20的測(cè)量的當(dāng)前溫度值,串口輸出DS12C887的時(shí)間。
0.png (31.98 KB, 下載次數(shù): 35)
下載附件
2019-6-21 02:50 上傳
源程序如下:
#include "reg51.h"
#include"absacc.h"
#include"math.h"
#include"intrins.h"
void main()
{
SP=0x60;
DS_init();
//write_time(); //DS12C887時(shí)間設(shè)置
DS18B20_Init();
key5=0;
led_t=0xf7;
led_d=0xfb;
led_l=0xfd;
led_h=0xfe;
while(1)
{
readtime();
//讀取溫度
ReadTemp();
//1小時(shí)
if((time[1]==0)&&(time[0]==0)&&(bzcun==0)){bzcun=1;ti=time[2];temp[ti]=wendu1;/*ti=(ti+1)%24;*/weep();}
if((time[0]>1)&&(bzcun==1)){bzcun=0;}
//5s
//if((time[0]==5)&&(bzcun==0)){bzcun=1;temp[ti]=wendu1;ti=(ti+1)%24; weep();}
//if((time[0]>6)&&(bzcun==1)){bzcun=0;}
if(mode==0){crt_time();} //顯示時(shí)間
if(mode==1){crt_wendu();} //顯示溫度
if(mod==2){crt_time();}
if(mod==3){crt_zdwendu();}//顯示整點(diǎn)溫度記錄
if(moshi==0)
{
//切換
if(key1==0){mode=(mode+1)%2;mod=0;while(key1==0);}
if(key2==0){mod=((mod+1)%2)+2;mode=2;while(key2==0);}
//查詢
if(mod==3)
{
if(key3==0){ti=(ti+1)%24;while(key3==0);}
if(key4==0){ti=(ti-1)%24;while(key4==0);}
}
}
}
}
/*************完整源碼請(qǐng)下載附件*************************/
全部資料51hei下載地址:
整點(diǎn)溫度記錄設(shè)計(jì).rar
(1.35 MB, 下載次數(shù): 49)
2019-6-20 16:01 上傳
點(diǎn)擊文件名下載附件
完整程序下載 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|