摘要 近年來隨著計算機在社會領域的滲透和大規模集成電路的發展,單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關的系統,越來越廣泛地應用于自動控制,智能化儀器,儀表,數據采集,軍工產品以及家用電器等各個領域,單片機往往是作為一個核心部件來使用,在根據具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。 微波爐控制系統設計采以微控制器(MCU)為核心,基于RTX51 編制軟件系統,結合7位數碼管(LED)顯示以及必要的外圍電路,完成微波爐的可編程智能控制。系統由計時控制、火力設定、用戶界面、音響發生幾大模塊組成。能夠根據鍵盤輸入完成相應的功能,同時使用LED顯示系統狀態
目錄 摘 要 引 言 第1章 緒 論 1.1 課題背景 1.2 課題來源 1.3 本文的主要研究工作 第2章 系統總體概述 2.1 工作原理 2.2 電路設計 2.3 軟件設計 2.4 本章小結 第3章 方案比較與論證 3.1 檔位顯示部分方案 3.2 計時控制部分方案 3.3 鍵盤和顯示部分方案 3.4 音響發生模塊方案 3.5 本章小結 第4章 系統硬件設計 4.1 門電路設計 4.2 時鐘電路設計 4.3 鍵盤模塊電路設計 4.4 檔位顯示電路設計 4.5 顯示電路設計 4.6 音響發生電路設計 4.7 火力輸出控制設計 4.8 電源電路設計 4.6 本章小結 第5章 系統軟件設計 5.1 顯示程序設計 5.2 計時程序設計 5.3 系統待機狀態設計 5.4 用戶設定狀態設計 5.5 微波爐加熱狀態 5.6 加熱停止并響鈴狀態設計 5.7 本章小結 第6章 系統測試 5.1 測試及制作所用儀器 5.2 測試結果 5.3 本章小結 結 論 附錄一:系統電路圖 附錄二:軟件設計程序
引 言在生活和生產的各領域中,凡是有自動控制要求的地方都會有單片機的身影出現;從簡單到復雜,從空中、地面到地下,凡是能想像到的地方幾乎都有使用單片的需求。現在盡管單片機的應用已經很普遍了,但仍有許多可以用單片機控制而尚未實現的項目,因此,單片機的應用大有想像和拓展空間。 單片機的應用有利于產品的小型化、多功能化和智能化,有助于提高勞動效率,減輕勞動強度,提高產品質量,改善勞動環境,減少能源和材料消耗,保證安全等。由于數字集成電路技術的發展和采用了先進的石英技術,使自動控制具有計算準確、性能穩定、攜帶方便等優點。單片機應用的意義絕不僅限于它的廣闊范圍以及所帶來的經濟效益上,更重要的意義還在于:單片機的應用正從根本上改變著傳統的控制系統設計思想和設計方法。從前必須有模擬電路或數字電路實現的大部分功能,現在已能使用單片機通過軟件(編程序)方法實現了。這種以軟件取代硬件并提高系統性能的控制系統“軟化”技術,稱之為微控制技術。微控制技術是一種全新的概念,是對傳統控制技術的一次革命。隨著單片機應用的推廣普及,微控制技術必將不斷發展、日益完善和更加充實。
1.1 課題背景單片機自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機集成度高、功能強、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列優點,目前已經滲入到人們工作和生活的方方面面,幾乎“無處不在,無所不為”。單片機的應用領域已從面向工業控制、通訊、交通、智能儀表等迅速發展到家用消費產品、辦公自動化、汽車電子、PC機外圍以及網絡通訊等廣大領域。
單片機有兩種基本結構形式:一種是在通用微型計算機中廣泛采用的,將程序存儲器和數據存儲器合用一個存儲器空間的結構,稱為普林斯頓結構。另一種是將程序存儲器和數據存儲器截然分開,分別尋址的結構,一般需要較大的程序存儲器,目前的單片機以采用程序存儲器和數據存儲器截然分開的結構為多。
本文討論的單片機多功能數字鐘系統設計的核心是目前應用極為廣泛的51系列單片機,多功能數字鐘配置了外圍設備,構成了一個可編程的計時定時系統,具有體積小,可靠性高,功能強等特點。不僅能滿足所需要求而且還有很多功能可供開發,有著廣泛的應用領域。
20世紀80年代中期以后,Intel公司以專利轉讓的形式把8051內核技術轉讓給許多半導體芯片生產廠家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。這些廠家生產的芯片是MCS-51系列的兼容產品,準確地說是與MCS-51指令系統兼容的單片機。這些兼容機與8051的系統結構(主要是指令系統)相同,采用CMOS工藝,因而,常用80C51系列來稱呼所有具有8051指令系統的單片機,它們對8051單片機一般都作了一些擴充,更有特點。其功能和市場競爭力更強,不該把它們直接稱呼為MCS-51系列單片機,因為MCS只是Intel公司專用的單片機系列型號。MCS-51系列及80C51單片機有多種品種。它們的引腳及指令系統相互兼容,主要在內部結構上有些區別。目前使用的MCS-51系列單片機及其兼容產品通常分成以下幾類:基本型、增強型、低功耗型、專用型、超8位型、片內閃爍存儲器型。 1.2 課題來源在日常生活和工作中,我們常常用到定時控制,如擴印過程中的曝光定時等。早期常用的一些時間控制單元都使用模擬電路設計制作的,其定時準確性和重復精度都不是很理想,現在基本上都是基于數字技術的新一代產品,隨著單片機性能價格比的不斷提高,新一代產品的應用也越來越廣泛,大可構成復雜的工業過程控制系統,完成復雜的控制功能。小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強大,體積小,質量輕,靈活好用,配以適當的接口芯片,可以構造各種各樣、功能各異的微電子產品。 隨著電子技術的飛速發展,家用電器和辦公電子設備逐漸增多,不同的設備都有自己的控制器,使用起來很不方便。根據這種實際情況,設計了一個單片機多功能定時系統,它可以避免多種控制器的混淆,利用一個控制器對多路電器進行控制,同時又可以進行時鐘校準和定點打鈴。它可以執行不同的時間表(考試時間和日常作息時間)的打鈴,可以任意設置時間。這種具有人們所需要的智能化特性的產品減輕了人的勞動,擴大了數字化的范圍,為家庭數字化提供了可能。 1.3 本文的主要研究工作本文的主要工作是掌握單片機應用技術,顯示技術,電子技術等相關知識,設計制作一個微波爐控制器電路,具有三檔微波加熱功能,分別表示微波加熱為烹調、烘烤、解凍,試驗中用LED模擬。實現工作步驟:復位待機——〉檢測顯示電路——〉設置輸出功能和定時器初值——〉啟動定時和工作開始——〉結束烹調、音響提示。在上電或手動按復位鍵時,控制器輸出的微波功率控制信號為0,微波加熱處于待機狀態,時間顯示電路顯示為00.00。具有4位時間預置電路,按鍵啟動時間設置,最大預設數為99分59秒。設定初值后,按開啟鍵,一方面按選擇的擋位啟動相應的微波加熱;另一方面使計時電路以秒為單位作倒計時。當計時到時間為0則斷開微波加熱器,并給出聲音提示,即揚聲器輸出2~3s的雙音頻提示音。 具體的問題有: (1)如何進行時間設置(分、秒)和時鐘倒計時功能; (2)如何設計智能火力控制 (3)如何設計顯示模塊顯示時間;
(4)如何設計按鍵設置; (5)如何設計音響提示聲音; (6)如何設計微波爐開門停止工作
第2章 系統總體概述2.1 工作原理微波爐工作分四個步驟分別為:系統待機—用戶設定—微波爐加熱—加熱完成響音提示。具體流程如下圖2.1.1。
系統上電自檢后,數碼管顯示零分、零秒,檔位通過三個發光二極管顯示(分別表示烹調、烘烤、解凍)。鍵盤分按鍵K0,K1,K2,K3,REST五個按鍵。K0鍵為微波爐的啟動與關閉。K1鍵為檔位選擇鍵,選擇后相應的發光二極管會發亮。K2,K3鍵分別為時間的加減設定。REST為復位鍵。每次按下按鍵后系統都會啟動音響發生模塊發出“嘀”的聲音。微波爐啟動數碼管開始倒計時,當倒計時到零分,零秒微波爐會自動關閉,此時會發出提示聲音。各功能實現如下圖2.1.2。
在火力檔位方面,不同的檔位在不同時間的火力不同,根據烹調,烘烤, 解凍三個檔位制定了不同檔位時的加熱時序表入下圖 2.1.3
 功能
時序 時間 | | | | | | | | | | | | | |
| |
圖2.1.3 不同功能時的加熱時序表 注:高中低三個火力大小用三個發光二極管模擬。
2.2 電路設計 系統以AT89S52單片機為核心,連接各外部電路完成人機交互等各功能的控制。系統的總體框圖如下圖2.2.1。  電路設計部分以單片機控制電路為核心由定時器電路,顯示電路,鍵盤電路,門電路,電源電路,音響發聲電路,火力輸出電路,檔位顯示電路共同組成微波爐控制系統電路。 2.3 軟件設計考慮到本系統所編程的數據量不大并且要求系統有較高的準確度故采用匯編語言進行程序的編寫,利用偉福6000作為系統的仿真軟件。利用ISPlay軟件進行單片機程序的寫入。軟件界面如圖2.3.1 和圖2.3.2。 


 2.4 本章小結經過對整個系統概述的分析,可以得到一個大致的系統設計框架,對整個系統設計有個一個大致方向,并根據系統的框架進行各模塊的細分與方案論證。
第3章 各模塊方案比較與論證
系統設計包含顯示電路,鍵盤電路,計時控制電路,檔位輸出電路,音響發生電路等多個部分,每個部分都可以采用不同的方案來實現,但不同的方案有實現的難易的不同,所以通過思考分析,最終做出最好的選擇,使之更加科學和合理。下面對各部分設計方案做分析和選擇。 3.1 檔位顯示部分方案方案一:通過單片機的一個I/O端口經A/D轉換器,轉換成三個輸出端口進行檔位控制。如圖3.1 .1這種方案可以節省單片機接口資源。 方案二:直接利用單片機的三個I/O端口進行檔位控制。如圖3.1.2 這種方案電路簡單。
由于在本設計系統中單片機有充足的I/O端口資源,為了保證系統的穩定性和電路的簡單化,采用方案二進行檔位顯示。 3.2 計時控制部分方案方案一:使用專用時鐘芯片。 使用微控制器控制專用時鐘芯片實現計時控制,這種方案有著計時精度 高、控制簡單的優點,而且更易于實現日期/時間顯示、定時烹調等計時擴 展功能。 方案二:采用單片機內部定時器。 51單片機 內部含有3 個定時器,可以利用一個定時器與程序計數器相結 合的方式,在系統晶振的驅動下,產生標準時鐘頻率。 由于方案二 具有較好的靈活性、較少的電路器件和較高的性價比,而且 通過精確的軟件補償使精度完全可以滿足控制需要,所以我們選擇該方案完成設計。 3.3 鍵盤和顯示部分方案(1)、鍵盤 方案一:采用陣列式鍵盤。 此類鍵盤是采用行列掃描方式,優點是當按鍵較多時可以降低占用單片機的I/O口數目,缺點是電路復雜且會加大編程難度。 方案二:采用獨立式按鍵電路。 每個鍵單獨占有一根I/O接口線,每個I/O口的工作狀態互不影響,此類鍵盤采用端口直接掃描方式。缺點是當按鍵較多時占用單片機的I/O數目較多,優點是電路設計簡單,且編程極其容易。 由于該系統采用了常規鐘表式的校對方式,用鍵較少,系統資源足夠用,故采用了方案二。 (2)顯示 方案一:采用數碼管顯示。 數碼管通過設置可以完成制作任務,經濟耐用,但其顯示不夠直觀、提供信息量少、不易理解等缺點。 方案二:采用液晶顯示。 液晶特別是具有漢字顯示功能的液晶顯示器,來實現顯示功能,不僅可以實現基本的顯示信息,而且可以顯示豐富的符號指示信息以及文字指示信息,如AM/PM,鬧鐘符號等,信息量豐富且直觀易懂。而且液晶顯示有功耗低,體積小,重量輕,壽命長,不產生電磁輻射污染等優點。 由于此系統只用到4位數字顯示,考慮實用問題,故采用方案一。 3.4 音響發生模塊方案方案一:微控制器直接發生。 MCU 直接輸出兩路不同頻率的脈沖信號,疊加成為雙音頻信號,驅動 后送揚聲器。但是由于MCU 產生的方波信號含有高頻分量,經測試,音效并不能令人滿意 方案二:采用555 振蕩器實現雙音頻輸。 采用兩片555振蕩器分別發生不同頻率的音頻,由單片機控制輸出,在電阻上疊加后經功率放大電路推動揚聲器發聲。 由于555振蕩器的音響發生模塊的電路簡單且音質較好,故采用方案二。 3.5 本章小結經過比較和分析,得出了較理想的方案: (1)計時單元由軟件編程來實現。定時采用單片機內部定時器來實現,即通過單片機內部定時器產生中斷,再通過軟件編程實現進行計數,從而實現分、秒的倒計時。 (2)時間顯示采用四位LED數碼管顯示分和秒。檔位顯示采用3個發光二極管顯示。 (3)鍵盤采用單片機四個端口輸入電平,通過單片機掃描相應四個端口電平來判斷按鍵的抬起與按下。 (4)采用兩片555振蕩器分別發生不同頻率的音頻,由單片機控制輸出,在電阻上疊加后經功率放大電路推動揚聲器發聲。 通過方案的比較和論證之后,明確了各個模塊的實現方案。然后,對整個系統總體進行設計,形成一個清晰的設計方向,并構思出系統總體設計的工作原理和系統的框圖,使整個設計方案具有總體性。 第4章 系統硬件設計 4.1 門電路設計 在微波爐工作過程中如果突然打開微波爐爐門,微波爐將根據當時的工作狀態停止加熱并報警。這樣可以有效避免非法操作帶來的后果。電路圖如下圖 4.1.1。
當微波爐爐門打開時開關斷開,當爐門關閉時開關接通。 4.2 時鐘電路設計計時控制模塊是系統設計的核心,用來完成基本功能中的加熱倒計時,以及時間/日期顯示和定時烹調兩項擴展功能。時間/日期顯示功能被用來在待機狀態顯示當前的時間與日期。允許手動調教,并且會自動與計算機進行時間同步。定時烹調則會根據用戶設定的烹調屬性,在預定的時間啟動烹調任務。為了實現上述功能,在設計中,我們采用AT89S52 的內部定時器2 與軟件計數器相結合的方式獲得1Hz的時鐘。 定時器2自動裝入模式以保證精度。這時定時器周期T可由下式表示: CLK T = (28?K)× 12/CLK … (1) 其中K 為定時器初值、CLK 為系統晶振。考慮到串口通信,我們選定CLK為11.0592MHz, K 為27。從式(1)中不難看出,這時要獲取1Hz 的時鐘, 計數器的預置數N 應對T/1取整,即: N=[22118400/12×(256-27)]=8049 … (2) 則系統獲取的時鐘頻率即為: f = 12/22118400×(28-27)×8049 ≈1.000011Hz 完全可以滿足系統的計時要求。 4.3 鍵盤模塊電路設計在按鍵設計中K0,K1,K2,K3分別連入單片機I/O接口的P3.4,P3.5,P3.6,P3.7。通過單片機內部判斷這4個I/O接口來確定按鍵是否被按下。三個按鍵通過一個與門接到P3.3接口,這樣可以通過P3.3口來判斷有沒有按鍵被按下。P3.3接口為中斷1接口,也可用此端口進行中斷操作。為了防止電路出現異常而無法控制特設計了一個復位按鍵。 鍵盤電路設計如圖4.3.1和如圖4.3.2所示  


4.4 檔位顯示電路設計檔位顯示模塊由三個發光二極管顯示,分別代表“烹調”、“烘烤”、“解凍”三個檔位,直接將發光二極管接至單片機I/O接口通過單片機發送低電平使發光二極管發光。如下圖4.4.1。
4.5 顯示電路設計 動態驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為1~2ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能節省大量的I/O端口,而且功耗更低。由于數碼管是供陰極的數碼管,所以需要P2口需要輸出高電平,但是直接由單片機輸出高電平給數碼管道輸出電流很小不能使數碼管正常工作并且在編程中單片機輸出低電平比較方便,所以在單片機P2口與數碼管之間加上一個非門,數碼管可以通過非門提供的電壓正常工作。也簡化了軟件的編程。 用單片機的P0口和P2口連接4位數碼管的段端口和位端口。如下圖4.5.1

 4.6 音響發生電路設計本系統揚聲器能夠給出聲音提示, 輸出2—3 秒的雙音頻提示音。采用555 振蕩器實現雙音頻輸出。電路如圖4.6.1 所示。

圖4.6.1 音響發生電路圖 該電路的元件選取及參數選擇如下: (1)由于使雙音頻控制,一個高音一個低音,一個頻率約為另一個的50%,所以選取統一電容值即可,我們選用C1=0.1UF,產生不同的頻率依據選配不同的電阻來實現,其中高音頻時,選取 R1=2K,R2=6.8K 則 fH=1/(R1+2R2)C1Ln2 KHZ = 925HZ 低音頻時,選取 R1 = 3.3K,R2 = 10K,故 fl=1/(R1+2R2)C1Ln2KHZ = 622HZ 占空比D: D = (R1+R2)/(R1+2R2) ,應當接近50% 雖然可以用帶有二極管的電路使D 可以很接近50%,但結構復雜,而且二極管的動態電阻影響頻率計算,調節起來很麻煩,為此,選用R1較小,而R2較大的參數。 對FH D =(2+6.8)/(2+2x0.8)=55.7% 對fL D =(3.3+10)/(3.3+2x10)=57.1% D也較接近50%,音質較好。 (2)C2的選取:只要C2對NE555 輸出中的基頻有足夠小的阻抗即可,選取 C2=47uf,喇叭的阻抗為8, 對低音FL ZCL =1/ 2πfLC2=1/2π622x47=5.44Ω 對高音FH ZCH=1/2πfhC2=3.65Ω,由于喇叭是感性負載,而ZCL ,ZCH與感抗部分抵消,對電流起限制作用的主要阻抗是喇叭的電阻和兩個5Ω電阻,喇叭中的電流能夠滿足要求。 (3)C3用來穩定555的比較基準,按有關書籍中的要求設置。 4.7 火力輸出控制設計通過單片機的三個I/O端口輸出信號控制火力大小,接收端用發光二極管模擬。電路圖如圖4.7.1。 
只有一個發光二極管亮時火力為“小火”,兩個發光二極管亮時火力為“中火”,三個發光二極管都亮時火力為“大火”。 4.8 電源電路設計 生為了更好的產一個5V左右的電壓,在此特用了一個改進的電源,通過一個充電器而改裝成的一個電源給電路提供電源。如下圖4.8.1所示。
4.9 本章小結 各模塊電路分析完成之后對整個電路已經有了一個很清晰的電路設計思路,將各模塊電路整合成整體電路圖,并經行檢查修改,檢查無誤后進行電路板的焊接。具體電路圖見附件一:系統電路圖。
第5章 系統軟件設計系統程序總體可以分成主程序,和其它模塊程序。主程序跟據系統的工作流程,系統共分為四個狀態,分別是:系統待機狀態,用戶設置狀態,微波爐加熱狀態和加熱完成響音提示狀態。其他模塊程序包括顯示程序,計時程序等。下面分別對這這些程序進行詳細設計。 5.1 顯示程序設計顯示程序通過分時輪流控制各個數碼管的COM端,使各個數碼管輪流受控顯示,流程圖如下圖5.1.1
5.2 計時程序設計通過單片機內部定時器2進行時間控制,單片機外接11.0592M晶振,在主程序中設置定時器初值來獲得1Hz的中斷。流程圖如下5.2.1:
5.3 系統待機狀態設計接通電源后系統進入待機狀態,此時顯示器顯示待機畫面,當打后系統將進入用戶設置狀態。如圖如下5.3.1。
系統通過判斷單片機P3.2接口的輸入電壓來判斷微波爐爐門是否開啟, 通過判斷單片機P3.3接口的輸入電壓來判斷按鍵是否按下,具體流程圖如下圖5.3.2。
5.4 用戶設定狀態設計在用戶設定狀態用戶通過按鍵進行檔位和時間的設定,再微波爐爐門關閉的狀態按下K0建則進入加熱狀態,按K1鍵用戶可以在三個檔位上進行切換,按K2和K3鍵進行時間加減設定。如下圖5.4.1
系統根據按鍵對應的單片機I/O接口的電平變化判斷用戶所進行的設置。具體流程圖如下圖 5.4.2所示。
5.5 微波爐加熱狀態微波爐加熱狀態有三種,分別為烹調、烘烤、解凍。跟據用戶之前設置的檔位系統會進入相應的加熱狀態。系統進入加熱狀態之后會根據每個檔位對大火,中火,小火的時間比的不同進行加熱。具體狀態圖如下圖5.5.1所示。
上文已經提到三個檔位的加熱狀態不同,具體加熱方法如下圖5.5.2所示。
 功能
時序 時間 | | | | | | | | | | | | | |
| |
圖5.5.2 不同功能時的加熱時序表
由上圖可以看出根據用戶設置的時間可以進行各階段火力大小的輸出。系統將根據用戶設置的時間計算出要更換火力的時間點,然后判斷當前時間是否為要更換火力的時間點,若是則進入下一個火力階段,若否將繼續判斷下個時間,除了判斷時間還要判斷微波爐門是否開啟,K0鍵是否被按下,計時器是否倒計時到00.00。這三個條件有一個滿足系統將進入停止加熱并響鈴狀態。 具體流程圖如下圖5.5.1。(以烹調檔位流程圖為例) 將用戶設置的時間標記為 “SJ”。
5.6 加熱停止并響鈴狀態設計加熱停止后系統將關閉火力輸出并進行響鈴提示,響鈴提示完畢后系統自動進入待機狀態,具體狀態圖如下圖5.6.1所示。
進入加熱停止狀態后系統首先關閉火力輸出,系統向火力輸出系統發送關閉信號,并向音響發生模塊發送發音信號。發生結束后系統自動進入系統待機狀態。
5.7 本章小結對各模塊和各狀態的軟件分析之后可以利用偉福6000進行各模塊和各狀態的軟件編程并整合成整體系統,并進行軟件仿真對編程過程中產生的錯誤進行修改,仿真測試無誤之后講源程序進行編譯并通過ISPlay將編譯好的程序寫入單片機中。進行整體調試。具體程序見附件二:軟件設計程序。
第6章 系統測試軟件系統在本設計中尤其重要,基本功能大部分是由軟件完成的,發揮功能的關鍵控制部分同樣需要軟件的密切配合才能順利實現。鑒于軟件設計的精確性和高效性,我們采用匯編語言編寫程序。 整個軟件系統采用模塊化的程序設計方法,共分為初始化,顯示程序,準備程序,運行程序,定時器程序,聲音發聲程序等。軟件系統的主要特點是整個過程完全在鍵盤的控制之下,實現了完全的友好的人機交互功能。主程序通過判斷鍵盤的輸入情況調用不同的子程序。子程序的功能實現也是在鍵盤的配合之下完成的。
5.1 測試及制作所用儀器GDS-820C數字示波器 VC8045II數字萬用表 YB1631函數發生器 SK1731SL2A直流穩壓電源 偉福6000軟件 微機 溫度計、烙鐵等 5.2 測試結果(1)基本要求 - 上電復位后,顯示器顯示0分0秒,檔位顯示為“烹調”;、烘烤、解凍
- 按“K1”鍵,可進行檔位的切換,用戶可以在“烹調”、“烘烤”、“解凍”這三個檔位之間任意切換。
- 按下“K2”鍵,顯示器時間增加1分鐘,長按“K2”鍵顯示器將增加10分鐘,當增加的時間大于99分59秒時時間變為0分0秒;按下“K3”鍵,顯示器時間減少1分鐘,長按“K2”鍵顯示器將減少10分鐘,當減少的時間小于0分0秒時顯示的時間將保持在0分0秒。
- 按“K0”鍵,微波爐變為運行狀態,顯示器開始倒計時,此時再按下“K0”鍵微波爐返回準備狀態,顯示器清0,若沒有按“K0”顯示器倒計時到0分0秒或微波爐爐門被打開微波爐也會返回準備狀態。
(2)誤差分析 從功能分析,該系統的誤差主要是加熱倒計時器的計時誤差與日期/時鐘系統的走時誤差。而由于加熱倒計時器與日期/時鐘系統都是由MCU定時器產生的1Hz 時鐘脈沖驅動,所以該時鐘是誤差的最主要來源。如(式1,2)所示,由于選用的晶振數值為11.0592Mhz,定時器周期和1Hz的標準時鐘不成整數倍比關系,計數器預制數的近似選擇,勢必引入計算誤差。根據所選擇的參數不難算出系統產生時鐘與標準1Hz 時鐘之間存在的誤差Δ為: Δ = 12/22118400×(28 ? 27)× 8049 – 1 ≈ 0.000011Hz…… (式4) 對于加熱倒計時器,以99 分59 秒計算,累計誤差為: (99×60 + 59)× 0.000011 = 0.039589 秒 盡管上述誤差的影響不可避免,但是通過適當選擇計算參數,以及對日期/ 時間系統采用時鐘同步措施,是完全可以滿足設計要求的。 5.3 本章小結 通過系統的測試,查出每個模塊的錯誤,并且盡量簡化硬件電路設計和軟件程序設計,使得測試結果達到論文設計的目的和要求。
結 論經過一段時間以來的學習,不斷的從設計中總結和修改,并按著預期的要求反復的論證和測試。本著學習的態度,以完善設計的可靠性和穩定性,將整個設計分模塊化的進行,并將每個模塊加以分析和論證,成功后再聯系再一起,最終達到總體效果。 主要完成了以下幾個方面的內容: 1.制定一個在不同功能時火力的控制時序表。具有三檔微波加熱功能,分別表示微波爐工作狀態為烹調、烘烤、解凍,試驗使用LED模擬。 2.實現工作步驟:復位待機——〉檢測顯示電路——〉設置輸出功能和定時器初值——〉啟動定時和工作開始——〉結束烹調、音響提示。 3.在上電或手動按復位鍵時,控制器輸出的微波功率控制信號為0,微波加熱處于待機狀態,時間顯示電路顯示為00.00。 4.具有4位時間預置電路,按鍵啟動時間設置,最大預設數為99分59秒。 5.設定初值后,按開啟鍵,一方面按選擇的擋位啟動相應的微波加熱;另一方面使計時電路以秒為單位作倒計時。當計時到時間為0則斷開微波加熱器,并給出聲音提示,即揚聲器輸出2~3s的雙音頻提示音。
參考文獻 [1] 謝自美. 電子線路設計*實驗*測試.武漢:華中科技大學出版社.1998 [2] 樓然苗,李光飛.單片機課程設計指導.北京:電子工業出版社,2007 [3] 吳經國.單片機應用技術.北京:中國電力出版社,2000 [4] 李群芳.單片機微型計算機與接口技術.北京:電子工業出版社,1997 [5] 閹石.數字電子技術基礎.北京:高等教育出版社,1998 [6] 雷思孝,李伯成,雷向莉.單片機原理及實用技術.西安:西安電子科技大學出版社,2004 [7] 張毅剛,彭喜元,孟升衛,劉兆慶.MCS-51單片機實用子程序設計.哈爾濱:哈爾濱工業大學出版社,2003 [8] 全國大學生電子設計競賽——1994年獲獎作品選編 [9] 肖忠祥.數據采集原理.西安:西北工業大學出版社,2001 [10] 趙亮,侯國銳.單片機C語言編程與實例.北京:人民郵電出版社,2003 [11] 張齊,杜群貴.單片機應用系統設計技術—基于C語言編程.北京:電子工業出版社,2004 [12] 楊西明,朱騏.單片機編程與應用入門.北京:機械工業出版社,2004 [13] AT89C51 DATA SHEEP Philips Semiconductors 1999.dec [14] Keil Software Company. Cx51 Compiler User’s Guide. 2001 [15] Intel. MCS-51 Family of Single Chip Microcomputers User’s Manual.1990
附錄一:系統電路圖 
 - ORG 0000H
- LJMP DJ
- ORG 002BH
- LJMP DST2
- ORG 0100H
-
- ;初始化***********************************************************************
- MAIN: MOV TH2,#0DCH
- MOV TL2,#00H
- MOV RCAP2H,#0DCH
- MOV RCAP2L,#00H
- SETB ET2
- SETB EA
- CLR P1.6
- CLR P1.7
- MOV 20H,#0 ;位控制標志 位為零關閉
- ;00H 微波爐加熱開啟標志
- ;01H 微波爐加熱開啟后檔位閃爍標志
- ;02H 微波爐聲音開啟標志
- ;03H
- ;04H
- ;05H
- ;?
-
- MOV 21H,#00H ;存儲檔位選擇
- MOV 22H,#30H ;存儲火力信息
- MOV 23H,#0FFH ;按鍵長按設置時間
- MOV 24H,#8FH ;微波爐加熱開始后 檔位燈閃耀時間
- MOV 25H,#8FH ;微波爐響音時間
- MOV 26H,#8FH ;微波爐響音間隔時間
- MOV 27H,#03H ;微波爐響音次數
- MOV 28H,#08FH ;待機狀態顯示字母的速度
- MOV 29H,#2CH ;顯示切換
- MOV 2AH,#0 ;百分之一秒位
- MOV 2BH,#0 ;十分之一秒位
- MOV 2CH,#0 ;秒 位
- MOV 2DH,#0 ;十秒位
- MOV 2EH,#0 ;分 位
- MOV 2FH,#0 ;十分位
- MOV 30H,#0 ;暫存十分位1
- MOV 31H,#0 ;暫存分 位1
- MOV 32H,#0 ;暫存十秒位1
- MOV 33H,#0 ;暫存秒 位1
- MOV 34H,#0 ;暫存十分位2
- MOV 35H,#0 ;暫存分 位2
- MOV 36H,#0 ;暫存十秒位2
- MOV 37H,#0 ;暫存秒 位2
- MOV 38H,#0 ;暫存十分位3
- MOV 39H,#0 ;暫存分 位3
- MOV 3AH,#0 ;暫存十秒位3
- MOV 3BH,#0 ;暫存秒 位3
- MOV 3CH,#0 ;暫存十分位4
- MOV 3DH,#0 ;暫存分 位4
- MOV 3EH,#0 ;暫存十秒位4
- MOV 3FH,#0 ;暫存秒 位4
-
-
- ;用戶設置程序***********************************************************************
- ZB: LCALL XSZ
- LCALL ZBDW ;檔位輸出
- JNB P3.3,ZB
- ZB1: LCALL XSZ
- JB P3.3,ZB1
- LCALL XSZ
- JNB P3.4,ZBKS ;準備開始
- JNB P3.5,ZBXZ ;準備切換檔位
- JNB P3.6,ZBXSX ;時間加
- JNB P3.7,ZBXSS ;時間減
- LJMP ZB
-
-
- ZBKS: LCALL SY
- ZBKS0: LCALL XSZ ;確認所有按鍵以抬起
- JNB P3.3,ZBKS0
- JNB P3.2,ZB ;確認微波爐爐門以關閉
- MOV R2,2FH
- MOV R3,2EH
- LCALL ZBJS ;數據計算
- SETB TR2
- SETB 00H
- MOV A,#0H
- CJNE A,21H,ZBKS1
- LJMP JR1 ;跳轉到檔位1加熱狀態
- ZBKS1: MOV A,#01H
- CJNE A,21H,ZBKS2
- LJMP JR2 ;跳轉到檔位2加熱狀態
- ZBKS2: MOV A,#02H
- CJNE A,21H,ZBKS3
- LJMP JR3 ;跳轉到檔位3加熱狀態
- ZBKS3: LJMP ZB
-
- ;三個檔位切換程序
-
- ZBXZ: LCALL SY
- INC 21H
- MOV A,21H
- CJNE A,#03H,ZBXZ1
- MOV 21H,#0H
- ZBXZ1: LJMP ZB
-
- ;用戶設置時間加
-
- ZBXSX: LCALL SY
- ZBXSX0: LCALL XSZ
- JNB P3.6,ZBXSX1
- INC 2EH
- MOV A,2EH
- CJNE A,#0AH,ZBXRET
- MOV 2EH,#0H
- MOV 23H,#01H
- ZBXSX1: DJNZ 23H,ZBXSX0
- INC 2FH
- MOV A,2FH
- CJNE A,#0AH,ZBXRET
- MOV 2FH,#0H
-
- ZBXRET: MOV 23H,#0FFH
- LJMP ZB
-
- ;用戶設置時間減
-
- ZBXSS: LCALL SY
- ZBXSS0: LCALL XSZ
- JNB P3.6,ZBXSS1
- DEC 2EH
- MOV A,2EH
- CJNE A,#0FFH,ZBXRET
- MOV 2EH,#09H
- MOV 23H,#01H
- ZBXSS1: DJNZ 23H,ZBXSS0
- DEC 2FH
- MOV A,2FH
- CJNE A,#0FFH,ZBXRET
- MOV 2EH,#0H
- MOV 2FH,#0H
- AJMP ZBXRET
-
-
- ;檔位判斷
-
- ZBDW: JNB 00H,ZBDW1
- JNB 01H,ZBDW1
- SETB P1.0
- SETB P1.1
- SETB P1.2
- AJMP ZBDWRET
- ZBDW1: MOV A,21H
- CJNE A,#0H,ZBDW2
- CLR P1.0
- SETB P1.1
- SETB P1.2
- AJMP ZBDWRET
- ZBDW2: CJNE A,#01H,ZBDW3
- CLR P1.1
- SETB P1.0
- SETB P1.2
- AJMP ZBDWRET
- ZBDW3: CJNE A,#02H,ZBDWRET
- CLR P1.2
- SETB P1.0
- SETB P1.1
- ZBDWRET:RET
-
- ;數據計算
-
- ZBJS: MOV A,R2
- MOV B,#2H
- DIV AB
- MOV 34H,A
- MOV A,#0AH
- MUL AB
- ADD A,R3
- MOV B,#2H
- DIV AB
- MOV 35H,A
- MOV A,#03H
- MUL AB
- MOV 36H,A
-
- MOV A,34H
- MOV B,#2H
- DIV AB
- MOV 38H,A
- MOV A,#0AH
- MUL AB
- ADD A,R2
- MOV B,#2H
- DIV AB
- MOV 39H,A
- MOV A,#06H
- MUL AB
- ADD A,36H
- MOV B,#2H
- DIV AB
- MOV 3AH,A
- MOV A,#05H
- MUL AB
- MOV 3BH,A
-
- MOV 33H,#05H
- MOV A,#05H
- SUBB A,3AH
- MOV 32H,A
- MOV A,R3
- DEC A
- SUBB A,39H
- JNB CY ,ZBJS1
- DEC R2
- SUBB A,#0AH
- ZBJS1: MOV 31H,A
- MOV A,R2
- SUBB A,38H
- MOV 30H,A
- RET
-
-
- ;微波爐加熱程序***********************************************************************
-
- ;檔位1 加熱狀態
-
- JR1: LCALL JRX
- JNB 00H,JR1RET
- CLR P1.3
- CLR P1.4
- CLR P1.5
- MOV A,34H
- CJNE A,2FH,JR1
- MOV A,35H
- CJNE A,2EH,JR1
- MOV A,36H
- CJNE A,2DH,JR1
- MOV A,37H
- CJNE A,2CH,JR1
- JR11: LCALL JRX
- JNB 00H,JR1RET
- SETB P1.3
- CLR P1.4
- CLR P1.5
- MOV A,38H
- CJNE A,2FH,JR11
- MOV A,39H
- CJNE A,2EH,JR11
- MOV A,3AH
- CJNE A,2DH,JR11
- MOV A,3BH
- CJNE A,2CH,JR11
- JR12: LCALL JRX
- JNB 00H,JR1RET
- SETB P1.3
- SETB P1.4
- CLR P1.5
- AJMP JR12
- JR1RET: LJMP TZ
-
- ;檔位2 加熱狀態
-
- JR2: LCALL JRX
- JNB 00H,JR2RET
- CLR P1.3
- CLR P1.4
- CLR P1.5
- MOV A,38H
- CJNE A,2FH,JR2
- MOV A,39H
- CJNE A,2EH,JR2
- MOV A,3AH
- CJNE A,2DH,JR2
- MOV A,3BH
- CJNE A,2CH,JR2
- JR21: LCALL JRX
- JNB 00H,JR2RET
- SETB P1.3
- CLR P1.4
- CLR P1.5
- AJMP JR21
- JR2RET: LJMP TZ
-
-
- ;檔位3 加熱狀態
-
- JR3: LCALL JRX
- JNB 0H,JR3RET
- SETB P1.3
- SETB P1.4
- CLR P1.5
- MOV A,30H
- CJNE A,2FH,JR3
- MOV A,31H
- CJNE A,2EH,JR3
- MOV A,32H
- CJNE A,2DH,JR3
- MOV A,33H
- CJNE A,2CH,JR3
- JR31: LCALL JRX
- JNB 00H,JR3RET
- SETB P1.3
- CLR P1.4
- CLR P1.5
- MOV A,38H
- CJNE A,2FH,JR31
- MOV A,39H
- CJNE A,2EH,JR31
- MOV A,3AH
- CJNE A,2DH,JR31
- MOV A,3BH
- CJNE A,2CH,JR31
- JR32: LCALL JRX
- JNB 00H,JR3RET
- SETB P1.3
- SETB P1.4
- CLR P1.5
- AJMP JR32
- JR3RET: LJMP TZ
-
-
-
- JRX: LCALL XSZ
- LCALL ZBDW
- JNB P3.3,JRXRET
- JNB P3.2,JRXRET
- RET
- JRXRET: CLR 00H
- RET
-
-
- ;加熱停止程序狀態***********************************************************************
-
-
- TZ: CLR TR2
- SETB P1.3
- SETB P1.4
- SETB P1.5
- LCALL SY
- TZ1: LCALL XSZ
- LCALL ZBDW
- JB 02H,TZ1
- LCALL SY
- DJNZ 27H,TZ1
- LJMP MAIN
-
-
- ;聲音模塊***********************************************************************
-
-
- SY: SETB 02H
- SETB P1.6
- SETB P1.7
- MOV 25H,#8FH
- MOV 26H,#8FH
- RET
-
- ;定時器中斷程序***********************************************************************
-
- DST2: PUSH PSW
- PUSH ACC
- DEC 2AH ;毫秒
- MOV A,2AH
- CJNE A,#0FFH,DSTRET
- MOV 2AH,#09H
- DEC 2BH ;十毫秒
- MOV A,2BH
- CJNE A,#0FFH,DSTRET
- MOV 2BH,#09H
- DEC 2CH ;秒
- MOV A,2CH
- CJNE A,#0FFH,DSTRET
- MOV 2CH,#09H
- DEC 2DH ;十秒
- MOV A,2DH
- CJNE A,#0FFH,DSTRET
- MOV 2DH,#05H
- DEC 2EH ;分
- MOV A,2EH
- CJNE A,#0FFH,DSTRET
- MOV 2EH,#09H
- DEC 2FH ;十分
- MOV A,2FH
- CJNE A,#0FFH,DSTRET
- MOV 2AH,#0
- MOV 2BH,#0
- MOV 2CH,#0
- MOV 2DH,#0
- MOV 2EH,#0
- MOV 2FH,#0
- CLR 00H
- DSTRET: DJNZ 24H,DSTRET1
- MOV 24H,#8FH
- CPL 01H
- DSTRET1: CLR TF2
- POP ACC
- POP PSW
- RETI
-
- ;顯示程序***********************************************************************
-
- XSZ: MOV R4,#11101111B
- MOV R5,#04H
- MOV DPTR,#TAB
- MOV R0,29H
- XSZ1: MOV A,@R0
- MOVC A,@A+DPTR
- MOV P0,A
- MOV P2,R4
- LCALL DISPLAY
- INC R0
- MOV A,R4
- RL A
- MOV R4,A
- DJNZ R5,XSZ1
- JNB 02H,XSZRET
- DJNZ 25H,XSZRET
- MOV 25H,#01H
- CLR P1.6
- CLR P1.7
- DJNZ 26H,XSZRET
- CLR 02H
- XSZRET: RET
-
- ;延遲子程序
-
- DISPLAY:MOV R6,#2
- DIS1: MOV R7,#220
- DJNZ R7,$
- DJNZ R6,DIS1
- RET
-
- ;數碼顯示編碼
- ;A C E F . -
- TAB: DB 040H,79H,024H,030H,019H,012H,002H,078H,000H,010H,008H,046H,006H,007H,07FH,077H
- DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H,088H,0C6H,086H,087H,0FFH,0F7H
- ;*0H *1H *2H *3H *4H *5H *6H *7H *8H *9H *AH *BH *CH *DH *EH *FH
-
-
-
- ;待機狀態設計***********************************************************************
-
- DJ:
- MOV 29H,#4CH
- MOV 40H,#1EH
- MOV 41H,#1EH
- MOV 42H,#1EH
- MOV 43H,#1EH
- MOV 44H,#13H
- MOV 45H,#10H
- MOV 46H,#1EH
- MOV 47H,#12H
- MOV 48H,#11H
- MOV 49H,#16H
- MOV 4AH,#10H
- MOV 4BH,#1AH
- MOV 4CH,#1EH
- MOV 4DH,#1EH
- MOV 4EH,#1EH
- MOV 4FH,#1EH
- DJ1: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ1
- MOV 25H,#08FH
- MOV 29H,#4BH
- DJ2: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ2
- MOV 25H,#08FH
- MOV 29H,#4AH
- DJ3: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ3
- MOV 25H,#08FH
- MOV 29H,#49H
- DJ4: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ4
- MOV 25H,#08FH
- MOV 29H,#48H
- DJ5: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ5
- MOV 25H,#08FH
- MOV 29H,#47H
- DJ6: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ6
- MOV 25H,#08FH
- MOV 29H,#46H
- AJMP DJ7
- DJRET: LJMP MAIN
- DJ7: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ7
- MOV 25H,#08FH
- MOV 29H,#45H
- DJ8: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ8
- MOV 25H,#08FH
- MOV 29H,#44H
- DJ9: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ9
- MOV 25H,#08FH
- MOV 29H,#43H
- DJ10: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ10
- MOV 25H,#08FH
- MOV 29H,#42H
- DJ11: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ11
- MOV 25H,#08FH
- MOV 29H,#41H
- DJ12: LCALL XSZ
- JNB P3.3,DJRET
- JNB P3.2,DJRET
- DJNZ 28H,DJ12
- MOV 25H,#08FH
- MOV 29H,#40H
- LJMP DJ
復制代碼
完整的Word格式文檔51黑下載地址:
|