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

正文內(nèi)容

基于單片機(jī)的智能火災(zāi)警報(bào)系統(tǒng)-預(yù)覽頁(yè)

 

【正文】 )、煙(煙霧粒子)、熱(溫度)的探測(cè),將探測(cè)到的火情信號(hào)轉(zhuǎn)化成火警電信號(hào)傳遞給火災(zāi)報(bào)警控制器。整體電路的框圖如圖21所示。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。對(duì)P0端口寫如“1”時(shí),引腳用作于高阻抗輸入。引腳號(hào)的第二功能::T2(用于定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出。:SCK(用于系統(tǒng)編程)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口送出高八位地址。表 21 各口線的特殊功能和信號(hào)名稱口線 特殊功能 信號(hào)名稱 RXD 串行輸入口 TXD 串行輸出口 外部中斷0輸入口 外部中斷1輸入口 T0 定時(shí)器0外部輸入口 T1 定時(shí)器1外部輸入口 寫選通輸出口 讀選通輸出口 主要元件的選型 AT89S52單片機(jī)在火災(zāi)報(bào)警器的設(shè)計(jì)中,單片機(jī)是其核心部件。根據(jù)多方面的比較,本設(shè)計(jì)選用ATMEL公司的AT89S52單片機(jī)作為控制器。AT89S52的實(shí)物圖如圖23所示。原理圖如圖24。他的測(cè)量溫度范圍為55~+125℃,在10~+85℃范圍內(nèi),精度為177。DS18B20可以程序設(shè)定9~12位的分辨率,精度為177。DS18B20和DS18B22使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng)。表22 轉(zhuǎn)換后得到的12位數(shù)據(jù)表22是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的2個(gè)8bit的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0℃,則這5位為0,,如果溫度小于0℃,則這5位為1。第8個(gè)字節(jié)用于內(nèi)部計(jì)算。復(fù)位要求主CPU將數(shù)據(jù)線下拉500μs,然后釋放,DS18B20收到信號(hào)后等待16~60μs左右,后發(fā)出60~240μs低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。③ 較小的硬件開(kāi)銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此在對(duì)DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格保證讀寫時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。當(dāng)與煙霧接觸時(shí),如果晶粒間界處的勢(shì)壘受到該煙霧的調(diào)制而變化,就會(huì)引起表而電導(dǎo)率的變化。這就是MQ2型燃性煙霧傳感器檢測(cè)可燃煙霧的基本原理。這種傳感器可檢測(cè)多種可燃性氣體,是一款適合多種應(yīng)用的低成本傳感器。因此可驅(qū)動(dòng)本設(shè)計(jì)使用的數(shù)碼管。如果DIR=“0”、OE=“0”則B1輸入,對(duì)應(yīng)A1輸出。芯片轉(zhuǎn)換時(shí)間僅為32μS,有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),轉(zhuǎn)換速度快且穩(wěn)定性能好。由于DO端與DI端在通信時(shí)未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可將DO和DI并在一根數(shù)據(jù)線上使用。第1個(gè)時(shí)鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號(hào)。開(kāi)機(jī)瞬間RST引腳獲得高電平,隨著電容C1的充電,引腳的高電平將逐漸下降。—;當(dāng)VDD端口接地時(shí)使用了內(nèi)部的寄生電源。在外部供電的方式下應(yīng)注意GND引腳不能懸空,否則不能轉(zhuǎn)溫度,讀取的溫度總是85℃。當(dāng)采集到電壓后經(jīng)過(guò)AD模數(shù)轉(zhuǎn)換器將模擬量轉(zhuǎn)換為數(shù)字量。圖33 MQ2基本電路 A/D轉(zhuǎn)換ADC0832電路A/D轉(zhuǎn)換電路在本設(shè)計(jì)中采用的是數(shù)模轉(zhuǎn)換常用芯片ADC0832,煙霧傳感器的輸出端接到ADC0832的CH0。蜂鳴器為無(wú)源蜂鳴器,低電平時(shí)發(fā)出聲音,當(dāng)室內(nèi)可燃性氣體濃度、煙霧濃度或溫度超過(guò)設(shè)定的限定值時(shí),三極管導(dǎo)通,揚(yáng)聲器發(fā)出蜂鳴報(bào)警,直到有工作人員將電路斷開(kāi),或煙霧、溫度降到限值以下。如圖36所示。 本系統(tǒng)顯示用的4位七段共陽(yáng)數(shù)碼管由數(shù)碼管專用數(shù)碼驅(qū)動(dòng)芯片74HC245驅(qū)動(dòng),P2為數(shù)據(jù)段碼輸出口,74HC245的B0至B7分別接數(shù)碼管的a、b、c、d、e、f、g、dp,、分別控制4位數(shù)碼管的亮滅。綠燈亮表示室內(nèi)環(huán)境處于正常狀態(tài),環(huán)境中沒(méi)有火災(zāi)危險(xiǎn)。、單片機(jī)的P0口接上拉電阻。:限值減鍵,按此鍵當(dāng)前設(shè)定項(xiàng)報(bào)警限值逐減。然后進(jìn)入主程序的死循環(huán)中,不斷循環(huán)執(zhí)行四項(xiàng)功能:顯示數(shù)據(jù)、判斷是否手動(dòng)報(bào)警、判斷是否要設(shè)定報(bào)警值、判斷是否需要顯示精確值。 //顯示溫度和煙霧數(shù)據(jù) if(SD==0)sdong()。系統(tǒng)初始化成功后便開(kāi)始接受中斷申請(qǐng),定時(shí)中斷間隔時(shí)間為65乘以16毫秒即約1秒左右對(duì)煙霧數(shù)據(jù)和溫度數(shù)據(jù)進(jìn)行一次采樣,然后把數(shù)據(jù)送入主程序的顯示函數(shù)中等待中斷退出然后顯示。 is++。 TH0=(Time)/256。煙霧等級(jí)數(shù)據(jù)放在disdata[0]中,由主函數(shù)里的xianshi()函數(shù)調(diào)用。 { if(ywu=0)disdata[0]=0。 if(ywu80)disdata[0]=4。 disdata[3]=(t%100)/10。數(shù)據(jù)顯示子程序如下:void xianshi() //將disdata[ ]里的溫度數(shù)據(jù)在數(shù)碼管上顯示{ int key=0。key=3。//取反可變成共陰數(shù)碼管顯示 Delay(200)。報(bào)警時(shí)蜂鳴器發(fā)聲,3個(gè)通道的燈輪流閃亮,同時(shí)啟動(dòng)馬達(dá)自救工作。 while(SD==0){sign=1。系統(tǒng)自動(dòng)報(bào)警子程序如下:void Baoj(){ if(temp=tuxian || sign==1 || ywu=ybz) { Md=0。Delay(15)。p07=1。p06=1。 p05=1。 } if(sign==0) //非手動(dòng)報(bào)警 { Ledzc=1。 if(disdata[0]=yuxian){Ledybj=0。Ledrbj=1。 Ledzc=1。sound()。Delay(15)。Ledybj=1。Ledybj=1。煙霧濃度分為6個(gè)級(jí)別(0~5),P0^1為設(shè)置鍵,當(dāng)檢測(cè)到啟動(dòng)設(shè)置報(bào)警值按鍵被按下時(shí),則系統(tǒng)進(jìn)入設(shè)置程序。按“加”和“減”鍵進(jìn)行報(bào)警值的遞增、遞減設(shè)置,長(zhǎng)按設(shè)置按鍵表示確認(rèn)設(shè)置并退出,若用戶在進(jìn)入設(shè)置狀態(tài)持續(xù)6秒沒(méi)有動(dòng)作,系統(tǒng)則自動(dòng)退出到正常狀態(tài)。ts=js。(ts0)) //設(shè)置溫度報(bào)警值 { shezhi[1]=11。 ys=js。yuxian。show()。} while(SET!=0 amp。 Jian!=0) {show()。break。if(SET==0){ys=0。shezhi[1]=11。show()。shezhi[3]=tuxian/1tuxian/10*10。 delayt(300)。amp。ts。}} if(SET==0){ts=0。ts=0。 } 精確值顯示的程序在正常狀態(tài)下,數(shù)碼管上顯示的是當(dāng)前煙霧濃度的級(jí)別和當(dāng)前溫度數(shù)據(jù)的整數(shù)部分,為了讓用戶能得到當(dāng)前精確的數(shù)據(jù),、:在煙霧級(jí)別與溫度顯示的正常狀態(tài)下, 對(duì)應(yīng)的“加”鍵是“顯示當(dāng)前精確煙霧數(shù)據(jù)”的功能、 對(duì)應(yīng)的“減”鍵是“顯示當(dāng)前精確溫度數(shù)據(jù)”的功能,這兩個(gè)功能拓展了本設(shè)計(jì)的基本功能。圖44 精確值顯示程序流程圖精確值顯示程序如下:void jingque(){ if(Jia==0) { jque[0]=11。} if(yuxian==1){jque[1]=11。jque[2]=2。jque[3]=0。} if(yuxian==5){jque[1]=1。//顯示煙霧報(bào)警濃度 while(Jia!=0) //顯示當(dāng)前精確煙霧濃度 { jque[3]=ywu%10。 if(jque[0]==0){jque[0]=11。 } while(Jia==0)disjque()。jque[3]=tuxian%10。 //百位 else jque[0]=10。 //小數(shù)位 if(jque[0]==0){jque[0]=11。 tg=0。這個(gè)對(duì)話框要求選擇目標(biāo)CPU,選擇ATMEL的AT89S52。設(shè)置完成以后安確認(rèn)返回主界面,工程建立、設(shè)置完畢。在進(jìn)入Keil的調(diào)試環(huán)境以后,發(fā)現(xiàn)調(diào)試程序過(guò)程中遇到了很多問(wèn)題,總結(jié)如下:(1)編譯時(shí)候提示:Build target 39。: missing functionprototype(226): error C231: 39。: redefinitionTarget not created解決方法:在程序開(kāi)始處,對(duì)所定義的函數(shù)進(jìn)行函數(shù)申明,即可解決上述問(wèn)題。: not in formal parameter list(11): error C141: syntax error near 39。(3)程序調(diào)試時(shí)提示:*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CZHI?54LZX54LZX 0 Error(s), 1 Warning(s).解決方法:找到對(duì)應(yīng)的函數(shù),檢查函數(shù)沒(méi)有沒(méi)調(diào)用的原因。沒(méi)出現(xiàn)任何錯(cuò)誤時(shí),這時(shí)可以載入Protues進(jìn)行仿真。整個(gè)系統(tǒng)最終實(shí)現(xiàn)了預(yù)期的目標(biāo)。由于實(shí)現(xiàn)了對(duì)普通環(huán)境中煙霧濃度和溫度的實(shí)時(shí)監(jiān)控,能廣泛應(yīng)用于居民家庭、企事業(yè)單位等多方面的安全防范。這樣系統(tǒng)可以自動(dòng)控制室內(nèi)煙霧及溫度,更進(jìn)一步的降低了火災(zāi)發(fā)生的可能性。void sound()。void restzhi()。 sbit SET=P0^1。 sbit p05=P0^5。 sbit Clk=P3^1。sbit Ledzc=P3^4。 uchar led_mod[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff}。//unsigned char dat0=0x00。uchar shezhi[]={0,0,0,0}。 //int pbi=500,ts=0,ys=0,is=0,ll。 for(。j++)。 DQ=0。 x=DQ。 for (i=8。 DQ=1。 } return(dat)。 i) { DQ=0。 DQ=1。 WriteOneChar(0x44)。 float tt=0。 WriteOneChar(0xBE)。 t=8。 tflag=1。 adval=0x00。 _nop_()。 _nop_()。 Clk=1。 _nop_()。 DATI=1。 Clk=0。 _nop_()。i 8。 _nop_()。 } for (i=0。 else test |=0x00。 Clk=0。 DATO=1。 { if(ywu=0)disdata[0]=0。 if(ywu80)disdata[0]=4。 disdata[3]=(t%100)/10。pbi。 P1=~led_[key]。 for(。 Disdata=~(led_mod[shezhi[key]])。key=3。amp。 }}void jingque(){ if(Jia==0) { jque[0]=11。} if(yuxian==1){jque[1]=11。jque[2]=2。jque[3]=0。} if(yuxian==5){jque[1]=1。 while(Jia!=0) { jque[3]=ywu%10。 if(jque[0]==0){jque[0]=11。 } while(Jia==0)disjque()。jque[3]=tuxian%10。 else jque[0]=10。 if(jque[0]==0){jque[0]=11。 tg=0。 Fmbj=1。Ledybj=1。 { p05=0。sound()。Delay(15)。p07=0。p06=1。 if(temp=tuxian){Ledrbj=0。Md=0。Ledybj=0。Ledrbj=0。 Ledzc=0。sound()。Delay(5)。Md=1。ts=js。(ts0)) { shezhi[1]=11。 ys=js。yuxian。show()。} while(SET!=0 amp。 Jian!=0) {show()。break。if(SET==0){ys=0。shezhi[1]=11。show()。shezhi[3]=tuxian/1tuxian/10*10。 delayt(300)。amp。ts。}} if(SET==0){ts=0。ts=0。 }void sdong() { while(SD==0){sign=0。xianshi()。shezhi[3]=tuxian/1tuxian/10*10。 if(yuxian==3)ybz=40。 TH0=(Time)/256。 EA=1。Ledybj=1。qq=0。 }void timer0(void) interrupt 3 //{ TR0=0。} Baoj()。 } void main() { sysrest()。 if(Jia==0 || Jian==0)jingque()。還不斷傳授分析問(wèn)題和解決問(wèn)題的辦法,并指出了正確的努力方向,使我在畢設(shè)過(guò)程中少走很多彎路
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1