




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上 摘 要 本文介紹了家用風扇控制器是利用基于MCS-51系列單片機程序輸出相應的控制信號來控制電路,以達到調節(jié)風扇風速強弱、風扇運轉狀態(tài)和開關的邏輯系統(tǒng),并利用定時器設定時間控制,使風扇的設計更加完善和人性化。 文章首先介紹了MCS-51系列單片機芯片,在第二章論述了總體設計過程,確定了技術指標及器件的選擇,第三章著重描述了系統(tǒng)硬件電路設計、硬件設計框圖及所使用的各種元件的功能與特性,在第四章中重點剖析了軟件設計的過程,最后則是對整個系統(tǒng)的調試和檢測。關鍵字:LED指示燈 定時器 單片機技術 AT98C51芯片專心-專注-專業(yè)目錄摘要第一章 緒論1.1 課題背景研究的
2、意義和目的 11.2 課題研究的內容 1第二章 總體方案設計 22.1 風扇設計方案22.1.1 基于FPGA的設計22.1.2 采用PLC設計22.1.3 采用AT89C51系列單片機設計32.1.4 三種設計方案的對比32.2 風扇設計過程42.2.1 硬件設計過程42.2.2 軟件設計過程4第三章 家用風扇控制器硬件設計 53.1 選用器件的介紹5 3.1.1 單片機89C525 3.1.2 AT89C52的概述5 3.1.3 AT89C52的特性5 3.2 89C82 處理器53.2.1 89C52處理器功能描述63.2.2 89C52處理器模塊結構框圖63.3 LED顯示模塊63.3
3、.1 LED指示燈功能描述63.3.2 LED指示燈原理圖73.4 鍵盤模塊73.4.1 行列式鍵盤結構73.4.2 行列式鍵盤的優(yōu)點83.4.3 行列式鍵盤原理圖83.5輸入信號與輸出信號的選擇93.5.1 矩陣鍵盤輸入信號93.5.2 LED指示燈輸出信號9第四章 家用風扇軟件設計 104.1 語言的選擇104.2 編程思路114.3 主程序設計114.4 風種程序設計13 4.4.1 正常風子程序設計144.4.2 自然風子程序設計154.4.3 睡眠風子程序設計174.5 風速程序設計184.6 按鍵掃描程序設計194.7 延時去抖子程序設計204.8定時器0中斷程序設計 204.9設
4、計的主流程圖22第五章 系統(tǒng)的調試與仿真 235.1 單片機應用系統(tǒng)的一般調試235.2 Keil uVvision2簡介235.3 Proteus仿真軟件介紹235.4 Proteus仿真分析24總結26致謝 27參考文獻 28附錄129第一章 緒論1.1 課題背景研究的意義和目的風扇是由電動機驅動扇葉,加速室內空氣流動與循環(huán)。在夏季作為通風、散熱和仿暑降溫,在冬季可作為加強室內空氣循環(huán)的設備。它結構簡單、使用方便,在我國目前的生活水平下,特別是廣大農村及中小城市中,它是一種最經濟、最實惠的仿暑降溫設備。如今在各大超市及連鎖賣場中看到,電風扇已一改人們印象中的傳統(tǒng)形象,在外觀和功能上都更追求
5、個性化,塔式氣流尊貴典雅,卡通臺扇嬌巧可愛,而電腦控制、自然風、睡眠風等這些本屬于空調器的功能,也被眾多的電風扇廠家拿來做文章。這些外觀不拘一格并且功能多樣的產品已經成為今年電風扇市場中的一大亮點,這種差異化賣點雖然預示了整個電風扇行業(yè)未來的發(fā)展趨勢和走向,但其價格相對普通風扇仍高出不少。風扇各項功能的實現(xiàn)都依賴于其內部的控制器,它是風扇中的核心部件。因而設計一款低成本、高性能的風扇控制器,不但對較好的掌握控制系統(tǒng)及其應用方面的知識,并具備系統(tǒng)設計個應用設計的能力有很大的幫助,而且具有廣闊的市場前景。1.2 課題研究的內容本課題主要研究的內容是設計一款簡單的家用風扇控制器。研究風扇的基本功能,
6、以實現(xiàn)風種、風速之間的轉換。課題選用AT89C52系列單片機為芯片,在輔以其他必要的模塊加以補充,其中包括LED顯示模塊和鍵盤模塊。利用Keil C51調試軟件和Proteus仿真軟件來實現(xiàn)軟硬件的調試和仿真第二章 總體方案設計2.1 風扇設計方案要實現(xiàn)整個風扇系統(tǒng)平穩(wěn)、可靠、有序的運行,就必須了解和掌握風扇的基本工作原理及各項功能的實現(xiàn)流程,明確各流程的控制量,從而建立控制模型和確定控制系統(tǒng)的設計方案。以下是三種風扇的設計方案。2.1.1基于FPGA的設計系統(tǒng)基于可編程器件FPGA進行設計,用VHDL語言開發(fā)時,具有如下的特點:a. 采用自上而下的設計方法。即從系統(tǒng)總體要求出發(fā),自上而下地逐
7、步將設計的內容細化,最后完成系統(tǒng)硬件的整體設計。b. 采用系統(tǒng)早期仿真。在系統(tǒng)設計過程中要進行三級仿真,即行為層次仿真、RTL層次仿真和門級層次仿真。這三級仿真貫穿系統(tǒng)設計的全過程,從而可以在系統(tǒng)設計的早期發(fā)現(xiàn)設計中存在的問題,大大縮短系統(tǒng)設計的周期,節(jié)約大量的人力和物力c. 降低了硬件電路設計難度。在傳統(tǒng)的設計方法中,往往要求設計者在設計電路之前寫出該電路的邏輯表達式或真值表(或時序電路的狀態(tài)表)。這一工作是相當困難和繁雜的,特別是當系統(tǒng)比較復雜時更是如此。而利用VHDL語言設計硬件電路時,就可以使設計者免除編寫邏輯表達式或真值表之苦,從而大大降低了設計的難度,也縮短了設計的周期。d. 主要
8、設計文件是用VHDL語言編寫的源程序。與傳統(tǒng)的電路原理圖相比,使用VHDL源程序有許多好處:其一是資料量小,便于保存。其二是可繼承性好。當設計其他硬件電路時,可使用文件中的某些庫、進程和過程等描述某些局部硬件電路的程序。其三是閱讀方便。閱讀程序比閱讀電路原理圖要更容易一些,閱讀者很容易在程序中看出某一電路的工做原理和邏輯關系。而要從電路原理圖中推知其工作原理則需要較多的硬件知識和經驗。2.1.2 采用PLC的設計PLC硬件系統(tǒng)設計簡潔,指令系統(tǒng)設計精煉。在所有的單片機品種當中,它是最容易學習、最容易應用的單片機品種之一。對于單片機的初學者來說,若選擇PIC單片機作為攻入單片機王國的“突破口”,
9、將是一條最輕松的捷徑,定會取得事半功倍的功效。PLC是由模仿原繼電器控制原理發(fā)展起來的,二十世紀七十年代的PLC只有開關量邏輯控制,首先應用的是汽車制造行業(yè),它以存儲執(zhí)行邏輯運算、順序控制、定時、計數(shù)和運算等操作的指令;并通過數(shù)字輸入和輸出操作,來控制各類機械或生產過程。用戶編制的控制程序表達了生產過程的工藝要求,并事先存入PLC的用戶程序存儲器中,運行時按存儲程序的內容逐條執(zhí)行,以完成工藝流程要求的操作。PLC的CPU內有指示程序步存儲地址的程序計數(shù)器,在程序運行過程中,每執(zhí)行一步該計數(shù)器自動加1,程序從起始步(步序號為零)起依次執(zhí)行到最終步(通常為END指令),然后再返回起始步循環(huán)運算。P
10、LC每完成一次循環(huán)操作所需的時間稱為一個掃描周期。不同型號的PLC,循環(huán)掃描周期在1微秒到幾十微秒之間。PLC用梯形圖編程,在解算邏輯方面,表現(xiàn)出快速的優(yōu)點,在微秒量級,解算1K邏輯程序不到1毫秒。它把所有的輸入都當成開關量來處理,16位(也有32位的)為一個模擬量。多年來,可編程控制器從其產生到現(xiàn)在,實現(xiàn)了接線邏輯到存儲邏輯的飛躍;其功能從弱到強,實現(xiàn)了邏輯控制到數(shù)字控制的進步;其應用領域從小到大,實現(xiàn)了單體設備簡單控制到勝任運動控制、過程控制及集散控制等各種任務的跨越。2.1.3 采用AT89C52系列單片機設計AT89C52系列單片機設計硬件電路的方法是采用自下而上的設計方法,即根據(jù)系統(tǒng)
11、對硬件的要求,詳細編制技術規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術規(guī)格書和系統(tǒng)控制流圖,對系統(tǒng)的功能進行細化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進行各功能模塊的細化和電路設計;各功能模塊電路設計、調試完成后,將各功能模塊的硬件電路連接起來再進行系統(tǒng)的調試,最后完成整個系統(tǒng)的硬件設計。2.1.4 三種設計方案的對比雖然以上三類器件都可滿足和實現(xiàn)風扇控制器的設計需求,但器件價格、體積、功耗以及器件的供電電壓都是我們在設計中所需要考慮的,在滿足性能指標的前提下,選用一款價格合適的器件成為我們的目標。目前市場上單片機價格有從幾元到幾十元。由于風扇的結構簡單,功能相對單一。而VHDL設計技
12、術則不很直觀,需要有EDA編程基礎,通常需要有多余半年的專業(yè)培訓才能掌握這們技術。選用ATMEL公司的AT89C51(供電電壓+5V)單片機來設計風扇控制器完全能滿足低成本和使用方便的要求。 2.2 風扇的設計過程設計一個家用風扇控制器系統(tǒng),可以分為硬件設計和軟件設計兩個部分,從設計草圖開始到樣機調試成功,需要將硬件、軟件結合起來考慮,才能取得較好的效果。在應用系統(tǒng)中,硬件和軟件具有一定的互換性,即某些功能既可用硬件實現(xiàn)也可以用軟件來完成。用硬件實現(xiàn)的優(yōu)點是可以提高工作速度,但使電路復雜,增加了硬件的成本,而用軟件代替某些硬件的功能可以使電路簡化,硬件成本降低,但軟件工作量增大。通過調查研究,
13、查閱資料來初定系統(tǒng)結構的總體方案,其中主要涉及到硬件個軟件的功能劃分。2.2.1 硬件設計過程a. 將整個硬件系統(tǒng)劃分為若干功能單元電路,繪出整個系統(tǒng)邏輯電路圖,注明各單元電路接口信號,并畫出一些重要的控制信號的時序圖;b. 完成各單元電路設計:包括選擇合適的各類元器件和電路板設計;c. 各單元電路板裝配、分調;d. 整個硬件聯(lián)機調試,完成后準備與軟件聯(lián)調。2.2.2 軟件設計過程a. 采用模塊化程序結構設計軟件,首先將整個軟件分成若干功能模塊;b. 對各模塊設計寫一個詳細的程序流程圖;c. 根據(jù)流程圖,編寫源程序;d. 上機調試個模塊程序;e. 各程序模塊聯(lián)調;f. 與硬件一起聯(lián)調,最后完成
14、全部調試工作。第三章 家用風扇控制器硬件設計3.1 選用器件介紹在本次設計的主電路中采用了以Atmel公司的89C52這款功能強大的單片機作為控制核心,在輔以其他必要的模塊加以補充。除了89C52之外主要采用的模塊有:指示燈模塊、鍵盤模塊。3.1.1 單片機89C52本設計的核心儀器為AT89C52單片機,它是整個控制系統(tǒng)的大腦,要負責定時計數(shù)、LED顯示、選用風種、控制風速等多項任務。可以說這塊單片機的成功是否直接決定了本次風扇控制器功能的實現(xiàn)。3.1.2 AT89C52概述屬于MCS-51系列,在一塊芯片上集成了CPU, RAM, ROM, UO、定時/計數(shù)器等。同時,AT89C52可降至
15、0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其他所有部件工作直到下一個硬件復位。3.1.3 AT89C52的特性一個8位的CPU;8k字節(jié)閃存存儲器;可尋址64K外部程序存儲器和64K外部數(shù)據(jù)存儲器的控制電路;具有六個中斷源、兩個優(yōu)先級嵌套中斷結構。一個片內振蕩器及時鐘電路;256字節(jié)RAM數(shù)據(jù)存儲器;4個8位并行I0口;一個可編程的全雙工串行口;三個16位定時/計數(shù)器。3.2 89C52處理器系統(tǒng)框圖圖1 總系統(tǒng)框圖3.2.1 89C52處理器功能
16、描述采用8位單片機89C52,時鐘電路使用片內時鐘振蕩器,具有上電復位和手動按鍵復位功能,外接WDG復位電路。通過并行總線外擴了128KW SRM和64K的 FLASH ROM;串行擴展:通過RS-232連接了UART口;通過跳線器可選兩個IO口來虛擬I2C總線,并外接帶I2C總線的EEPROM和RTC。數(shù)據(jù)總線地址總線經總線驅動后引出到總線插槽與其他模塊相連。模塊的譯碼控制電路由一片CPLD來完成。3.2.2 89C52處理器模塊結構框圖圖2 89C52處理器模塊結構框圖3.3 LED顯示模塊指示燈L0L7受驅動芯片U3控制。可以顯示8位的單片機數(shù)據(jù)輸出。L7指示最高位,L0指示最低位。接通
17、電源后指示燈常亮。3.3.1 LED指示燈的功能描述在本課題的設計中定義了指示燈L0、L1、L2、L3、L5、L7。其中L0-L2指示燈表示風速的弱、中、強。指示燈L3表示自然風、L5表示正常風、L7表示睡眠風。在初始化程序中設置風種是正常風且風速是弱風。當按下K4鍵指示燈亮,風速按照弱中強來回切換,以此循環(huán)。當按下K8鍵,風種按照正常自然睡眠來回切換。當切換到自然風時,風種的指示燈亮4S,停4S。當切換到睡眠風時,弱風指示燈亮8S,停8S。以此循環(huán)。3.3.2 LED指示燈原理圖圖3 LED指示燈原理圖3.4鍵盤模塊獨立式鍵盤雖然結構簡單,使用方便,但每一個按鍵開關要占一根I/O口線,因此在
18、按鍵數(shù)較多時,采用行列式鍵盤技術。3.4.1 行列式鍵盤的結構如圖4所示為行列式鍵盤的基本結構,它有鍵盤開關矩陣、輸出(行線)鎖存器、輸入(列線)緩沖器三部分組成。圖4 行列式鍵盤結構圖3.4.2 行列式鍵盤的優(yōu)點在鍵盤中按鍵數(shù)量較多時,為了減少I/O端口的占用,通常將按鍵排列成矩形形式,也就是常說的行列式鍵盤。行列式鍵盤中的鍵實際上就是一個機械開關,該開關位于行線和列線的交點處。當鍵被按下時,其交叉的行線和列線接通,相應行線或列線上的電平發(fā)生變化,從而確定被按下的功能鍵。采用行列式鍵盤的優(yōu)點在于:在行列式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣一個端口可以
19、構成44=16個按鍵,比直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯。比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出1鍵。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。3.4.3 行列式鍵盤原理圖圖5 44行列式鍵盤輸入原理圖3.5 輸入信號與輸出信號的選擇 本設計選用AT89C51系列單片機為芯片,以矩陣鍵盤為輸入信號,以LED指示燈為輸出信號。3.5.1 矩陣鍵盤的輸入信號矩陣鍵盤輸入電路采用行列掃描法實現(xiàn)。將列線DIG1DIG4接輸出口,行線KEY1KEY4接到輸入口,采用行掃描法,先將各列線均輸出低電平,讀入行線上值,有低電平則表示有鍵按下。
20、先將某一列輸出為低電平,其它列輸出為高電平,用輸入口來查詢行線上的電平,逐次比較各行值,如果某行線上的值為0時,則表明對應列的此行按鍵按下。否則,接著讀入下一行,直到找到該列有按下的鍵為止。如該列沒有找到有按鍵按下,就按此方法逐列找下去,直到掃描完全部的列和行。鍵盤的行線和列線具有不同的口地址,由74138譯碼器生成,分別經由鎖存器輸出和輸入,接到系統(tǒng)數(shù)據(jù)總線上。3.5.2 LED指示燈的輸出信號在設計中按下指定鍵則亮相應的指示燈。課題設計中設置K0為停止鍵,按下該鍵則所有的指示燈都滅。K4鍵為開關鍵和控制風種鍵,按下該鍵則亮程序設置的相應的指示燈。K8鍵為風速控制鍵,按下該鍵則亮相應的風速指
21、示燈。第四章 家用風扇軟件設計4.1 語言的選擇在單片機應用系統(tǒng)研發(fā)中,應用程序設計是主要工作。采用匯編語言編寫應用程序,可直接操縱系統(tǒng)的硬件資源,編寫出質量的程序代碼。但是,采用匯編語言編寫比較復雜的數(shù)值計算程序就感到非常困難,又因匯編語言源程序的可讀性不如高級語言源程序,若要修改程序,得花費較多的心思。從系統(tǒng)開發(fā)的時間來看,采用匯編語言進行單片機應用程序設計,效率不是很高。采用C語言,易于開發(fā)復雜的單片機應用程序,易于進行單片機應用程序的移植,有利于產品中的單片機重新選型,可大大加快單片機應用程序開發(fā)速度。隨著單片機開發(fā)工具水平的提高,現(xiàn)在的單片機仿真器普遍支持C語言程序的調試,為單片機編
22、程使用C語言提供了便利的條件。C語言是一種源于編寫UNIX操作系統(tǒng)的語言,是一種結構化語言,可產生緊湊化代碼。C語言的結構是以括號而不是以字和特殊符號表示的語言。C語言可以進行很多機器級函數(shù)控制而不用匯編語言。與匯編語言相比C具有以下一些特點。對單片機的指令系統(tǒng)部要求了解,僅要求對MCS-51的存儲器結構有初步了解寄存器的分配、不同存儲器的尋址及數(shù)據(jù)類型等細節(jié)可由編譯器管理程序有規(guī)范的結構,可分為不同的函數(shù),這種方式可使程序結構化具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性關鍵字和運算函數(shù)可用近似于人的思維過程方式使用編程和程序調試時間顯著縮短,從而提高效率提供庫包含許多標準
23、子程序,具有較強的數(shù)據(jù)處理能力已編好的程序可方便的植入新程序,因而C語言具有方便的模塊化編程技術C語言是一種編譯型程序設計語言,它兼顧了多種程序設計語言的特點,并具備匯編語言功能。用C語言來編寫目標系統(tǒng)軟件,會大大縮短開發(fā)周期,且明顯的增加軟件的可讀性,便于改進和擴充,以研制出規(guī)模更大、性能更完備的系統(tǒng)。用C語言進行MCS-51單片機程序設計是單片機開發(fā)和應用的必然趨勢。單片機的程序設計應該以C語言為主,以匯編語言為輔。匯編語言掌握到只要可以讀懂程序,在時間要求比較嚴格的模塊中進行程序的優(yōu)化即可。采用C語言也不用對單片機和硬件接口的結構又很深入的了解,編譯器可以自動完成變量的存儲單元的分配,編
24、程者就可以專注于應用軟件部分的設計,大大加快軟件的開發(fā)速度。另外采用C語言可以很容易地進行單片機的程序移植工作,可以方便的進行單片機的重新選型。目前使用的C語言開發(fā)工具主要是KEIL公司產品,我使用的是keil uVvision2,它是基于Windows uVision集成開發(fā)環(huán)境和dScope軟件模擬調試程序。該版本把uVvision1用的模擬調試器dScope與集成開發(fā)環(huán)境無縫的結合起來,界面更友好,使用更方便,支持的單片機品種更多。4.2 編程思路該設計的主要思想是通過在初始化程序中設立兩個標志位(風速標志位與風種標志位),當按鍵掃描程序掃描到風速按鈕按下時,就對風速標志位的值進行相應的
25、修改(加1);當按鍵掃描程序掃描到風種按鈕按下時,就對風速標志位的值進行相應的修改(加1);當按鍵掃描程序掃描到停止按鈕按下時,就關閉單片機各端口。根據(jù)兩個標志位的不同值對單片機的某些端口執(zhí)行相應的操作,風速的不同對應著單片機風速輸出各端口高低電平的不同,而風種的不同對應著相關的風速端口高電平的有效時間不同,從而實現(xiàn)風速、風種不同狀態(tài)之間的轉移。4.3 主程序設計系統(tǒng)軟件主要由主程序(包括初始化程序、輸入狀態(tài)查詢程序)、正常風輸出子程序、自然風輸出子程序、睡眠風輸出子程序、按鍵掃描程序、按鍵執(zhí)行程序與定時器0中斷程序組成。主程序主要識別鍵功能, 判斷是什么鍵按下, 并調用相應子程序, 完成相應
26、的功能。設置定時器工作方式,并送定時預置值;開定時器0的中斷允許,風扇進入初始狀態(tài)(關所有指示燈,風速輸出口均為低電平)。循環(huán)調用按鍵掃描子程序,根據(jù)按鍵狀態(tài)對狀態(tài)標志位的值作出對應修改,并根據(jù)風速標志位的值,決定風扇是否啟動。風速標志位值大于1時,表示風速鍵按下過,根據(jù)風種標志位的值,調用相應風種的子程序;當風速標志位值為零時,表示風速鍵未曾按下,風扇保持在停止狀態(tài)。圖6 主程序流程圖void main(void) TMOD=0x01; /timer0定時,工作于方式1 TH0=0x3c; /timer1=65536-50ms/(12*(1/12MHz)=15536 TL0=0xb0; TR
27、0=0; /定時器0關閉 EA=1; /開中斷允許總開關 ET0 = 1; / Enable TIMER0 Interrupt led = 0xff; /風扇停止運行 for(;) keyscan(); /調用按鍵掃描程序 if(level=1)/風速鍵有被按下風扇才啟動 if(kind=0x03) sleep_wind(); /調用睡眠風子程序 if(kind=0x02) nature_wind();/調用自然風子程序 if(kind=0x01) normal_wind();/調用正常風子程序 if(level=0) /風速標志位為0時,風扇處于停轉狀態(tài) kind=1;/風種標志位賦值1 l
28、ed=0xff;/風扇停止運行 4.4 風種程序設計在風種程序設計中包括了正常風子程序、自然風子程序和睡眠風子程序。當按鍵掃描程序掃描到風種按鈕按下時,就對風速標志位的值進行相應的轉換,由正常風轉換到自然風再到睡眠風依次循環(huán)。圖7 風種狀態(tài)轉換圖4.4.1 正常風子程序設計圖8 正常風子程序流程圖static void normal_wind(void) /正常風 switch(level) /根據(jù)風速標志位的值,風扇在相應的風速連續(xù)運行 case 1:led = 0x0f6;break; /低速風 case 2:led = 0x0f5;break;/中速風case 3:led = 0x0f3
29、;break;/高速風default : break; 根據(jù)風速標志位的值,亮對應的指示燈,并使對應的風速口輸出為高電平,使風扇處于不同風速下的連續(xù)運行。4.4.2自然風子程序設計 圖8 自然風子程序流程圖static void nature_wind(void) /自然風 if(timer0_tick=160) /自然風定時時間到8秒后定時次數(shù)清零 timer0_tick=0; /- if(timer0_tick80) /自然風時定時時間在0-4秒風扇運行 switch(level) /根據(jù)風速標志位的值,風扇在相應的風速運行 case 1: led = 0x0de;break; /低速風
30、case 2: led = 0x0dd;break;/中速風 case 3: led = 0x0db;break;/高速default : break; 根據(jù)風速標志位的值,亮對應的指示燈;根據(jù)定時次數(shù)的值,來決定對應的風速口輸出是高電平還是低電平,即執(zhí)行運行4S,停4S。4.4.3 睡眠風子程序設計圖9 睡眠風子程序流程圖static void sleep_wind(void) /睡眠風 if(timer0_tick=320) timer0_tick=0;/睡眠風定時時間到16秒后定時次數(shù)清零 /- if(timer0_tick=160) led = 0x07f; /睡眠風時定時時間在8-1
31、6秒風扇停止運行 亮對應的指示燈;根據(jù)定時次數(shù)的值,來決定低速風口輸出是高電平還是低電平,即執(zhí)行低速風運行8S,停8S。4.5 風速程序設計在風速程序設計中包括了弱風、中風、強風之間的循環(huán)。根據(jù)兩個標志位的不同值對單片機的某些端口執(zhí)行相應的操作,風速的不同對應著單片機風速輸出各端口高低電平的不同,從而實現(xiàn)風速的轉換。 圖8 風速狀態(tài)轉換圖4.6 按鍵掃描程序設計在本段程序中先對行進行掃描,當掃描到行線有鍵按下時,再對列線進行掃描,行線、列線均為0狀態(tài)的鍵就是當前的按鍵。并根據(jù)掃描到的結果來判斷是否有按鍵按下,無按鍵按下,則返回,有按鍵按下則調用標志位值修改子程序。在此子程序中,變量key_v是
32、為了保證按鍵每按下一次,狀態(tài)標志位的值只改變一次。void keyscan(void) /按鍵掃描程序 line=0x00; /列線送0 key_t=row; /讀入行線上的值 key_t&=0x0f; /取行線值的低四位 /- if (key_t=0x0f) /無鍵按下或釋放 if(key_v!=key_t) key_v=key_t; /- if (key_t!=0x0f) / 表示有鍵按下 delay_ms(10); / 延時去抖 key_t=row; /讀入行線上的值 key_t&=0x0f; /取行線上值的低四位 if(key_t!=0x0f) /判斷是否確有鍵按下 if(key_v!
33、=key_t)/每次有鍵按下時,對應標志位的值只修改一次。 key_v=key_t; key_to(); /調用按鍵執(zhí)行子程序 4.7 延時去抖子程序設計在本段程序中涉及到鍵的去抖問題。當用手按下一個鍵時,往往會出現(xiàn)所按鍵在閉合位置斷開位置之間跳幾下才能穩(wěn)定到閉合狀態(tài)的情況。在釋放一個鍵時,也會出現(xiàn)類似的情況。抖動的持續(xù)時間不一,但通常不會大于10ms,若抖動問題不解決,就會引起對閉合鍵的多次讀入,所以對于鍵抖動最方便的解決方法就是當發(fā)現(xiàn)有鍵按下后,不是立即進行逐行掃描,而是延時10ms后再進行。由于鍵按下的時間延續(xù)上百毫秒,延時后再讀也不遲。當掃描到有按鍵時,軟件延時10ms在判斷該鍵是否仍
34、是按鍵,如果是則確認該鍵是當前的鍵,若不是,則把它當成是誤操作處理。void delay_ms(uchar ms) / 延時毫秒12M,ms最大值255 uchar i; while(ms-) for(i = 0; i 124; i+); 4.8 定時器0中斷程序設計提供定時,每執(zhí)行一次定時次數(shù)值加1。static void timer0_isr(void) interrupt 1 /T0int中斷號為1 TR0=0; TH0=0x3c; TL0=0xb0; TR0=1; timer0_tick+; MCS-51單片機內帶有兩個可編程16位定時/計數(shù)器T0和T1,兩者均可變成為定時器或計數(shù)器使
35、用。MCS-51單片機 兩個特殊功能寄存器TMOD和TCON,TMOD用于設置T/C的工作方式,TCON用于控制時器T0、T1的啟動和停止,并包含了定時器的狀態(tài)。 定時器工作方式寄存器TOMD定時器工作方式寄存器TOMD用于選擇定時器的工作方式,它的高4位控制定時器T1,低4位控制定時器T0。TOMD中各位的定義如下:GATEC/TM1M0GATEC/TM1M0其中:C/:T/C功能選擇位,當C/=1時為計數(shù)方式;當C/=0時為定時方式。M1M0:T/C工作方式定義位,其具體定義方式如表5所示。M1MO工作方式方式說明00013位定時/計數(shù)器01116位定時/計數(shù)器102可自動重裝入的8位定時
36、/計數(shù)器113T0分為2個8位定時器,T1無此方式GATE:門控制位,用于控制定時器的啟動是否受外部中斷源信號的影響。GATE=0時,與外部中斷無關,由TCON寄存器中的TRx位控制啟動。當GATE=1時,由控制位TRx和引腳共同控制啟動。只有在沒有外部中斷請求信號的情況下(即外部中斷引腳=1時),才允許定時器啟動。TOMD積存器在復位時被清0。定時器控制寄存器TOCNTOCN控制寄存器各位的定義如下:D7 D6 D5 D4 D3 D2 D1 D0TF1TR1TF0TR0IE1IT1IE0IE1其中:TF0(TF1):為TO(T1)定時器益出斷標志位。當T0(T1)計數(shù)益出時,由硬件置位。并在
37、允許中斷的情況下,發(fā)出中斷請求信號,當CPU響應中斷轉向中斷服務程序時,有硬件自動將該位清0。TR0(TR1):為T0(T1)運行控制位。當TR0(TR1)=1時啟動T0(T1);TR0(TR1)=0時關閉T0(T1)。TCON的低4位與外部中斷有關。TCON寄存器在復位時也被清0。4.9 設計的主流程圖程序的流程圖如下(level為風速標志,kind為風種標志)最后第五章 系統(tǒng)的調試與仿真5.1單片機應用系統(tǒng)的一般調試方法 (1)硬件調試 靜態(tài)調試 動態(tài)調試 (2) 軟件調試 先獨立后聯(lián)機 先分塊后組合 先單步后連續(xù) (3)系統(tǒng)聯(lián)調 軟、硬件能否按預定要求配合工作。系統(tǒng)運行中是否有潛在的設計
38、時難以預料的錯誤。系統(tǒng)的動態(tài)性能指標(包括精度、速度參數(shù))是否滿足設計要求。 (4)現(xiàn)場調試 5.2 Keil uVvision2簡介Keil 是德國Kiel公司開發(fā)的單片機編譯器,uVvision2是Keil公司關于8051系列單片機的開發(fā)工具,可以用來編譯C源碼、匯編源程序、連接和重定位目標文件和庫文件、創(chuàng)建HEX文件、調試目標程序等,是一種集成化的文件管理編譯環(huán)境。集成了文件編輯處理、編譯連接、項目管理、窗口、工具、引用和軟件仿真調試等多種功能,是相當強大的開發(fā)工具。在uVvision2的仿真功能中,有兩種仿真模式:軟件模擬模式和目標板仿真調試模式。5.3 Proteus仿真軟件介紹Pr
39、oteus軟件是來自英國Labcenter electronic公司的EDA工具軟件,除了其具有和其他EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是他的電路仿真是互動的,針對微處理器的應用,還可以直接在基于原理圖的虛擬原型上編程,并實現(xiàn)軟件源碼級的實時調試,如有顯示及輸出還能看到運行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,建立了一個完備的電子設計開發(fā)環(huán)境。Proteus產品系列也包含了革命性的VSM技術,可以對基于微控制器的設計連同所有的外圍電子器件一起仿真。用戶甚至可以實時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設模型來
40、對設計進行交互仿真。5.4 Proteus 仿真分析Proteus在設計的時候已經注意到和各種單片機編譯程序的結合了,如它可以和Keil,MPLAB等編譯模擬軟件結合。Keil是目前世界上優(yōu)秀的51單片機的匯編和C語言的開發(fā)工具,具有功能強大的軟件仿真和硬件仿真功能,把這兩個軟件結合使用,調試軟硬件就方便多了,課題設計中采用了Keil+Poteus的仿真方法。a. 正確設置Keil集成環(huán)境Proteus之間的接口,使二者成功連接。b. 在Keil里對匯編源程序進行編譯、連接,就可以像在仿真儀上一樣進行單步、全速調試了。隨時都可以觀察軟硬件的互動工作的過程和結果。 圖11 硬件運行時瞬間畫面總
41、結在這次畢業(yè)設計中我可以說是獲益匪淺。通過查閱了很多資料,了解了許多匯編程序的思想,擴展了自己的視野,不再僅僅局限于書本中幾條簡短的程序,而且更重要的是明白寫程序的態(tài)度:仔細謹慎,精益求精。在設計過程中,程序編寫錯誤很多,程序不是這邊出錯就是那邊漏掉。最后經過我自己的努力終于確定所有的控制狀態(tài),然后畫出相對應的流程圖,邊寫程序邊檢查。在檢查的過程中,才能逐步完善程序。在寫程序過程中,還有很多問題不能解決,查閱了許多資料,包括圖書館尋找資料,在網(wǎng)上搜索資料,看看別人是如何寫相應的程序。然后修改所需要的程序。最后進一步完善符合我設計要求的程序。在軟件使用中,我并不是一下子就很熟練使用,在設計過程中
42、遇到很多錯誤,就是以為只要把程序在調試軟件中進行調試,沒有錯誤就可以了.其實這是一個運行的過程。雖然,這個問題很簡單,但是當時設計過程中就有點鉆牛角尖,以至花了很多時間去檢查硬件連接電路。最后終于在不斷的詢問和調試中問題得以解決。 在硬件使用中都是將相應的模塊用導線連接起來。在硬件調試中由于程序的出錯使調試的結果并未達到課題的要求。最后經過不斷的修改和調試,終于達到了要求,完成了硬件的驗收。最后通過本次設計讓我學到很多課堂上學不到的知識。不但讓我對單片機的知識更加根深蒂固,而且學會了用keilc51軟件調試程序,用proteus畫圖進行仿真。通過設計也加深了我對理論知識的理解。而且在設計過程中也培養(yǎng)自己動手的能力。致 謝本人設計的家用風扇控制器課題及是在我的導師XXX的親切關懷和悉心指導下完成的。他嚴肅的科學態(tài)度,嚴謹?shù)闹螌W精神,精益求精的作風,深深地感染和激勵著我。從課題的選擇到項目的最終完成,呂老師都始終給予我細心的指導和不懈的支持。兩個月來,XXX在學業(yè)上給我以精心指導,在此謹向XXX致以誠摯的謝意和崇高的敬意。在此,我還要感謝在一起愉快的度過大學生活的同學們,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文的順利完成。在即將完成之際
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同法下租賃合同提前終止裝修處理辦法
- 乙方承包安裝合同樣本
- 買房附件合同樣本
- 代付協(xié)議模板
- 員工借調協(xié)議合同
- 會所酒吧轉讓合同樣本
- 人力資源服務派遣協(xié)議書范例二零二五年
- 股權合作協(xié)議范例
- 與拆遷公司合同樣本
- 幼兒園教師聘用協(xié)議合同書范例
- 物管物業(yè)交接驗收明細表格(全)模板
- 口腔科診斷證明書模板
- 小學數(shù)學專題講座小學數(shù)學計算能力的培養(yǎng)PPT
- 《遠離浮躁,靜心學習》ppt課件
- 二維數(shù)控精密工作臺設計說明書
- 河北省衡水市安平中學2020-2021學年高一下學期第一次月考生物試題
- 項目研究助力區(qū)域教學改進
- 初中化學優(yōu)質課評分表.
- LKJ-2000課件
- 五星級大酒店項目全套可行性分析報告(完整版)
- 小麥新品種‘石優(yōu)20號'的選育技術與推廣方法
評論
0/150
提交評論