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


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


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

 4.6 音響發(fā)生電路設(shè)計本系統(tǒng)揚聲器能夠給出聲音提示, 輸出2—3 秒的雙音頻提示音。采用555 振蕩器實現(xiàn)雙音頻輸出。電路如圖4.6.1 所示。

圖4.6.1 音響發(fā)生電路圖 該電路的元件選取及參數(shù)選擇如下: (1)由于使雙音頻控制,一個高音一個低音,一個頻率約為另一個的50%,所以選取統(tǒng)一電容值即可,我們選用C1=0.1UF,產(chǎn)生不同的頻率依據(jù)選配不同的電阻來實現(xiàn),其中高音頻時,選取 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) ,應(yīng)當(dāng)接近50% 雖然可以用帶有二極管的電路使D 可以很接近50%,但結(jié)構(gòu)復(fù)雜,而且二極管的動態(tài)電阻影響頻率計算,調(diào)節(jié)起來很麻煩,為此,選用R1較小,而R2較大的參數(shù)。 對FH D =(2+6.8)/(2+2x0.8)=55.7% 對fL D =(3.3+10)/(3.3+2x10)=57.1% D也較接近50%,音質(zhì)較好。 (2)C2的選。褐灰狢2對NE555 輸出中的基頻有足夠小的阻抗即可,選取 C2=47uf,喇叭的阻抗為8, 對低音FL ZCL =1/ 2πfLC2=1/2π622x47=5.44Ω 對高音FH ZCH=1/2πfhC2=3.65Ω,由于喇叭是感性負(fù)載,而ZCL ,ZCH與感抗部分抵消,對電流起限制作用的主要阻抗是喇叭的電阻和兩個5Ω電阻,喇叭中的電流能夠滿足要求。 (3)C3用來穩(wěn)定555的比較基準(zhǔn),按有關(guān)書籍中的要求設(shè)置。 4.7 火力輸出控制設(shè)計通過單片機的三個I/O端口輸出信號控制火力大小,接收端用發(fā)光二極管模擬。電路圖如圖4.7.1。 
只有一個發(fā)光二極管亮?xí)r火力為“小火”,兩個發(fā)光二極管亮?xí)r火力為“中火”,三個發(fā)光二極管都亮?xí)r火力為“大火”。 4.8 電源電路設(shè)計 生為了更好的產(chǎn)一個5V左右的電壓,在此特用了一個改進的電源,通過一個充電器而改裝成的一個電源給電路提供電源。如下圖4.8.1所示。
4.9 本章小結(jié) 各模塊電路分析完成之后對整個電路已經(jīng)有了一個很清晰的電路設(shè)計思路,將各模塊電路整合成整體電路圖,并經(jīng)行檢查修改,檢查無誤后進行電路板的焊接。具體電路圖見附件一:系統(tǒng)電路圖。
第5章 系統(tǒng)軟件設(shè)計系統(tǒng)程序總體可以分成主程序,和其它模塊程序。主程序跟據(jù)系統(tǒng)的工作流程,系統(tǒng)共分為四個狀態(tài),分別是:系統(tǒng)待機狀態(tài),用戶設(shè)置狀態(tài),微波爐加熱狀態(tài)和加熱完成響音提示狀態(tài)。其他模塊程序包括顯示程序,計時程序等。下面分別對這這些程序進行詳細(xì)設(shè)計。 5.1 顯示程序設(shè)計顯示程序通過分時輪流控制各個數(shù)碼管的COM端,使各個數(shù)碼管輪流受控顯示,流程圖如下圖5.1.1
5.2 計時程序設(shè)計通過單片機內(nèi)部定時器2進行時間控制,單片機外接11.0592M晶振,在主程序中設(shè)置定時器初值來獲得1Hz的中斷。流程圖如下5.2.1:
5.3 系統(tǒng)待機狀態(tài)設(shè)計接通電源后系統(tǒng)進入待機狀態(tài),此時顯示器顯示待機畫面,當(dāng)打后系統(tǒng)將進入用戶設(shè)置狀態(tài)。如圖如下5.3.1。
系統(tǒng)通過判斷單片機P3.2接口的輸入電壓來判斷微波爐爐門是否開啟, 通過判斷單片機P3.3接口的輸入電壓來判斷按鍵是否按下,具體流程圖如下圖5.3.2。
5.4 用戶設(shè)定狀態(tài)設(shè)計在用戶設(shè)定狀態(tài)用戶通過按鍵進行檔位和時間的設(shè)定,再微波爐爐門關(guān)閉的狀態(tài)按下K0建則進入加熱狀態(tài),按K1鍵用戶可以在三個檔位上進行切換,按K2和K3鍵進行時間加減設(shè)定。如下圖5.4.1
系統(tǒng)根據(jù)按鍵對應(yīng)的單片機I/O接口的電平變化判斷用戶所進行的設(shè)置。具體流程圖如下圖 5.4.2所示。
5.5 微波爐加熱狀態(tài)微波爐加熱狀態(tài)有三種,分別為烹調(diào)、烘烤、解凍。跟據(jù)用戶之前設(shè)置的檔位系統(tǒng)會進入相應(yīng)的加熱狀態(tài)。系統(tǒng)進入加熱狀態(tài)之后會根據(jù)每個檔位對大火,中火,小火的時間比的不同進行加熱。具體狀態(tài)圖如下圖5.5.1所示。
上文已經(jīng)提到三個檔位的加熱狀態(tài)不同,具體加熱方法如下圖5.5.2所示。
 功能
時序 時間 | | | | | | | | | | | | | |
| |
圖5.5.2 不同功能時的加熱時序表
由上圖可以看出根據(jù)用戶設(shè)置的時間可以進行各階段火力大小的輸出。系統(tǒng)將根據(jù)用戶設(shè)置的時間計算出要更換火力的時間點,然后判斷當(dāng)前時間是否為要更換火力的時間點,若是則進入下一個火力階段,若否將繼續(xù)判斷下個時間,除了判斷時間還要判斷微波爐門是否開啟,K0鍵是否被按下,計時器是否倒計時到00.00。這三個條件有一個滿足系統(tǒng)將進入停止加熱并響鈴狀態(tài)。 具體流程圖如下圖5.5.1。(以烹調(diào)檔位流程圖為例) 將用戶設(shè)置的時間標(biāo)記為 “SJ”。
5.6 加熱停止并響鈴狀態(tài)設(shè)計加熱停止后系統(tǒng)將關(guān)閉火力輸出并進行響鈴提示,響鈴提示完畢后系統(tǒng)自動進入待機狀態(tài),具體狀態(tài)圖如下圖5.6.1所示。
進入加熱停止?fàn)顟B(tài)后系統(tǒng)首先關(guān)閉火力輸出,系統(tǒng)向火力輸出系統(tǒng)發(fā)送關(guān)閉信號,并向音響發(fā)生模塊發(fā)送發(fā)音信號。發(fā)生結(jié)束后系統(tǒng)自動進入系統(tǒng)待機狀態(tài)。
5.7 本章小結(jié)對各模塊和各狀態(tài)的軟件分析之后可以利用偉福6000進行各模塊和各狀態(tài)的軟件編程并整合成整體系統(tǒng),并進行軟件仿真對編程過程中產(chǎn)生的錯誤進行修改,仿真測試無誤之后講源程序進行編譯并通過ISPlay將編譯好的程序?qū)懭雴纹瑱C中。進行整體調(diào)試。具體程序見附件二:軟件設(shè)計程序。
第6章 系統(tǒng)測試軟件系統(tǒng)在本設(shè)計中尤其重要,基本功能大部分是由軟件完成的,發(fā)揮功能的關(guān)鍵控制部分同樣需要軟件的密切配合才能順利實現(xiàn)。鑒于軟件設(shè)計的精確性和高效性,我們采用匯編語言編寫程序。 整個軟件系統(tǒng)采用模塊化的程序設(shè)計方法,共分為初始化,顯示程序,準(zhǔn)備程序,運行程序,定時器程序,聲音發(fā)聲程序等。軟件系統(tǒng)的主要特點是整個過程完全在鍵盤的控制之下,實現(xiàn)了完全的友好的人機交互功能。主程序通過判斷鍵盤的輸入情況調(diào)用不同的子程序。子程序的功能實現(xiàn)也是在鍵盤的配合之下完成的。
5.1 測試及制作所用儀器GDS-820C數(shù)字示波器 VC8045II數(shù)字萬用表 YB1631函數(shù)發(fā)生器 SK1731SL2A直流穩(wěn)壓電源 偉福6000軟件 微機 溫度計、烙鐵等 5.2 測試結(jié)果(1)基本要求 - 上電復(fù)位后,顯示器顯示0分0秒,檔位顯示為“烹調(diào)”;、烘烤、解凍
- 按“K1”鍵,可進行檔位的切換,用戶可以在“烹調(diào)”、“烘烤”、“解凍”這三個檔位之間任意切換。
- 按下“K2”鍵,顯示器時間增加1分鐘,長按“K2”鍵顯示器將增加10分鐘,當(dāng)增加的時間大于99分59秒時時間變?yōu)?/font>0分0秒;按下“K3”鍵,顯示器時間減少1分鐘,長按“K2”鍵顯示器將減少10分鐘,當(dāng)減少的時間小于0分0秒時顯示的時間將保持在0分0秒。
- 按“K0”鍵,微波爐變?yōu)檫\行狀態(tài),顯示器開始倒計時,此時再按下“K0”鍵微波爐返回準(zhǔn)備狀態(tài),顯示器清0,若沒有按“K0”顯示器倒計時到0分0秒或微波爐爐門被打開微波爐也會返回準(zhǔn)備狀態(tài)。
(2)誤差分析 從功能分析,該系統(tǒng)的誤差主要是加熱倒計時器的計時誤差與日期/時鐘系統(tǒng)的走時誤差。而由于加熱倒計時器與日期/時鐘系統(tǒng)都是由MCU定時器產(chǎn)生的1Hz 時鐘脈沖驅(qū)動,所以該時鐘是誤差的最主要來源。如(式1,2)所示,由于選用的晶振數(shù)值為11.0592Mhz,定時器周期和1Hz的標(biāo)準(zhǔn)時鐘不成整數(shù)倍比關(guān)系,計數(shù)器預(yù)制數(shù)的近似選擇,勢必引入計算誤差。根據(jù)所選擇的參數(shù)不難算出系統(tǒng)產(chǎn)生時鐘與標(biāo)準(zhǔn)1Hz 時鐘之間存在的誤差Δ為: Δ = 12/22118400×(28 ? 27)× 8049 – 1 ≈ 0.000011Hz…… (式4) 對于加熱倒計時器,以99 分59 秒計算,累計誤差為: (99×60 + 59)× 0.000011 = 0.039589 秒 盡管上述誤差的影響不可避免,但是通過適當(dāng)選擇計算參數(shù),以及對日期/ 時間系統(tǒng)采用時鐘同步措施,是完全可以滿足設(shè)計要求的。 5.3 本章小結(jié) 通過系統(tǒng)的測試,查出每個模塊的錯誤,并且盡量簡化硬件電路設(shè)計和軟件程序設(shè)計,使得測試結(jié)果達(dá)到論文設(shè)計的目的和要求。
結(jié) 論經(jīng)過一段時間以來的學(xué)習(xí),不斷的從設(shè)計中總結(jié)和修改,并按著預(yù)期的要求反復(fù)的論證和測試。本著學(xué)習(xí)的態(tài)度,以完善設(shè)計的可靠性和穩(wěn)定性,將整個設(shè)計分模塊化的進行,并將每個模塊加以分析和論證,成功后再聯(lián)系再一起,最終達(dá)到總體效果。 主要完成了以下幾個方面的內(nèi)容: 1.制定一個在不同功能時火力的控制時序表。具有三檔微波加熱功能,分別表示微波爐工作狀態(tài)為烹調(diào)、烘烤、解凍,試驗使用LED模擬。 2.實現(xiàn)工作步驟:復(fù)位待機——〉檢測顯示電路——〉設(shè)置輸出功能和定時器初值——〉啟動定時和工作開始——〉結(jié)束烹調(diào)、音響提示。 3.在上電或手動按復(fù)位鍵時,控制器輸出的微波功率控制信號為0,微波加熱處于待機狀態(tài),時間顯示電路顯示為00.00。 4.具有4位時間預(yù)置電路,按鍵啟動時間設(shè)置,最大預(yù)設(shè)數(shù)為99分59秒。 5.設(shè)定初值后,按開啟鍵,一方面按選擇的擋位啟動相應(yīng)的微波加熱;另一方面使計時電路以秒為單位作倒計時。當(dāng)計時到時間為0則斷開微波加熱器,并給出聲音提示,即揚聲器輸出2~3s的雙音頻提示音。
參考文獻 [1] 謝自美. 電子線路設(shè)計*實驗*測試.武漢:華中科技大學(xué)出版社.1998 [2] 樓然苗,李光飛.單片機課程設(shè)計指導(dǎo).北京:電子工業(yè)出版社,2007 [3] 吳經(jīng)國.單片機應(yīng)用技術(shù).北京:中國電力出版社,2000 [4] 李群芳.單片機微型計算機與接口技術(shù).北京:電子工業(yè)出版社,1997 [5] 閹石.數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,1998 [6] 雷思孝,李伯成,雷向莉.單片機原理及實用技術(shù).西安:西安電子科技大學(xué)出版社,2004 [7] 張毅剛,彭喜元,孟升衛(wèi),劉兆慶.MCS-51單片機實用子程序設(shè)計.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003 [8] 全國大學(xué)生電子設(shè)計競賽——1994年獲獎作品選編 [9] 肖忠祥.數(shù)據(jù)采集原理.西安:西北工業(yè)大學(xué)出版社,2001 [10] 趙亮,侯國銳.單片機C語言編程與實例.北京:人民郵電出版社,2003 [11] 張齊,杜群貴.單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)—基于C語言編程.北京:電子工業(yè)出版社,2004 [12] 楊西明,朱騏.單片機編程與應(yīng)用入門.北京:機械工業(yè)出版社,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
附錄一:系統(tǒng)電路圖 
 - 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 ;位控制標(biāo)志 位為零關(guān)閉
- ;00H 微波爐加熱開啟標(biāo)志
- ;01H 微波爐加熱開啟后檔位閃爍標(biāo)志
- ;02H 微波爐聲音開啟標(biāo)志
- ;03H
- ;04H
- ;05H
- ;?
-
- MOV 21H,#00H ;存儲檔位選擇
- MOV 22H,#30H ;存儲火力信息
- MOV 23H,#0FFH ;按鍵長按設(shè)置時間
- MOV 24H,#8FH ;微波爐加熱開始后 檔位燈閃耀時間
- MOV 25H,#8FH ;微波爐響音時間
- MOV 26H,#8FH ;微波爐響音間隔時間
- MOV 27H,#03H ;微波爐響音次數(shù)
- MOV 28H,#08FH ;待機狀態(tài)顯示字母的速度
- 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
-
-
- ;用戶設(shè)置程序***********************************************************************
- ZB: LCALL XSZ
- LCALL ZBDW ;檔位輸出
- JNB P3.3,ZB
- ZB1: LCALL XSZ
- JB P3.3,ZB1
- LCALL XSZ
- JNB P3.4,ZBKS ;準(zhǔn)備開始
- JNB P3.5,ZBXZ ;準(zhǔn)備切換檔位
- JNB P3.6,ZBXSX ;時間加
- JNB P3.7,ZBXSS ;時間減
- LJMP ZB
-
-
- ZBKS: LCALL SY
- ZBKS0: LCALL XSZ ;確認(rèn)所有按鍵以抬起
- JNB P3.3,ZBKS0
- JNB P3.2,ZB ;確認(rèn)微波爐爐門以關(guān)閉
- MOV R2,2FH
- MOV R3,2EH
- LCALL ZBJS ;數(shù)據(jù)計算
- SETB TR2
- SETB 00H
- MOV A,#0H
- CJNE A,21H,ZBKS1
- LJMP JR1 ;跳轉(zhuǎn)到檔位1加熱狀態(tài)
- ZBKS1: MOV A,#01H
- CJNE A,21H,ZBKS2
- LJMP JR2 ;跳轉(zhuǎn)到檔位2加熱狀態(tài)
- ZBKS2: MOV A,#02H
- CJNE A,21H,ZBKS3
- LJMP JR3 ;跳轉(zhuǎn)到檔位3加熱狀態(tài)
- ZBKS3: LJMP ZB
-
- ;三個檔位切換程序
-
- ZBXZ: LCALL SY
- INC 21H
- MOV A,21H
- CJNE A,#03H,ZBXZ1
- MOV 21H,#0H
- ZBXZ1: LJMP ZB
-
- ;用戶設(shè)置時間加
-
- 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
-
- ;用戶設(shè)置時間減
-
- 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
-
- ;數(shù)據(jù)計算
-
- 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 加熱狀態(tài)
-
- 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 加熱狀態(tài)
-
- 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 加熱狀態(tài)
-
- 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
-
-
- ;加熱停止程序狀態(tài)***********************************************************************
-
-
- 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
-
- ;數(shù)碼顯示編碼
- ;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
-
-
-
- ;待機狀態(tài)設(shè)計***********************************************************************
-
- 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
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
|