版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 單片機課程設(shè)計</b></p><p> 基于微波爐控制系統(tǒng)設(shè)計</p><p><b> 摘 要</b></p><p> 微波爐是一種利用2450兆赫的電磁波來烹飪食品的廚房器具。其工作的核心是其控制部分,本設(shè)計就是對微波爐的電腦控制系統(tǒng)的一個嘗試,設(shè)計給出了系統(tǒng)軟、硬件的組成和
2、實現(xiàn)方法。結(jié)合實際要求,敘述了控制器電路的工作真理和微波爐的工作過程。設(shè)計具有操作簡便,運行穩(wěn)定,定時時間和功率控制比較精確的特點。它以STC公司生產(chǎn)的8位單片機STC90C516RD+為控制核心;以DS18B20作為溫度傳感器,用于實時測量微波爐內(nèi)食物的溫度;獨立式鍵盤調(diào)整輸入,用來設(shè)定溫度、定時時間等工作參數(shù);用1602LCD液晶屏來顯示時間和溫度。通過本設(shè)計能實現(xiàn)對微波爐的智能化控制,是微波爐的應(yīng)用功能更強大,使用方便。</
3、p><p> 單片機最小系統(tǒng)以STC90C516RD+為核心,外加時鐘和復(fù)位電路,電路結(jié)構(gòu)簡單,抗干擾能力強,成本相對較低,非常符合本設(shè)計的所有要求。 STC90C516RD+單片機系列是在STC系列的基礎(chǔ)上發(fā)展起來的,是當前8位單片機的典型代表,采用CHMOS工藝,即互補金屬氧化物的HMOS工藝, CHMOS是CMOS和HMOS的結(jié)合,具有HMOS高速度和高密度的特點,還具有CMOS低功耗的特點。 </p
4、><p> 關(guān)鍵詞:單片機,LCD液晶顯示,定時器</p><p><b> 目 錄</b></p><p> 摘 要- 1 -</p><p> 1 系統(tǒng)總體概述- 2 -</p><p> 1.1 工作原理- 2 -</p><p> 1.2
5、 電路設(shè)計- 3 -</p><p> 1.3 設(shè)計要求- 3 -</p><p> 1.3.1 基本要求- 3 -</p><p> 1.3.2 創(chuàng)新部分- 3 -</p><p> 2 各模塊方案比較與論證- 4 -</p><p> 2.1 計時控制部分方案- 4 -&
6、lt;/p><p> 2.2 鍵盤和顯示部分方案- 4 -</p><p> 3 系統(tǒng)硬件設(shè)計- 4 -</p><p> 3.1 顯示部分- 4 -</p><p> 3.2 鍵盤模塊電路設(shè)計- 5 -</p><p> 3.3 溫度傳感器- 5 -</p><
7、p> 4 系統(tǒng)軟件設(shè)計- 6 -</p><p> 4.1 計時程序設(shè)計- 6 -</p><p> 4.2 溫度傳感器程序設(shè)計- 7 -</p><p> 4.3 微波爐溫度設(shè)定- 8 -</p><p> 4.4 微波爐顯示- 9 -</p><p> 4.5 微
8、波爐響鈴設(shè)計- 10 -</p><p> 5 實驗結(jié)果- 10 -</p><p> 結(jié) 論- 11 -</p><p> 參考文獻- 12 -</p><p> 附錄:軟件設(shè)計程序- 13 -</p><p> 致 謝- 21 -</p><p><b&g
9、t; 引 言</b></p><p> 在生活和生產(chǎn)的各個領(lǐng)域中,凡是自動控制要求的地方都會有單片機的身影出現(xiàn);從簡單到復(fù)雜,從空中、地面到地下,凡是能想象到的地方幾乎都有使用單片機的需求。</p><p> 現(xiàn)在盡管單片機的應(yīng)用已經(jīng)很普遍了,但仍有很多可以使用單片機控制而尚未實現(xiàn)的項目,因此,單片機的應(yīng)用大有想象和擴展空間。單片機的應(yīng)用有利于產(chǎn)品的小型化、多功能化和
10、智能化,有助于提高勞動效率,減輕勞動強度,提高產(chǎn)品質(zhì)量,改善勞動環(huán)境,減少能源和材料消耗,保證安全等。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),是自動化控制具有計算準確、性能穩(wěn)定、攜帶方便等優(yōu)點。單片機應(yīng)用的意義局不僅限于它的廣闊范圍以及所帶來的經(jīng)濟效益,更重要的意義還在于:單片機的應(yīng)用正從根本上改變著傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能使用單片機通過軟件(編程序)方法實現(xiàn)了。
11、這種以軟件取代硬件并提高系統(tǒng)性能的控制系統(tǒng)“軟化”技術(shù),稱之為為控制技術(shù)。微控制技術(shù)是一種全新的概念,是對傳統(tǒng)控制技術(shù)的一次革命。隨著單片機應(yīng)用的推廣普及,微控制技術(shù)必將不斷發(fā)展、日益完善和更加充實。</p><p> 本文設(shè)計一個基于單片機的微波爐系統(tǒng)設(shè)計,它具有三個模塊:時鐘顯示、定時、設(shè)定溫度、溫度傳感器和計時功能。設(shè)定溫度值、測量的溫度和時間用1602LCD顯示,直觀明了。</p><
12、;p><b> 1 系統(tǒng)總體概述</b></p><p><b> 1.1 工作原理</b></p><p> 微波爐工作分為四個步驟分別為:系統(tǒng)待機-----用戶設(shè)定-----微波爐加熱------加熱完成蜂鳴器提示。具體流程如下圖1.1.1</p><p> 圖1.1.1 系統(tǒng)流程圖</p&g
13、t;<p> 系統(tǒng)上電自檢后,LCD液晶屏上顯示零分零秒,設(shè)定溫度為零℃。鍵盤分按鍵K0, K1, K2, K3, K4五個按鍵。K4鍵為微波爐的啟動可關(guān)閉。K0,K1, K2為微波爐的三個低、中、高檔位,K3為微波爐的設(shè)定時間按鍵。每次按下按鍵后系統(tǒng)都會啟動音箱發(fā)聲模塊發(fā)出“嘀”的聲音。當微波爐達到設(shè)定溫度時啟動鍵數(shù)碼管開始計時,當?shù)褂嫊r到零分,零秒微波爐會自動關(guān)閉,此時會發(fā)出提示聲音。各功能實現(xiàn)如下圖1.1.2<
14、;/p><p> 圖1.1.2 系統(tǒng)功能圖</p><p> 1.2 電路設(shè)計</p><p> 系統(tǒng)以STC90C516RD+單片機為核心,連接各外部電路完成人機交互等各功能的控制。系統(tǒng)的總體框圖如下圖1.2</p><p> 圖1.2 系統(tǒng)總的電路圖</p><p> 電路設(shè)計部分以單片機控制電路為核
15、心有定時器電路,顯示電路,鍵盤電路,門電路,電源電路,音箱發(fā)聲電路共同組成微波爐控制系統(tǒng)電路。</p><p> 1.3 設(shè)計要求</p><p> 1.3.1 基本要求</p><p> ?。?)運用所學(xué)的知識設(shè)計一個微波爐控制系統(tǒng)。</p><p> ?。?)上電時可設(shè)置三種最高溫度值,可設(shè)置最長10分鐘定時,用DS18B20
16、感知溫度,當溫度達到設(shè)置溫度值,并持續(xù)設(shè)定時</p><p> 間長度時,蜂鳴器報警提示,同時時間歸零。</p><p> 1.3.2 創(chuàng)新部分</p><p> (1)開始加熱多長時間、定的時間和溫度、DS18B20測的微波爐溫度在1602LCD液晶屏上顯示。</p><p> ?。?)當溫度達到設(shè)定溫度時,開始倒計時,當設(shè)定的時
17、間歸零是蜂鳴器響,同時停止計時,時間歸零。</p><p> 2 各模塊方案比較與論證</p><p> 2.1 計時控制部分方案</p><p> 方案一:使用專用芯片。</p><p> 使用微控制器控制專用時鐘芯片實現(xiàn)計時控制,這種方案有著計時精度高、控制簡單的優(yōu)點,而且更易于實現(xiàn)日期/時間顯示、定是烹飪等及時擴展功能。
18、</p><p> 方案二:采用單片機內(nèi)部定時器。</p><p> 51單片機內(nèi)不含有3個定時器,可以利用一個定時器與程序計數(shù)器相結(jié)合的方式,在系統(tǒng)晶振的驅(qū)動下,產(chǎn)生標準時鐘頻率。</p><p> 由于方案二具有較好的靈活性、較少的電路器件和較高的性價比,而且通過精確的軟件補償使精度完全可以滿足控制需求,所以我們應(yīng)該選擇該方案完成設(shè)計。</p>
19、<p> 2.2 鍵盤和顯示部分方案</p><p> 方案一:采用陣列式鍵盤和LCD1602液晶屏</p><p> 此類鍵盤是采用列陣掃描方式,優(yōu)點是當按鍵較多時可以降低占用單片機的I/O\口數(shù)目,缺點是電路復(fù)雜且會加大編程的難度。采用液晶屏美觀,能顯示多種數(shù)據(jù);缺點是變成復(fù)雜,占用大量的端口資源。</p><p> 方案二;采用獨立式
20、鍵盤電路和數(shù)碼管</p><p> 每個鍵單獨占有一根I/O接口線,每個I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。缺點是當按鍵較多時占用單片機的I/O數(shù)目較多,優(yōu)點是電路設(shè)計簡單,且編程極其容易。采用數(shù)碼管顯示,編程簡單適合顯示少量數(shù)據(jù)。</p><p> 由于該系統(tǒng)沒采用了常規(guī)鐘表式的校對方式,用鍵和顯示的數(shù)據(jù)較多,系統(tǒng)資源不夠,故采用了第一種方案。</p>
21、;<p> 3 系統(tǒng)硬件設(shè)計</p><p> 3.1 顯示部分</p><p> 因為系統(tǒng)要求把設(shè)定的溫度、時間和實時溫度、時間顯示出來,所以就用了LCD1602液晶顯示出來。</p><p> 腳1:VSS ,LCD地 腳2:VDD ,LCD電源 </p>&l
22、t;p> 腳3:VL ,LCD負的偏壓信號端 腳4:RS ,數(shù)據(jù)/命令選擇端(H/L)</p><p> 腳5:R/W ,讀/寫選擇端端(H/L) 腳6:E ,使能信號端 </p><p> 腳7~14:數(shù)據(jù)端口D0~D7 腳15:BLA,背光源正極</p><p> 腳16:BLK,背光源負極</p>&
23、lt;p> 圖3.1 LCD液晶1602電路原理圖</p><p> 3.2 鍵盤模塊電路設(shè)計</p><p> 在按鍵設(shè)計中運用了軟件、硬件結(jié)合的形式進行鍵盤掃描,K0,K1, K2, K3, K4分別連入單片機I/O接口。通過單片機內(nèi)部判斷這5個I/O借口來確定按鍵是否被按下。鍵盤電路設(shè)計如圖3.2所示</p><p> 圖3.2 鍵盤矩陣
24、原理圖</p><p> 3.3 溫度傳感器</p><p> DS18B20可設(shè)定9-12位分辨率(默認12位);測溫范圍(-55- +125)攝氏度;支持(3-5.5V)電壓范圍;用戶可設(shè)定高溫及低溫報警,掉電不丟失;采用單總線接口方式,即允許在一條總線(信號線)掛接數(shù)十甚至上百個數(shù)字式傳感器,抗干擾強、易構(gòu)成傳感器網(wǎng)絡(luò)。 溫度傳感器電路圖入下圖3.3所示</p>
25、<p> 引腳1:接地 引腳2:輸出端,接P2^3 引腳3:接電源</p><p> 圖3.3 傳感器電路圖</p><p> 4 系統(tǒng)軟件設(shè)計</p><p> 系統(tǒng)程序總體看可分為主程序,和其他模塊程序。主程序根據(jù)系統(tǒng)的工作流程,系統(tǒng)共分為四個狀態(tài),分別是:系統(tǒng)待機狀態(tài),用戶設(shè)置狀態(tài),微波爐加熱狀態(tài)和加熱完成響音提示狀態(tài)。其他
26、模塊程序包括程序顯示程序,計時程序,溫度傳感器程序,鍵盤掃描程序。</p><p> 4.1 計時程序設(shè)計</p><p> 定時方法我們采用軟硬件結(jié)合的方法,定時器工作時必須給計數(shù)器送初值,將這個值送到TH和TL中。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此工作于方式1,定時器為16位計數(shù)器其定時時間由下式計算:</p><p> 定
27、時時間=(216-X)×振蕩周期×12(或)</p><p> X=216-定時時間/振蕩周期×12</p><p> 式中x為T0的初始值,該值和計數(shù)器工作方式有關(guān)。</p><p> 如單片機的主脈沖頻率為12MHZ ,經(jīng)過12分頻</p><p> 方式0 定時時間=213 × 1微秒=
28、8.192毫秒</p><p> 方式1 定時時間=216 × 1微秒=65.536毫秒</p><p> 秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題,定時器需定時50毫秒,故T0工作于方式1,定時20次,就可定時一秒。 流程如圖4.1</p><p> 圖4.1 計時程序流程圖</p>
29、;<p> 4.2 溫度傳感器程序設(shè)計</p><p> DS18B20的轉(zhuǎn)換后的數(shù)字溫度數(shù)據(jù)是通過串行方式傳輸,所有總線器件應(yīng)嚴格遵守通信協(xié)議。 該協(xié)議定義:復(fù)位脈沖、應(yīng)答脈沖序列;寫0、寫1、讀0、讀1。 除應(yīng)答脈沖外,命令都有主機發(fā)起。</p><p> 注意:DS18B20的數(shù)據(jù),低字節(jié)在前,高字節(jié)在后。流程圖如4.2所示</p><p&
30、gt; 圖4.2 溫度傳感器流程圖</p><p> 4.3 微波爐溫度設(shè)定</p><p> 微波爐加熱狀態(tài)有三種,分別為低溫、中溫、高溫。根據(jù)用戶之前的檔位系統(tǒng)會進入相應(yīng)的加熱狀態(tài)。系統(tǒng)進入加熱狀態(tài)之后會根據(jù)每個檔位對時間比的不同進行加熱。具體狀態(tài)圖如下圖4.3所示。</p><p> 圖4.3 加熱狀態(tài)</p><p>
31、 4.4 微波爐顯示</p><p> 圖4.4 LCD1602顯示</p><p> 4.5 微波爐響鈴設(shè)計</p><p> 加熱停止后系統(tǒng)將關(guān)閉火力輸出并進行響鈴提示,響鈴提示完畢后系統(tǒng)將自動進待機狀態(tài),具體狀態(tài)圖如下圖4.5所示。</p><p> 圖4.5加熱停止并響鈴狀態(tài)圖</p><p&g
32、t; 進入加熱停止狀態(tài)后系統(tǒng)首先關(guān)閉火力輸出,系統(tǒng)向火力輸出系統(tǒng)發(fā)送關(guān)閉信號,并向音響發(fā)生模塊發(fā)送發(fā)音信號。發(fā)生結(jié)束后系統(tǒng)自動進入系統(tǒng)待機狀態(tài)。</p><p><b> 5 實驗結(jié)果</b></p><p> 圖5.1 實驗結(jié)果</p><p><b> 結(jié) 論</b></p><p&g
33、t; 經(jīng)過一段時間以來的學(xué)習(xí),不斷地從設(shè)計中總結(jié)和修改,并按著預(yù)期的要求反復(fù)的論證和測試。本著學(xué)習(xí)的態(tài)度,以完善設(shè)計的可靠性和穩(wěn)定性,將整個設(shè)計分模塊化的進行,并將每個模塊加以分析和論證,成功后再聯(lián)系在一起,最終達到總體效果。</p><p> 主要完成了以下幾個方面的內(nèi)容:</p><p> 1.制定一個在不同功能是火力的控制時序表。具有三中微波爐加熱功能,分別是微</p&g
34、t;<p> 波爐工作狀態(tài)為低溫、中溫和高溫。</p><p> 2.實現(xiàn)工作步驟:復(fù)位待機-------監(jiān)測顯示電路--------設(shè)置輸出功能和定時器處置</p><p> -----啟動定時和工作開始-------結(jié)束加熱、蜂鳴器提示。</p><p> 3.在上電時,微波爐加熱處于待機狀態(tài),時間顯示電路位00:00;溫度顯示分別為0&l
35、t;/p><p><b> 和實時溫度。</b></p><p> 4.具有LCD1602液晶顯示電路,按鍵啟動時間設(shè)置,最大預(yù)設(shè)數(shù)位10:00,溫度分</p><p> 別是20、30、50℃,最長可以計時位99分59秒。</p><p> 5.設(shè)定初值后,按開啟鍵,定時器中斷開啟,計時開始,當溫度達到設(shè)定溫度時,
36、</p><p> 開始倒計時。當?shù)褂嫊r到時間為0則斷開微波爐加熱,并給出聲音提示,同時系統(tǒng)從新返回到待機狀態(tài)。</p><p><b> 參考文獻</b></p><p> 樓然苗,李光飛。單片機課程設(shè)計指導(dǎo)。北京:電子工業(yè)出版社,2007</p><p> 吳經(jīng)國。單片機應(yīng)用技術(shù),北京:中國電力出版社,200
37、0.</p><p> 閻石。數(shù)字電子技術(shù)基礎(chǔ)。北京:高等教育出版社,1998</p><p> 馬斌,韓忠華,王長濤,夏興華等.《單片機原理及應(yīng)用-----C語言程序設(shè)計及實現(xiàn)》.人民郵電出版社 2009</p><p> 張琦,杜群貴。單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)----基于C語言編程。北京:電子工業(yè)出版社,2001</p><p>&l
38、t;b> 附錄:軟件設(shè)計程序</b></p><p> #include<reg52.h></p><p> #include<intrins.h></p><p> sbit key1=P1^4;</p><p> sbit key2=P1^5;</p><p>
39、 sbit key3=P1^6;</p><p> sbit key4=P1^7;</p><p> sbit RS=P2^5;</p><p> sbit RW=P2^6;</p><p> sbit E=P2^7;</p><p> sbit BF=P0^7;</p><p>
40、sbit DQ = P2^3; </p><p> sbit BEEP = P1^5; </p><p> unsigned char countor,key,T,m,s,m0,s0,temp,a1,b1,pan,sound;</p><p> unsigned char code tb[]={"0123456789"};</p&g
41、t;<p> /************************************************/</p><p> void delay1ms()//延遲1mS;</p><p> {unsigned char i,j;</p><p> for(i=100;i>0;i--)</p><p>
42、for(j=100;j>0;j--);}</p><p> /**********************************************/</p><p> void delay_1(unsigned char N)</p><p><b> {</b></p><p> unsigned
43、 char i;</p><p> for(i=0;i<N;i++);</p><p><b> }</b></p><p> /**********************************************/</p><p> void delay(unsigned char n)//長延遲
44、</p><p> {unsigned char i;</p><p> for(i=1;i<n;i++)</p><p> delay1ms();}</p><p> /************************************************/</p><p> void be
45、ep()</p><p><b> {</b></p><p> unsigned char i;</p><p> for (i=0;i<100;i++)</p><p><b> {</b></p><p> delay_1(114);</p>
46、<p> BEEP=!BEEP; //BEEP取反</p><p><b> } </b></p><p> BEEP=1; //關(guān)閉蜂鳴器</p><p><b> }</b></p><p> /*
47、***********************************************/</p><p> unsigned char busytest()//測試是否忙</p><p> {bit result;</p><p><b> RS=0;</b></p><p><b> RW=1
48、;</b></p><p><b> E=1;</b></p><p> _nop_(); _nop_(); _nop_();_nop_();</p><p> result=BF;</p><p><b> E=0;</b></p><p> retu
49、rn result;</p><p><b> }</b></p><p> /************************************************/</p><p> void writeinstruction(unsigned char dictate)//寫指令</p><p>
50、 {while(busytest()==1);</p><p><b> RS=0;</b></p><p><b> RW=0;</b></p><p><b> E=0;</b></p><p> _nop_();_nop_();</p><p&
51、gt; P0=dictate;</p><p> _nop_();_nop_();_nop_();_nop_();</p><p><b> E=1;</b></p><p> _nop_();_nop_();_nop_();_nop_();</p><p><b> E=0;}</b>&
52、lt;/p><p> /************************************************/</p><p> void writeaddress(unsigned char m)//寫地址</p><p> {writeinstruction(m+0x80);}</p><p> /************
53、************************************/</p><p> void writeData(unsigned char y)//寫數(shù)據(jù)</p><p> {while(busytest()==1);</p><p><b> RS=1;</b></p><p><b>
54、RW=0;</b></p><p><b> E=0;</b></p><p><b> P0=y;</b></p><p> _nop_();_nop_();_nop_();_nop_();</p><p><b> E=1;</b></p>
55、<p> _nop_();_nop_();_nop_();_nop_();</p><p><b> E=0;}</b></p><p> /************************************************/</p><p> void chushi(void)//初始化液晶屏</p&g
56、t;<p> {delay(15);</p><p> writeinstruction(0x38);delay(5);</p><p> writeinstruction(0x01);delay(5);</p><p> writeinstruction(0x0c);delay(5);</p><p> writei
57、nstruction(0x06);delay(5);</p><p><b> }</b></p><p> /************************************************/</p><p> unsigned char Reset()</p><p><b> {&
58、lt;/b></p><p> unsigned receive_ready;</p><p><b> DQ=0;</b></p><p> delay_1(28);</p><p><b> DQ=1;</b></p><p> delay_1(3);&l
59、t;/p><p> receive_ready=DQ;</p><p> delay_1(25);</p><p> return(receive_ready);</p><p><b> }</b></p><p> /***********************************
60、*************/</p><p> unsigned char read_bit()</p><p><b> {</b></p><p> unsigned char i;</p><p><b> DQ=0;</b></p><p><b>
61、 DQ=1;</b></p><p> for(i=0;i<3;i++);</p><p> return(DQ);</p><p><b> }</b></p><p> /************************************************/</p>
62、<p> void write_bit(unsigned char bitval)</p><p><b> {</b></p><p><b> DQ=0;</b></p><p> if(bitval==1)</p><p><b> DQ=1;</b&g
63、t;</p><p> delay_1(5);</p><p><b> DQ=1;</b></p><p><b> }</b></p><p> /************************************************/</p><p>
64、 void write_byte(unsigned char val)</p><p><b> {</b></p><p> unsigned char i,temp;</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p>
65、<p> temp=val>>i;</p><p> temp=temp&0x01;</p><p> write_bit(temp);</p><p> delay_1(5);</p><p><b> }</b></p><p><b> }
66、</b></p><p> /************************************************/</p><p> unsigned char read_byte()</p><p><b> {</b></p><p> unsigned char i,m=1,rec
67、eive_data=0;</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> if(read_bit())</p><p> {receive_data=receive_data+(m<<i);}</p><p>
68、 delay_1(6);</p><p><b> }</b></p><p> return(receive_data);</p><p><b> }</b></p><p> /************************************************/</
69、p><p> void chushi2()</p><p><b> {</b></p><p><b> Reset();</b></p><p> write_byte(0xcc);</p><p> write_byte(0x44);</p><
70、;p><b> Reset();</b></p><p> write_byte(0xcc);</p><p> write_byte(0xbe);</p><p> a1=read_byte();</p><p> b1=read_byte();</p><p> temp=a
71、1/16+b1*16;</p><p><b> }</b></p><p> /************************************************/</p><p> void shengyin()</p><p><b> {</b></p>
72、<p> if(sound==1)</p><p><b> {beep();}</b></p><p><b> }</b></p><p> /************************************************/</p><p> void Se
73、t()</p><p><b> {</b></p><p><b> m++;</b></p><p><b> if(m>10)</b></p><p><b> m=0;</b></p><p><b>
74、; }</b></p><p> /************************************************/</p><p> void zhi(int m)//列掃描</p><p><b> {</b></p><p> if(key1==0)</p>&
75、lt;p><b> {</b></p><p> key=4*m+0;</p><p><b> beep();</b></p><p><b> }</b></p><p> if(key2==0)</p><p><b>
76、 {</b></p><p> key=4*m+1;</p><p><b> beep();</b></p><p><b> }</b></p><p> if(key3==0)</p><p><b> {</b></
77、p><p> key=4*m+2;</p><p><b> beep();</b></p><p><b> }</b></p><p> if (key4==0)</p><p><b> {</b></p><p>
78、 key=4*m+3;</p><p><b> beep();</b></p><p><b> }</b></p><p><b> }</b></p><p> /******************************************/</p
79、><p> void scan()//行掃描</p><p><b> {</b></p><p><b> P1=0xfe;</b></p><p><b> delay(2);</b></p><p><b> zhi(0);<
80、/b></p><p><b> P1=0xfd;</b></p><p><b> delay(2);</b></p><p><b> zhi(1);</b></p><p><b> P1=0xfb;</b></p>&l
81、t;p><b> delay(2);</b></p><p><b> zhi(2);</b></p><p><b> P1=0xf7;</b></p><p><b> delay(2);</b></p><p><b> z
82、hi(3); </b></p><p><b> }</b></p><p> /******************************************/</p><p> void SetT()</p><p><b> {</b></p><
83、p><b> scan();</b></p><p> switch (key){</p><p> case 15:T=20;key=0;break;</p><p> case 14:T=34;key=0;break;</p><p> case 13:T=50;key=0;break;</p&
84、gt;<p> case 12:Set();key=0;break;</p><p> case 11:TR0=1;key=0;break;</p><p> case 10:sound=0;break;</p><p> default : break;</p><p><b> }</b>&l
85、t;/p><p><b> }</b></p><p> /******************************************/</p><p> void star()</p><p><b> {</b></p><p> if(temp==T)&
86、lt;/p><p><b> pan=1;</b></p><p><b> }</b></p><p> /*****************************************/</p><p> void daoji()</p><p><b>
87、; {</b></p><p> if(countor==20&&pan==1)</p><p><b> {</b></p><p> if(m==0&&s==0)</p><p> {m=0;s=0;m0=0;s0=0;T=0;pan=0;sound=1;TR0=
88、0;}</p><p> else if(s==0)</p><p><b> {</b></p><p><b> m--;s=59;</b></p><p><b> }</b></p><p><b> else</b&g
89、t;</p><p><b> s--;</b></p><p><b> }</b></p><p><b> }</b></p><p> /****************************************/</p><p>
90、 void jishi()</p><p><b> {</b></p><p><b> s0++;</b></p><p> if(s0==60)</p><p> {s0=0;m0++;}</p><p><b> }</b></
91、p><p> /***************************************/</p><p> void xianshi()</p><p><b> {</b></p><p> writeaddress(0x00);</p><p> writeData(tb[tem
92、p/10]);</p><p><b> delay(1);</b></p><p> writeData(tb[temp%10]);</p><p><b> delay(1);</b></p><p> writeaddress(0x08);</p><p>
93、writeData(tb[m0/10]);</p><p><b> delay(1);</b></p><p> writeData(tb[m0%10]);</p><p><b> delay(1);</b></p><p> writeData(':');</p&
94、gt;<p><b> delay(1);</b></p><p> writeData(tb[s0/10]);</p><p><b> delay(1);</b></p><p> writeData(tb[s0%10]);</p><p><b> delay
95、(1);</b></p><p> writeaddress(0x40);</p><p> writeData(tb[T/10]);</p><p><b> delay(1);</b></p><p> writeData(tb[T%10]);</p><p><b&
96、gt; delay(1);</b></p><p> writeaddress(0x48);</p><p> writeData(tb[m/10]);</p><p><b> delay(1);</b></p><p> writeData(tb[m%10]);</p><p
97、><b> delay(1);</b></p><p> writeData(':');</p><p><b> delay(1);</b></p><p> writeData(tb[s/10]);</p><p><b> delay(1);</
98、b></p><p> writeData(tb[s%10]);</p><p><b> delay(1);</b></p><p><b> }</b></p><p> /*****************************************/</p>
99、<p> void main()</p><p><b> {</b></p><p><b> IE=0x82;</b></p><p> TMOD=0X01;</p><p> TH0=(65536-50000)/256; </p><p> TL0
100、=(65536-50000)%256; </p><p><b> key=0;</b></p><p><b> m=0;s=0;</b></p><p> m0=0;s0=0;</p><p> T=0;temp=0;</p><p> pan=0;sound=
101、0;</p><p><b> chushi();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> chushi2();</p><p><b> SetT();&l
102、t;/b></p><p><b> star();</b></p><p> xianshi();</p><p> shengyin();</p><p><b> }</b></p><p><b> }</b></p>
103、<p> void time0(void) interrupt 1 using 1</p><p> {countor++;</p><p> if(countor==20){</p><p><b> jishi();</b></p><p><b> daoji();</b&g
104、t;</p><p> countor=0;}</p><p> TH0=(65536-50000)/256; </p><p> TL0=(65536-50000)%256; }</p><p><b> 致 謝</b></p><p> 本研究及課程設(shè)計是在xx老師的認真指導(dǎo)下完
105、成的,在課程設(shè)計完成之際,我們小組要特別感謝我的xx老師,由于我個人理論水平還有待提高,難免有許多考慮不周全的地方,但因為有了xx老師的督促知道使得我們的課程設(shè)計得以順利的接近尾聲。飲其流時思其源,成吾學(xué)時念吾師。在xx老師的言傳身教、嚴格要求和悉心指導(dǎo)下,是我們不僅接受了全新的思想觀念,樹立了宏偉的學(xué)術(shù)目標,掌握了學(xué)科的研究方法,而且還明白了許多待人待物和為人處世的道理。xx老師平易近人的人格魅力,嚴謹進取的治學(xué)精神和樂觀向上的生活態(tài)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- vhdl微波爐控制器課程設(shè)計-- 數(shù)字微波爐控制器
- 單片機課程設(shè)計-基于微波爐控制系統(tǒng)設(shè)計
- eda課程設(shè)計—微波爐定時設(shè)計
- 課程設(shè)計---vhdl設(shè)計微波爐控制器
- eda課程設(shè)計---微波爐控制器設(shè)計
- 基于plc的智能微波爐控制系統(tǒng)設(shè)計
- eda課程設(shè)計---微波爐定時控制器
- 課程設(shè)計---基于fpga的微波爐控制器設(shè)計
- 微波爐語音控制系統(tǒng)-畢業(yè)設(shè)計論文
- 微波爐語音控制系統(tǒng)-畢業(yè)設(shè)計論文
- 微波爐做菜
- 微波爐圖片
- 綜合微波爐
- 選購微波爐
- 微波爐教案
- 數(shù)字電路課程設(shè)計微波爐控制器
- 基于單片機的微波爐控制系統(tǒng)
- 畢業(yè)設(shè)計--微波爐控制器系統(tǒng)
- eda課程設(shè)計---微波爐定時控制器的設(shè)置
- 基于fpga的微波爐控制器設(shè)計
評論
0/150
提交評論