版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 第1章 緒論</b></p><p><b> 1.1 引言</b></p><p> 人們對工作環(huán)境生活環(huán)境的空氣質量的要求隨著人們生活水平提高也水漲船高,對空氣質量監(jiān)測及控制也開始關注起來。智能化的排氣系統(tǒng)的產生是科技智能化自動化趨勢的必然產物。一款款低耗智能的排氣扇控制器針對傳統(tǒng)的電氣開關控制器太耗人力、開
2、關產生電火花、浪費現象嚴重等缺點應運而生。智能排氣扇控制器針對用戶的需求達到了對空氣質量監(jiān)測和控制的目的。</p><p> 本設計基于AT89C51單片機,有按鍵控制以及可視化的用戶操作端設計,能實現定時控制循環(huán)運行的排氣扇控制效果。實乃居家辦公必備。</p><p> 1.2 排氣扇控制器的研究背景</p><p> 排氣裝置的使用可謂歷史悠久,即便在沒有
3、現代先進設備的古代也講究房屋的通風透氣。電動機出現后排氣扇的使用就很普遍了,而對排氣扇控制由人工電器開關到現在的各種智能化控制,一直是緊緊跟隨著科技發(fā)展的腳步的。</p><p> 在控制器設計趨于自動智能化的今天,老式的電氣開關已不能滿足廣大人民的需求。很多的環(huán)境對空氣的質量都要求比較高,大到醫(yī)院、化工廠房、儲物倉庫、大型的工廠廠房,小至廚房油煙問題、廁所、電腦機箱等,如果是簡單的電氣開關,如何滿足對大規(guī)模的
4、排氣裝置控制,未免太耗人力,同時也會造成許多不必要的能源浪費。又比如在某些特殊的環(huán)境里,排氣扇電氣開關產生的電火花可能會引起安全事故,極為不便。</p><p> 在當今科技飛速發(fā)展的時代,電子技術、傳感器技術等多種有利于工業(yè)生產和日常生活的技術的日趨成熟,也就為實現排氣扇控制器的電子化、信息化、科學化提供了可能。目前市場上已經出現了各種形式的排氣扇控制器,大致分為排氣換氣、排氣散熱兩大類作用??刂破鞯脑O計方向
5、也趨于微型、智能自動、電子化發(fā)展。</p><p> 1.3 排氣扇控制器的發(fā)展前景</p><p> 隨著形形色色的傳感器的發(fā)明和與其相應配套的應用技術日趨成熟,現今的排氣裝置也與傳感器掛上了鉤,排氣裝置在裝有不同傳感器的控制器控制下能在各色各樣的環(huán)境中出色的完成對空氣質量監(jiān)控和控制的任務。溫度傳感器可應用于對環(huán)境空氣溫度的監(jiān)測和控制上,小舉一例,如電腦風箱,如果電腦主板過熱則會導致
6、電腦運行速度減慢出現死機卡機的現象嚴重會燒壞元件,在溫度傳感器監(jiān)測下,當溫度超過預警值時候則會發(fā)出信號給排氣控制系統(tǒng)啟動排氣扇達到散熱降溫的效果。又如煙霧傳感器,廁所里如果裝有煙霧傳感器控制系統(tǒng)的排氣扇,則可以在第一時間把在吸煙者在廁所的制造出來的煙霧排除廁所,使公共場所的環(huán)境衛(wèi)生能有效的保持潔凈。總而言之排氣扇控制器的發(fā)展不會局限于單項單線,而是會應各種社會需求多向發(fā)展。</p><p> 第2章 基于單片機
7、的排氣扇控制器總體方案</p><p> AT89C2051芯片控制的排氣扇控制系統(tǒng)較傳統(tǒng)電氣開關控制能有節(jié)能、智能自動、方面的優(yōu)勢,延長了排氣裝置的使用壽命。本設計有硬件設計和軟件設計兩個部分。</p><p> 2.1排氣扇控制系統(tǒng)的總體方案設計</p><p> 基于單片機的控制器主要是利用按鍵掃描將采集到的按鍵信息處理后進行程序的參數注入,完成用戶對芯
8、片中存儲的中斷程序的修改,達到用戶能通過按鍵調試設置程序的效果,在操作的同時CPU芯片同步將用戶操作信息通過顯示程序顯示到顯示屏上,讓用戶有清晰明快的人機對話,其系統(tǒng)框圖如圖:</p><p><b> 、</b></p><p> 圖2.1 排氣扇控制器的總體框圖</p><p> 所示:按鍵信息是用戶操作設定的一些參數,通過非編碼鍵盤
9、能形成特定的指令被傳送到處理器中,完成對排氣扇的定時開關機設定。而顯示部分則是一組LED數碼管顯示器,把用戶的操作顯示出來,能讓用戶有一個良好的人機對話平臺。完成一系列的設定后,CPU芯片生成一段符合用戶需求的程序并循環(huán)運行,在用戶指定的時間段發(fā)出指令開關電機。</p><p> 2.2 排氣扇控制器的功能</p><p> (1)通過一個四個鍵的非編碼獨立式鍵盤做用戶操作端,能對排氣
10、扇當前工作時間精確設定或校準,也可以對排氣扇定時操作,設定其開關機時間;</p><p> (2)LED數碼管顯示能清晰顯示系統(tǒng)工作時間和用戶操作指令,有清晰的人機對話;</p><p> (3)單片機能實現對排氣扇的定時操作和循環(huán)運行設定的工作指令;</p><p> (4)能應付突發(fā)的狀況進行緊急的開關機。</p><p><
11、b> 2.3方案論證</b></p><p> 任何的電子產品都要根據其功用和生產成本兩條不可或缺的因素來進行設計才能有一個讓客戶滿意的性價比,也只有把生產成本和產品功用緊密聯系在一起做出來的產品才能讓生產者贏利。在此本人根據主要需求,本人根據所學設計了兩種不同的電路,具體的電路圖如下圖2.2和圖2.3。</p><p> 圖2.2電路方案設計1</p>
12、<p> 圖2.3電路方案設計2</p><p> 顯示部分可以采用液晶屏幕顯示和LED數碼管顯示,液晶顯示相對來言功耗較小,但價格較LED數碼管而言要高許多。液晶顯示器顯示相對數碼管要復雜的多技術難度較大,當然顯示的信息也可以更加精準,可視化效果比數碼管要好的很多。權衡了性價比,兩個設計中都采用了LED數碼管做顯示元件。</p><p> 驅動電路兩個電路設計都采用相
13、同的模塊,都是用光耦加繼電器來實現對排氣扇電機的開關控制。驅動電機的原理是定時刻對驅動信號I/O口電平取反輸出,而單片機工作的時候會產生電平的抖動,這種抖動會對使繼電器開關產生瞬間開閉合的現象,這種瞬間通電現象會影響電機的使用壽命,而光耦能有效避免這種電平抖動現象產生的負作用,這就是計中采用光耦的主要原因。</p><p> 在設計圖2.2中使用的是譯碼芯片來實現顯示器數據,在程序上要方便很多,74HC4511
14、芯片能將單片機發(fā)出的四組二進制數據譯成在LED數碼管上顯示的8位二進制數。在充分利用軟件資源的情況下,在圖2.3的設計中該芯片被省略掉,直接用程序實現數碼管顯示以減少硬件材耗。圖2.2中使用了P0口做I/O口,因為該口不是準雙向通信I/O口,單片機內部電路中該口沒有保護電阻,故在外部需上拉電阻。在圖2.3的電路設計中避免了使用該端口做I/O口,較圖2.2減少了一個排阻的硬件材耗,減少了成本。</p><p>
15、鍵盤電路上,二者都是采用一個四鍵的獨立式鍵盤,按鍵功能也都一樣。鍵盤雖然比較簡單,但已足夠實現本課題所需的功能。</p><p> 為解決掉電后數據的恢復以及實現多組的定時時間存儲,圖2.2采用了片外的非易失性存儲芯片24C08B。而在圖2.3中沒有采用片外存儲芯片,用戶設定的兩組電機喚醒數據用4個變量存儲,能定下2組時間點,用戶能讓排氣扇在第一個時間點內開啟到下一設定的時間點關閉來實現排氣系統(tǒng)的定時工作,定額
16、工作。圖2.3排氣扇定時功能已經實現而且較圖2.2材耗較少。</p><p> 綜合了各個電路部分的描述和比較,我最終選了圖2.3做為本次設計的電路原理圖。</p><p> 第3章 排氣扇控制系統(tǒng)的硬件設計</p><p> 3.1硬件組成及結構框圖</p><p> 本定時循環(huán)排氣控制系統(tǒng)在加電后即可進入正常計時狀態(tài),用戶可以隨時
17、校準時間并設定排氣扇的開關時間,以便控制器能夠在設定的開關時刻通過單片機的輸出端口控制輸出電平產生繼電動作,開啟排氣扇電機進行排氣。該系統(tǒng)的硬件原理圖可見。</p><p> 本系統(tǒng)的核心單片機AT89C51為20腳300MIL封裝,是一種帶有2kb flash rom 的單片機。該單片機除了少了兩個并口外,能兼容mcs——51系列單片機的所有功能,并且具備體積小,功能強,運行速度較快等優(yōu)點。該電路可通過單片機
18、的P2口連接一個鍵盤電路來實現對參數的自由設定,同時可通過P1口連接液晶顯示器分別以顯示小時,分鐘,和秒。系統(tǒng)定時啟動是通過P3.0口完成的。程序開始時此該I/O口的輸出狀態(tài)都是低電平,AT89C51通過程序查詢P3.0口輸出開和關的狀態(tài)預設時間是否到達,到達預定時間則喚醒電機工作進行排氣。下圖3.1為硬件設計總體框圖:</p><p> 3.2 LED顯示電路</p><p> 液晶
19、顯示器種類繁多,按照輸出方式有圖案,數碼,點陣等。本次選用點陣液晶顯示。液晶驅動方式和數碼管的驅動是不同的,液晶比數碼管需要的工作電壓更低,但掃描方式也比較復雜。在充分利用軟件資源優(yōu)勢的情況下,本著物美價廉原則,設計中選用型號7SEG_MPX8_BLUE的8段共陰極數碼管顯示器,下圖3.2為元件圖形。</p><p><b> 圖3.2數碼管</b></p><p>
20、;<b> 3.3電機驅動電路</b></p><p> 驅動這塊主要是控制單片機發(fā)出的電平高低來控制電機,而電路工作時候電壓的抖動對控制會造成影響,驅動電路中用到了光耦,光耦,即光電耦合器,一般為4腳的光耦,輸入端跨接的是一只LED,輸出端跨接的是一只光敏三級管,LED和光敏三級管是被密封在一個封裝中的。其工作原理:當在輸入端加一正向導通電壓,LED發(fā)光,光敏三級管受光照,發(fā)射結導通,
21、三級管相當于開關。此“開關”的通斷由輸入端決定。光耦使用有效隔斷輸入端(控制電路)與輸出端(被控制電路),避免被控制電路在工作時電壓的抖動對控制端造成影響。</p><p> 圖3.3電機驅動模塊</p><p> 單片機對電機的驅動控制輸出是通過P3.5完成的。當程序開始時,這I/O口的輸出狀態(tài)都是高電平,AT89C51通過程序查詢該路路輸出的開、關狀態(tài)預置時間是否到達,以判斷如何對
22、外部電路的控制處理。當單片機判定時間計數到用戶設置的時間標記時候,P3.5口輸出低電平,此時光耦動作,(二極管發(fā)光引起光敏電阻導通),通過限流電阻R11后給Q1導通電流,經過放大后,電流要求放大200倍左右,工作在飽和狀態(tài),在這種狀態(tài)下,管耗比較小,繼電開關通電工作,此時紅色LED指示燈亮,排氣扇電機開始工作。當單片機檢測到下一個時間標記時候,此時對P3.5的輸出電平取反,光耦不工作,繼電器開關掉電,此時電機不工作,綠色LED指示燈亮。
23、具體的電路如上圖圖3.3所示。</p><p><b> 3.4按鍵調置電路</b></p><p> 鍵盤分為編碼鍵盤和非編碼鍵盤。編碼鍵盤是靠硬件電路對每個鍵位進行編碼,當有鍵按下時,輸出固定的數碼,并用來判斷鍵位。常見的編碼鍵盤如我們的電腦鍵盤,計算器鍵盤等;非編碼鍵盤是指鍵盤不是靠固定的編碼來實現對鍵位識別的,而是靠一定的算法來對鍵位進行掃描,矩陣鍵盤就是
24、常見的一種非編碼鍵盤。編碼鍵盤一般需要較多的硬件電路,所以成本較高,單片機系統(tǒng)盡量都采用非編碼鍵盤,目的就是利用單片機的軟件編輯優(yōu)勢節(jié)約成本。舉例四行四列矩陣式非編碼鍵盤電路如圖3.4:</p><p> 圖3.4四行四列鍵盤電路</p><p> 本設計中使用的是一個獨立式四鍵鍵盤,電路如圖3.5:</p><p> 圖3.5四鍵獨立式鍵盤</p>
25、;<p> 其中模式按鍵實現了各種程序模塊之間的切換,而加減時按鍵作用是用來時間數據輸入的,接于P3.4口的緊急開/關按鍵則是用來緊急開停機用。</p><p> 機械按鍵過程中,難免會產生抖動,抖動會造成系統(tǒng)判斷困難,因此采用消除抖動是一個不可或缺的過程。消除抖動的方法有以下常見的兩種:其一是用硬件的RS鎖存器進行消除抖動,將復雜跳變的信號變成穩(wěn)定的信號。再者就是用軟件算法實現對抖動的排除,靈
26、活性大,較常用,本設計就采用在抖動發(fā)生的時間段(一般為數毫秒)設定延時的方法來消除抖動。</p><p> 對于鍵盤的掃描常用的有逐行掃描與線反轉法。前者是利用列線做輸入,行線做輸出。首先使用四根列線的某一根置零,當在此列的某一行有按鍵按下時,該行線為低電平,其他為高電平,這樣這個鍵就被編碼;然后再使另一列線置零,檢測下一列是否有按鍵按,如此循環(huán)達到對整個鍵盤進行逐列掃描。以上是行掃描法,而線反轉法則是,把列線
27、當做線,所以對其中的某條先置低電平,其余則為高電平,然后去讀行線的狀態(tài),那么線的狀態(tài)就是當前按下的鍵的鍵值。比較而言線反轉法比逐行掃描要簡便的多,故所以本設計中采用的是線反轉法掃描方式。</p><p> 第4章 排氣扇控制系統(tǒng)的軟件設計</p><p> 4.1排氣扇控制系統(tǒng)的軟件總體設計方案</p><p> 本系統(tǒng)的軟件部分功能模塊主要有,初始化模塊、定
28、時器模塊、液晶顯示模塊、鍵盤掃描模塊、鍵盤識別模塊、常用調用子程序模塊。對不同的模塊進行合理的調度可以使單品機的資源得到充分利用。本系統(tǒng)定時器模塊是屬于中斷模塊,獨立于任何模塊;液晶顯示模塊、鍵盤掃描模塊、鍵盤識別模塊,等都是同步的模塊。初始化模塊和子程序模塊都是調用和被調用的模塊,不用考慮到同步關系中來。軟件設計原理總體框圖如下圖4.1:</p><p> 圖4.1 軟件設計原理總體框圖</p>
29、<p><b> 4.2模塊說明</b></p><p><b> 初始化模塊:</b></p><p> (1)定時器模塊初始化:定時器1的初始化:定時器1工作在方式1,定時時間為1s。</p><p> (2)液晶顯示模塊、顯示模塊初始化,給定初始化數據0xfe,0xfd,0xfb,0xf7,0xe
30、f,0xdf,0xbf,0x7f。當開機啟動時,初始化歡迎界面顯示左移。</p><p> (3)標志變量初始化,系統(tǒng)變量初始化,狀態(tài)變量初始化,以及I/O口的定義。</p><p> 定時器模塊:鍵盤執(zhí)行標志變量置位,計時器執(zhí)行計數標志變量置位,電機喚醒檢測模塊執(zhí)行標志變量置位</p><p> LED顯示模塊:反復對字符數據組進行掃描顯示、</p&g
31、t;<p> 鍵盤掃描模塊:利用線反轉法進行掃描,調用keyprc()子程序。</p><p> 計時器模塊:主要包括電機喚醒檢測,電機開/關信號輸出,加減校時系統(tǒng)模塊。</p><p> 鍵位識別模塊:當檢測到有按鍵按下時,讀取返回鍵的編碼,利用if語句進行分支判斷,利用各個鍵的索引進行判斷,分別調用不同的子程序模塊。</p><p> 常用
32、的子程序有:延時子程序,鍵盤掃描子程序,清屏子程序,顯示子程序,驅動子程序等。</p><p> 延時子程序:void DelayX1ms(unsigned char count)</p><p><b> {</b></p><p> unsigned char i,j;</p><p> for(i=0;
33、i<count;i++)</p><p> for(j=0;j<240;j++) ;</p><p><b> }</b></p><p> 該延遲函數,參數為毫秒數,用于按鍵消抖調用。</p><p><b> 4.3程序流程圖</b></p><p&g
34、t; 單片機中運行程序的大致流程如下,主函數流程圖4.2,其中串行口發(fā)送驅動信號子程序,硬件連接的是單片機的P3.0口,具體實現是程序判定是否到達中斷時間點以及啟動相應的中斷服務,具體流程圖如4.3。</p><p> 圖4.2主函數流程圖</p><p> 顯示子程序實現用戶操作數據顯示和當下時間顯示,其流程圖如圖4.4</p><p> 圖4.3顯示部分
35、流程圖</p><p> 圖4.4電機喚醒功能流程圖</p><p> 第5章 基于傳感器擴充設計</p><p><b> 5.1溫度傳感器</b></p><p> 溫度傳感器是指能感受溫度并轉換成可用輸出信號的傳感器。熱電阻的測溫原理是基于導體或半導體的電阻值大小隨著溫度的變化而變化的特點。熱電阻大都是有純
36、金屬材料制成,目前應用最多的是鉑和銅金屬,現在開始用鎳、錳和銠等材料制造熱電阻。熱電阻通常需要把電阻信號通過引線傳遞到計算機控制裝置或者儀表上。對中低溫區(qū)的反應比較突出,測量精度高,性能穩(wěn)定。本設計中采用熱電阻電路做溫度傳感電路,通過放大電路和D/A轉化電路把外界溫度轉換成電信號。</p><p> 5.2需求分析和總體設計方案設計</p><p><b> 5.2.1需求分
37、析</b></p><p> 基于溫度傳感器技術,在此擴充設計一個能實現對環(huán)境溫度監(jiān)控并通過排換氣降溫的排氣扇控制器。設定需求為監(jiān)測0℃以上120℃以下的溫度并控制溫度在80℃以下,當環(huán)境溫度超過80℃時排氣扇運作,達到排氣降溫的效果。</p><p> 5.2.2基于溫度傳感器的排氣扇控制器總體設計方案</p><p> 基于溫度傳感器的排氣扇
38、控制器總體設計方案框圖如圖5.1所示,溫度傳感器TC輸出信號經差動放大到0~5V,放大器輸出送ADC0831進行A/D轉換,A/D轉換結果送單片機進行處理,最后將所測的溫度在LED數碼管上顯示。當監(jiān)控的溫度值超過要求時驅動電路部分工作,繼電器作用啟動排氣扇電機。</p><p> 5.3基于溫度傳感控制的排氣扇控制器硬件設計</p><p> 5.3.1溫度傳感電路模塊</p&g
39、t;<p> 本設計中溫度傳感器部分的外圍電路,R1,R2是限流電路,熱電阻的電流經過比較器后輸送電信號到A/D轉換模塊。如圖5.2:</p><p><b> 圖5.2溫度傳感</b></p><p> 利用溫敏電阻感應溫度變化經過如下電路后,完成對溫度變化到電流變化的轉換,即A/D轉換過程。</p><p> 5.3.
40、2LED顯示電路模塊</p><p> 7SEG-MPX4-CA、RESPACK-8、AT89C51、共陽四位一體數碼管,數碼管與單片機串行口P0口相連,因為P0口不是準I/O口,故加上上拉電阻。片選信號接P2口。如圖5.3所示:</p><p> 圖5.3 液晶顯示電路模塊</p><p> 5.3.3電機驅動模塊</p><p>
41、 電機驅動模塊是光電耦合、放大電路、繼電電路組成。單片機發(fā)出的電平信號能控制光電耦合器里的發(fā)光二極管亮與滅,經由放大電路放大信號后控制繼電開關的閉合。如下圖5.4所示:</p><p> 圖5.4 排氣扇電機驅動模塊</p><p> 5.3.4A/D轉換電路</p><p> A/D轉換目標是將模擬量轉化成數字量,在本例中,選用ADC0831串行A/D轉換芯
42、片作為溫度測試</p><p> 系統(tǒng)的A/D轉換,設計電路如圖5.5所示: </p><p> 圖5.5A/D轉換模塊圖</p><p> 由于設計誤差要求為1ºC,1ºC對應的輸入電壓為(1/120)×5=0.04167V,8位A/D轉換芯片的分辯率為1/28×5=001
43、9531V,從而說明選用8位的A/D轉換器測量誤差要小于1ºC。另外之所以選用串行的,理由是串行的電路設計簡便,能在性能上符合要求</p><p><b> 第6章 仿真和測試</b></p><p> 本設計采用的編譯仿真軟件是keil和PROTUS,Keil 是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,
44、C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil 生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現高級語言的優(yōu)勢。Proteus是世界上著名的仿真工具軟件,從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持805
45、1、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。本設計中應用到keil的編譯功能,在keil中編譯生成hex文件后加載到PROTUS中的虛擬芯片中,完成對軟件和硬件的仿真和測試。</p><p> 基于單片
46、機的排氣扇定時循環(huán)控制器電路仿真電路圖如下圖6.1:</p><p> 圖6.1運行中仿真圖</p><p> 按鍵說明:A:模式按鍵 ;B: +; C:—; D:緊急開/關。</p><p> 在點擊模式按鍵一下進入校時,在protuse中仿真如圖6.2</p><p><b> 圖6.2設
47、定小時圖</b></p><p> 在點擊模式按鍵2次時進入了分鐘校準,仿真如圖6.3</p><p><b> 圖6.3設定分鐘圖</b></p><p> 在點擊模式按鍵第三次時,程序進入定時設置模塊,仿真如圖6.4</p><p> 圖6.4進入電機定時設定仿真圖</p><
48、p> 為了應付突發(fā)情況,本設計中有緊急排氣按鍵,當該鍵按下時,在休眠狀態(tài)的排氣扇電機被人工喚醒,直到有停機指令的發(fā)出。同樣,如需緊急停止排氣的需要,設計中安排了緊急停機按鍵。該鍵作用時仿真如下圖6.5,由圖可以清楚看到幾點開關跳躍的過程。</p><p> 圖6.5電機定時時間到開關跳躍過程圖</p><p> 在Proteus中運行:當到達設定時間時候,電機運轉如下圖6.6&
49、lt;/p><p><b> 圖6.6電機開啟圖</b></p><p> 當到定時完成,電機完成了定額的工作量后,進入待機狀態(tài)如圖6.7。</p><p> 圖6.7電機進入待機狀態(tài)圖</p><p> 基于溫度傳感器單片機排氣扇控制器設計在Proteus中運行,改變溫度傳感器的設置值,觀察到LED顯示的數據隨著變
50、化,圖6.8為系統(tǒng)仿真結果。</p><p> 圖6.8溫度低于80℃運行狀態(tài)圖</p><p> 在溫度超過80℃時候,單片機發(fā)出信號驅動電路作用,繼電器使電機上電開始工作,如圖6.9</p><p> 圖6.9超過80℃后電機工作圖</p><p><b> 總 結</b></p><p
51、> 本次設計中遇到的問題和相關解決方法首先在編寫程序時候存在困難,對C語言編程的結構及具體語言都比較模糊,經過對以前的C語言識復習,現在勉強能在同學的幫助下,完成軟件測試。其次定時喚醒排氣扇工作的設置最先總是出現可以設定第二組電機喚醒時刻卻并能保存在相應的變量中,但到了時刻卻沒有出現預期的電機喚醒,通過軟件調試,不斷修改循環(huán)體,最終解決了不響應中斷的問題。</p><p><b> 心得體會:
52、</b></p><p> 經過本次排氣扇控制器設計,加強了我的動手能力和實踐相結合的能力,并培養(yǎng)了團隊精神,遇到了難題的時候,可以集思廣益一起商討解決問題的辦法。在編程和軟件測試這一塊上,要有細心和耐心,細心則可避免一些編譯上的小錯誤,而遇到軟件測試不能達到預期效果時候就要耐心的去跟進循環(huán),一遍一遍的分析程序的運行過程,查找出程序體的不足并修改它。在做有溫度傳感器的控制器的時候,又聯系到其他的傳感
53、器,如化學氣體濃度傳感器、紅外線傳感器、濕度傳感器等。如果基于形形色色的傳感器研發(fā)一些控制器,那么可以在一些工人不適合處得太久的化工環(huán)境里裝上有化學濃度傳感器控制器控制的排氣裝置,在有人活動就需排氣運作的場所安裝有紅外線傳感器控制器的排氣裝置,在對濕度有控制需求的場所,如花房等地方加上有濕度傳感器控制器的排氣裝置,最終實現智能自動對環(huán)境的檢測和控制。做這個設計的最大是發(fā)散思維,把對一個排氣扇電機的控制器設計擴大到用單片機控制外設上這個層
54、次的思維上去,其中監(jiān)控手段則可以通過傳感裝置,充分利用軟件資源,減少硬件的材耗。</p><p><b> 參考文獻</b></p><p> [1] 張靖武,周靈彬.單片機系統(tǒng)的PROTEUS設計與仿真.電子工業(yè)出版社,2007年4月</p><p> [2] 周瀾景,張麗娜.基于PROTEUS的電路及單片機系統(tǒng)設計與仿真.北京航空航天
55、大學出版社,2006年5月</p><p> [3] 張友德.單片微型計算機原理、應用與實驗.復旦大學出版社,2003年5月。</p><p> [4] 潘永雄.新編單片機原理與應用.西安電子科技大學出版社,2003年。</p><p> [5] 何立民.單片機高級教程(應用與設計)[M].北京航空航天大學出版社,2000年8月</p><
56、p> [6] 李建忠.單片機原理及應用[M].西安電子科技大學出版社,2002年2月</p><p> [7] 謝運袢.電力電子單片機控制技術.機械工業(yè)出版社,2007年3月</p><p> [8] 周明德.單片機原理與技術.人民郵電出版社,2008年4月</p><p> [9] 趙星寒,劉小波.從0開從始教你用單片機. 北京航空航天大學出版社,2
57、009年01月</p><p> [10] 鄒久朋.80C51單片機實用技術.北京航空航天大學出版社,2008年04月</p><p> [11] 周潤景 袁偉亭基于PROTEUS的ARM虛擬開發(fā)技術北京航空航天大學出版社,200701</p><p> [12] 林志琦,郎建軍,李會杰,佟大鵬.基于Proteus的單片機可視化軟硬件仿真.北京航空航天大學出版
58、社,2006年09月 </p><p> [13]魏小龍.MSP430系列單片機接口技術及系統(tǒng)設計實例[M].北京:北京航空航天大學出版社,2002.5-60</p><p> [14]方佩敏,新編傳感器原理與應用[M].北京:電子工業(yè)出版社,1994.15~4</p><p><b> 致 謝</b></p><p
59、> 本課題在選題及進行過程中得到胡湘娟老師的悉心指導。論文行文過程中,胡老師多次幫助我分析思路,開拓視角,在我遇到困難想放棄的時候給予我最大的支持和鼓勵。胡老師嚴謹求實的治學態(tài)度,踏實堅韌的工作精神,將使我終生受益。再多華麗的言語也顯蒼白。在此,謹向胡老師致以誠摯的謝意和崇高的敬意</p><p> 感謝我的大學的朋友們,尤其是我的室友們,我們一起經歷過的努力和成功的過程,一起走過的每一段路,我一生都不
60、會忘記。友情的無私為我們的大學時光重重地寫下了燦爛的一筆。</p><p><b> 附錄1</b></p><p> 圖2.3電路的源程序</p><p> #include <reg51.h></p><p> unsigned char led[12]={0x3f,0x06,0x5b,0x4f,
61、0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00}; //用一維數組定義0-9、橫杠、全滅</p><p> unsigned char num[10]={2,0,1,1,5,2,0,3,0,4} ;//歡迎界面2011年5月20號學號304制作</p><p> unsigned char a[8]; </p><p>
62、 unsigned char second=11,minute=0,hour=0;</p><p> unsigned char minute1=0,hour1=0,minute2=0,hour2=0;</p><p> unsigned char b[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//掃描</p><p
63、> unsigned char k=0;</p><p> unsigned int temp; // 記錄1000毫秒為1秒的變量</p><p> unsigned char M,S_flag;//M是模式,更新時間的4種模式加上正常模式S_flag閃爍標志</p><p> sbit K1=P3^0;</p><p&g
64、t; sbit K2=P3^1;</p><p> sbit K3=P3^2;</p><p> sbit RUN=P3^3;</p><p> void delay(unsigned n) //0.2毫秒</p><p><b> {</b></p><p><b&g
65、t; int x,y;</b></p><p> for(x=0;x<n;x++)</p><p> for(y=0;y<24;y++);</p><p><b> } </b></p><p> void init()</p><p><b>
66、{ </b></p><p><b> M=0;</b></p><p> S_flag=0; //閃爍標志位 </p><p> TMOD=0x10; //定時器1以方式1定時 </p><p><b> TH1=0xfc;</b></p><p
67、><b> TL1=0x18;</b></p><p> EA=1; //打開總中斷 </p><p> ET1=1; //允許定時器1中斷 </p><p> TR1=1; //開啟定時器1 (開始定時計數)</p><p><b> }</b></p>
68、<p> void display_led()</p><p><b> {</b></p><p><b> int x;</b></p><p> char l,a,m;</p><p> for(a=0;a<26;a++)</p><p>&l
69、t;b> {</b></p><p><b> x=a-8;</b></p><p> for(l=0;l<50;l++)</p><p><b> {</b></p><p> for(m=0;m<8;m++)</p><p><
70、;b> {</b></p><p><b> P2=b[m];</b></p><p> if(x>=0&&x<10) P1=led[num[x]];</p><p> else P1=led[11];</p><p> delay(10);</p>
71、<p><b> x++;</b></p><p><b> }</b></p><p><b> x-=8;</b></p><p><b> }</b></p><p><b> }</b></p>
72、<p><b> }</b></p><p> void time1() interrupt 3 //定時器1中斷函數 </p><p><b> { </b></p><p> TH1=0xfc; //定時1ms</p><p><b> TL1=0
73、x18;</b></p><p><b> temp++;</b></p><p> if(temp==1000) //配合定時器定時1s</p><p> { temp=0;</p><p> second++;</p><p><b> }</b
74、></p><p> if(second==59)</p><p> { second=0; </p><p> if(minute<59)</p><p><b> minute++;</b></p><p> else { minute=0;</
75、p><p><b> hour++;</b></p><p> hour%=24; </p><p><b> }</b></p><p><b> }</b></p><p> if(temp%250==0) //每25
76、0ms</p><p> S_flag=!S_flag; //閃爍標志位取反 </p><p> if(k==8) k=0;</p><p> P1=a[k];</p><p> P2=b[k++]; </p><p> delay(1); </p><p>
77、 P2=0xff;</p><p><b> } </b></p><p> void display()</p><p><b> {</b></p><p><b> switch(M)</b></p><p><b>
78、; {</b></p><p><b> case 0:</b></p><p><b> {</b></p><p> a[0]=led[hour/10];</p><p> a[1]=led[hour%10];</p><p> a[2]=led[
79、10];</p><p> a[3]=led[minute/10];</p><p> a[4]=led[minute%10];</p><p> a[5]=led[10];</p><p> a[6]=led[second/10];</p><p> a[7]=led[second%10];</p&g
80、t;<p><b> }break;</b></p><p><b> case 1:</b></p><p><b> {</b></p><p> if(S_flag==1)</p><p><b> {</b></p&g
81、t;<p> a[0]=led[hour/10];</p><p> a[1]=led[hour%10];</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>&l
82、t;p> a[0]=led[11];</p><p> a[1]=led[11];</p><p><b> }</b></p><p> a[2]=led[10];</p><p> a[3]=led[minute/10];</p><p> a[4]=led[minute%1
83、0];</p><p> a[5]=led[10];</p><p> a[6]=led[second/10];</p><p> a[7]=led[second%10];</p><p><b> }break;</b></p><p><b> case 2:</b&
84、gt;</p><p><b> {</b></p><p> a[0]=led[hour/10];</p><p> a[1]=led[hour%10];</p><p> a[2]=led[10];</p><p> if(S_flag==1)</p><p>
85、;<b> {</b></p><p> a[3]=led[minute/10];</p><p> a[4]=led[minute%10];</p><p><b> }</b></p><p><b> else</b></p><p>&
86、lt;b> {</b></p><p> a[3]=led[11];</p><p> a[4]=led[11];</p><p><b> }</b></p><p> a[5]=led[10];</p><p> a[6]=led[11];</p>
87、<p> a[7]=led[11];</p><p><b> }break;</b></p><p><b> case 3:</b></p><p><b> {</b></p><p> if(S_flag==1)</p><p&g
88、t;<b> {</b></p><p> a[0]=led[hour1/10];</p><p> a[1]=led[hour1%10];</p><p><b> }</b></p><p><b> else</b></p><p>&l
89、t;b> {</b></p><p> a[0]=led[11];</p><p> a[1]=led[11];</p><p><b> }</b></p><p> a[2]=led[10];</p><p> a[3]=led[minute1/10];</
90、p><p> a[4]=led[minute1%10];</p><p> a[5]=led[10];</p><p> a[6]=led[11];</p><p> a[7]=led[11];</p><p><b> }break;</b></p><p><
91、;b> case 4:</b></p><p><b> {</b></p><p> a[0]=led[hour1/10];</p><p> a[1]=led[hour1%10];</p><p> a[2]=led[10];</p><p> if(S_flag
92、==1)</p><p><b> {</b></p><p> a[3]=led[minute1/10];</p><p> a[4]=led[minute1%10];</p><p><b> }</b></p><p><b> else</b
93、></p><p><b> {</b></p><p> a[3]=led[11];</p><p> a[4]=led[11];</p><p><b> }</b></p><p> a[5]=led[10];</p><p>
94、 a[6]=led[11];</p><p> a[7]=led[11];</p><p><b> }break;</b></p><p><b> case 5:</b></p><p><b> {</b></p><p> if(S_f
95、lag==1)</p><p><b> {</b></p><p> a[0]=led[hour2/10];</p><p> a[1]=led[hour2%10];</p><p><b> }</b></p><p><b> else</b&
96、gt;</p><p><b> {</b></p><p> a[0]=led[11];</p><p> a[1]=led[11];</p><p><b> }</b></p><p> a[2]=led[10];</p><p>
97、a[3]=led[minute2/10];</p><p> a[4]=led[minute2%10];</p><p> a[5]=led[10];</p><p> a[6]=led[11];</p><p> a[7]=led[11];</p><p><b> }break;</b&g
98、t;</p><p><b> case 6:</b></p><p><b> {</b></p><p> a[0]=led[hour2/10];</p><p> a[1]=led[hour2%10];</p><p> a[2]=led[10];</p
99、><p> if(S_flag==1)</p><p><b> {</b></p><p> a[3]=led[minute2/10];</p><p> a[4]=led[minute2%10];</p><p><b> }</b></p><
100、p><b> else</b></p><p><b> {</b></p><p> a[3]=led[11];</p><p> a[4]=led[11];</p><p><b> }</b></p><p> a[5]=led[
101、10];</p><p> a[6]=led[11];</p><p> a[7]=led[11];</p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p>
102、<p> void key_prc()</p><p><b> {</b></p><p><b> if(K1==0)</b></p><p><b> {</b></p><p> delay(10);//延時去抖 </p>
103、<p> if(K1==0) //按K1進行模式切換 </p><p><b> { M++;</b></p><p><b> if(M==7) </b></p><p><b> M=0;</b></p><p><b> }&l
104、t;/b></p><p> while(!K1);//等待按鍵釋放 </p><p> } </p><p><b> if(M!=0)</b></p><p><b> {</b></p><p><b> switch(M)&l
105、t;/b></p><p><b> {</b></p><p> case 1: //模式1——調時 </p><p><b> { </b></p><p><b> if(K2==0)</b></p><p><b>
106、; {</b></p><p> delay(10);//延時去抖 </p><p> if(K2==0) //加鍵按下 </p><p><b> { </b></p><p> if(hour<23) hour++;</p><p> e
107、lse hour=0;</p><p><b> } </b></p><p> while(!K2); //等待按鍵釋放 </p><p><b> }</b></p><p><b> if(K3==0)</b></p><p><
108、;b> {</b></p><p> delay(10); </p><p> if(K3==0)</p><p><b> { </b></p><p> if(hour> 0) hour--;</p><p> else hour=23;<
109、/p><p><b> }</b></p><p> while(!K3); </p><p><b> }</b></p><p><b> } break;</b></p><p> case 2: //模式2——調分 </p&g
110、t;<p><b> { </b></p><p><b> if(K2==0)</b></p><p><b> {</b></p><p> delay(10); </p><p> if(K2==0) </p>
111、<p><b> { </b></p><p> if(minute<59)</p><p><b> minute++;</b></p><p> else minute=0;</p><p><b> } </b></p>
112、<p> while(!K2);</p><p><b> }</b></p><p><b> if(K3==0)</b></p><p><b> {</b></p><p> delay(10);//延時去抖 </p><
113、p> if(K3==0) //減鍵按下 </p><p> { if(minute>0)</p><p><b> minute--;</b></p><p> else minute=59;</p><p><b> }</b></p><p>
114、 while(!K3); </p><p><b> } </b></p><p> } break; </p><p> case 3: //模式3——電機喚醒1調時 </p><p><b> { </b></p><p><b&g
115、t; if(K2==0)</b></p><p><b> {</b></p><p> delay(10); </p><p> if(K2==0) </p><p><b> { </b></p><p> if(hour1
116、<23)</p><p><b> hour1++;</b></p><p> else hour1=0;</p><p><b> }</b></p><p> while(!K2); </p><p><b> } </b><
117、/p><p><b> if(K3==0)</b></p><p><b> {</b></p><p> delay(10);</p><p> if(K3==0) </p><p> { if(hour1>0)</p><p>
118、<b> hour1--;</b></p><p> else hour1=23;</p><p><b> }</b></p><p> while(!K3); </p><p><b> }</b></p><p><b> }
119、 break </b></p><p> case 4: //模式4——電機喚醒1調分 </p><p><b> { </b></p><p><b> if(K2==0)</b></p><p><b> {</b></p>
120、<p> delay(10); </p><p> if(K2==0) </p><p><b> { </b></p><p> if(minute1<59)</p><p> minute1++;</p><p> else minute
121、1=0;</p><p><b> } </b></p><p> while(!K2);</p><p><b> }</b></p><p><b> if(K3==0)</b></p><p><b> {</b>&
122、lt;/p><p> delay(10);//延時去抖 </p><p> if(K3==0) //減鍵按下 </p><p> { if(minute1>0)</p><p> minute1--;</p><p> else minute1=59;</p><p>
123、<b> }</b></p><p> while(!K3); </p><p><b> } </b></p><p><b> } break;</b></p><p> case 5: //模式5——電機喚醒2調時 </p><p
124、><b> { </b></p><p><b> if(K2==0)</b></p><p><b> {</b></p><p> delay(10); </p><p> if(K2==0) </p><p
125、><b> { </b></p><p> if(hour2<23)</p><p><b> hour2++;</b></p><p> else hour2=0;</p><p><b> }</b></p><p>
126、while(!K2); </p><p><b> }</b></p><p><b> if(K3==0)</b></p><p><b> {</b></p><p> delay(10);</p><p> if(K3==0)
127、</p><p> { if(hour2>0)</p><p><b> hour2--;</b></p><p> else hour2=23;</p><p><b> }</b></p><p> while(!K3); </p><
128、p><b> }</b></p><p> } break; </p><p> case 6: //模式6——電機喚醒2調分 </p><p><b> { </b></p><p><b> if(K2==0)</b></p>&
129、lt;p><b> { </b></p><p><b> { </b></p><p> if(minute2<59)</p><p> minute2++;</p><p> else minute2=0;</p><p><b>
130、 } </b></p><p> while(!K2);</p><p><b> }</b></p><p><b> if(K3==0)</b></p><p><b> {</b></p><p> delay(10);
131、//延時去抖 </p><p> if(K3==0) //減鍵按下 </p><p> { if(minute2>0)</p><p> minute2--;</p><p> else minute2=59;</p><p><b> }</b></p>
132、<p> while(!K3); </p><p><b> } </b></p><p><b> } break;</b></p><p><b> }</b></p><p><b> } </b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計----房屋自動供暖系統(tǒng)控制器設計
- 某靜電除塵系統(tǒng)控制器設計畢業(yè)設計
- 畢業(yè)設計---雙閉環(huán)直流調速系統(tǒng)控制器的設計
- 智能定時器畢業(yè)設計--基于51單片機的智能定時控制器系統(tǒng)設計
- 畢業(yè)設計論文----雙閉環(huán)直流調速系統(tǒng)控制器的設計
- 畢業(yè)設計----節(jié)日彩燈循環(huán)閃亮控制器
- 太陽能led路燈照明節(jié)能控制系統(tǒng)控制器設計畢業(yè)設計
- 太陽能led路燈照明節(jié)能控制系統(tǒng)控制器設計畢業(yè)設計
- 畢業(yè)設計--基于plc的工業(yè)混料系統(tǒng)控制器的設計
- 太陽能led路燈照明節(jié)能控制系統(tǒng)控制器設計畢業(yè)設計
- 磁懸浮系統(tǒng)控制器設計.pdf
- 畢業(yè)設計---555構成的多用途定時控制器電路的設計
- 畢業(yè)設計----水位控制器設計
- 畢業(yè)設計--液位系統(tǒng)的控制器設計
- 溫度控制器畢業(yè)設計
- abs控制器畢業(yè)設計
- pid控制器畢業(yè)設計
- 溫度控制器畢業(yè)設計
- 船舶動力定位系統(tǒng)控制器設計.pdf
- 交流伺服驅動系統(tǒng)控制器設計.pdf
評論
0/150
提交評論