抽油煙機(jī)控制系統(tǒng)的設(shè)計(jì)_第1頁
抽油煙機(jī)控制系統(tǒng)的設(shè)計(jì)_第2頁
抽油煙機(jī)控制系統(tǒng)的設(shè)計(jì)_第3頁
抽油煙機(jī)控制系統(tǒng)的設(shè)計(jì)_第4頁
抽油煙機(jī)控制系統(tǒng)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘要目前隨著社會(huì)的開展以及人們生活水平的提高,廚房中油煙機(jī)的應(yīng)用越來越廣泛。但是傳統(tǒng)的油煙機(jī)根本上都是人為監(jiān)控,缺少煙霧濃度和溫度的檢測(cè)模塊,從而缺少相應(yīng)的觸發(fā)、調(diào)節(jié)以及控制模塊。由此時(shí)常會(huì)帶來一些比方煤氣中毒,意外火災(zāi)等事故,給人們帶來一些本來可以防止的災(zāi)難?;诖?,我們按照“以人為本”的原那么,設(shè)計(jì)和完善了現(xiàn)有的油煙機(jī)控制系統(tǒng),力求防范災(zāi)難于未然,最大限度的保護(hù)人們的生命和財(cái)產(chǎn)平安。本文采用溫度傳感器,氣體濃度傳感器,單片機(jī)芯片,LCD1602顯示芯片,模數(shù)轉(zhuǎn)換器芯片設(shè)計(jì)了一種油煙機(jī)控制系統(tǒng)??梢詫?shí)現(xiàn)溫度檢測(cè),氣體濃度檢測(cè),溫度氣體濃度顯示,調(diào)節(jié)報(bào)警上限,控制外圍驅(qū)動(dòng)電路。文中主要介紹了主控芯片相關(guān)知識(shí),外圍芯片以及電路的工作原理,各個(gè)模塊的硬件電路;表達(dá)了主程序以及各子程序的工作流程以及源代碼。關(guān)鍵詞:抽油煙機(jī);單片機(jī);傳感器;硬件設(shè)計(jì)

ABSTRACTWiththecurrentdevelopmentofsocietyandimprovepeople'slivingstandards,thekitchenhoodPetroleumwidelyapplied.However,theconventionalhoodbasicallyhumanmonitoring,lackofconcentrationandtemperatureofthesmokedetectionmodule,sothatthelackofappropriatetrigger,regulationandcontrolmodule.Thusoftenbringsomesuchgaspoisoning,accidentalfiresandotheraccidents,tobringsomeofthedisastercouldhavebeenavoided.Basedonthis,wefollowthe"people-oriented"principle,thedesignandimprovementoftheexistinghoodcontrolsystem,andstrivetopreventdisasterinthefirstplace,tomaximizetheprotectionofpeople'slivesandpropertysafety.

Inthispaper,temperaturesensors,gasconcentrationsensor,microcontrollerchips,LCD1602displaychip,ananalogchipdesign,asmokemachinecontrolsystem.Canrealizetemperaturedetection,detectionofgasconcentrations,temperature,gasconcentrationdisplay,adjustthealarmlimit,controlperipheraldrivecircuit.Thispaperintroducesthemainchip-relatedknowledge,theworkingprincipleofperipheralchipsandcircuits,eachmodulehardwarecircuit;describesthemainprogramandthesubroutineworkflowandsourcecode.KeyWords:Rangehoods;SCM;sensor;softwareflow目錄引言 2正文 3第一章 硬件電路 31.1系統(tǒng)結(jié)構(gòu)框圖 31.2微控制器AT89C51 3微控制器AT89C51 4時(shí)鐘電路 5復(fù)位電路 51.3液晶顯示模塊LCD1602 61.4溫度傳感器DS18B20 8 DS18B20溫度傳感器 8 DS18B20的工作時(shí)序 9 DS18B20的功能命令 101.5煙霧氣敏傳感器MQ-2 101.6模數(shù)轉(zhuǎn)換器ADC0832 111.7按鍵控制模塊 13第二章軟件設(shè)計(jì) 132.1主程序流程圖 132.2鍵盤中斷流程圖 142.3按鍵調(diào)節(jié)子程序 152.4定時(shí)器中斷模塊 15結(jié)論 16致謝 17附錄〔程序〕 18參考文獻(xiàn) 29引言進(jìn)入21世紀(jì),科學(xué)技術(shù)極大地方面了我們生活的各個(gè)方面,方便了人類的衣食住行。它使得人們的生產(chǎn)生活越來越趨向于自動(dòng)化智能化,使人類從自然原始的狀態(tài)更加徹底的解放出來。經(jīng)濟(jì)的開展以及社會(huì)生產(chǎn)力的普遍提高,使得人類對(duì)自身的生活條件的要求提高,追求更加舒適潔凈的生活場(chǎng)所。而家里的廚房烹飪食物所發(fā)出的煤氣,油煙,蒸汽,高溫不可防止的給我們的生活環(huán)境帶來了不利因素。人類為了追求更好的生活,20世紀(jì)以來,創(chuàng)造了比方空調(diào),暖氣,抽油煙機(jī),他們毫無疑問很大程度上方便了生活。但是傳統(tǒng)的這些孤立的設(shè)備有賴于人的控制,脫離了人的控制,這些東西就會(huì)只是這些設(shè)備,不能實(shí)現(xiàn)他們功能的最大化。要想實(shí)現(xiàn)智能控制,現(xiàn)代控制系統(tǒng)中通常有賴于智能系統(tǒng)的“眼睛”和“鼻子“,這些所謂的“眼睛”和“鼻子“就是我的所說的各種傳感器比方溫度傳感器,煙霧濃度傳感器,他們能夠代替人類的眼睛和鼻子然后代替人類進(jìn)行智能控制而且控制的更加經(jīng)精確,準(zhǔn)確,靈敏。傳感器將檢測(cè)的結(jié)果傳送給微處理器,處理器經(jīng)過數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)處理,進(jìn)而控制驅(qū)動(dòng)外圍電路,從而到達(dá)控制的目的。因此他們比人類更快速,必人類更智能,更重要的是它能夠很大程度上使人類得到解放。一般而言,作為常用烹飪?cè)O(shè)備,廚房離不開煤氣灶,而使用煤氣設(shè)備就不可防止的會(huì)產(chǎn)生油煙、水汽與乙烷等影響人類健康的甚至有毒的氣體,為了生命健康和人類生存的需要,我們通常用通風(fēng)設(shè)備來改善廚房環(huán)境。廚房是家里環(huán)境空氣污染最為嚴(yán)重的地方,其污染源有以下兩方面;一是以煤炭、煤氣、液化石油氣日常用炊火中釋放出的氧化物,氮氧化物等有毒有害氣體;二是烹飪食物時(shí)產(chǎn)生的油煙以及泄露的煤氣。當(dāng)代流行的廚房裝修大多使用開放式的設(shè)計(jì),但烹制中餐的過程會(huì)不可防止的產(chǎn)生大量油煙,由于廚房的開放性,空氣流動(dòng)空間就會(huì)擴(kuò)大,如果油煙機(jī)不能有效的排放做飯產(chǎn)生的油煙,就會(huì)很大程度上造成了整個(gè)房間油煙和廢氣的污染。因此設(shè)計(jì)一款有效,多功能的油煙機(jī)對(duì)于每個(gè)家庭而言是迫在眉睫的。下面我們將展開我們的設(shè)計(jì)理念和過程。正文硬件電路1.1系統(tǒng)結(jié)構(gòu)框圖本文采用AT89C51單片機(jī)、MQ-2可燃性氣體濃度傳感器、DS18B20溫度傳感器、LCD1602液晶顯示模塊設(shè)計(jì)的一種智能抽油煙機(jī)控制系統(tǒng)??梢詫?shí)現(xiàn)溫度檢測(cè)、氣體濃度檢測(cè)、溫度濃度顯示、按鍵調(diào)節(jié)參數(shù)數(shù)值以及外部電路驅(qū)動(dòng)等功能。具有簡(jiǎn)單實(shí)用,價(jià)格低廉,穩(wěn)定性強(qiáng),平安可靠等優(yōu)點(diǎn),有一定的實(shí)用價(jià)值。整體設(shè)計(jì)框圖如圖1.1所示。圖1.1系統(tǒng)原理及組成框圖1.2微控制器AT89C51在諸多的控制系統(tǒng)中,都以微控制器作為核心控制器件。在該控制系統(tǒng)中,微控制器一方面接收煙霧傳感器的模擬信號(hào)并進(jìn)行AD轉(zhuǎn)換,檢測(cè)溫度傳感器信號(hào)并轉(zhuǎn)換成攝氏溫度信號(hào);另一方面將實(shí)時(shí)檢測(cè)的數(shù)據(jù)顯示在液晶顯示屏,控制蜂鳴器實(shí)現(xiàn)對(duì)外界信號(hào)的報(bào)警,控制繼電器實(shí)現(xiàn)對(duì)外界電路的驅(qū)動(dòng)。與此同時(shí),通過外部中斷對(duì)報(bào)警的參數(shù)進(jìn)行調(diào)節(jié)以及手動(dòng)控制警報(bào),實(shí)現(xiàn)智能控制?;谏鲜鲈?,因此我們選用了ATMEL公司生產(chǎn)的AT89C51單片機(jī),該種型號(hào)的單片機(jī)價(jià)格適中,運(yùn)行穩(wěn)定,易于操作。實(shí)踐證明它確實(shí)能夠很好的滿足我們的要求。AT89C51單片機(jī)正常工作依靠一定的外圍電路,也就是單片機(jī)最小系統(tǒng)。AT89C51單片機(jī)最小系統(tǒng)包括:AT89C51單片機(jī)、時(shí)鐘電路、復(fù)位電路。1.2.1微控制器AT89C51AT89C51單片機(jī)是一種帶4K字節(jié)Flash的低電壓、高性能CMOS8位微處理器。該器件使用Atmel高密度非易失存儲(chǔ)器制造技術(shù),與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容,是一種高效微控制器。AT89C51單片機(jī)擁有強(qiáng)大的中斷系統(tǒng),大大調(diào)高了程序的運(yùn)行效率,能夠保證許多不同功能的實(shí)現(xiàn),其程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器可以進(jìn)行外部擴(kuò)展,從而有更大的空間來存儲(chǔ)數(shù)據(jù)。它可以使用C語言編程控制,為很多嵌入式控制系統(tǒng)提供了一種靈活高性價(jià)比的方案,在工業(yè)、農(nóng)業(yè)以及生活領(lǐng)域得到了廣泛的應(yīng)用。因此,本設(shè)計(jì)采用AT89C51單片機(jī)作為控制核心,具有價(jià)格低、易控制以及可實(shí)現(xiàn)設(shè)計(jì)所需的全部功能的特點(diǎn)。

1.內(nèi)部結(jié)構(gòu)

AT89C51單片機(jī)由中央處理器、內(nèi)部數(shù)據(jù)存儲(chǔ)器、內(nèi)部程序存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器、并行I/O口、串行口、中斷控制系統(tǒng)以及時(shí)鐘電路組成。

(1)中央處理器:簡(jiǎn)稱CPU,是單片機(jī)的核心,能夠完成運(yùn)算和控制功能。AT89C

51的CPU可以處理8位的二進(jìn)制數(shù)。

(2)內(nèi)部數(shù)據(jù)存儲(chǔ)器:簡(jiǎn)稱內(nèi)部RAM,AT89C51的共有256個(gè)RAM單元,其中前128個(gè)單元可以被用戶自由使用,可以存放數(shù)據(jù);其后128個(gè)單元供專用存放器使用。(3)內(nèi)部程序存儲(chǔ)器:簡(jiǎn)稱內(nèi)部ROM,AT89C51有4KB的掩膜ROM可以存放程序、數(shù)據(jù)表格等。(4)定時(shí)器/計(jì)數(shù)器:AT89C51有2個(gè)16位的定時(shí)器/計(jì)數(shù)器,可以實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。(5)并行I/O口:實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。(6)串行口:AT89C51有一個(gè)全雙工的串行口,可以實(shí)現(xiàn)它與其他相關(guān)設(shè)備之間的數(shù)據(jù)傳送,也可以作為同步移位器。(7)中斷系統(tǒng):AT89C51有5個(gè)中斷源,其中外部中斷2個(gè),定時(shí)器/計(jì)數(shù)器中斷2個(gè)以及1個(gè)串行中斷。全部中斷都包高、低級(jí)兩個(gè)優(yōu)先級(jí)別。2.管腳介紹AT89C51單片機(jī)芯片如圖1.2所示。VCC:電源輸入,接+5V。VSS:電源地端。XTAL1:時(shí)鐘的反相放大器輸入端。XTAL2:時(shí)鐘的反相放大器輸出端。RST:復(fù)位信號(hào),當(dāng)輸入高電平時(shí)間在2個(gè)機(jī)器周期以上系統(tǒng)立即復(fù)位。。EA/VPP:訪問程序存儲(chǔ)器控制信號(hào)。EA為低電平,對(duì)ROM的訪問從外部存儲(chǔ)器開始;EA為高電平,對(duì)ROM的訪問從內(nèi)部程序存儲(chǔ)器開始。ALE:地址鎖存控制信號(hào)端。系統(tǒng)擴(kuò)展過程中,ALE把P0口輸出的低8位地址鎖存,另外,它還可以輸出頻率為晶振六分之一的正脈沖。PSEN:外部程序存儲(chǔ)器的讀選通信號(hào)。單片機(jī)讀外部ROM時(shí),PSEN低電平有效。P0.0~P0.7口:8位雙向數(shù)據(jù)輸入輸出口線。P0口作為一般的I/O口輸出時(shí)需連接上拉電阻;當(dāng)它作為I/O輸入時(shí),須先向鎖存器寫“1”。P1.0~P1.7口:8位雙向數(shù)據(jù)輸入輸出口線。P1口作輸出無需接上拉電阻,輸入時(shí),也需向鎖存器寫“1”。P2.0~P2.7口:8位雙向數(shù)據(jù)輸入輸出口線;通常情況下,作為高位地址線使用。P3.0~P3.7口:8位雙向數(shù)據(jù)輸入輸出口線;P3口引腳第二功能:P3.0〔RXD〕,圖1.2AT89C51單片機(jī)的引腳圖可用于串行通信時(shí)數(shù)據(jù)的接收;P3.1〔TXD〕,可用于串行通信時(shí)數(shù)據(jù)的發(fā)送;P3.2〔INT0〕,可用于外部中斷0請(qǐng)求;P3.3〔INT1〕,可用于外部中斷1請(qǐng)求;P3.4〔T0〕,可用于定時(shí)器/計(jì)數(shù)器0的外部輸入;P3.4〔T1〕,可用于定時(shí)器/計(jì)數(shù)器1的外部輸入;P3.6〔WR〕,可用于外部RAM的寫選通;P3.7〔RD〕,可用于外部RAM的讀選通。1.2.2時(shí)鐘電路單片機(jī)的時(shí)鐘電路用來產(chǎn)生其工作時(shí)所需要的特定時(shí)鐘信號(hào)。AT89C51單片機(jī)內(nèi)部有一個(gè)反相放大器,它的輸入端為XTAL1,輸出端為XTAL1,XTAL1和XTAL2兩端之間需接晶體振蕩器和適宜的電容,電容起到微調(diào)的作用。從而構(gòu)成時(shí)鐘電路產(chǎn)生振蕩脈沖,振蕩脈沖經(jīng)過觸發(fā)器進(jìn)行二分頻后,方可作為時(shí)鐘信號(hào)。晶體的振蕩頻率和單片機(jī)的運(yùn)行速度呈正比,通常AT89C51單片機(jī)使用的晶體振蕩頻率為6MHZ,12MHZ,11.0592MHZ,本設(shè)計(jì)采用的是11.0592MHZ的晶體。單片機(jī)時(shí)鐘振蕩電路如圖1.3所示。圖1.3單片機(jī)時(shí)鐘振蕩電路1.2.3復(fù)位電路單片機(jī)的復(fù)位是指使CPU或者系統(tǒng)中的其他功能部件停止工作,回歸到設(shè)定的一個(gè)初始狀態(tài),然后從這個(gè)狀態(tài)開始工作。系統(tǒng)斷電后,再次上電時(shí)系統(tǒng)自動(dòng)復(fù)位,在系統(tǒng)運(yùn)行出故障時(shí),例如運(yùn)行進(jìn)入死循環(huán)時(shí),可以對(duì)其進(jìn)行復(fù)位,然后重新開始工作。由此可知,復(fù)位電路是系統(tǒng)很重要的一局部。AT89C51單片機(jī)復(fù)位的條件是:RST引腳加上一個(gè)持續(xù)二個(gè)機(jī)器周期以上的高電平。單片機(jī)的復(fù)位電路通常有兩種形式,為上電復(fù)位和按鍵復(fù)位。本設(shè)計(jì)采用的是按鍵復(fù)位,如圖1.4所示。圖1.4復(fù)位電路1.3液晶顯示模塊LCD1602字符型LCD專門用于顯示數(shù)字、字母、圖形符號(hào)及少量的自定義符號(hào)。顯示器吧LCD控制器、點(diǎn)陣驅(qū)動(dòng)器、字符存儲(chǔ)器等做在一塊板上,在與液晶屏一起組成一個(gè)顯示模塊。液晶顯示的原理是利用液晶的物理特性,通過調(diào)節(jié)電壓對(duì)顯示區(qū)域進(jìn)行控制,只需輸入所需的電壓就可以顯示出字符。LCD能夠顯示字符的關(guān)鍵在與控制器,目前大局部點(diǎn)陣型LCD都是用HD44780集成電路作為控制器。HD44780的工作原理較為復(fù)雜,但是它的使用卻相對(duì)簡(jiǎn)單。只要將待顯示字符的ASCII碼輸入到內(nèi)部數(shù)據(jù)存儲(chǔ)器,內(nèi)部電路就會(huì)自動(dòng)將字符傳送到液晶屏上進(jìn)行顯示。LCD1602價(jià)格適中,顯示位數(shù)多,靈活,易于編程,反響速度相對(duì)較快,具有背光特性,因此應(yīng)用比擬廣泛,更為廣闊電子愛好者所喜愛。1602型LCD主要技術(shù)指標(biāo)●顯示容量:16×2個(gè)字符●芯片工作電壓:4.5~5.5V●工作電流:2.0mA〔5.0V〕●標(biāo)準(zhǔn)工作電壓:5.0V1602型LCD采用標(biāo)準(zhǔn)的14引腳〔無背光〕或16引腳〔背光〕接口,其引腳圖如圖1.5所示。圖1.5LCD1602引腳圖引腳1〔VSS〕:電源地引腳2〔VDD〕:電源正極引腳3〔VL〕:反視度調(diào)整,使用可變電阻調(diào)整,一般接地引腳4〔RS〕:存放器選擇,RS=1,選擇數(shù)據(jù)存儲(chǔ)器;RS=0,選擇指令存儲(chǔ)器引腳5〔R/W〕:讀/寫選擇。R/W=1,讀;R/W=0,寫引腳6〔E〕:模塊使能端,當(dāng)E由高電平跳變成低電平時(shí),液晶模塊執(zhí)行指令引腳7〔DB0〕:雙向數(shù)據(jù)線第0位引腳8〔DB1〕:雙向數(shù)據(jù)線第1位引腳9〔DB2〕:雙向數(shù)據(jù)線第2位引腳10〔DB3〕:雙向數(shù)據(jù)線第3位引腳11〔DB4〕:雙向數(shù)據(jù)線第4位引腳12〔DB5〕:雙向數(shù)據(jù)線第5位引腳13〔DB6〕:雙向數(shù)據(jù)線第6位引腳14〔DB7〕:雙向數(shù)據(jù)線第7位引腳15〔A〕:背光顯示器電源+5V引腳16〔K〕:背光顯示器接地時(shí)序圖1602讀操作時(shí)序地址表如下1234567891011121314151600H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH1602寫操作時(shí)序依據(jù)以上論述,LCD1602和51單片機(jī)可有如下連接由于單片機(jī)內(nèi)P0口無上拉電阻,沒有驅(qū)動(dòng)負(fù)載的能力,因此在驅(qū)動(dòng)LCD1602數(shù)據(jù)總線時(shí),需要外接上拉電阻。1.4溫度傳感器DS18B20DS18B20溫度傳感器是美國(guó)DALLAS公司推出的單總線器件,它具有很多優(yōu)點(diǎn),例如:低功耗、高性能、體積小、線路連接簡(jiǎn)單等特點(diǎn),它可以直接把傳感器測(cè)到的溫度數(shù)據(jù)轉(zhuǎn)換成單片機(jī)可以處理的二進(jìn)制數(shù),并且可以在一根總線上掛接多個(gè)溫度傳感器,實(shí)現(xiàn)溫度的多點(diǎn)測(cè)量。應(yīng)用范圍廣泛,可以適應(yīng)多種復(fù)雜的環(huán)境。DS18B20溫度傳感器1.DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有微型化、低功耗、高性能、抗干擾能力強(qiáng)等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)給單片機(jī)處理,因而可以省去傳統(tǒng)的信號(hào)放大、A/D轉(zhuǎn)換等外圍電路。具有以下特點(diǎn):〔1〕只需一個(gè)端口引腳就可以進(jìn)行通信;〔2〕每個(gè)DS18B20上都有唯一的序列號(hào);〔3〕其測(cè)溫范圍為-55度~+125度,測(cè)溫范圍廣;〔4〕其分辨率可在9~12位之間選擇,能夠滿足對(duì)溫度不同精度的要求;〔5〕其內(nèi)部有溫度上下限報(bào)警的設(shè)置;〔6〕其把溫度轉(zhuǎn)換為二進(jìn)制數(shù)的時(shí)間為93.78ms到750ms,顯示速度;2.TO-92封裝的DS18B20的如圖1.6所示,其引腳功能描述見表2-1:圖1.6TO-92封裝的DS18B20序號(hào)名稱引腳功能描述1GND地信號(hào)2DQ數(shù)字輸入輸出引腳,單總線接口引腳,如果使用寄生電源時(shí),能夠向電源提供電源3VDD電源引腳,如果傳感器使用寄生電源工作,該引腳接地表2-1DS18B20引腳功能DS18B20的工作時(shí)序DS18B20的工作時(shí)序包括初始化、寫時(shí)序、和讀時(shí)序,如圖1.6所示:〔a)初始化〔b〕讀時(shí)序〔c〕寫時(shí)序圖1.6DS18B20的工作時(shí)序初始化時(shí)序:?jiǎn)纹瑱C(jī)輸出高電平將數(shù)據(jù)線置位高電平,延時(shí)〔盡可能短一些〕;單片機(jī)輸出低電平將數(shù)據(jù)線拉低,延時(shí)480~960us后釋放,延時(shí)等待15~60us,DS18B20會(huì)輸出一個(gè)持續(xù)60~240us的低電平脈沖,單片機(jī)接收到此應(yīng)答后就可以進(jìn)行操作,否那么繼續(xù)重復(fù)前面步驟,直到最后檢測(cè)到低電平脈沖為止,然后將數(shù)據(jù)線拉高。寫時(shí)序:?jiǎn)纹瑱C(jī)將數(shù)據(jù)線的數(shù)據(jù)線先置低電平0。延時(shí)確定的時(shí)間為15us。從低位到高位發(fā)送數(shù)據(jù),一次只發(fā)送一位,延時(shí)45us后,將數(shù)據(jù)線拉高,繼續(xù)重復(fù)前面步驟,直到整個(gè)字節(jié)發(fā)送完,最后拉高數(shù)據(jù)線。讀時(shí)序:?jiǎn)纹瑱C(jī)將數(shù)據(jù)線從高電平拉低,使讀時(shí)序初始化,假設(shè)15us后,單片機(jī)檢測(cè)到低電平,那么從DS18B20讀到“0”,假設(shè)15us后檢測(cè)到高電平,那么從DS18B20讀到“1”。DS18B20的功能命令DS18B20的功能命令均為8位字長(zhǎng),常見的命令代碼如表2-2。功能描述代碼啟動(dòng)溫度轉(zhuǎn)換44H讀暫存器內(nèi)容BEH讀DS18B20的序列號(hào)33H報(bào)警搜索ECH跳過讀序列號(hào)的操作CCH讀電源供應(yīng)方式,0為寄生電源;1為外部電源B4H匹配ROM55H把數(shù)據(jù)寫入暫存器的第2、3字節(jié)4EH表2-2DS18B20的功能命令1.5煙霧氣敏傳感器MQ-2MQ-2氣體傳感器所使用的氣敏材料是在清潔空氣中電導(dǎo)率較低的二氧化錫(SnO2)。當(dāng)傳感器所處環(huán)境中存在可燃?xì)怏w時(shí),傳感器的電導(dǎo)率隨空氣中可燃?xì)怏w濃度的增加而增大。使用簡(jiǎn)單的電路即可將電導(dǎo)率的變化轉(zhuǎn)換為與該氣體濃度相對(duì)應(yīng)的輸出信號(hào)。MQ-2氣體傳感器對(duì)液化氣、丙烷、氫氣的靈敏度高,對(duì)天然氣和其它可燃蒸汽的檢測(cè)也很理想?!?〕電氣性能:●輸入電壓:DC5V

●功耗〔電流〕:150mA●DO輸出:TTL數(shù)字量0和1〔0.1和5V〕●AO輸出:0.1-0.3V〔相對(duì)無污染〕,最高濃度電壓4V左右〔2〕接線方式:

VCC:接電源正極〔5V〕

GND:接電源負(fù)極

DO:TTL開關(guān)信號(hào)輸出,輸出數(shù)字信號(hào)0和1

AO:模擬信號(hào)輸出,接模數(shù)轉(zhuǎn)換器ADC08321.6模數(shù)轉(zhuǎn)換器ADC0832模擬信號(hào)經(jīng)過采樣、保持、量化和編碼后就可以轉(zhuǎn)換成數(shù)字信號(hào),這個(gè)轉(zhuǎn)換過程叫做A/D轉(zhuǎn)換。A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)●轉(zhuǎn)換時(shí)間:從發(fā)出啟動(dòng)轉(zhuǎn)換命令到轉(zhuǎn)換結(jié)束獲得數(shù)字信號(hào)為止所需要的時(shí)間●分辨率:表示轉(zhuǎn)換器對(duì)微小輸入量變化的敏感程度,通常用轉(zhuǎn)換器輸出數(shù)字量的位來表示●轉(zhuǎn)換精度:指轉(zhuǎn)換后的結(jié)果相對(duì)于實(shí)際值的準(zhǔn)確度,用滿量程的百分比來表示ADC0832是8引腳雙列直插式雙通道A/D轉(zhuǎn)換器,它能分別對(duì)兩路模擬信號(hào)實(shí)現(xiàn)模/數(shù)轉(zhuǎn)換。具有體積小、兼容性強(qiáng)、性價(jià)比高、占用I/O口少等優(yōu)點(diǎn),因此應(yīng)用非常廣泛。ADC0832引腳圖如圖1.4所示。圖1.4ADC0832引腳圖ADC0832引腳圖說明如下:CS:片選端,低電平選中芯片CH0:模擬輸入通道0CH1:模擬輸入通道1GND:芯片接地端DI:數(shù)據(jù)信號(hào)輸入,選擇通道控制DO:數(shù)據(jù)信號(hào)輸出,轉(zhuǎn)換數(shù)據(jù)輸出CLK:芯片時(shí)鐘輸入VCC:電源輸入端ADC0832的工作時(shí)序圖如圖1.5所示●當(dāng)DI依次輸入1、0時(shí),只對(duì)CH0通道進(jìn)行點(diǎn)通道轉(zhuǎn)換●當(dāng)DI依次輸入1、1時(shí),只對(duì)CH1通道進(jìn)行點(diǎn)通道轉(zhuǎn)換●當(dāng)DI依次輸入0、0時(shí),將CH0作為正輸入端,CH1作為負(fù)輸入端●當(dāng)DI依次輸入1、0時(shí),將CH0作為負(fù)輸入端,CH1作為正輸入端正常情況下,ADC0832與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO和DI兩個(gè)端口的值在通信時(shí)并未同時(shí)使用,而是由DI端口輸入兩位數(shù)據(jù)〔0或1〕來選擇通道控制,再由DO端口輸出數(shù)據(jù),因此,在I/O口資源緊張時(shí),可以將圖1.5ADC0832的工作時(shí)序圖DO和DI并聯(lián)在一根數(shù)據(jù)線上使用。由于該系統(tǒng)需要I/O數(shù)量較多,因此我們采用單口連接,以節(jié)省單片機(jī)端口,其接線方式如圖1.6所示圖中CH0接傳感器輸出信號(hào),要求接入信號(hào)強(qiáng)度范圍在0到參考電壓之間。圖1.6單片機(jī)與ADC0832接口1.7按鍵控制模塊按鍵控制電路如圖1.7所示,系統(tǒng)通過P1.0和P1.1口的按鍵引發(fā)中斷,在中斷效勞程序中設(shè)置按鍵的報(bào)警上限,由于51單片機(jī)是下降沿觸發(fā)中斷,所以與非門之后還需要接入非門以滿足觸發(fā)要求。P1.2和P1.3用來控制報(bào)警上限的加一和減一,而且只有在系統(tǒng)在執(zhí)行中斷效勞程序時(shí)才能發(fā)揮控制作用,以維持顯示屏的顯示穩(wěn)定性。值得注意的是,由于按鍵抖動(dòng),需要在軟件編程時(shí)參加去抖動(dòng)程序。圖1.7按鍵控制電路第二章軟件設(shè)計(jì)2.1主程序流程圖主程序流程圖如圖2.1所示。圖2.1主程序流程圖主程序中預(yù)顯示的內(nèi)容是在顯示器上倒計(jì)時(shí)10秒,這樣能夠讓傳感器提前上電預(yù)熱一段時(shí)間,使得之后的顯示更加穩(wěn)定,也能防止溫度傳感器最初始的85℃。在煙霧濃度顯示模塊包括煙霧傳感器和模數(shù)轉(zhuǎn)換模塊,傳感器輸出0~5V電壓,所以該模塊的主要功能是A/D轉(zhuǎn)換。在溫度顯示模塊主要是對(duì)溫度的實(shí)時(shí)采集和轉(zhuǎn)換。由于該傳感的內(nèi)部初值的原因使得剛開始顯示的數(shù)值為85℃,所以在第一次顯示之前需讓內(nèi)部初值先讀出來,這樣可以有效的防止這種系統(tǒng)錯(cuò)誤。由于報(bào)警、控制子程序都是些最根底的判斷語句,所以下面就不列出流程圖了。2.2鍵盤中斷流程圖鍵盤中斷流程圖如圖2.2所示圖2.2鍵盤中斷流程圖按鍵觸發(fā)中斷進(jìn)入中斷效勞程序后,系統(tǒng)通過識(shí)別具體按鍵編號(hào)來執(zhí)行不同顯示子程序,從而到達(dá)調(diào)節(jié)的目的。2.3按鍵調(diào)節(jié)子程序按鍵調(diào)節(jié)子程序如圖2.3所示在中斷程序中,主體局部重復(fù)運(yùn)行250次,如果在這期間P1.2和P1.3上的按鍵沒有動(dòng)作,中斷函數(shù)執(zhí)行完之后系統(tǒng)會(huì)自動(dòng)返回主函數(shù),中斷函數(shù)大約會(huì)執(zhí)行兩秒,否那么中斷函數(shù)還會(huì)繼續(xù)延時(shí)兩秒。如果在這期間檢測(cè)到按鍵按下,那么系統(tǒng)會(huì)通過按鍵調(diào)節(jié)上限的設(shè)定值,并能夠在主函數(shù)中動(dòng)態(tài)顯示出來。2.4定時(shí)器中斷模塊這局部主要用來控制蜂鳴器發(fā)聲,但輸出頻率不同時(shí),聲音的音調(diào)不同,這樣人們可以通過區(qū)分不同的音調(diào)就來判斷是溫度還是煙霧濃度局部的觸發(fā)。定時(shí)器模塊是通過賦予不同定時(shí)初值來調(diào)節(jié)不同的頻率,軟件編程包括初始化〔包括定時(shí)器賦初值〕判斷觸發(fā)條件,開〔閉〕中斷,進(jìn)入中斷,定時(shí)器賦初值,判斷觸發(fā)條件……以此順序循環(huán)下去。由于中斷程序較少且在多個(gè)程序中同時(shí)出現(xiàn),不便寫出流程圖,這里只做大致描述。圖2.3按鍵調(diào)節(jié)子程序結(jié)論從上學(xué)期就陸續(xù)的開始準(zhǔn)備畢業(yè)設(shè)計(jì),到現(xiàn)在為止根本完成了畢業(yè)設(shè)計(jì)所包含的任務(wù),其間,經(jīng)歷了很多,學(xué)到了很多,也很有感悟。雖然曾經(jīng)迷茫過,為難過,但也激起了我對(duì)本專業(yè)的極大興趣,鼓勵(lì)我朝著這條路一直走下去。畢業(yè)設(shè)計(jì)一路走來,從寫開題報(bào)告開始,著手前期資料準(zhǔn)備,中期報(bào)告,開始硬件電路設(shè)計(jì),嘗試軟件編程,畫仿真電路圖,調(diào)試程序,正式搭建硬件電路,再次調(diào)試程序,完成論文。學(xué)到了之前沒有接觸到的東西,開闊了眼界,增長(zhǎng)了見識(shí)。因?yàn)橹岸际蔷幰恍┫鄬?duì)較小的程序,當(dāng)突然接觸一些很大的程序時(shí),會(huì)自然感覺到手足無措,很是為難,可是當(dāng)自己沉下心來,將每一個(gè)程序分開進(jìn)行研究,各個(gè)擊破之后,就會(huì)對(duì)程序的整體有個(gè)大致的概念。因?yàn)樵谇捌跍?zhǔn)備階段看過不少類似這樣的程序,隨著學(xué)習(xí)練習(xí)的深入,對(duì)程序的結(jié)構(gòu),語法知識(shí),常見算法就會(huì)慢慢的熟悉起來,最后編程時(shí)自然會(huì)得心應(yīng)手。以前在學(xué)習(xí)單片機(jī)的時(shí)候,接觸到的一些接口電路都很根底,也不會(huì)涉及驅(qū)動(dòng)電路,濾波電路等典型的模擬電路。但是一些常見的外圍器件比方溫度傳感器DS18B20,煙霧傳感器,超聲波傳感器等一些相對(duì)復(fù)雜的器件就在我們的掌握范圍之外了,這時(shí)培養(yǎng)自己的學(xué)習(xí)能力就顯得尤為重要,因?yàn)榇笄澜?,各種器件,我們不可能掌握所的東西,但是當(dāng)我們學(xué)會(huì)學(xué)習(xí)的時(shí)候,我們就“無敵”了。正所謂“授人以魚不如授人以漁”。盡管我準(zhǔn)備的還算比擬充分,但是還是遇到了好多問題,這里就兩個(gè)主要的問題作簡(jiǎn)要說明。第一,是關(guān)于溫度傳感器的,當(dāng)我們按照正常的步驟編程后,發(fā)現(xiàn)最初顯示的溫度是85℃,大約會(huì)顯示一秒,然后恢復(fù)正常顯示。我本來以為這是系統(tǒng)錯(cuò)誤,消除不了,后來通過查找資料,我發(fā)現(xiàn),這是溫度傳感器初始化的問題,可以通過軟件編程的方式加以消除。只需讓溫度傳感器提前工作幾秒鐘,而液晶顯示器不顯示此時(shí)溫度值,然后再恢復(fù)正常顯示,就會(huì)有效的消除這一系統(tǒng)錯(cuò)誤。第二,當(dāng)我仿真完成后,就著手開始搭建硬件電路,等我按照仿真電路圖搭建電路圖時(shí),發(fā)現(xiàn)仿真圖的器件和實(shí)際的器件是由差異的,導(dǎo)致了我剛開始的焊接出現(xiàn)了大量的問題,反復(fù)修改,后來我就干脆先把所有用到的元器件全部拿來比對(duì),比擬它們之間的差異,然后按照仿真圖畫實(shí)際電路圖,最后進(jìn)行焊接,這樣就有效的減少了失誤。由于在本次設(shè)計(jì)中,好多東西都是第一次接觸,所以遇到了好多意想不到的錯(cuò)誤,我相信通過以后不斷努力的學(xué)習(xí),我會(huì)更加熟練地掌握所學(xué)的知識(shí),并將之用于實(shí)踐當(dāng)中,使科學(xué)技術(shù)轉(zhuǎn)化為生產(chǎn)力,為社會(huì)主義建設(shè)做奉獻(xiàn)。致謝經(jīng)過十三周的學(xué)習(xí)努力,我終于完成了自己的抽油煙機(jī)控制系統(tǒng)的設(shè)計(jì),在此首先衷心感謝***老師給予我的指導(dǎo)和幫助。這個(gè)設(shè)計(jì)的題目是老師親自幫我選的,在畢業(yè)設(shè)計(jì)工作剛開始的時(shí)候,我完全處于茫然狀態(tài),因?yàn)橹耙恢睕]有系統(tǒng)性的做過這種相關(guān)的課題,所以不知道從哪方面開始,經(jīng)過耿老師的提示和分析,我很快確定了大概的設(shè)計(jì)方向,通過查閱相關(guān)的資料,我逐步確立了自己的課題的設(shè)計(jì)目標(biāo),從而開始正式著手設(shè)計(jì)。在畢業(yè)設(shè)計(jì)的后期,耿老師又給我的論文和實(shí)物提出了一些建設(shè)性的意見,使我的設(shè)計(jì)更加合理。她的和藹的態(tài)度、嚴(yán)格的要求以及精益求精的工作作風(fēng)給我留下了深刻的印象,我不僅從她那里學(xué)到了很多知識(shí),也學(xué)到一些做人的道理。除此之外,我還要感謝身邊的一些同學(xué),他們和我一起并肩學(xué)習(xí)生活四年,在我需要幫助的的時(shí)候都會(huì)無私的援助之手,并且給我提出一些建議,使我在大學(xué)四年有了很大進(jìn)步。尤其是畢業(yè)設(shè)計(jì)這段枯燥的時(shí)間,他們不僅給予我提供了設(shè)計(jì)方面的幫助,還給我以精神上的鼓勵(lì),使我在這段時(shí)間一直過得充實(shí)快樂,順利的完成了畢業(yè)設(shè)計(jì)。最后,我要深深的感謝我的母校—**大學(xué),是它給我提供了這樣一個(gè)學(xué)習(xí)交流的平臺(tái),讓我在這里能夠取得很大的進(jìn)步和提高。在這個(gè)大環(huán)境中,一方面,我學(xué)習(xí)到了自己的專業(yè)知識(shí),開發(fā)了自己對(duì)這個(gè)領(lǐng)域的興趣,通過刻苦學(xué)習(xí),提高了自己的專業(yè)素養(yǎng),培養(yǎng)了自己對(duì)新事物的學(xué)習(xí)能力,使自己能夠在以后的工作中和接觸新事物的過程中做到游刃有余;另一方面,大學(xué)提供了很多的鍛煉時(shí)機(jī),讓我能夠在鍛煉中學(xué)到與人、處事的道理,為自己以后的開展奠定了根底。附錄〔程序〕#include<reg51.h>//包含單片機(jī)存放器的頭文件#include<intrins.h>//包含_nop_()函數(shù)定義的頭文件#include<math.h> //根本數(shù)學(xué)計(jì)算#defineLCD_DBP0#defineucharunsignedchar#defineuintunsignedintsbitCS=P2^4;//將CS位定義為P3.4引腳sbitCLK=P2^6;//將CLK位定義為P1.0引腳sbitDIO=P2^7;//將DIO位定義為P1.1引腳sbitLCD_RS=P2^0;//存放器選擇位,將RS位定義為P2.0引腳sbitLCD_RW=P2^1;//讀寫選擇位,將RW位定義為P2.1引腳sbitLCD_E=P2^2;//使能信號(hào)位,將E位定義為P2.2引腳 sbitwendu=P1^0; //溫度中斷控制位sbitnongdu=P1^1; //煙霧濃度中斷控制位sbitDEC=P1^3; //上限加一位sbitINC=P1^2; //上限減一位sbitCT=P1^4; //溫度控制位sbitCN=P1^5; //濃度控制位sbitsound0=P1^6; //溫度上限報(bào)警位sbitsound1=P1^7; //煙霧濃度上限報(bào)警位charWH=40; //溫度上限值charNHH=2; //煙霧濃度上限整數(shù)位charNHL=50; //煙霧濃度上限小數(shù)位ucharTL;//儲(chǔ)存暫存器的溫度低位ucharTH;//儲(chǔ)存暫存器的溫度高位ucharTN;//儲(chǔ)存溫度的整數(shù)局部ucharTD;//儲(chǔ)存溫度的小數(shù)局部ucharInt,Dec;//分別儲(chǔ)存轉(zhuǎn)換后的整數(shù)局部與小數(shù)局部voiddelay1ms() //延時(shí)1ms{uchari,j; for(i=0;i<10;i++) for(j=0;j<33;j++) ; }voiddelaynms(uintn) //延時(shí)nms{uinti; for(i=0;i<n;i++) delay1ms();}voiddelay_n10us(uintn) //延時(shí)10微妙,做1602顯示用{uinti;for(i=n;i>0;i--){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}}voidLCD_write_command(uchardat) //寫指令{delay_n10us(10);LCD_RS=0;LCD_RW=0;LCD_E=1;LCD_DB=dat;delay_n10us(10);LCD_E=0;delay_n10us(10);}voidLCD_write_data(uchardat) //寫數(shù)據(jù){delay_n10us(10);LCD_RS=1;LCD_RW=0;LCD_E=1;LCD_DB=dat;delay_n10us(10);LCD_E=0;delay_n10us(10);}voidLCD_disp_char(ucharx,uchary,uchardat) //在既定的行列寫數(shù)據(jù){ucharaddress;if(y==1)address=0x80+x;elseaddress=0xc0+x;LCD_write_command(address);LCD_write_data(dat);}voidLCD_disp_str(ucharx,uchary,uchar*str) //在既定的行列寫字符{ucharaddress;if(y==1)address=0x80+x;elseaddress=0xc0+x;LCD_write_command(address);while(*str!='\0'){LCD_write_data(*str);str++;}}voidLCD_init() //LCD初始化{delay_n10us(10);LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7delay_n10us(10);LCD_write_command(0x0c);//開顯示,關(guān)光標(biāo),不閃爍delay_n10us(10);LCD_write_command(0x06);//設(shè)定輸入方式,增量不移位delay_n10us(10);LCD_write_command(0x01);//去除屏幕顯示delay_n10us(100);//延時(shí)清屏,延時(shí)函數(shù),延時(shí)約n個(gè)10us}unsignedcharA_D() //{uchari,dat;CS=1;//一個(gè)轉(zhuǎn)換周期開始CLK=0;//為第一個(gè)脈沖作準(zhǔn)備CS=0;//CS置0,片選有效DIO=1;//DIO置1,規(guī)定的起始信號(hào)CLK=1;//第一個(gè)脈沖CLK=0;//第一個(gè)脈沖的下降沿,此前DIO必須是高電平DIO=1;//DIO置1,通道選擇信號(hào)CLK=1;//第二個(gè)脈沖,第2、3個(gè)脈沖下沉之前,DI必須跟別輸入兩位數(shù)據(jù)用于選擇通道,這里選通道CH0CLK=0;//第二個(gè)脈沖下降沿DIO=0;//DI置0,選擇通道0CLK=1;//第三個(gè)脈沖CLK=0;//第三個(gè)脈沖下降沿DIO=1;//第三個(gè)脈沖下沉之后,輸入端DIO失去作用,應(yīng)置1CLK=1;//第四個(gè)脈沖for(i=0;i<8;i++)//高位在前{CLK=1;//第四個(gè)脈沖CLK=0;dat<<=1;//將下面儲(chǔ)存的低位數(shù)據(jù)向右移 dat|=(unsignedchar)DIO; //將輸出數(shù)據(jù)DIO通過或運(yùn)算儲(chǔ)存在dat最低位} CS=1;//片選無效 returndat; //將讀書的數(shù)據(jù)返回}sbitDQ=P2^3;uchartime;//設(shè)置全局變量,專門用于嚴(yán)格延時(shí)bitInit_DS18B20(void) {bitflag;//儲(chǔ)存DS18B20是否存在的標(biāo)志,flag=0,表示存在;flag=1,表示不存在DQ=1;//先將數(shù)據(jù)線拉高for(time=0;time<2;time++)//略微延時(shí)約6微秒;DQ=0;//再將數(shù)據(jù)線從高拉低,要求保持480~960usfor(time=0;time<200;time++)//略微延時(shí)約600微秒;//以向DS18B20發(fā)出一持續(xù)480~960us的低電平復(fù)位脈沖DQ=1;//釋放數(shù)據(jù)線〔將數(shù)據(jù)線拉高〕for(time=0;time<10;time++);//延時(shí)約30us〔釋放總線后需等待15~60us讓DS18B20輸出存在脈沖〕flag=DQ;//讓單片機(jī)檢測(cè)是否輸出了存在脈沖〔DQ=0表示存在〕for(time=0;time<200;time++)//延時(shí)足夠長(zhǎng)時(shí)間,等待存在脈沖輸出完畢;return(flag);//返回檢測(cè)成功標(biāo)志}ucharReadOneChar(void){ uchari=0; uchardat;//儲(chǔ)存讀出的一個(gè)字節(jié)數(shù)據(jù) for(i=0;i<8;i++) { DQ=1;//先將數(shù)據(jù)線拉高 _nop_(); //等待一個(gè)機(jī)器周期 DQ=0;//單片機(jī)從DS18B20讀書據(jù)時(shí),將數(shù)據(jù)線從高拉低即啟動(dòng)讀時(shí)序 dat>>=1; _nop_();//等待一個(gè)機(jī)器周期 DQ=1;//將數(shù)據(jù)線"人為"拉高,為單片機(jī)檢測(cè)DS18B20的輸出電平作準(zhǔn)備 for(time=0;time<2;time++);//延時(shí)約6us,使主機(jī)在15us內(nèi)采樣 if(DQ==1) dat|=0x80;//如果讀到的數(shù)據(jù)是1,那么將1存入dat else dat|=0x00;//如果讀到的數(shù)據(jù)是0,那么將0存入dat //將單片機(jī)檢測(cè)到的電平信號(hào)DQ存入r[i] for(time=0;time<8;time++) ;//延時(shí)3us,兩個(gè)讀時(shí)序之間必須有大于1us的恢復(fù)期 } return(dat);//返回讀出的十進(jìn)制數(shù)據(jù)}WriteOneChar(uchardat){ uchari=0; for(i=0;i<8;i++) { DQ=1;//先將數(shù)據(jù)線拉高 _nop_(); //等待一個(gè)機(jī)器周期 DQ=0;//將數(shù)據(jù)線從高拉低時(shí)即啟動(dòng)寫時(shí)序 DQ=dat&0x01;//利用與運(yùn)算取出要寫的某位二進(jìn)制數(shù)據(jù),//并將其送到數(shù)據(jù)線上等待DS18B20采樣 for(time=0;time<10;time++) ;//延時(shí)約30us,DS18B20在拉低后的約15~60us期間從數(shù)據(jù)線上采樣 DQ=1;//釋放數(shù)據(jù)線 for(time=0;time<1;time++) ;//延時(shí)3us,兩個(gè)寫時(shí)序間至少需要1us的恢復(fù)期 dat>>=1;//將dat中的各二進(jìn)制位數(shù)據(jù)右移1位 } for(time=0;time<4;time++) ;//稍作延時(shí),給硬件一點(diǎn)反響時(shí)間}voidReadyReadTemp(void){Init_DS18B20();//將DS18B20初始化 WriteOneChar(0xCC);//跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0x44);//啟動(dòng)溫度轉(zhuǎn)換 for(time=0;time<100;time++) ; //溫度轉(zhuǎn)換需要一點(diǎn)時(shí)間 Init_DS18B20();//將DS18B20初始化 WriteOneChar(0xCC);//跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE);//讀取溫度存放器,前兩個(gè)分別是溫度的低位和高位 }voiddisplay1() //分頁顯示溫度{uchari,k;LCD_disp_str(0,1,"current:.");LCD_disp_char(13,1,0xdf);LCD_disp_str(14,1,"C");LCD_disp_str(0,2,"Top:"); LCD_disp_char(6,2,0xdf);LCD_disp_str(7,2,"C");for(k=0;k<250;k++){LCD_disp_char(8,1,TN/100+'0');LCD_disp_char(9,1,(TN%100)/10+'0');LCD_disp_char(10,1,TN%10+'0');LCD_disp_char(12,1,TD+'0');LCD_disp_char(4,2,WH/10+'0');LCD_disp_char(5,2,WH%10+'0'); for(i=0;i<100;i++){ if(WH<99) { if(INC==0){ delaynms(100); if(INC==0) { k=0; WH++; }} } if(WH>10) {if(DEC==0) { delaynms(100); if(DEC==0) { k=0; WH--; }} } }}LCD_disp_str(0,1,"con:.");LCD_disp_str(0,2,"temp:.");LCD_disp_char(10,2,0xdf); LCD_disp_str(11,2,"C");}voiddisplay2() //分頁顯示煙霧濃度{uchari,k;LCD_disp_str(0,1,"current:.");LCD_disp_str(0,2,"Top:.");for(k=0;k<250;k++){LCD_disp_char(8,1,Int+'0'); LCD_disp_char(10,1,Dec/10+'0'); LCD_disp_char(11,1,Dec%10+'0');LCD_disp_char(4,2,NHH+'0');LCD_disp_char(6,2,NHL/10+'0'); for(i=0;i<100;i++){if(NHH<5) { if(INC==0){ delaynms(100); if(INC==0) { k=0; NHL=NHL+10; if(NHL==100) {NHL=0;NHH++;} }} } if(NHH>0) {if(DEC==0) { delaynms(100); if(DEC==0) { k=0; if(NHL==0) {NHL=100;NHH--;} NHL=NHL-10;} }}}}LCD_disp_str(0,1,"con:.");LCD_disp_str(0,2,"temp:.");LCD_disp_char(10,2,0xdf); LCD_disp_str(11,2,"C");}voidmain() {uintAD_val;//儲(chǔ)存A/D轉(zhuǎn)換后的值 chari; CT=0; //控制位初始化為0 CN=0; sound0=0; sound1=0; EA=1; //中斷初始化EX0=1;IT0=1; ET1=1; ET0=1; TMOD=0x11; TH0=0; TL0=0; TH1=(65536-921)/256; TH1=(65536-921)%256; LCD_init(); delaynms(5); ReadyReadTemp();//讀溫度準(zhǔn)備 LCD_disp_str(0,1,"Please

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論