版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
圖3.3復(fù)位電路所示。圖3.3復(fù)位電路圖3.4顯示模塊電路設(shè)計(jì)1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地:第2腳:VDD接5V電源正極;第3腳:VO為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度):第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器:第5腳:RW為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作;第6腳:E(或EN)端為使能(enable)端.第7~14腳:D0~D7為8位雙向數(shù)據(jù)端;第15~16腳:空腳或背燈電源;15腳背光正極;16腳背光負(fù)極.圖3.4液晶LCD1602仿真電路圖LCD1602中有80個(gè)字節(jié)用于顯示數(shù)據(jù)的存儲(chǔ)器,顯示字符時(shí),需將ASCII碼轉(zhuǎn)換成十六進(jìn)制寫入存儲(chǔ)器DDRAM中,LCD上就會(huì)顯示出其對(duì)應(yīng)的字符,當(dāng)然屏幕中顯示的字符位置是與RAM對(duì)應(yīng)的,00H~0FH地址區(qū)域是LCD顯示出的第一行,40H~4FH區(qū)域是LCD顯示的第二行,10H~27H和50H~67H這兩個(gè)地址區(qū)域范圍屬于隱藏區(qū)域,若將數(shù)據(jù)寫入其中,LCD將不會(huì)顯示圖3.5LCD1602電路圖3.5溫度傳感器模塊DS18B20是一種單總線式數(shù)字溫度傳感器.該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,成本較低,體積小[11],不需外接元件,可實(shí)現(xiàn)單端口通信;片內(nèi)ROM包含64位的唯一序列號(hào),可多點(diǎn)組網(wǎng)使用;抗干擾能力強(qiáng),擴(kuò)展方便.本文論述了DS18B20的工作原理.利用單片機(jī),開發(fā)了基于DS18B20的分布式溫度探測(cè)節(jié)點(diǎn).采樣率在100S/ps~200S/ps之間可調(diào),采樣精度為12bit,溫度探測(cè)范圍為-55℃~+125℃,溫度精度0.062[12]。圖3.6溫度傳感器仿真電路圖3.6報(bào)警模塊設(shè)計(jì)報(bào)警任務(wù)由蜂鳴器完成,當(dāng)溫度超過警戒值或著煙霧傳感器受到煙霧的影響時(shí),蜂鳴器發(fā)聲示警。此電路由三極管,電阻,蜂鳴器,電源組成,提供一個(gè)低電平給三極管的基極,導(dǎo)通三極管,蜂鳴器發(fā)聲。其電路圖如圖3.9所示。圖3.7蜂鳴器報(bào)警電路圖4系統(tǒng)軟件設(shè)計(jì)4.1主程序流程圖火災(zāi)報(bào)警系統(tǒng)需要實(shí)現(xiàn)溫度測(cè)量、實(shí)時(shí)顯示溫度數(shù)據(jù)、煙霧傳感預(yù)警、自動(dòng)報(bào)警等功能。程序開始先對(duì)控制電路、傳感器、LCD1602、報(bào)警值等模塊進(jìn)行初始化,按下復(fù)位鍵對(duì)報(bào)警器進(jìn)行復(fù)位、當(dāng)傳感器收到溫度或者煙霧的影響,傳感器將信號(hào)傳給控制電路,控制電路將信號(hào)傳給報(bào)警系統(tǒng),報(bào)警器進(jìn)行主設(shè)計(jì)流程如圖4.1所示。是是是是圖4.1主程序設(shè)計(jì)流程圖4.2硬件模塊流程圖火災(zāi)報(bào)警系統(tǒng)的處理器采用51系列的單片機(jī),由單片機(jī)控制整個(gè)系統(tǒng)。當(dāng)傳感器檢測(cè)到非電量信號(hào),輸出電量信號(hào),通過A/D轉(zhuǎn)換器轉(zhuǎn)成數(shù)字量信號(hào),送入控制器進(jìn)行處理。經(jīng)火災(zāi)探測(cè)算法分析后自動(dòng)輸出相應(yīng)的存儲(chǔ)、顯示和聲光報(bào)警信號(hào),若數(shù)據(jù)采集值超出設(shè)置額定值將會(huì)發(fā)出聲光報(bào)警以及聯(lián)動(dòng)消防系統(tǒng),否則將繼續(xù)檢測(cè)。硬件模塊設(shè)計(jì)流程圖如4.2所示。圖4.2心率模塊設(shè)計(jì)流程圖4.3報(bào)警模塊流程圖要實(shí)現(xiàn)火災(zāi)報(bào)警器的功能,程序控制是必不可少的。AT89S52作為主控芯片,主要對(duì)IO端口、驅(qū)動(dòng)A/D轉(zhuǎn)換、邏輯判斷等進(jìn)行控制,在軟件設(shè)計(jì)中采用模塊化程序設(shè)計(jì)的方法,程序結(jié)構(gòu)清晰,各個(gè)模塊的功能由子程序的調(diào)用實(shí)現(xiàn),這樣既便于系統(tǒng)維護(hù),又可以進(jìn)行進(jìn)一步的功能擴(kuò)展。系統(tǒng)初始化開始進(jìn)入工作狀態(tài),MQ-2型煙霧傳感器正常工作時(shí)要先預(yù)熱,同時(shí),可以通過檢測(cè)傳感器兩端電壓等方式進(jìn)行接觸不良、斷線等的故障檢測(cè),對(duì)采樣數(shù)據(jù)進(jìn)行.A/D轉(zhuǎn)換,通過濾波子程序送入單片機(jī)處理,如果超過報(bào)警限,就會(huì)產(chǎn)生中斷,轉(zhuǎn)入報(bào)警子程序,同時(shí)會(huì)有煙霧濃度顯示及知識(shí)等提示。如圖4.3所示。圖4.3報(bào)警模塊流程圖
5系統(tǒng)測(cè)試5.1程序調(diào)試在KeilμVision5軟件中對(duì)程序進(jìn)行編譯,若編譯過程中出現(xiàn)error時(shí),需要按照提示信息找出錯(cuò)誤代碼的地并加以修改方,直至整個(gè)編譯過程沒有error和Warning,將其生成可讀的HEX文件。再通過Proteus軟件進(jìn)行仿真,按各個(gè)模塊畫出仿真圖,將已生成的HEX文件燒錄至仿真單片機(jī)里,觀察仿真運(yùn)行是否正常。5.2調(diào)試結(jié)果這個(gè)階段我們要做的工作就是寄存器的初始化、各個(gè)輸入輸出情況的設(shè)置等。我們首先要設(shè)置定時(shí)器的工作方法。其次、打開系統(tǒng)中斷為了便于響應(yīng)中斷定時(shí),及時(shí)采集到氣體濃度和溫度的信息。然后關(guān)閉蜂鳴器,開啟綠燈,設(shè)置報(bào)警限初值。圖5.2PCB圖5.3系統(tǒng)數(shù)據(jù)分析系統(tǒng)對(duì)溫度和煙霧進(jìn)行了兩次數(shù)據(jù)采集與判斷,每次信號(hào)采集后根據(jù)得到的數(shù)據(jù)與設(shè)定的閾值比較,當(dāng)溫度≥57℃,溫度異常,置寄存器變量a為1,否則為0;當(dāng)煙霧濃度≥3.2%,煙霧濃度異常,置寄存器變量b為1,否則為0。綜合兩次溫度煙霧信號(hào)的采集,根據(jù)溫度和煙霧的寄存器變量a和b的狀態(tài),判斷現(xiàn)場(chǎng)情況:2個(gè)寄存器變量均為0,表示情況正常;2個(gè)中僅有1個(gè)為1,表示情況異常:2個(gè)均為1,表示有火災(zāi)發(fā)生。系統(tǒng)對(duì)現(xiàn)場(chǎng)進(jìn)行報(bào)警判斷后,間隔20s后(通過系統(tǒng)的延時(shí)程序?qū)崿F(xiàn)),再一次采集現(xiàn)場(chǎng)的溫度煙霧信號(hào)進(jìn)行判斷,即每一次語(yǔ)音報(bào)警持續(xù)20s,直到系統(tǒng)做出下一次判斷結(jié)果。圖5.3.1蜂鳴器不報(bào)警時(shí)脈沖頻率圖5.3.2實(shí)物圖圖5.3.3蜂鳴器報(bào)警時(shí)脈沖頻率圖5.3.4實(shí)物圖LCD液晶屏顯示數(shù)據(jù)與DS18B20傳感器輸出數(shù)據(jù)顯示一致,符合設(shè)計(jì)要求,如圖5.3.5,圖5.3.6所示。圖5.3.5傳感器溫度圖5.3.6溫度顯示數(shù)據(jù)
6結(jié)論火災(zāi)報(bào)警器可保障生產(chǎn)與生活的安全,避免火災(zāi)和爆炸事故以及煤氣中毒的發(fā)生,它是防火、防爆和安全生產(chǎn)所必備的儀器,具有廣闊的市場(chǎng)空間與發(fā)展前景。本論文是在對(duì)煙霧、溫度傳感器和報(bào)警技術(shù)進(jìn)行深入研究的基礎(chǔ)上,全面比較國(guó)內(nèi)外同類產(chǎn)品的技術(shù)特點(diǎn),合理地確定系統(tǒng)的設(shè)計(jì)方案,并對(duì)儀器的整體設(shè)計(jì)和各個(gè)組成部分進(jìn)行了詳細(xì)的分析和設(shè)計(jì)。本次畢業(yè)設(shè)計(jì)經(jīng)過努力,整個(gè)系統(tǒng)實(shí)現(xiàn)了預(yù)期的目標(biāo)。本系統(tǒng)通過設(shè)計(jì)一個(gè)以AT89S51單片機(jī)為核心的火災(zāi)報(bào)警器可以實(shí)現(xiàn)語(yǔ)音報(bào)警、溫度濃度顯示、報(bào)警限設(shè)置、延時(shí)報(bào)警等功能。是一種結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定、使用方便、價(jià)格低廉、智能化的火災(zāi)報(bào)警器,具有一定的實(shí)用價(jià)值。本報(bào)警器電路結(jié)構(gòu)簡(jiǎn)單、可維護(hù)性好。由于實(shí)現(xiàn)了對(duì)普通環(huán)境中煙霧濃度和溫度的實(shí)時(shí)監(jiān)控,因此具有非常普遍的意義,能廣泛應(yīng)用于居民家庭、企事業(yè)單位等多方面的安全防范。但是也存在不少的不足。由于電源的波動(dòng),傳感器的電氣特性等問題,使得A/D轉(zhuǎn)換結(jié)果有時(shí)波動(dòng)很大,這樣就可能出現(xiàn)誤報(bào)警。由于時(shí)間的關(guān)系,系統(tǒng)中本應(yīng)具有的串行通信的功能沒有實(shí)現(xiàn),而只是實(shí)現(xiàn)了煙霧濃度、溫度顯示。由于上述缺點(diǎn)的存在,此系統(tǒng)不是很完善,還有待進(jìn)一步改進(jìn)。
參考文獻(xiàn)[1]馬欣如.基于單片機(jī)的火災(zāi)報(bào)警系統(tǒng)設(shè)計(jì)[J].科技創(chuàng)新與應(yīng)用,2021,11(28):103-105.[2]王澤斌,黃佐華.火災(zāi)報(bào)警系統(tǒng)的發(fā)展與探討[J].科協(xié)論壇(下半月),2012,(08):106-108.[3]步亞昆,郭俊美,劉海英.基于51單片機(jī)的智能火災(zāi)報(bào)警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].齊魯工業(yè)大學(xué)學(xué)報(bào),2021,35(04):53-58.[4]邱小川.火災(zāi)報(bào)警系統(tǒng)國(guó)內(nèi)外現(xiàn)狀綜述[D].電子科技大學(xué),2021.[5]步亞昆,郭俊美,劉海英.基于51單片機(jī)的智能火災(zāi)報(bào)警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].齊魯工業(yè)大學(xué)學(xué)報(bào),2021,35(04):53-58.[6]李圣斐.基于單片機(jī)的智能火災(zāi)報(bào)警系統(tǒng)研究——以住宅樓為例[J].赤子(下旬),2016(12):107.[7]孫小春.基于單片機(jī)的無(wú)線火災(zāi)報(bào)警系統(tǒng)研究[J].海南大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,31(03):254-256.[8]祁衛(wèi).火災(zāi)報(bào)警系統(tǒng)的設(shè)計(jì)與應(yīng)用[D].華中科技大學(xué),2011.[9]袁曉溪.基于單片機(jī)的LED顯示系統(tǒng)[D].吉林大學(xué),2015.[10]崔謙.迎接LCD普及時(shí)代[N].中國(guó)計(jì)算機(jī)報(bào),2001-04-30(D16).[11]周琛暉,馮少懷.基于DS18B20的溫度測(cè)量系統(tǒng)[C]//第三屆全國(guó)軟件測(cè)試會(huì)議與移動(dòng)計(jì)算、柵格、智能化高級(jí)論壇論文集.,2009:226-228.[12]李顯寶,何鵬.基于DS18B20的分布式溫度探測(cè)節(jié)點(diǎn)[C]//2010中國(guó)儀器儀表與測(cè)控技術(shù)大會(huì)論文集.,2010:80-83.[13]單片機(jī)原理與應(yīng)用[M].王浩全,李晉華,張敏娟,李文強(qiáng),編著.人民郵電出版社.2013.[14]單片機(jī)原理及接口技術(shù)[M].李朝青,劉艷玲,編著.北京航空航天大學(xué)出版社.2013.[15]韓倩倩.基于LoRa的文物建筑無(wú)線火災(zāi)報(bào)警系統(tǒng)研究[J].消防科學(xué)與技術(shù),2020,25(7):18-22.[16]張響亮.智能建筑火災(zāi)自動(dòng)自動(dòng)報(bào)警系統(tǒng)的設(shè)計(jì)與研究[D].武漢:武漢理工大學(xué),2017.[17]劉速.博物館內(nèi)火災(zāi)煙霧報(bào)警器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2017,40(23):104-108.[18]張仲明,郭東偉,呂巍,等.基于DS18B20溫度傳感器的溫度測(cè)量系統(tǒng)設(shè)計(jì)[J].2018,35(5):76-79,88.[19]朱英龍.基于MCS-51的家庭安防系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].環(huán)球市場(chǎng)信息導(dǎo)報(bào),2014,(26):129.[20]王娜,時(shí)磊.一種智能火災(zāi)報(bào)警系統(tǒng)的設(shè)計(jì)[J].南方農(nóng)機(jī),2019,50(23):217-219.[21]繆順兵,熊光明,李永萍.自動(dòng)火災(zāi)報(bào)警系統(tǒng)設(shè)計(jì)與研究[J].裝備制造技術(shù),2006,(4):90-92.[22]王雨婷,張朝龍,俞敏.煙霧煤氣安全報(bào)警器的設(shè)計(jì)[J].電氣應(yīng)用,2019,(A1):119-123.[23]楊建.基于嵌入式的高精度溫度傳感系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2018,41(14):44-47.
附錄#include<reg52.h>//包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include"intrins.h" #defineu8 unsignedchar#defineu16 unsignedint#defineuchar unsignedchar#defineuint unsignedintucharyushe_wendu=50; //溫度預(yù)設(shè)值ucharyushe_yanwu=100; //煙霧預(yù)設(shè)值uintwendu; //溫度值全局變量ucharyanwu; //用于讀取ADC數(shù)據(jù)//運(yùn)行模式ucharMode=0; //=1是設(shè)置溫度閥值=2是設(shè)置煙霧閥值 =0是正常監(jiān)控模式//管腳聲明sbitLed_Reg =P2^2; //紅燈sbitLed_Yellow=P2^4; //黃燈sbitBuzzer =P2^0; //蜂鳴器/*********************************************************************名稱:delay_1ms()*功能:延時(shí)1ms函數(shù)*輸入:q*輸出:無(wú)***********************************************************************/voiddelay_ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<110;j++);}/***********************************************************************************************************LCD1602相關(guān)函數(shù)***********************************************************************************************************///LCD管腳聲明(RW引腳實(shí)物直接接地,因?yàn)楸驹O(shè)計(jì)只用到液晶的寫操作,RW引腳一直是低電平)sbitLCDRS=P2^7;sbitLCDEN=P2^6;sbitD0 =P0^0;sbitD1 =P0^1;sbitD2 =P0^2;sbitD3 =P0^3;sbitD4 =P0^4;sbitD5 =P0^5;sbitD6 =P0^6;sbitD7 =P0^7;//LCD延時(shí)voidLCDdelay(uintz) //該延時(shí)大約100us(不精確,液晶操作的延時(shí)不要求很精確){uintx,y;for(x=z;x>0;x--)for(y=10;y>0;y--);}voidLCD_WriteData(u8dat) { if(dat&0x01)D0=1;elseD0=0; if(dat&0x02)D1=1;elseD1=0; if(dat&0x04)D2=1;elseD2=0; if(dat&0x08)D3=1;elseD3=0; if(dat&0x10)D4=1;elseD4=0; if(dat&0x20)D5=1;elseD5=0; if(dat&0x40)D6=1;elseD6=0; if(dat&0x80)D7=1;elseD7=0;}//寫命令voidwrite_com(ucharcom){LCDRS=0; LCD_WriteData(com);//DAT=com;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;}//寫數(shù)據(jù)voidwrite_data(uchardate){LCDRS=1; LCD_WriteData(date);//DAT=date;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;}/*選擇寫入位置*/voidSelectPosition(unsignedcharx,unsignedchary){ if(x==0) { write_com(0x80+y);//表示第一行 } else { write_com(0xC0+y);//表示第二行 }}/*寫入字符串函數(shù)*/voidLCD_Write_String(unsignedcharx,unsignedchary,unsignedchar*s){ SelectPosition(x,y); while(*s) { write_data(*s); s++; }}//========================================================================//函數(shù):voidLCD_Write_Char(u8x,u8y,u16s,u8l)//應(yīng)用:LCD_Write_Char(0,1,366,4);//描述:在第0行第一個(gè)字節(jié)位置顯示366的后4位,顯示結(jié)果為0366//參數(shù):x:行,y:列,s:要顯示的字,l:顯示的位數(shù)//返回:none.//版本:VER1.0//日期:2013-4-1//備注:最大顯示65535//========================================================================voidLCD_Write_Char(u8x,u8y,u16s,u8l){ SelectPosition(x,y); if(l>=5) write_data(0x30+s/10000%10); //萬(wàn)位 if(l>=4) write_data(0x30+s/1000%10); //千位 if(l>=3) write_data(0x30+s/100%10); //百位 if(l>=2) write_data(0x30+s/10%10); //十位 if(l>=1) write_data(0x30+s%10); //個(gè)位}/*1602指令簡(jiǎn)介write_com(0x38);//屏幕初始化write_com(0x0c);//打開顯示無(wú)光標(biāo)無(wú)光標(biāo)閃爍write_com(0x0d);//打開顯示陰影閃爍write_com(0x0d);//打開顯示陰影閃爍*///1602初始化voidInit1602(){uchari=0;write_com(0x38);//屏幕初始化write_com(0x0c);//打開顯示無(wú)光標(biāo)無(wú)光標(biāo)閃爍write_com(0x06);//當(dāng)讀或?qū)懸粋€(gè)字符是指針后一一位write_com(0x01);//清屏 }voidDisplay_1602(yushe_wendu,yushe_yanwu,c,temp){ //顯示預(yù)設(shè)溫度 LCD_Write_Char(0,6,yushe_wendu,2); //顯示預(yù)設(shè)煙霧 LCD_Write_Char(0,13,yushe_yanwu,3); //時(shí)時(shí)溫度 LCD_Write_Char(1,6,c/10,2); write_data('.'); LCD_Write_Char(1,9,c%10,1); //時(shí)時(shí)煙霧 LCD_Write_Char(1,13,temp,3);}/***********************************************************************************************************ADC0832相關(guān)函數(shù)***********************************************************************************************************/sbitADCS =P1^5;//ADC0832片選sbitADCLK=P1^2;//ADC0832時(shí)鐘sbitADDI =P1^3;//ADC0832數(shù)據(jù)輸入 /*因?yàn)閱纹瑱C(jī)的管腳是雙向的,且ADC0832的數(shù)據(jù)輸入輸出不同時(shí)進(jìn)行,sbitADDO =P1^3;//ADC0832數(shù)據(jù)輸出 /*為節(jié)省單片機(jī)引腳,簡(jiǎn)化電路所以輸入輸出連接在同一個(gè)引腳上//========================================================================//函數(shù):unsignedintAdc0832(unsignedcharchannel)//應(yīng)用: temp=Adc0832(0);//描述:讀取0通道的AD值//參數(shù):channel:通道0和通道1選擇//返回:選取通道的AD值//版本:VER1.0//日期:2015-05-29//備注://========================================================================unsignedintAdc0832(unsignedcharchannel){ uchari=0; ucharj; uintdat=0; ucharndat=0; ucharVot=0; if(channel==0)channel=2; if(channel==1)channel=3; ADDI=1; _nop_(); _nop_(); ADCS=0;//拉低CS端 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿1 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 ADDI=channel&0x1; _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿2 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 ADDI=(channel>>1)&0x1; _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿3 ADDI=1;//控制命令結(jié)束 _nop_(); _nop_(); dat=0; for(i=0;i<8;i++) { dat|=ADDO;//收數(shù)據(jù) ADCLK=1; _nop_(); _nop_(); ADCLK=0;//形成一次時(shí)鐘脈沖 _nop_(); _nop_(); dat<<=1; if(i==7)dat|=ADDO; } for(i=0;i<8;i++) { j=0; j=j|ADDO;//收數(shù)據(jù) ADCLK=1; _nop_(); _nop_(); ADCLK=0;//形成一次時(shí)鐘脈沖 _nop_(); _nop_(); j=j<<7; ndat=ndat|j; if(i<7)ndat>>=1; } ADCS=1;//拉低CS端 ADCLK=0;//拉低CLK端 ADDO=1;//拉高數(shù)據(jù)端,回到初始狀態(tài) dat<<=8; dat|=ndat; return(dat);//returnaddata}/***********************************************************************************************************DS18B20相關(guān)函數(shù)***********************************************************************************************************/sbitDQ=P1^0; //ds18b20的數(shù)據(jù)引腳/*****延時(shí)子程序:該延時(shí)主要用于ds18b20延時(shí)*****/voidDelay_DS18B20(intnum){while(num--);}/*****初始化DS18B20*****/voidInit_DS18B20(void){unsignedcharx=0;DQ=1;//DQ復(fù)位Delay_DS18B20(8);//稍做延時(shí)DQ=0;//單片機(jī)將DQ拉低Delay_DS18B20(80);//精確延時(shí),大于480usDQ=1;//拉高總線Delay_DS18B20(14);x=DQ;//稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失敗Delay_DS18B20(20);}/*****讀一個(gè)字節(jié)*****/unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//給脈沖信號(hào)dat>>=1;DQ=1;//給脈沖信號(hào)if(DQ)dat|=0x80;Delay_DS18B20(4);}return(dat);}/*****寫一個(gè)字節(jié)*****/voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;Delay_DS18B20(5);DQ=1;dat>>=1;}}/*****讀取溫度*****/unsignedintReadTemperature(void){unsignedchara=0;unsignedcharb=0;unsignedintt=0;floattt=0;Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44);//啟動(dòng)溫度轉(zhuǎn)換Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號(hào)列號(hào)的操作WriteOneChar(0xBE);//讀取溫度寄存器a=ReadOneChar();//讀低8位b=ReadOneChar();//讀高8位t=b;t<<=8;t=t|a;tt=t*0.0625;t=tt*10+0.5;//放大10倍輸出并四舍五入return(t);}//=====================================================================================//=====================================================================================//=====================================================================================/*****校準(zhǔn)溫度*****/u16check_wendu(void){ u16c; c=ReadTemperature()-5; //獲取溫度值并減去DS18B20的溫漂誤差 if(c<1)c=0; if(c>=999)c=999; returnc;}/***********************************************************************************************************按鍵檢測(cè)相關(guān)函數(shù)***********************************************************************************************************///按鍵sbitKey1=P1^6; //設(shè)置鍵sbitKey2=P1^7; //加按鍵sbitKey3=P3^2; //減按鍵#defineKEY_SET 1 //設(shè)置#defineKEY_ADD 2 //加#defineKEY_MINUS 3 //減//========================================================================//函數(shù):u8Key_Scan()//應(yīng)用:temp=u8Key_Scan();//描述:按鍵掃描并返回按下的鍵值//參數(shù):NONE//返回:按下的鍵值//版本:VER1.0//日期:2015-05-29//備注:該函數(shù)帶松手檢測(cè),按下鍵返回一次鍵值后返回0,直至第二次按鍵按下//========================================================================u8Key_Scan(){ staticu8key_up=1;//按鍵按松開標(biāo)志 if(key_up&&(Key1==0||Key2==0||Key3==0)) { delay_ms(10);//去抖動(dòng) key_up=0; if(Key1==0) return1; elseif(Key2==0)return2; elseif(Key3==0)return3; } elseif(Key1==1&&Key2==1&&Key3==1) key_up=1; return0;//無(wú)按鍵按下}voidmain(void){ u8key; wendu=check_wendu(); //初始化時(shí)調(diào)用溫度讀取函數(shù)防止開機(jī)85°C Init1602(); //調(diào)用初始化顯示函數(shù) LCD_Write_String(0,0,"SETT:00E:000");//開機(jī)界面 LCD_Write_String(1,0,"NOWT:00.0E:000"); delay_ms(1000); wendu=check_wendu(); //初始化時(shí)調(diào)用溫度讀取函數(shù)防止開機(jī)85°C while(1) //主循環(huán) { key=Key_Scan(); //按鍵掃描 yanwu=Adc0832(0); //讀取煙霧值 wendu=check_wendu(); //讀取溫度值 if(key==KEY_SET) { Mode++; } switch(Mode) //判斷模式的值 { case0: //監(jiān)控模式 { Display_1602(yushe_wendu,yushe_yanwu,wendu,yanwu);//顯示預(yù)設(shè)溫度,預(yù)設(shè)煙霧,溫度值,煙霧值 if(yanwu>=yushe_yanwu) //煙霧值大于等于預(yù)設(shè)值時(shí) { Led_Reg=0; //煙霧指示燈亮 Buzzer=0; //蜂鳴器報(bào)警 } else //煙霧值小于預(yù)設(shè)值時(shí) { Led_Reg=1; //關(guān)掉報(bào)警燈 } if(wendu>=(yushe_wendu*10)) //溫度大于等于預(yù)設(shè)溫度值時(shí)(為什么是大于預(yù)設(shè)值*10:因?yàn)槲覀円@示的溫度是有小數(shù)點(diǎn)后一位,是一個(gè)3位數(shù),25.9°C時(shí)實(shí)際讀的數(shù)是259,所以判斷預(yù)設(shè)值時(shí)將預(yù)設(shè)值*10) { Buzzer=0; //打開蜂鳴器報(bào)警 Led_Yellow=0; //打開溫度報(bào)警燈 } else //溫度值小于預(yù)設(shè)值時(shí) { Led_Yellow=1;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年對(duì)苯二胺項(xiàng)目合作計(jì)劃書
- 溶血性尿毒癥護(hù)理查房
- 遼寧省2025秋九年級(jí)英語(yǔ)全冊(cè)Unit4Iusedtobeafraidofthedark課時(shí)3SectionA(GrammarFocus-4c)課件新版人教新目標(biāo)版
- 員工百分百執(zhí)行力課件
- 2025年電子裝聯(lián)專用設(shè)備項(xiàng)目發(fā)展計(jì)劃
- 2025年溫度校驗(yàn)儀表項(xiàng)目建議書
- 吉林省白城市2025~2026學(xué)年度上學(xué)期期末測(cè)試 七年級(jí)地理(含答題卡、答案)
- 社區(qū)護(hù)理學(xué)概論與展望
- 肺炎患者氧療護(hù)理與監(jiān)測(cè)
- 員工開年培訓(xùn)課件
- 賣房承諾書范文
- 電梯限速器校驗(yàn)合同(2篇)
- 招投標(biāo)自查自糾報(bào)告
- 高校公寓管理述職報(bào)告
- HG-T 20583-2020 鋼制化工容器結(jié)構(gòu)設(shè)計(jì)規(guī)范
- 單位職工健康體檢總結(jié)報(bào)告
- V型濾池設(shè)計(jì)計(jì)算書2021
- 醫(yī)院護(hù)理培訓(xùn)課件:《老年患者靜脈輸液的治療與護(hù)理》
- 安全用電防止觸電主題教育PPT模板
- LY/T 1690-2017低效林改造技術(shù)規(guī)程
- 通信工程設(shè)計(jì)基礎(chǔ)doc資料
評(píng)論
0/150
提交評(píng)論