基于51單片機(jī)及DS18B20溫度傳感器的數(shù)字溫度計設(shè)計,是知創(chuàng)學(xué)院Jason大學(xué)時做的課程設(shè)計,雖說比較簡單,但對初學(xué)者還是有一些借鑒意義。好多朋友也在微信中留言詢問有沒有相關(guān)資料。特借此機(jī)會公布一下下載地址,希望能為需要的朋友提供一點幫助。感謝大家關(guān)注知創(chuàng)學(xué)院
1、下面是做好的實物效果圖

2、資料包含的主要內(nèi)容:程序、仿真、原理圖、參考文檔

3、仿真效果圖(仿真軟件使用proteus 7.7 sp2)

4、文檔目錄

元件清單:
單片機(jī):STC89C52 1片 傳感器:DS18B20 1只 晶振: 11.0592MHz 1只 電容: 33pf 2個 22uf電解電容 1個 電阻: 10k 1個 4.7k 1個 1k 1個 排阻: 4.7k 9腳 1排 PNP三極管:9012或者8550或者5401 1只 蜂鳴器: 1個 輕觸按鈕:5個 四位一體共陰極數(shù)碼管:1個 紅色發(fā)光二極管: 1個 萬用板: 1塊 導(dǎo)線: 若干
使用說明:
K1是用來進(jìn)入上下限調(diào)節(jié)模式的,當(dāng)按一下K1進(jìn)入上限調(diào)節(jié)模式,再按一下進(jìn)入下限調(diào)節(jié)模式,再按一下退出調(diào)節(jié)模式。在調(diào)節(jié)上下限溫度模式下,K2是實現(xiàn)加1功能,K1是實現(xiàn)減1功能,K3是用來設(shè)定上下限溫度正負(fù)的。
在正常模式下,按一下K2進(jìn)入查看上限溫度模式,顯示1s左右自動退出;按一下K3進(jìn)入查看下限溫度模式,顯示1s左右自動退出。
K4正常模式下用來設(shè)置和取消按鍵音。
上下限設(shè)置模式下是用來設(shè)置溫度的正負(fù)。
部分程序預(yù)覽:
ds18b20.c
- /********************************************************************
- * 程序名; 基于DS18B20的測溫系統(tǒng)
- * 功 能: 實時測量溫度,超過上下限報警,報警溫度可手動調(diào)整。K1是用來
- * 進(jìn)入上下限調(diào)節(jié)模式的,當(dāng)按一下K1進(jìn)入上限調(diào)節(jié)模式,再按一下進(jìn)入下限
- * 調(diào)節(jié)模式。在正常模式下,按一下K2進(jìn)入查看上限溫度模式,顯示1s左右自動
- * 退出;按一下K3進(jìn)入查看下限溫度模式,顯示1s左右自動退出;按一下K4消除
- * 按鍵音,再按一下啟動按鍵音。在調(diào)節(jié)上下限溫度模式下,K2是實現(xiàn)加1功能,
- * K1是實現(xiàn)減1功能,K3是用來設(shè)定上下限溫度正負(fù)的。
- * 編程時間:
- *********************************************************************/
- #include<AT89X52.h> //將AT89X52.h頭文件包含到主程序
- #include<intrins.h> //將intrins.h頭文件包含到主程序(調(diào)用其中的_nop_()空操作函數(shù)延時)
- #define uint unsigned int //變量類型宏定義,用uint表示無符號整形(16位)
- #define uchar unsigned char //變量類型宏定義,用uchar表示無符號字符型(8位)
- uchar max=0x00,min=0x00; //max是上限報警溫度,min是下限報警溫度
- bit s=0; //s是調(diào)整上下限溫度時溫度閃爍的標(biāo)志位,s=0不顯示200ms,s=1顯示1s左右
- bit s1=0; //s1標(biāo)志位用于上下限查看時的顯示
- void display1(uint z); //聲明display1()函數(shù)(display.h頭文件中的函數(shù),ds18b20.h要用應(yīng)先聲明)
- #include"ds18b20.h" //將ds18b20.h頭文件包含到主程序
- #include"keyscan.h" //將keyscan.h頭文件包含到主程序
- #include"display.h" //將display.h頭文件包含到主程序
- /***********************主函數(shù)************************/
- void main()
- {
- beer=1; //關(guān)閉蜂鳴器
- led=1; //關(guān)閉LED燈
- timer1_init(0); //初始化定時器1(未啟動定時器1)
- get_temperature(1); //首次啟動DS18B20獲取溫度(DS18B20上點后自動將EEPROM中的上下限溫度復(fù)制到TH和TL寄存器)
- while(1) //主循環(huán)
- {
- keyscan(); //按鍵掃面函數(shù)
- get_temperature(0); //獲取溫度函數(shù)
- keyscan(); //按鍵掃面函數(shù)
- display(temp,temp_d*0.625);//顯示函數(shù)
- alarm(); //報警函數(shù)
- keyscan(); //按鍵掃面函數(shù)
- }
- }
復(fù)制代碼
ds18b20.h文件:
鍵盤掃描文件:
全部資料51黑下載地址:
基于51單片機(jī)及DS18B20溫度傳感器的數(shù)字溫度計設(shè)計.rar
(704.05 KB, 下載次數(shù): 1050)
2016-1-4 01:50 上傳
點擊文件名下載附件
|