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