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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

1.內部結構

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

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

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

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

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

VCC:接電源正極〔5V〕

GND:接電源負極

DO:TTL開關信號輸出,輸出數(shù)字信號0和1

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論