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

正文內(nèi)容

基于單片機的火災(zāi)警報器設(shè)計(編輯修改稿)

2025-07-24 20:02 本頁面
 

【文章內(nèi)容簡介】 EL公司的高密度、非易失性存儲技術(shù)生產(chǎn),與標準MCS51指令系統(tǒng)及8052 產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU )和FLASH由存儲單元,功能強大的AT89C52單片適用于許多較為復(fù)雜控制應(yīng)用場合。AT89C52提供以下標準功能:8字節(jié)FLASH閃速存儲器,256字竹內(nèi)部RAM , 32個I/O口線,3個16 位定時/計數(shù)器,一個6向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C52可降至OHz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電上作模式。空閑方式停止CPU 的工作,但允許RAM,定時/計數(shù)器.串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位. 3 火災(zāi)自動報警系統(tǒng)硬件設(shè)計晶振電路為單片機AT89C52工作提供時鐘信號,芯片中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振蕩器一起構(gòu)成自激振蕩器。電路中的外接石英晶體及電容CC2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。由于外接電容CC2的容量大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,電容的容量大小范圍為;如果使用陶瓷諧振,則電容容量大小為。本設(shè)計中使用石英晶體,電容的容值設(shè)定為30pF。 復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分合過程中引起的抖動而影響復(fù)位。單片機在啟動時都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。AT89C52的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果REST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位,本設(shè)計采用的是手動按鈕復(fù)位。手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平,采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端,系統(tǒng)復(fù)位。由于人的動作再快也會使按鈕保持接通達數(shù)十毫秒,所以,設(shè)計完全能夠滿足復(fù)位的時間要求。復(fù)位電路中REST為手動復(fù)位開關(guān),電容C3可避免高頻諧波對電路的干擾。 晶振電路與復(fù)位電路MQ2氣敏元件的對不同種類、不同濃度的氣體有不同的電阻值,靈敏度的調(diào)整是很重要的。 MQ2外圍電路DS18B20采用單數(shù)據(jù)總線傳送數(shù)據(jù),即一個器件只占用一個AT89C52芯片的IO引腳,本系統(tǒng)要最多檢測8個位置,因此設(shè)計將AT89C52的P2口由于溫度采集。此設(shè)計圖中,撥碼開關(guān)SW1即模擬的是8個煙霧傳感器經(jīng)過外部電路處理后傳回來的電信號。 數(shù)據(jù)采集電路聲光報警顯示電路在AT89C52的控制下,可在外部環(huán)境異常時蜂鳴器發(fā)出警報聲,紅色led燈點亮,紅色數(shù)碼管其位置信息。AT89C52的P0口加入了大小為10K歐姆的上拉電阻,因P0口是地址數(shù)據(jù)復(fù)用口線,與其它口線不一樣。所以,當P0作普通IO時,必須用上拉電阻將其電平拉高,上拉電阻不起限流作用。以方便操作,選用了直流電壓控制型的蜂鳴器、紅色發(fā)光二級管以及紅色7段數(shù)碼管作為聲光報警顯示設(shè)備。為了簡化電路節(jié)省單片機的管腳,采用了74ls47芯片為數(shù)碼管編碼,使得本來要占用的7個單片機管腳變?yōu)橹徽加?個。考慮到之后的檢測點數(shù)目的顯示也要用7段數(shù)碼管(本設(shè)計采用藍色數(shù)碼管),因此采用了兩個74hc573芯片作為鎖存器,分別于兩個數(shù)碼管連接,使得單片機只需要控制之前的4個管腳和這兩鎖存器的兩個使能管腳便能控制兩個數(shù)碼管的顯示。至此P0口的8個管腳用掉了6個,剩余的兩個管腳分別連接蜂鳴器電路和紅色led電路即可完成此部分的設(shè)計。 聲光報警電路系統(tǒng)控制電路包含了10個按鍵和一個藍色數(shù)碼管,1~8號按鍵分別對應(yīng)著1~8號檢測位置,9號按鍵對應(yīng)系統(tǒng)中的取消報警鍵,10號按鍵對應(yīng)系統(tǒng)中的設(shè)置檢測點數(shù)目功能鍵,藍色數(shù)碼管則實時地顯示當前監(jiān)測點的個數(shù),方便用戶調(diào)整。出于節(jié)省單片機管腳的考慮,10個按鍵被連接在兩個83編碼器上。這樣使得被來要占用的10個單片機管腳變?yōu)?個。同時為了提高程序運行的效率,本設(shè)計將兩個83編碼器GS輸出端通過一個與門(74LS08)連接到單片機的外部中斷0口,這樣把中斷與管腳掃描結(jié)合一體,使得程序運行效率有了大大提高。 系統(tǒng)控制電路4 火災(zāi)報警系統(tǒng)程序設(shè)計本系統(tǒng)摒棄了傳統(tǒng)的匯編語言而采用C語言進行程序設(shè)計。因為C語言的描述由函數(shù)組成,是一種結(jié)構(gòu)化的程序設(shè)計語言,所以更容易實現(xiàn)模塊化,而且具有可讀性好,易于移植等優(yōu)點,同時還有匯編語言一樣的位操作功能的硬件詳細控制指令[29]。數(shù)據(jù)結(jié)構(gòu)方面,可以使用結(jié)構(gòu)體和數(shù)組,能夠處理復(fù)雜的數(shù)據(jù),可用于實時處理系統(tǒng)。本系統(tǒng)的軟件編程使用的是美國Keil Software公司出品的Keil C51,是51系列兼容單片機C語言軟件開發(fā)系統(tǒng)。 Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能 體現(xiàn)高級語言的優(yōu)勢。C52工具包的整體結(jié)構(gòu)中,μVision與Ishell分別是C52for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。 本系統(tǒng)主要包括數(shù)據(jù)采集子程序、火災(zāi)判斷/報警子程序與系統(tǒng)控制子程序等來實現(xiàn)設(shè)計任務(wù)的要求。主要功能要求:(1)實時檢測至多8個監(jiān)測點的環(huán)境溫度、煙霧濃度等因素變化,以判斷是否出現(xiàn)火警;(2)判定某監(jiān)控點出現(xiàn)火警時進行聲光報警,并顯示此監(jiān)控點編號;(3)能手動報警和取消報警;(4)能手動進行系統(tǒng)檢測;(5)監(jiān)控點數(shù)目可以通過鍵盤設(shè)置。程序流程圖:開始初始化判斷手動/自動檢測手動自動輪流檢測某些監(jiān)測點指定某監(jiān)測點檢測 溫度煙霧信號采集無異常報警判斷異常報警 取消報警是否取消報警結(jié)束 程序流程圖對于煙霧信息,根據(jù)電路設(shè)計可知,MQ2煙霧傳感器電路傳回單片機P1口的是高低電頻的信號。高電頻意味著沒有出現(xiàn)異常,低電頻意味著煙霧指數(shù)出現(xiàn)異常。因此,對煙霧情況的檢測實則對P1口相應(yīng)管腳上高低電頻的檢測。在讀取的同時也實現(xiàn)了判斷功能,因此也是把報警功能和取消報警功能跟煙霧數(shù)據(jù)采集結(jié)合于一體的原因。對于溫度信息,由于DS18B20是單總線傳輸數(shù)據(jù)的器件,只需根據(jù)該器件的單總線特性設(shè)計程序。每采集一次溫度信息的流程為:讀取溫度,并轉(zhuǎn)換為所需的值器件復(fù)位跳過ROM命令,設(shè)置讀模式跳過ROM命令,執(zhí)行溫度轉(zhuǎn)化命令并等待完成器件復(fù)位器件復(fù)位溫度采集子函數(shù):unsigned int temperature(unsigned char Q){ unsigned char temp1,temp2。 unsigned int temp。 rst18B20(Q)。 write18B20(Q,0xcc)。 write18B20(Q,0x44)。 rst18B20(Q)。 write18B20(Q,0xcc)。 write18B20(Q,0xbe)。 temp1=read18B20(Q)。//低8位 temp2=read18B20(Q)。//高8位 temp=temp2。 temp=8。 temp+=temp1。 temp=(unsigned int)(temp*)。 //保留一位小數(shù) return temp。}此函數(shù)中的參數(shù)值的是監(jiān)測點對應(yīng)的位置。由于電路連接對應(yīng)的是單片機的P3口,所以該函數(shù)要借助輔助子函數(shù)unsigned char getQ(unsigned char i)來將1~8轉(zhuǎn)化為P2口的P2^0~P2^7管腳即:0x01,0x02,0x04,0x10,0x20,0x40,。所以如果要檢測第8號監(jiān)測點,則本函數(shù)的調(diào)用應(yīng)該是:tmpT=temperature(getQ(8))。根據(jù)任務(wù)要求,火災(zāi)判斷報警子程序要實現(xiàn)兩個功能:、煙霧濃度值進行判斷,觸發(fā)報警;,當報警產(chǎn)生時如果被按下,則取消當前的報警,如果再次被按下,則恢復(fù)報警功能。煙霧檢測及溫度、煙霧報警判斷子函數(shù):void checkFun(unsigned char i){ unsigned char temp=0x01。 temp=(i1)。 dense=0xff。 delaynms(1)。 tmpT=temperature(getQ(i))。 if((denseamp。temp)==0){ //check dense while(((cancel%2)==0)amp。amp。((denseamp。temp)==0)){ led=0。 buzz=0。 seg7(i,2)。 } }else if(tmpTstdT){ //check temperature while(((cancel%2)==0)amp。amp。(tmpTstdT)){ tmpT=temperature(getQ(i))。 led=0。 buzz=0。 seg7(i,2)。 } } led=1。 buzz=1。 seg7(0,2)。}此函數(shù)中的參數(shù)則指的是檢測點的位置。此函數(shù)中包含了溫度采集子函unsigned int temperature(unsigned char Q)和數(shù)碼管顯示子函數(shù)。數(shù)碼管顯示子函數(shù):void seg7(unsigned char value,unsigned char lock){ if(value%2==1) AA=1。 else AA=0。 value/=2。 if(value%2==1) BB=1。 else BB=0。 value/=2。 if(value%2==1) CC=1。 else CC=0。 value/=2。 if(value%2==1) DD=1。 else DD=0。
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1