




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機實時溫度監控報警系統 摘要:本著熟悉單片機編程,系統設計的目的,增強動手合作能力,選擇了做單片機實時溫度監控報警系統這個實驗項目。本開放性實驗主要由AT89S52芯片、1602液晶顯示器、DS18B20數字式溫度傳感器、HK4100繼電器、蜂鳴器等組成。通過編程,利用單片機芯片自身的定時器和中斷做一個實時時鐘,可以記下發生事故時間,通過溫度傳感器實時采集環境溫度顯示在液晶屏上,并經過單片機處理,設置兩個上限溫度報警值,經過繼電器控制外圍線路。本系統可用于智能家居溫控報警,車間溫控等,具有一定推廣價值。關鍵字:溫度報警 溫度上下限 AT89S52單片機 液晶LCD1602 溫度傳感器DS1
2、8B20 1 課程設計任務書一、設計任務:制作一個基于單片機的溫度監控報警系統二、設計要求: 基本要求:(1)溫度測量范圍:-2090攝氏度,誤差0.1攝氏度;(2)可通過鍵盤設定溫度值并在數碼管上顯示設定值,數碼管顯示精確度0.1攝氏度;(3)數碼管實時顯示測量溫度值并可以用語音播報測量溫度值,其中數碼管顯示精確度0.1攝氏度;(4)設定溫度值與實際溫度值保持一致,誤差1攝氏度; (5)當溫度超出測量范圍時,能實現報警;發揮部分:(6)能實現GSM短信發送或通過射頻模塊無線發送(發射距離100米);(7)可以有其它功能改進和實現特色創新系統框架: 二 整體設計方案2.1整體框架及各模塊功能本
3、系統共分為七個模塊。1、單片機模塊,這部分主要實現數據的處理,輸出執行,報警設置功能(主要模塊)2、液晶顯示模塊可以分別顯示實時溫度值,溫度上下限。(主要模塊)3、溫度傳感模塊的主要功能是通過DS18B20的強大功能實現對溫度的采集。(主要模塊)4、繼電器模塊可以控制外圍其他線路,如家居電線總開關。5、蜂鳴器模塊可以發出報警聲。6、LED燈模塊可以顯示報警信號7、按鍵可以設置時間和上限的兩個溫度值溫度讀取液晶顯示繼電器控制AT89S52控制器鍵盤掃描并設置蜂鳴器LED燈 圖1 整體框圖 圖2 溫度報警器總電路圖開始液晶、定時器、變量初始化鍵盤掃描、按鍵處理時鐘顯示、溫度轉化并顯示Yes溫度小于
4、較低溫度值正常工作NoYes溫度大于較低且小于溫度值綠燈亮,有長報警聲No溫度大于較高溫度值紅綠燈亮,有短報警聲,繼電器控制開關斷開,停止時鐘YesNo結束單片機溫度實時監控報警系統流程圖三 硬件電路設計(由于繼電器、蜂鳴器、LED燈、按鍵模塊結果和線路較為簡單,下面主要以單片機控制、液晶顯示、溫度采集模塊為主來分析)3.1各模塊設計3.1.1傳感器的選擇采用DALLAS最新單線數字溫度傳感器DS18B20。新的“一線器件”體積更小、適用電壓更寬、更經濟。一線總線獨特而且經濟的特點,使用戶可輕松地組建傳感器網絡,為測量系統的構建引入全新概念。DS18B20“一線總線”數字化溫度傳感器也支持“一
5、線總線”接口,測量溫度范圍為 -55C+125C,在-10+85C范圍內,精度為0.5C。現場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量,如:環境控制、設備或過程控制、測溫類消費電子產品等。DS18B20的特性:DS18B20可以程序設定912位的分辨率,精度為0.5C。可選更小的封裝方式,更寬的電壓適用范圍。分辨率設定,及用戶設定的報警溫度存儲在EEPROM中,掉電后依然保存。DS18B20的性能是新一代產品中最好的!性能價格比也非常出色!繼“一線總線”的早期產品后,DS1820開辟了溫度傳感器技術的新概念。DS18B20使電壓、特性及封裝有
6、更多的選擇,讓我們可以構建適合自己的經濟的測溫系統。3.1.2單片機的選擇AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。3.1.3液晶的選擇采用LCD1602液晶顯示模塊,有體積小、功耗低、顯示內容豐富、超薄輕巧等優點,在袖珍式儀表和低功耗應用系統中得到廣泛的應
7、用。目前字符型液晶顯示模塊已經是單片機應用設計中最常用的信息顯示器件。它可以顯示兩行,每行16個字符,采用單5V電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。3.2各模塊分析3.2.1單片機89S52管腳圖注:引腳說明:電源引腳Vcc(40腳):典型值5V。Vss(20腳):接低電平。外部晶振X1、X2分別與晶體兩端相連接。當采用外部時鐘信號時,X2接振蕩信號,X1接地。輸入輸出口引腳:P0口:I/O雙向口。作輸入口時,應先軟件置“ 1”。P1口:I/O雙向口。作輸入口時,應先軟件置“ 1”。P2口:I/O雙向口。作輸入口時,應先軟件置“ 1”。P3口:I/O雙向口。作輸入口時,應先
8、軟件置“ 1”。控制引腳:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp組成了MSC-51的控制總線。RST/Vpd(9腳):復位信號輸入端(高電平有效)。第二功能:加+5V備用電源,可以實現掉電保護RAM信息不丟失。ALE/-PROG(30腳):地址鎖存信號輸出端。第二功能:編程脈沖輸入。-PSEN(29腳):外部程序存儲器讀選通信號。-EA/Vpp(31腳):外部程序存儲器使能端。第二功能:編程電壓輸入端(+21V)。3.2.2 DS18B20引腳及管腳功能介紹注DQ:數字信號輸入輸出端。GND:電源地端。VDD:外接供電電源輸入端(在寄生電源接線時此腳應接地)。3.2.3
9、 LCD1602液晶顯示介紹管腳功能1602采用標準的16腳接口第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高。第4腳:RS為寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。 第6腳:E(或EN)端為使能(enable)端。 第714腳:D0D7為8位雙向數據端。 第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負極。四 控制軟件主要模塊設計及電路圖4.1單片機模塊電路圖及分析 圖3 單片機接線圖P0接液晶數
10、據口,P2.2和P2.3接2個發光二極管,P3接8個按鈕,P2.4接蜂鳴器,P2.5接繼電器,P2.6接液晶的RS,P2.7接液晶的EN,P1.2接溫度傳感器,其他按單片機最小系統連接。4.2液晶顯示模塊電路圖及分析 圖3 液晶接線圖液晶顯示模塊的子程序:void write_com(uchar com)/寫液晶命令函數rs=0;lcden=0;P0=com;delay(3);lcden=1;delay(3);lcden=0;void write_date(uchar date)/寫液晶數據函數rs=1;lcden=0;P0=date;delay(3);lcden=1;delay(3);lcd
11、en=0;void write_sfm(uchar add,char date)/1602液晶刷新時分秒函數1為時,4為分,7為秒 char shiwei,gewei;shiwei=date/10;gewei=date%10;write_com(0x80+add);write_date(0x30+shiwei);write_date(0x30+gewei);void write_nyr(uchar add,char date)char shiwei,gewei;shiwei=date/10;gewei=date%10;write_com(0xc0+add);write_date(0x30+sh
12、iwei);write_date(0x30+gewei);4.3溫度傳感器模塊電路圖及分析 圖4溫度傳感器接線圖溫度傳感器讀取溫度以及顯示溫度的子程序:void dsreset(void) /18B20復位,初始化函數 uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; while(i0)i-;bit tempreadbit(void) /讀1位函數 uint i; bit dat; ds=0;i+; /i+ 起延時作用 ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat);uchar tempread(voi
13、d) /讀1個字節 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /讀出的數據最低位在最前面,這樣剛好一個字節在DAT里 return(dat);void tempwritebyte(uchar dat) /向18B20寫一個字節數據 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /寫 1 ds=0; i+;i+; ds=1; i=8;while(i0)i-; else ds=0; /寫 0 i=8;while(i0)i-; ds=1; i+;i+; voi
14、d tempchange(void) /DS18B20 開始獲取溫度并轉換 dsreset(); delay(1); tempwritebyte(0xcc); / 寫跳過讀ROM指令 tempwritebyte(0x44); / 寫溫度轉換指令uint get_temp() /讀取寄存器中存儲的溫度數據 uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); /讀低8位 b=tempread(); /讀高8位 temp=b; temp=8; /兩個字節組合為1個字 temp=
15、temp|a; f_temp=temp*0.0625; /溫度在寄存器中為12位 分辨率位0.0625 temp=f_temp+0.5; /加0.5是四舍五入 return temp; /temp是浮點型 5總程序#define uchar unsigned char #define uint unsigned intsbit rs=P26;sbit lcden=P27;sbit jidianqi=P25;sbit s1=P30;/功能鍵sbit s2=P31;/增加鍵sbit s3=P33;/減小鍵sbit beep=P23;/蜂鳴器sbit led1=P21;sbit led2=P22;s
16、bit ds=P12; /溫度傳感器uint warnl=35; /下限溫度uint warnh=40; /上限溫度uint temp;/整形溫度數據float f_temp;/浮點型溫度數據uchar count,stop,s1num,s2num;/其它變量定義char miao,shi,fen;uchar code table= : : T: ;/液晶固定顯示內容uchar code table1= L: H: ;#include#includevoid delay(uint z)/延時函數uint x,y;for(x=z;x0;x-)for(y=124;y0;y-) ;void di()
17、 /蜂鳴器報警聲音beep=0;delay(100);beep=1; /*=液晶操作=*/void write_com(uchar com)/寫液晶命令函數rs=0;lcden=0;P0=com;delay(3);lcden=1;delay(3);lcden=0;void write_date(uchar date)/寫液晶數據函數rs=1;lcden=0;P0=date;delay(3);lcden=1;delay(3);lcden=0;void write_sfm(uchar add,char date)/1602液晶刷新時分秒函數1為時,4為分,7為秒 char shiwei,gewei
18、;shiwei=date/10;gewei=date%10;write_com(0x80+add);write_date(0x30+shiwei);write_date(0x30+gewei);void write_nyr(uchar add,char date)/1602液晶刷新年月日函數3為年,6為分,9為秒char shiwei,gewei;shiwei=date/10;gewei=date%10;write_com(0xc0+add);write_date(0x30+shiwei);write_date(0x30+gewei);/*=*/*=ds18B20程序=*/void dsres
19、et(void) /18B20復位,初始化函數 uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; while(i0)i-;bit tempreadbit(void) /讀1位函數 uint i; bit dat; ds=0;i+; /i+ 起延時作用 ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat);uchar tempread(void) /讀1個字節 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /讀出的數據最低位在最
20、前面,這樣剛好一個字節在DAT里 return(dat);void tempwritebyte(uchar dat) /向18B20寫一個字節數據 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /寫 1 ds=0; i+;i+; ds=1; i=8;while(i0)i-; else ds=0; /寫 0 i=8;while(i0)i-; ds=1; i+;i+; void tempchange(void) /DS18B20 開始獲取溫度并轉換 dsreset(); delay(1); tempwritebyte(0xcc); / 寫跳過讀
21、ROM指令 tempwritebyte(0x44); / 寫溫度轉換指令uint get_temp() /讀取寄存器中存儲的溫度數據 uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); /讀低8位 b=tempread(); /讀高8位 temp=b; tempwarnh)jidianqi=0;TR0=0;led1=0;di();delay(200);di();delay(100); if (twarnl&t=warnh)led2=0;di();delay(400);di
22、();delay(100);/*=液晶處理=*/ void init()/初始化函數uchar num;s1num=0;count=0;fen=0;miao=0;shi=0;lcden=0;jidianqi=1;led1=1;led2=1;write_com(0x38);/1602液晶初始化write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num15;num+)/寫入液晶固定部分顯示write_date(tablenum);delay(1);write_sfm(7,miao);/分別送去液晶顯示write_sfm(4,fen);write_sfm(1,shi);write_com(0x8e);write_date(0xdf);write_date(0x43);write_com(0x80+0x40);for(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東醫學高等專科學校《運動系統》2023-2024學年第二學期期末試卷
- 遼寧城市建設職業技術學院《藥物合成反應實踐》2023-2024學年第二學期期末試卷
- 邯鄲學院《社會工作機構人力資源管理》2023-2024學年第二學期期末試卷
- 棗莊學院《設計調研》2023-2024學年第二學期期末試卷
- 珠海城市職業技術學院《植物認知》2023-2024學年第二學期期末試卷
- 2024年度河北省二級注冊建筑師之建筑結構與設備能力提升試卷A卷附答案
- 運輸商品車合同協議書
- 漁業水域使用權協議
- 汽車零部件再制造行業市場趨勢與技術創新方向研究報告
- 甘肅省隴南民康骨科醫院招聘筆試真題2024
- 2021公考題目及答案
- 西安無人機項目商業計劃書
- 2024年宿遷市泗陽縣事業單位招聘筆試真題
- DB32/T 4273-2022計算機輔助人工處方審核標準化工作規范
- 人教版(2024)七年級下冊英語期末復習:完形填空 專項練習題(含答案)
- 2025年中國ECTFE樹脂行業市場前景預測及投資價值評估分析報告
- 2025年中國氫氟酸市場研究報告
- 礦井電氣安全培訓課件
- 景區設備聯營協議書
- 2025年虛擬現實與增強現實技術考試試題及答案
- 旋挖鉆孔灌注樁施工流程課件
評論
0/150
提交評論