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

正文內(nèi)容

課程設(shè)計(jì)-基于單片機(jī)的火災(zāi)報(bào)警器設(shè)計(jì)(編輯修改稿)

2025-02-13 04:11 本頁(yè)面
 

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