freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的智能火災(zāi)警報(bào)系統(tǒng)畢業(yè)設(shè)計(jì)論文-在線瀏覽

2025-08-06 12:55本頁面
  

【正文】 ,第5個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這3個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新。第9個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。(4) DS18B20使用中的注意事項(xiàng)DS18B20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn), 但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:① DS18B20從測(cè)溫結(jié)束到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時(shí)間,這是必須保證的,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤的現(xiàn)象,使溫度輸出總是顯示85。若電源電壓過低,會(huì)使所測(cè)得的溫度與實(shí)際溫度出現(xiàn)偏高現(xiàn)象,經(jīng)過試驗(yàn)發(fā)現(xiàn),一般在5V左右。④ 在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號(hào),一旦某個(gè)DS18B20接觸不好或斷線,將沒有返回信號(hào),程序進(jìn)入死循環(huán)。 氣體傳感器MQ2本設(shè)計(jì)中采用的MQ2型煙霧傳感器屬于二氧化錫半導(dǎo)體氣敏材料,屬于表面離子式N型半導(dǎo)體。利用這一點(diǎn)就可以獲得這種煙霧存在的信息。而當(dāng)空氣中沒有煙霧時(shí),二氧化錫半導(dǎo)體又會(huì)自動(dòng)恢復(fù)氧的負(fù)離子吸附,使電阻值升高到初始狀態(tài)。圖26 MQ氣體傳感器結(jié)構(gòu)和外形MQ2氣體傳感器所使用的氣敏材料是在清潔空氣中電導(dǎo)率較低的二氧化錫(SnO2)。使用簡(jiǎn)單的電路即可將電導(dǎo)率的變化轉(zhuǎn)換為與該氣體濃度相對(duì)應(yīng)的輸出信號(hào)。結(jié)構(gòu)和外形如圖26所示,封裝好的氣敏元件有6只針狀管腳,其中4個(gè)用于信號(hào)取出2個(gè)用于提供加熱電流。單片機(jī)或CPU的數(shù)據(jù)/地址/控制總線端口都有一定的負(fù)載能力,如果負(fù)載超過其負(fù)載能力就應(yīng)加驅(qū)動(dòng)器。74HC245功能表如表23所示。DIR=“1”,OE=“0”則A1輸入,對(duì)應(yīng)B1輸出,其它類同。第19腳OE為使能端,為“1”時(shí)A/B端的信號(hào)將不導(dǎo)通,只有為“0”時(shí)A/B端才啟用,也就是起到開關(guān)的作用。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。通過DI 數(shù)據(jù)輸入端,可以輕易的實(shí)現(xiàn)通道功能的選擇。圖28 ADC0832引腳圖正常情況下ADC0832 與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線:CS、CLK、DO、DI。當(dāng)CS輸入端應(yīng)為高電平時(shí)芯片禁用,CLK 和DO/DI 的電平可任意。芯片開始轉(zhuǎn)換工作時(shí),由處理器向芯片時(shí)鐘輸入端CLK 輸入時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號(hào)。第3個(gè)脈沖下沉之前DI端輸入2位數(shù)據(jù)用于選擇通道功能,其功能表如表24所示。單片機(jī)就是從復(fù)位開始工作的。若RST引腳的高電平保持2個(gè)機(jī)器周期,單片機(jī)就復(fù)位,持續(xù)保持則循環(huán)復(fù)位。圖31 單片機(jī)的復(fù)位電路 溫度傳感器電路DS18B20可以使用外部電源VDD,也可以使用內(nèi)部的寄生電源。無論是內(nèi)部寄生電源還是外部供電,I/。圖32 溫度采集電路DS18B20的外部電源供電方式在外部電源供電方式下,DS18B20工作電源由VDD引腳接入,此時(shí)I/O線不需要強(qiáng)上拉,不存在電源電流不足的問題,可以保證轉(zhuǎn)換精度。 MQ2煙霧感器電路本設(shè)計(jì)煙霧傳感器采用MQ2,在可燃?xì)怏w或煙霧中MQ2煙霧傳感器的電阻會(huì)有相應(yīng)的變化,測(cè)量電極和加熱器構(gòu)成的敏感元件固定在塑料或不銹鋼制成的腔體內(nèi),加熱器為氣敏元件提供了必要的工作條件。直流電壓直接供傳感器MQ-2的加熱絲HH工作,H兩端接到電源的兩端起預(yù)熱的作用,檢測(cè)煙霧之前要加熱絲給傳感器MQ-2預(yù)熱一定時(shí)間。經(jīng)過校準(zhǔn)就可以得到準(zhǔn)確的煙霧或者可燃?xì)怏w的濃度。其電路圖如圖33所示。經(jīng)煙霧傳感器MQ2所檢測(cè)的電壓信號(hào)為模擬信號(hào),無法直接被單片機(jī)所識(shí)別,所以在經(jīng)過放大電路后對(duì)信號(hào)進(jìn)行A/D裝換,將模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)輸入單片機(jī)。圖34 A/D轉(zhuǎn)換電路 報(bào)警器電路由AT89S52實(shí)現(xiàn)聲音報(bào)警控制。蜂鳴器負(fù)極接地,正極接三極管輸出,其電路原理圖如圖35所示。當(dāng)溫度過高時(shí)還可以通過電機(jī),將冷氣吹入,降低溫度,若發(fā)現(xiàn)火災(zāi),則將CO2吹入,(此步驟需用戶手動(dòng)完成)。圖36 馬達(dá)電路 七段數(shù)碼管顯示電路數(shù)據(jù)采集進(jìn)來并被成功地由模擬量轉(zhuǎn)化為數(shù)字量后,就被傳送到系統(tǒng)的顯示模塊,讓人們更直接地觀察到相關(guān)數(shù)據(jù)。顯示器的第一位顯示煙霧濃度級(jí)別,而后兩位則顯示當(dāng)前實(shí)際溫度,中間顯示“”將溫度和煙霧分開。數(shù)碼管的位選引腳接上拉電阻為共陽,可以由位選引腳輸出高低電平經(jīng)過74HC07驅(qū)動(dòng)器控制數(shù)碼管亮滅。圖37 數(shù)碼管顯示電路圖 狀態(tài)指示燈、控制鍵電路狀態(tài)指示燈控制電路如圖38所示,、。紅燈表示溫度超過了設(shè)定的報(bào)警限值。圖38 狀態(tài)指示燈電路 控制鍵電路采用獨(dú)立式按鍵設(shè)計(jì)。單片機(jī)掃描是否有按鍵閉合,如有鍵閉合,則判斷鍵號(hào)并轉(zhuǎn)入相應(yīng)的鍵處理。:限值設(shè)置鍵,按此鍵則可以進(jìn)入報(bào)警值的設(shè)定。:限值加鍵,按此鍵當(dāng)前設(shè)定項(xiàng)報(bào)警限值逐加。圖41 主程序流程圖系統(tǒng)啟動(dòng)后首先進(jìn)行初始化,然后開啟中斷,在中斷中對(duì)數(shù)據(jù)進(jìn)行及時(shí)采集,并且在中斷中將檢測(cè)值與報(bào)警限設(shè)定值相比較,判斷是否要報(bào)警。而數(shù)據(jù)采集于報(bào)警判斷則在定時(shí)中斷中執(zhí)行,在主函數(shù)中顯示的數(shù)據(jù)是煙霧的級(jí)別與整數(shù)位溫度值。 //系統(tǒng)初始化 while(1) { xianshi()。 //檢查是否啟動(dòng)手動(dòng)報(bào)警 if(SET==0)czhi()。 //是否顯示精確值 }} 中斷服務(wù)的程序系統(tǒng)設(shè)定定時(shí)器工作方式后開啟系統(tǒng)中斷,以便響應(yīng)中斷定時(shí),及時(shí)對(duì)室內(nèi)煙霧濃度和溫度進(jìn)行采樣,并及時(shí)判斷是否超過設(shè)定的限值。中斷中同時(shí)判斷是否需要報(bào)警進(jìn)行判斷,能即使報(bào)警。中斷服務(wù)程序如下:void timer0(void) interrupt 1 { TR0=0。 if(is==16){datadisp(dat0=adc0832(CH),ReadTemperature())。} Baoj()。 // TL0=(Time)%256。 } 數(shù)據(jù)處理的程序由于煙霧數(shù)據(jù)采集、AD轉(zhuǎn)換后得到的是煙霧濃度,設(shè)計(jì)中要求數(shù)碼管中顯示的是煙霧濃度的級(jí)別,所以對(duì)數(shù)據(jù)采集后,還要對(duì)煙霧濃度數(shù)據(jù)對(duì)煙霧濃度進(jìn)行分等級(jí)。本設(shè)計(jì)中將煙霧濃度等級(jí)分為6個(gè)級(jí)別:F0、FFFFF5,各個(gè)級(jí)別對(duì)應(yīng)煙霧濃度值如下:F0:煙霧濃度小于等于5;F1:煙霧濃度小于等于20;F2:煙霧濃度小于等于40;F3:煙霧濃度小于等于80;F4:煙霧濃度小于等于120;F5:煙霧濃度大于120;溫度數(shù)據(jù)采集并數(shù)據(jù)轉(zhuǎn)換后直接存放在disdata[2]和disdata[3]中,disdata[2]存放的是溫度的十位數(shù),disdata[3]則存放的是溫度的個(gè)位數(shù)。數(shù)據(jù)處理程序如下:void datadisp(uint y,uint t)//數(shù)據(jù)處理{ ywu=(y%10000)/1000*1000+(y%1000)/100*100+(y%100)/10*10+y%10。 if(ywu5)disdata[0]=1。 if(ywu40)disdata[0]=3。 if(ywu120)disdata[0]=5。 { disdata[2]=(t%1000)/100。 } temp=disdata[2]*10+disdata[3]。這樣對(duì)數(shù)據(jù)的實(shí)際情況一目了然。 if(pbi=0){show()。}else for(。key++)// { Disdata=~(led_mod[11])。 //取反可變成共陰數(shù)碼管顯示 Disdata=~(led_mod[disdata[key]])。 }} 報(bào)警的程序報(bào)警程序流程圖如圖42所示。手動(dòng)報(bào)警程序中sign為手動(dòng)報(bào)警標(biāo)志,1秒內(nèi)兩次按下報(bào)警鍵為取消手動(dòng)報(bào)警。手動(dòng)報(bào)警程序如下:void sdong() //sign為手動(dòng)報(bào)警標(biāo)志 { while(SD==0){sign=0。} //短按一次取消報(bào)警 delayt(350)。xianshi()。為及時(shí)判斷煙霧、溫度數(shù)據(jù),在程序設(shè)計(jì)上,對(duì)煙霧濃度和溫度的采集程序放在了中斷服務(wù)程序里,定時(shí)性的檢測(cè)和報(bào)警。 //3個(gè)LED代替馬達(dá) { p05=0。p07=1。sound()。p06=0。Delay(15)。 //黃色 p05=1。p07=0。sound()。p06=1。Delay(5)。 if(temp=tuxian){Ledrbj=0。}else Ledrbj=1。Md=0。 } if(sign==1) //手動(dòng)報(bào)警 { Ledzc=1。Ledybj=0。sound()。Ledrbj=0。Delay(15)。 Ledzc=0。Ledybj=1。sound()。Ledrbj=1。Delay(5)。Ledrbj=1。Md=1。煙霧的設(shè)置是對(duì)煙霧濃度的級(jí)別進(jìn)行設(shè)置。P0^P0^3對(duì)應(yīng)減和加。再次按下設(shè)置按鍵時(shí)則進(jìn)入溫度報(bào)警值設(shè)置,數(shù)碼管只顯示當(dāng)前設(shè)定溫度。報(bào)警值設(shè)置程序流程圖如圖43所示。ys=js。 //js=60為一秒 while(SET==0)show()。amp。shezhi[2]=11。 //溫度的設(shè)定值不亮 while(ys0) { while(SET==0)show()。show()。show()。delayt(300)。} while(Jia==0) {if(yuxian==9)break。yuxian++。shezhi[0]=yuxian。amp。amp。ys。ts=0。}} if(SET==0){ys=0。delayt(250)。ts=0。shezhi[0]=11。 //煙霧的設(shè)定值不亮 while(ts0) { ts=js。 while(Jian==0) {if(tuxian==0)break。tuxian。shezhi[2]=tuxian/10。} while(Jia==0) {if(tuxian==99)break。tuxian++。shezhi[2]=tuxian/10。} while(SET!=0 amp。 Jia!=0 amp。 Jian!=0) {show()。if(ts=0){ts=0。break。ys=js。if(SET==0){ys=0。}} } ts=js。 //重載設(shè)定值 } while(SET==0)show()。在正常狀態(tài)下,“加鍵”處于按下狀態(tài)時(shí),顯示當(dāng)前設(shè)置的煙霧報(bào)警級(jí)別所對(duì)應(yīng)的精確煙霧濃度值,當(dāng)釋放按鍵后,則顯示當(dāng)前煙霧實(shí)際精確濃度,直到第二次按下則退出顯示。精確值顯示的程序流程圖如圖44所示。 if(yuxian==0){jque[1]=11。jque[3]=0。jque[2]=11。} if(yuxian==2){jque[1]=11。jque[3]=0。jque[2]=4。} if(yuxian==4){jque[1]=11。jque[3]=0。jque[2]=2。} while(Jia==0)disjque()。jque[2]=(ywu%100)/10。jque[0]=(ywu%10000)/1000。if(jque[1]==0)jque[1]=11。} disjque()。 } if(Jian==0) { jque[0]=11。jque[2]=tuxian/10。 while(Jian==0)disjque()。 while(Jian!=0) //顯示精確溫度 { if(tflag==0)jque[0]=(temp0%10000)/1000。 //符號(hào)位 jque[1]=(temp0%1000)/100。 //個(gè)位 jque[3]=temp0%10。if(jque[1]==0)jque[1]=11。 } while(Jian==0)disjque()。 } 5 系統(tǒng)程序調(diào)試 (1) 源文件的建立:使用菜單“FileNew”即可在項(xiàng)目窗口的右側(cè)打開一個(gè)新的文本編輯窗口,在該窗口中輸入?yún)R編語言源程序。(2)建立工程文件:點(diǎn)擊“ProjectNew Project”菜單,出現(xiàn)給工程起一個(gè)名的對(duì)話框,我們輸入54LZX,這個(gè)不需要擴(kuò)展名?;氐街鹘缑妫诠こ檀翱诘奈募撝?,展開“Targ et1”前面的“+”號(hào),手動(dòng)把剛才編寫好的源程序加入下一層的“Source Group1”, 右鍵點(diǎn)擊“Souce Group”,選中其中下拉菜單的“Add file to Group”Souce Group1”對(duì)話框,要求尋找源文件,將文件加入項(xiàng)目,點(diǎn)擊”Close”即可返回主界面, 文件以在其中。(3)工程的設(shè)置:右鍵點(diǎn)擊左邊Project窗口的Target 1,然后使用菜單“ProgetOption for target ‘target 1’”即出現(xiàn)對(duì)工程設(shè)置的對(duì)話框,對(duì)這個(gè)對(duì)話框可謂非常復(fù)雜,共有8個(gè)頁面,要全部高清可不容易,好在絕大部分設(shè)置項(xiàng)取默認(rèn)值就行了。(4)編譯、連接:在設(shè)置好工程后,既可以進(jìn)行編譯、連接。編譯過程中的信息將出現(xiàn)在輸出窗口中的Build頁中,如果源程序有語法錯(cuò)誤,會(huì)有錯(cuò)誤報(bào)告出現(xiàn),雙擊該行,可以定到出錯(cuò)的位置,對(duì)源程序反復(fù)修改后,最終會(huì)得到如圖51所示的結(jié)果,該文件即可被編程器讀入并寫到芯片中,同時(shí)還產(chǎn)生了一些其他相關(guān)文件可被用于KEIL的仿真與調(diào)試。Target 139。show39。show39。show39。重新生成項(xiàng)目。xianshi39。void39?!薄#?)匯編出現(xiàn)數(shù)字、字母混淆。經(jīng)過仔細(xì)排查,程序成功調(diào)試。程序調(diào)試成功圖如圖51所示。本論文是在對(duì)煙霧、溫度傳感器和報(bào)警技術(shù)進(jìn)行深入研究的基礎(chǔ)上,通過比較,最后合理地確定系統(tǒng)的設(shè)計(jì)方案,并對(duì)儀器的整體設(shè)計(jì)和各個(gè)組成部分進(jìn)行了詳細(xì)的分析和詳細(xì)設(shè)計(jì)。本系統(tǒng)通過設(shè)計(jì)一個(gè)以AT89S52單片機(jī)為核心的火災(zāi)報(bào)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1