單片機電風扇控制系統(tǒng)的設(shè)計
《單片機電風扇控制系統(tǒng)的設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《單片機電風扇控制系統(tǒng)的設(shè)計(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、目 錄摘要11 緒論21.1 課題背景21.2 課題研究的目的和意義31.3 系統(tǒng)的設(shè)計要求及內(nèi)容32 電風扇系統(tǒng)的方案論證32.1 保護電路的選擇32.2 控制核心的選擇42.3 顯示電路的選擇53 系統(tǒng)的主要硬件電路設(shè)計53.1 總體硬件設(shè)計53.2 過熱檢測模塊的設(shè)計83.3 電機調(diào)速與控制模塊設(shè)計93.4 顯示與控制模塊設(shè)計103.5 鍵盤模塊設(shè)計114 系統(tǒng)程序設(shè)計及仿真124.1 主程序流程圖設(shè)計124.2 定時器T0中斷程序流程圖設(shè)計134.3 A/D轉(zhuǎn)換測量子程序流程圖設(shè)計144.4 系統(tǒng)仿真結(jié)果144.5 源程序15結(jié)論15致謝15參考文獻15附錄A:單片機電風扇控制系統(tǒng)的設(shè)
2、計原理圖16附錄B:仿真結(jié)果圖17附錄C:參考程序22單片機電風扇控制系統(tǒng)的設(shè)計單片機電風扇控制系統(tǒng)的設(shè)計電子信息科學與技術(shù)專業(yè)學生:指導老師:摘要:本論文設(shè)計了一個單片機電風扇控制系統(tǒng)。系統(tǒng)采用MCS-52單片機為控制核心,設(shè)計了按鍵電路、顯示電路和過熱保護電路,并采用C語言進行編程、調(diào)試和仿真,實現(xiàn)了電風扇的幾項基本功能:電機的正反轉(zhuǎn)功能,0-990秒的定時功能,以及自然、正常、睡眠三種風類的選擇功能。經(jīng)過多次的測試與電路的調(diào)整、系統(tǒng)的各項功能均能正常實現(xiàn)。關(guān)鍵詞:MCS-52,電風扇,保護電路,定時Design of the electric fan controller system
3、based on MCUElectronics and Information Science and Technology Candidate: CAO QiwenAdvisor: PENG JianyingAbstract:In this paper,it designed an electric fan controller system based on MCU.The system used MCS-52 microcontroller as the core of control, designed the key circuit, display circuit and over
4、heating protection circuit which used C language to complete the programm, test and simulation,it has realized a few basic function of electric fan : reversing function, fixed time of 0-990 seconds and three kinds of wind selecting which are natural,normal and sleepy.After many tests and improvement
5、, all of the functions can work natually.Keywords:MCU,Electric fan,Protection circuit,Fixed time1 緒論 1.1 課題背景電風扇在我國,是80年代開始興起的一種小型的家用電器,剛開始它的功能單一,而且耗電量大,隨著技術(shù)的不斷更新,它的功能更加強大,更加趨于人性化。作為一種老式的家電,電風扇具有價格便宜,擺放方便,體積輕巧等特點,由于大部分家庭消費水平的限制,電風扇作為一個成熟家電行業(yè)的一員,尤其是在中小城市,以及鄉(xiāng)村將來一段時間內(nèi)依然占有市場大部分份額。面臨龐大的市場需要的同時,也要提高電風扇的市場
6、競爭力。使之在技術(shù)含量上有所提高,使風速不僅功能多樣,操作簡便,而且更加安全可靠。本設(shè)計采用了單片機作為該電風扇系統(tǒng)的控制核心。在國際市場上,單片機產(chǎn)品的類型很多。其中Intel公司的產(chǎn)品比較領(lǐng)先占有較大銷售份額。在我國Intel公司的MCS-48系列,MCS-51系列,MCS-96系列的各種機型用得最多,占主流地位。隨著大規(guī)模集成電路技術(shù)的演進,單片機的性能在快速提高。其生產(chǎn)工藝經(jīng)歷了MOS,NMOS,HMOS,CMOS等各個階段,正朝著CHMOS(高速型CMOS)工藝的方向發(fā)展并繼續(xù)提高集成度;增大RAM,ROM容量,增多功能模,提高速度,降低功耗。人類社會已經(jīng)進入信息時代,人民的社會活動
7、主要依靠對信息資源的開發(fā)及獲取,傳輸與處理。傳感器處于研究對象與測試系統(tǒng)的接口位置,即檢測與控制系統(tǒng)之首。因此,傳感器成為感知,獲取與檢測信息的窗口,一切科學研究與自動化生產(chǎn)過程要獲取的信息,都要通過獲取并通過它轉(zhuǎn)換為容易傳輸與處理的電信號。所以傳感器的作用與地位就特別重要了。若將計算機比喻為人的大腦,那么傳感器就可以比喻為人的感覺器官了。可以設(shè)想,沒有功能正常而完美的感覺器官,不能迅速而準確的采集與轉(zhuǎn)換欲獲得的外界信息,縱有再好的大腦也無法發(fā)揮其應有的作用??茖W越發(fā)達,自動化程度越高,對傳感器的依賴性就越大。所以,20世紀80年代以來,世界各國都將傳感器技術(shù)列為重點發(fā)展的高技術(shù),備受重視。1
8、.2 課題研究的目的和意義 面臨龐大的市場需要,需要提高電風扇的市場競爭力。使之在技術(shù)含量上有所提高,應使風速不僅功能多樣,操作簡便,而且更加安全可靠,為此,在將要走出大學校門,撰寫畢業(yè)論文之計,我選擇電風扇控制系統(tǒng)設(shè)計作為我的畢業(yè)設(shè)計研究課題。大學期間,分別學習了單片機原理及其應用,傳感器檢測及應用技術(shù)等課程,對單片機的一些應用也略知一二。所以在設(shè)計課題的時候,給電風扇賦予了人性化的設(shè)計,如過熱保護功能。相信其人性化的設(shè)計將大大提高電風扇的市場競爭力。而且最主要的是通過傳感器的控制使得科技的應用深入生活中,讓廣大人民能享受到科技帶來的方便。1.3 系統(tǒng)的設(shè)計要求及內(nèi)容本設(shè)計以MCS-52單片
9、機為核心,通過按鍵掃描電路和顯示電路建立一個控制系統(tǒng),使電風扇人為的變換檔位,能夠滿足人們的需求。另外,通過過熱保護電路可以很好的保護電機,當電機發(fā)熱時,電路報警并且電機停轉(zhuǎn),當電機溫度恢復正常時,電機又正常工作。 本設(shè)計主要內(nèi)容如下: 1、用4位數(shù)碼管實時顯示電風扇的工作狀態(tài),最高位顯示風類:“自然風”顯示“1”、“正常風”顯示“2”、“睡眠風”顯示“3”。后3位顯示定時時間:動態(tài)倒計時顯示剩余的定時時間,無定時顯示“000”。 2、設(shè)計“自然風”,“正常風”和“睡眠風”三個風類鍵用于設(shè)置風類;設(shè)計一個“定時”鍵,用于定時時間長短設(shè)置;設(shè)計一個“搖頭”鍵用于控制電機搖頭。 在整個定時狀態(tài)下,
10、電路具有允許用戶隨時自行選擇使用“自然風”狀態(tài),也可選擇使用“常風”和“睡眠風”狀態(tài)。設(shè)計過熱檢測與保護電路,若電風扇電機過熱,則電機停止轉(zhuǎn)動,電機冷卻后電機又恢復轉(zhuǎn)動。2 電風扇系統(tǒng)的方案論證2.1 保護電路的選擇 保護電路可由以下幾種方案可供選擇:方案一:選用熱敏電阻作為感測溫度的核心元件,通過運算放大器放大于是溫度變化引起熱敏電阻的變化,進而導致輸出微弱的電壓變化信號,再用A/D轉(zhuǎn)換芯ADC0809將模擬信號轉(zhuǎn)化為數(shù)字信號輸入單片機處理。方案二:采用熱電偶作為感測溫度的核心元件,配合橋式電路,運算放大電路和A/D轉(zhuǎn)換電路,將電機溫度變化信號送入單片機處理。方案三:選用ADC0809作為過
11、熱保護電路的核心部件,假設(shè)先設(shè)定一個標準電壓值,通過0-5V模擬電壓輸入進行模數(shù)轉(zhuǎn)換,如果數(shù)據(jù)超過標準值則單片機對電機進行相應操作,使電機啟停。對于方案一,采用熱敏電阻有價格便宜、元件易購的優(yōu)點,但熱敏電阻對溫度的細微變化不敏感,在信號采集、放大、轉(zhuǎn)換過程還會產(chǎn)生失真和誤差,并且由于熱敏電阻的R-T關(guān)系的非線性,其本身電阻對溫度的變化存在較大的誤差,雖然可以通過一定的電路給以糾正,將使電路復雜穩(wěn)定性降低,故該方案不適合本系統(tǒng)。 對于方案二,采用熱電偶和橋式測量電路相對于熱敏電阻和其對溫度的敏感性和器件的非線性誤差都有較大的提高,其測量范圍也非常高,從-50攝氏度到1600攝氏度均可測量,但是依
12、然存在電路復雜,對過熱檢測達不到本系統(tǒng)要求的標準,故不采用此方案。對于方案三,取代了傳感器檢測電路,大大降低了外接放大轉(zhuǎn)換等電路的誤差因素,通過運用電壓值來模擬電機溫度值,使得其分辨率很高,可以滿足系統(tǒng)要求,故采用方案三。2.2 控制核心的選擇 方案一:采用電壓比較電路作為控制部件。溫度傳感器采用熱敏電阻或熱電偶等,溫度信號轉(zhuǎn)為電信號并放大,集成運放組成的比較電路判決控制風扇的轉(zhuǎn)速。當高于或低于某值時將風扇切換到相應檔位。 方案二:采用單片機作為控制核心,以軟件編程的方式進行風速判斷,并在端口輸出控制信號。對于方案一,采用電壓比較電路具有電路簡單、易于實現(xiàn),以及無需編寫軟件程序的特點,但控制方
13、式過于單一,不能自由設(shè)置上下限動作及定時時間,無法滿足不同用戶以及不同環(huán)境下的要求,故不采用此方案。對于方案二,以單片機作為控制器,通過編寫程序不但能將傳感器檢測到的模擬溫度值通過A/D轉(zhuǎn)換傳給單片機進行處理,而且用戶能通過鍵盤接口,自由設(shè)置上下限定時時間,滿足全方位的需求,并且通過檢測電路判斷電機溫度是否過高,能精確把握電機溫度的微小變化。故本系統(tǒng)采用方案二。2.3 顯示電路的選擇方案一:采用液晶顯示屏LCD顯示電機狀態(tài)。方案二:采用八位共陰數(shù)碼管顯示電機狀態(tài),動態(tài)掃描顯示方式。對于方案一,液晶顯示屏具有顯示字符優(yōu)美,不但能顯示數(shù)字還能顯示字符甚至圖形的優(yōu)點,這是LED數(shù)碼管無法比擬的,但是
14、液晶顯示模塊價格昂貴,驅(qū)動程序復雜,因為一個字符由68或88點陣組成,既要找到和顯示屏上某幾個位置對應的顯示RAM的8字節(jié),還要使每字節(jié)的不同位有的為“1”,有的為“0”,為“1”點亮,為“0”的不亮。從硬件電路復雜性原則考慮,故不采用。對于方案二,該方案成本低廉,顯示溫度明確醒目,在夜間也能看見,功耗極低,顯示驅(qū)動程序的編寫也相對簡單,這種顯示方式得到廣泛應用。不足的地方是掃描方式是循環(huán)使四個LED依次點亮,因此會有閃爍,但是人眼的視覺暫留時間為20M,當數(shù)碼管掃描周期小于這個時間時人眼看不到閃爍,故采用本方案。3 系統(tǒng)的主要硬件電路設(shè)計3.1 總體硬件設(shè)計本系統(tǒng)由五個模塊組成,分別是輸入模
15、塊、顯示模塊、電機控制模塊、過熱保護模塊以及單片機控制系統(tǒng)。其中單片機控制系統(tǒng)是核心,由AT89C52、晶振和復位電路組成。它通過處理輸入的各種數(shù)據(jù)信息來對其它模塊發(fā)出指令,進行相應的操作。輸入模塊由5個按鍵組成,分別控制電機的風速、正反轉(zhuǎn)和定時時間。顯示模塊由8位共陰數(shù)碼管組成,顯示定時時間和風速。過熱保護模塊由ADC0809和外圍電路組成,通過設(shè)定電壓初始值使電機超值停轉(zhuǎn)并且相應二極管發(fā)光報警。電機控制模塊由L298和其它的元器件組成,它主要是放大輸入信號的倍數(shù),用來驅(qū)動電機。系統(tǒng)總體設(shè)計框圖如圖3.1所示:檔位及定時顯示電機控制模塊按鍵輸入單片機系統(tǒng)過熱檢測模塊圖3.1 系統(tǒng)原理框圖對于
16、單片機中央處理系統(tǒng)的方案設(shè)計,根據(jù)要求,我們可以選擇AT89C52單片機作為中央處理器,作為整個控制系統(tǒng)的核心,AT89C52內(nèi)部包含了定時器,程序存儲器、數(shù)據(jù)存儲器等硬件,其硬件能符合整個控制系統(tǒng)的要求,不需要外接其它存儲器和定時器件、方便,整個系統(tǒng)結(jié)構(gòu)緊湊,抗干擾能力強,性價比高,是比較適合的方案。3.1.1 AT89C52單片機的性能及應用單片機是早期Single Chip Microcomputer的直譯,它反映了早期單片機的形態(tài)和本質(zhì)。然后,按照面向?qū)ο螅怀隹刂乒δ?,在片?nèi)集成了許多外圍電路及外設(shè)接口,突破了傳統(tǒng)意義上的計算機結(jié)構(gòu),發(fā)展成microcontroller的體系結(jié)構(gòu),目
17、前國外已普遍稱之為微控制器MCU(Microcontroller Unit)。鑒于它完全作嵌入應用,故又稱為嵌入式微控制器(Embedded Microcontroller)1。3.1.2 單片機的主要特征由于AT89C52單片機的設(shè)計時間有限其精度不是很高,它的測溫范圍在0100之間,可以直接應用在對溫度精度要求不高的各種現(xiàn)場。單片機多通道溫度采集測控系統(tǒng)采用數(shù)字溫度傳感器滿足溫度測量,并將溫度采集信號轉(zhuǎn)換成數(shù)字信號經(jīng)單片機處理并經(jīng)輸出驅(qū)動電路顯示于共陰極數(shù)碼管。該測量儀可實現(xiàn)多點(4點)不同區(qū)域測量,單通道,循環(huán)測量。除此之外,考慮到測控會用于工業(yè)生產(chǎn)當中,增加了超溫報警功能,可以設(shè)置溫度
18、的上下限,可靠性要求比較高,軟件編程比較難2。AT89C52單片機溫度測控儀采用ATMEL公司的AT89C52單片機,采用雙列直插(DIP),有40個引腳。該單片機采用ATMEL公司的高密度非易失性存儲技術(shù)制造,與美國INTEL公司生產(chǎn)的MCS-51系列單片機的指令和引腳設(shè)置兼容。其主要特征如下:1、8位CPU2、內(nèi)置8K字節(jié)可重復編程Flash,可重復擦寫1000次3、完全定態(tài)操作:0Hz24Hz,可輸出時鐘信號4、256字節(jié)的片內(nèi)數(shù)據(jù)存儲器5、32根可編程I/O線6、2個16位定時/計數(shù)器7、中斷系統(tǒng)有6個中斷源,可編為兩個優(yōu)先級8、一個全雙工可編程串行通道9、具有兩種節(jié)能模式:閑置模式和
19、掉電模式值得注意的是,P0、P1、P2、P3口作為普通I/O口使用時都是準雙向口結(jié)構(gòu),其輸入操作和輸出操作本質(zhì)不同,輸入操作是讀引腳狀態(tài),輸出是對鎖存器的寫入操作。當內(nèi)部總線給口鎖存器置0或1時,鎖存器中的0、1狀態(tài)立即反映到引腳上。但在輸入操作時,如果鎖存器狀態(tài)為0引腳被鉗位0狀態(tài),導致無法讀出引腳的高電平輸入。因此,準雙向口作為輸入口時,應先使鎖存器置1(稱之為置輸入方式)。另外,I/O口的端口自動識別功能,保證了無論是P1口(低8位地址)P2口(高8位地址)的總線復用,還是P3口的功能復用,內(nèi)部資源自動選擇不需要用指令進行狀態(tài)選擇。隨著計算機技術(shù)的發(fā)展,單片機的功能越來越強大,壽命長、速
20、度快、低功耗、低噪聲、可靠性高的特點及16位、32位單片機的出現(xiàn),在工業(yè)領(lǐng)域仍具有很大的發(fā)展?jié)摿Α?.1.3 硬件系統(tǒng)的設(shè)計單片機應用系統(tǒng)的設(shè)計可劃分為兩部分:一部分是與單片機直接接口的數(shù)字電路范圍內(nèi)電路芯片的設(shè)計。如存儲器和并行接口的擴展、定時系統(tǒng)、中斷系統(tǒng)擴展,一般的外部設(shè)備的接口,甚至于A/D、D/A芯片的接口。另一部分是與模擬電路相關(guān)的電路設(shè)計包括信號整形、變換、隔離和選用傳感器,輸出通道中的隔離和驅(qū)動以及執(zhí)行元件的選用。 (1)從應用系統(tǒng)的總線觀念出發(fā),各局部系統(tǒng)和通道接口設(shè)計與單片機要做到全局一盤棋。例如,芯片間的時間是否匹配,電平是否兼容,能否實現(xiàn)總線隔離緩沖等,避免“拼盤”戰(zhàn)術(shù)
21、。 (2)盡可能選用符合單片機用法的典型電路。 (3)盡可能采用新技術(shù),選用新的元件及芯片。 (4)抗干擾設(shè)計是硬件設(shè)計的重要內(nèi)容,如看門狗電路、去耦濾波、通道隔離、合理的印制板布線等。 (5)當系統(tǒng)擴展的各類接口芯片較多時,要充分考慮到總線驅(qū)動能力。當負載超過允許范圍時,為了保證系統(tǒng)可靠工作,必須加總線驅(qū)動器。 3.2 過熱檢測模塊的設(shè)計3.2.1 ADC0809簡介ADC0809是美國國家半導體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換3。是目前國內(nèi)應用最廣泛的8位
22、通用A/D芯片。3.2.2 ADC0809的工作原理ADC0809的工作原理是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態(tài)門打開。轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)據(jù)應及時傳送給單片機進行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認A/D轉(zhuǎn)換的完成,因為只有確認完成后,才能進行傳送。為此可采用下述三種方式4。 (1)
23、定時傳送方式 對于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時間作為一項技術(shù)指標是已知的和固定的。例如ADC0809轉(zhuǎn)換時間為128s,相當于6MHz的MCS-51單片機共64個機器周期。可據(jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換已經(jīng)完成了,接著就可進行數(shù)據(jù)傳送。 (2)查詢方式 A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認轉(zhuǎn)換是否完成,并接著進行數(shù)據(jù)傳送。 (3)中斷方式 把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進行數(shù)據(jù)傳送。3.3 電機調(diào)速與控制模塊設(shè)計電機調(diào)速是整個控制系統(tǒng)中的
24、一個重要的方面,通過L298來調(diào)節(jié)PWM的輸出,使輸出端電壓發(fā)生變化,從而使施加在電風扇的輸入電壓發(fā)生改變,以調(diào)節(jié)電風扇的轉(zhuǎn)速,實現(xiàn)各檔位的風速的切換。3.3.1 L298芯片介紹L298驅(qū)動芯片是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動電路。是一種二相和四相的專用驅(qū)動器,即內(nèi)部包含二個H橋的高壓六雙橋式驅(qū)動器接收標準TTL邏輯電平信號,可驅(qū)動46V、2A以下的電機。L298有兩路電源分別為邏輯電源6V和動力電源12V,ENA、ENB直接接5V電源使電機進入使能狀態(tài),IN1和IN2用來控制電路的邏輯功能狀態(tài)。由于使用的電機是線圈式,在從運行狀態(tài)突然轉(zhuǎn)到停止狀態(tài)和從順時針狀態(tài)突然轉(zhuǎn)到逆時針狀態(tài)時
25、會形成很大的方向電流,在電路中加入二極管就是在產(chǎn)生方向電流的時候進行泄流,保護芯片的安全,表3.1為L298的邏輯功能表5。表3.1 L298邏輯功能表IN1IN2ENA電機狀態(tài)XX0停止101順時針011逆時針000停止110停止3.3.2 電機調(diào)速原理我們采用的PWM來實現(xiàn)直流電動機的調(diào)速,由于直流電機的轉(zhuǎn)速與加在其兩端的平均電壓成正比,所以在對直流電動機電樞電壓的控制和驅(qū)動中,目前經(jīng)常使用的是通過改變電機電樞電壓接通時間與通電周期的比值來控制轉(zhuǎn)速,其優(yōu)點:控制原理簡單輸出波動小,線性好,對鄰近電路干擾小,缺點是:功率低,散熱問題嚴重。占空比示意圖如圖3.2所示。Tt1t2Ut圖3.2 占
26、空比示意圖電動機的電驅(qū)繞組兩端的電壓平均值U為:式中D為占空比,。占空比表示了在一個周期T里開關(guān)管導通的時間與周期的比值,D的變化范圍為0=D=1。當電源電壓UB不變的情況下,輸出電壓的平均值U取決于與占空比D的大小,改變D值也就改變了輸出電壓的平均值,從而達到控制電動機轉(zhuǎn)速的目的,即實現(xiàn)了PWM調(diào)速。3.3.3 電機調(diào)速模塊設(shè)計根據(jù)硬件原理圖連接好電路,A/D接入單片機上通過程序來控制L298輸出控制直流電機的轉(zhuǎn)動。通過不同按鍵輸出不同的占空比,使直流電機轉(zhuǎn)動。當自然風鍵按下時,輸出占空比為1:3的方波;當常風鍵按下時,輸出占空比為3:1的方波;當睡眠風鍵按下時,輸出占空比為1:5的方波;當
27、搖頭鍵按下時,電機反轉(zhuǎn),同時保持原先的風速6。3.4 顯示與控制模塊設(shè)計LED數(shù)碼管有共陽和共陰兩種,都把這些LED發(fā)光二極管的負極接到一塊(一般是拼成一個8字加一個小數(shù)點而作為一個引腳,為共陰管)。本系統(tǒng)設(shè)計采用4位共陰數(shù)碼管顯示電路,在設(shè)計4位LED顯示時,為了簡化電路,降低成本,采用動態(tài)顯示的方式,4個LED顯示共用一個8位的I/O,4個LED數(shù)碼管的位選線分別由相應的P2.0-P2.3控制,而將其相應的段選線并聯(lián)在一起,由一個8位的I/O口控制,即P0口。譯碼顯示電路將檔位和定時時間的輸出狀態(tài)經(jīng)顯示譯碼器譯碼,通過4位LED七段顯示器顯示出來。到達定時時間電機停止轉(zhuǎn)動同時定時時間變?yōu)?
28、。P2.5口接一個發(fā)光二極管,當電壓值超壓時二極管燈亮實現(xiàn)報警,此狀態(tài)下,無論定時時間和風速鍵是否按下,電機都處于停止狀態(tài)7。3.5 鍵盤模塊設(shè)計3.5.1 鍵盤方式選擇常用的鍵盤識別方法有:行掃描法、線翻轉(zhuǎn)法和利用8270鍵盤接口的中斷法,在本系統(tǒng)中,完全可以不運用中斷法完成鍵盤接口,這是由系統(tǒng)的特殊性決定的。首先,對于本系統(tǒng)而言,要實現(xiàn)便攜式的設(shè)計,硬件電路使用的越少越好。其次,被測信號由外中斷引腳輸入,未占用單片機4個并行I/O口中的任何一個,系統(tǒng)有足夠的資源利用自身I/O完成接口。最后,只有當傳感器輸出信號頻率為空載頻率,系統(tǒng)處于空閑待測的狀態(tài)下,才允許鍵盤輸入,因此鍵盤識別占用的CP
29、U時間不會對系統(tǒng)正常工作造成影響,因此直接利用單片機并行接口完成鍵盤的接口,采用線翻轉(zhuǎn)法進行鍵盤識別8。3.5.2 實現(xiàn)方案本系統(tǒng)使用簡單的鍵盤和數(shù)碼顯示器件來完成輸入輸出操作的人機界面。鍵盤輸入信息的主要過程是:1、CPU判斷是否有鍵按下。2、 確定哪一個鍵被按下。3、把此鍵代表的信息翻譯成計算機所識別的代碼,如ASCII或者其他代碼。鍵盤上有很多鍵,每一個鍵對應一個鍵碼,以便根據(jù)鍵碼轉(zhuǎn)到相應的子程序,進一步實現(xiàn)數(shù)據(jù)輸入和命令處理的功能。鍵盤識別的流程如圖3.3所示:鍵盤識別確定按鍵物理位置計算鍵碼等待釋放返回N有鍵按下?Y圖3.3 鍵盤識別流程圖按鍵消抖可分為硬件消抖和軟件消抖兩種,在鍵數(shù)
30、較少時可用硬件消除抖動,一種是采用在I/O口上并接合適的電容來解決;另一種是采用RS觸發(fā)器消抖。4 系統(tǒng)程序設(shè)計及仿真系統(tǒng)軟件設(shè)計包括主程序設(shè)計,A/D轉(zhuǎn)換子程序設(shè)計和定時器T0中斷程序設(shè)計。4.1 主程序流程圖設(shè)計軟件所要實現(xiàn)的功能有:按鍵響應,對ADC0809的控制,對數(shù)據(jù)的處理和傳送顯示的數(shù)據(jù)。主程序包含初始化、調(diào)用A/D轉(zhuǎn)換子程序和調(diào)用顯示程序,其流程圖如圖4.1所示:搖頭?Y開始顯示初始化Y占空比1:3自然風?N常風?NY占空比3:1Y占空比1:5睡眠風?NY進入定時程序定時?開搖頭NN電機過熱?關(guān)電機關(guān)中斷顯示過熱N圖4.1 主程序流程圖主程序經(jīng)初始化后,開始四位數(shù)碼管顯示的是“0
31、000”電機停轉(zhuǎn)。然后進入按鍵掃描程序,依次對自然風、常風、睡眠風進行掃描,單片機I/O口輸出相應的占空比方波,當為自然風時,數(shù)碼管最高位顯示“1”,當為常風時,數(shù)碼管最高位顯示“2”,當為睡眠風時,數(shù)碼管最高位顯示為“3”。當有定時鍵按下時,轉(zhuǎn)到定時器T0中斷程序進行。當有搖頭鍵按下時,高低電平翻轉(zhuǎn),電機開始反轉(zhuǎn)。4.2 定時器T0中斷程序流程圖設(shè)計定時器T0是用來對定時時間進行控制的,結(jié)合數(shù)碼管動態(tài)顯示,首先給T0設(shè)置工作方式和初始值,由于它不可重裝,所以在主程序中必須再次定義它的初始值。其流程圖如圖4.2所示。Y定時時間減一秒定時到了嗎?Y置初值置初值中斷返回數(shù)碼顯示電機停關(guān)中斷N1s到
32、了嗎?N開中斷圖4.2 定時器T0中斷程序流程圖4.3 A/D轉(zhuǎn)換測量子程序流程圖設(shè)計由于ADC0809在進行A/D轉(zhuǎn)換時要用到CLK信號,而此時的ADC0809的CLK是接在AT89C52單片機的P2.4端口上,也就是要求從P2.4輸出CLK信號供ADC0809使用。因此產(chǎn)生CLK信號的方法就的使用軟件來產(chǎn)生了;由于ADC0809的參考電壓VREF=VCC,所以轉(zhuǎn)換之后的數(shù)據(jù)要經(jīng)過數(shù)據(jù)處理。然后和設(shè)定的參考值比較,而實際顯示的電壓值的關(guān)系為。其流程圖如圖4.3所示。Y地址數(shù)小于8?NA/D轉(zhuǎn)換結(jié)束?結(jié)束N開始ADC0809地址加一取數(shù)據(jù)Y啟動測試(TESTART)圖4.3 A/D轉(zhuǎn)換測量子程
33、序流程圖在主程序中,ADC0809的轉(zhuǎn)換程序也是無限循環(huán)的,它主要是檢測電機是否過熱。本系統(tǒng)中,運用定時器T1作為CLOCK的脈沖信號,由于它的工作方式為2,且初始值216,足以滿足ADC0809所轉(zhuǎn)換一次所需要的時間。設(shè)定電機過熱電壓初始值為1.95V,當模擬電壓輸入量超過這個值時,發(fā)光二極管點亮,表示電機過熱此時L298使能端變低電平,電機停轉(zhuǎn)。4.4 系統(tǒng)仿真結(jié)果系統(tǒng)仿真結(jié)果見附錄B。4.5 源程序源程序見附錄C。結(jié) 論在寫畢業(yè)論文時我深深體會到搞設(shè)計的艱辛與困難,電風扇我們都熟悉,但要想把單片機技術(shù)運用到電風扇上是不簡單的事情。這次畢業(yè)設(shè)計讓我學到了許多課本上沒有的知識,使我受益匪淺,
34、讓我認識到無論做任何事情,都要認真對待,要知道自己要做什么,怎么樣才能做到,是否能夠做好,因此,這些都需要我們認真的分析,遇到困難要及時尋求老師的幫助。我相信,沒有解決不了的問題。我會一步一個腳印,踏踏實實的向我的目標前進。致謝:我的畢業(yè)設(shè)計,是在彭建英老師的指導下,進行大膽的理論與實踐相結(jié)合,通過查找翻閱有關(guān)理論資料和技術(shù)手冊,我的動手能力得到很大提高,使我懂得了如何把書本上知識總結(jié)起來去應用于實踐,學到了研究、開發(fā),設(shè)計單片微型計算機對工業(yè)過程控制的一套完整的方法,受益很大。硬件軟件都要涉及,由于時間緊,工作量大,本次設(shè)計沒能做出實物。本畢業(yè)設(shè)計鍛煉了我的動手能力,進一步強化了專業(yè)知識,提
35、高了將所學知識應用于實踐的能力。在此感謝大學四年對我辛勤教導的老師們以及同窗四年的同學,謝謝你們對我四年的關(guān)心和照顧。參考文獻1謝維成.單片機原理與應用及C51程序設(shè)計M.清華大學出版社,2009.72謝自美.電子線路設(shè)計.實驗.測試M.華中科技大學出版社,2002.63馬忠梅等.單片機的C語言應用程序設(shè)計M.北京航空航天大學出版社,2003.114樓然苗等.單片機課程設(shè)計指導M.北京航空航天大學出版社,2007.75張永楓.單片機應用實訓教程M.西安電子科技大學出版社,2005.26夏繼強.單片機實驗與實踐教程M.北京航空航天大學出版社,2001.5 7吳國經(jīng).單片機應用技術(shù)M.中國電力出版
36、社,2004.78AT89C51 DATA SHEEP Philips Semiconductors 1999.dec附錄A:單片機電風扇控制系統(tǒng)的設(shè)計原理圖附錄B:仿真結(jié)果圖 圖1 圖1是自然風鍵按下時狀態(tài),數(shù)碼管顯示為1,無定時時間。ADC0809顯示電壓值為1.95V,電機不發(fā)熱,正常轉(zhuǎn)動。為了表示哪個按鍵被按下,仿真圖上對應的按鍵均為閉合狀態(tài),下面的仿真圖也同上,這里不在闡述。 圖 2圖2為示波器仿真效果,PWM輸出占空比為1:3的方波,電機正轉(zhuǎn)。 圖3圖3是常風鍵按下時狀態(tài),數(shù)碼管第一位顯示為2,無定時時間。ADC0809顯示電壓值為1.95V,電機不發(fā)熱,正常轉(zhuǎn)動。圖 4圖4是示波
37、器仿真效果圖,PWM輸出占空比為3:1的方波,電機正轉(zhuǎn)。 圖5 圖5是睡眠風鍵按鍵按下時狀態(tài),數(shù)碼管第一位顯示為3,無定時時間。ADC0809顯示電壓值為1.95V,電機不發(fā)熱,正常轉(zhuǎn)動。圖 6圖6是是示波器仿真效果圖,PWM輸出占空比為1:5的方波,電機正常轉(zhuǎn)動。 圖7 圖7是電機反轉(zhuǎn)的仿真圖,由于是在常風的模式進行的,我們只能看它的PWM占空比示意圖與電機正轉(zhuǎn)的示意圖進行比較,其反轉(zhuǎn)的效果如圖8所示: 圖 8 圖8是常風風模式下的電機反轉(zhuǎn)占空比示意圖,經(jīng)過與圖4進行比較,它們的方波占空比完全吻合,這證明了電機正反轉(zhuǎn)完全正常。 圖9 圖9是自然風按鍵按下時狀態(tài),數(shù)碼管第一位顯示為3,定時時間
38、為15ms。ADC0809顯示電壓值為1.95V,電機不發(fā)熱,正常轉(zhuǎn)動。 圖10圖10是睡眠風按鍵按下時狀態(tài),數(shù)碼管第一位顯示為3,定時時間為0ms。ADC0809測得的顯示電壓值為2.0V,超過設(shè)定的初始值,則表示電機發(fā)熱,電機停止轉(zhuǎn)動。附錄C:參考程序/*/ 基于單片機電風扇控制系統(tǒng)的設(shè)計C程序/ 使用keil C51 ver7.09/ 2012.5.5/*/#include#define uint unsigned int#define uchar unsignde charsbit key1=P30;sbit key2=P31;sbit key3=P32;sbit key4=P33;s
39、bit key5=P34;sbit A=P26;/電機驅(qū)動端口sbit D=P27;sbit wei1=P20;sbit wei2=P23;sbit wei3=P22;sbit wei4=P21;sbit wxout=P25; /溫度 太高 報警燈sbit clock=P24; sbit start=P35;sbit eoc=P36; /adc0809 驅(qū)動端口定義sbit oe=P37; unsigned char wxin=100;/定義初始值為100,轉(zhuǎn)換成實際電壓值為1.95Vunsigned int getdata,ss;/ 溫度過高標志位int num=0,count=0,se=1
40、,flag=1;/定時標志位;電機正反轉(zhuǎn)標志位int shou_num,di_num,gao_num, le,bai,shi,ge;/電機占空比標志位void display( ); /聲明顯示函數(shù)void delay(uint x);/聲明延時函數(shù)void qudong(); /聲明電機驅(qū)動函數(shù)unsigned char table =0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/共陰數(shù)碼管char seg3=0;/延時函數(shù)void delay(uint x)uint i;while(x-)for(i=122;i0;
41、i-);/數(shù)碼管顯示函數(shù)void display()bai=num/100;/百位shi=num%100/10;/十位ge=num%10;/個位seg0=bai;seg1=shi;seg2=ge;wei1=0;P1=tableshou_num; delay(1);wei1=1;wei2=0;P1=tableseg0;delay(1);wei2=1;wei3=0;P1=tableseg1;delay(1);wei3=1;wei4=0;P1=tableseg2;delay(1);wei4=1;/按鍵掃描函數(shù)void scan()if(key1=0)if(key1=0)display();le=1;
42、elsele=0;A=0;D=0;if(key2=0)if(key2=0)le=2;display(); elsele=0;A=0;D=0;if(key3=0)if(key3=0)le=3;display(); elsele=0;A=0;D=0;if(key4=0) /定時鍵按下delay(5);if(key4=0)TR0=1;num=num+10;if(num=1000)num=990;while(key4=0)display();if(key5=0) /電機正反轉(zhuǎn)按鍵delay(5);if(key5=0)flag=!flag;while(key5=0)display();/電機驅(qū)動函數(shù)vo
43、id qudong()int i;if(ss!=0) / 電機是否發(fā)熱?if(se!=0) /定時到了嗎?if(flag) /是否正轉(zhuǎn)?D=0;for(i=0;idi_num;i+) /輸出di_num個低電平A=0;display(); /用顯示函數(shù)做延時函數(shù),一舉兩得 for(j=0;jgao_num;j+) /輸出gao_num個高電平A=1;display();display();else /電機反轉(zhuǎn)A=0;for(i=0;idi_num;i+) /輸出di_num個低電平D=0;display();for(j=0;jwxin) /如果轉(zhuǎn)換值大于100則發(fā)光二極管燈亮,電機停止 wxo
44、ut=0; ss=0; display();else ss=1;wxout=1; display();/主函數(shù)void main()TMOD=0 x21; /定義T1和T0的工作方式風別為方式2和方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256; TH1=216;TL1=216;EA=1;ET1=1;TR1=1;ET0=1; A=0;D=0; / 剛開機電機不轉(zhuǎn)while(1) /無限循環(huán) display();/調(diào)用顯示函數(shù)adc0809();/調(diào)用ADC0809函數(shù)scan(); /調(diào)用按鍵掃描函數(shù) dispose(); /調(diào)用按鍵處理函數(shù)qudong(); /調(diào)用電機驅(qū)動函數(shù)28
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。