版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 基于微波爐控制系統(tǒng)設(shè)計(jì)</p><p><b> 摘 要</b></p><p> 微波爐是一種利用2450兆赫的電磁波來(lái)烹飪食品的廚房器具。其工作的核心是其控制部分,本設(shè)計(jì)就是對(duì)微波爐的電腦控制系統(tǒng)的一個(gè)嘗試,設(shè)計(jì)給出了系統(tǒng)軟、硬件的組成和
2、實(shí)現(xiàn)方法。結(jié)合實(shí)際要求,敘述了控制器電路的工作真理和微波爐的工作過(guò)程。設(shè)計(jì)具有操作簡(jiǎn)便,運(yùn)行穩(wěn)定,定時(shí)時(shí)間和功率控制比較精確的特點(diǎn)。它以STC公司生產(chǎn)的8位單片機(jī)STC90C516RD+為控制核心;以DS18B20作為溫度傳感器,用于實(shí)時(shí)測(cè)量微波爐內(nèi)食物的溫度;獨(dú)立式鍵盤調(diào)整輸入,用來(lái)設(shè)定溫度、定時(shí)時(shí)間等工作參數(shù);用1602LCD液晶屏來(lái)顯示時(shí)間和溫度。通過(guò)本設(shè)計(jì)能實(shí)現(xiàn)對(duì)微波爐的智能化控制,是微波爐的應(yīng)用功能更強(qiáng)大,使用方便。</
3、p><p> 單片機(jī)最小系統(tǒng)以STC90C516RD+為核心,外加時(shí)鐘和復(fù)位電路,電路結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),成本相對(duì)較低,非常符合本設(shè)計(jì)的所有要求。 STC90C516RD+單片機(jī)系列是在STC系列的基礎(chǔ)上發(fā)展起來(lái)的,是當(dāng)前8位單片機(jī)的典型代表,采用CHMOS工藝,即互補(bǔ)金屬氧化物的HMOS工藝, CHMOS是CMOS和HMOS的結(jié)合,具有HMOS高速度和高密度的特點(diǎn),還具有CMOS低功耗的特點(diǎn)。 </p
4、><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī),LCD液晶顯示,定時(shí)器</p><p><b> 目 錄</b></p><p> 摘 要- 1 -</p><p> 1 系統(tǒng)總體概述- 2 -</p><p> 1.1 工作原理- 2 -</p><p> 1.2
5、 電路設(shè)計(jì)- 3 -</p><p> 1.3 設(shè)計(jì)要求- 3 -</p><p> 1.3.1 基本要求- 3 -</p><p> 1.3.2 創(chuàng)新部分- 3 -</p><p> 2 各模塊方案比較與論證- 4 -</p><p> 2.1 計(jì)時(shí)控制部分方案- 4 -&
6、lt;/p><p> 2.2 鍵盤和顯示部分方案- 4 -</p><p> 3 系統(tǒng)硬件設(shè)計(jì)- 4 -</p><p> 3.1 顯示部分- 4 -</p><p> 3.2 鍵盤模塊電路設(shè)計(jì)- 5 -</p><p> 3.3 溫度傳感器- 5 -</p><
7、p> 4 系統(tǒng)軟件設(shè)計(jì)- 6 -</p><p> 4.1 計(jì)時(shí)程序設(shè)計(jì)- 6 -</p><p> 4.2 溫度傳感器程序設(shè)計(jì)- 7 -</p><p> 4.3 微波爐溫度設(shè)定- 8 -</p><p> 4.4 微波爐顯示- 9 -</p><p> 4.5 微
8、波爐響鈴設(shè)計(jì)- 10 -</p><p> 5 實(shí)驗(yàn)結(jié)果- 10 -</p><p> 結(jié) 論- 11 -</p><p> 參考文獻(xiàn)- 12 -</p><p> 附錄:軟件設(shè)計(jì)程序- 13 -</p><p> 致 謝- 21 -</p><p><b&g
9、t; 引 言</b></p><p> 在生活和生產(chǎn)的各個(gè)領(lǐng)域中,凡是自動(dòng)控制要求的地方都會(huì)有單片機(jī)的身影出現(xiàn);從簡(jiǎn)單到復(fù)雜,從空中、地面到地下,凡是能想象到的地方幾乎都有使用單片機(jī)的需求。</p><p> 現(xiàn)在盡管單片機(jī)的應(yīng)用已經(jīng)很普遍了,但仍有很多可以使用單片機(jī)控制而尚未實(shí)現(xiàn)的項(xiàng)目,因此,單片機(jī)的應(yīng)用大有想象和擴(kuò)展空間。單片機(jī)的應(yīng)用有利于產(chǎn)品的小型化、多功能化和
10、智能化,有助于提高勞動(dòng)效率,減輕勞動(dòng)強(qiáng)度,提高產(chǎn)品質(zhì)量,改善勞動(dòng)環(huán)境,減少能源和材料消耗,保證安全等。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),是自動(dòng)化控制具有計(jì)算準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn)。單片機(jī)應(yīng)用的意義局不僅限于它的廣闊范圍以及所帶來(lái)的經(jīng)濟(jì)效益,更重要的意義還在于:?jiǎn)纹瑱C(jī)的應(yīng)用正從根本上改變著傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能使用單片機(jī)通過(guò)軟件(編程序)方法實(shí)現(xiàn)了。
11、這種以軟件取代硬件并提高系統(tǒng)性能的控制系統(tǒng)“軟化”技術(shù),稱之為為控制技術(shù)。微控制技術(shù)是一種全新的概念,是對(duì)傳統(tǒng)控制技術(shù)的一次革命。隨著單片機(jī)應(yīng)用的推廣普及,微控制技術(shù)必將不斷發(fā)展、日益完善和更加充實(shí)。</p><p> 本文設(shè)計(jì)一個(gè)基于單片機(jī)的微波爐系統(tǒng)設(shè)計(jì),它具有三個(gè)模塊:時(shí)鐘顯示、定時(shí)、設(shè)定溫度、溫度傳感器和計(jì)時(shí)功能。設(shè)定溫度值、測(cè)量的溫度和時(shí)間用1602LCD顯示,直觀明了。</p><
12、;p><b> 1 系統(tǒng)總體概述</b></p><p><b> 1.1 工作原理</b></p><p> 微波爐工作分為四個(gè)步驟分別為:系統(tǒng)待機(jī)-----用戶設(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五個(gè)按鍵。K4鍵為微波爐的啟動(dòng)可關(guān)閉。K0,K1, K2為微波爐的三個(gè)低、中、高檔位,K3為微波爐的設(shè)定時(shí)間按鍵。每次按下按鍵后系統(tǒng)都會(huì)啟動(dòng)音箱發(fā)聲模塊發(fā)出“嘀”的聲音。當(dāng)微波爐達(dá)到設(shè)定溫度時(shí)啟動(dòng)鍵數(shù)碼管開始計(jì)時(shí),當(dāng)?shù)褂?jì)時(shí)到零分,零秒微波爐會(huì)自動(dòng)關(guān)閉,此時(shí)會(huì)發(fā)出提示聲音。各功能實(shí)現(xiàn)如下圖1.1.2<
14、;/p><p> 圖1.1.2 系統(tǒng)功能圖</p><p> 1.2 電路設(shè)計(jì)</p><p> 系統(tǒng)以STC90C516RD+單片機(jī)為核心,連接各外部電路完成人機(jī)交互等各功能的控制。系統(tǒng)的總體框圖如下圖1.2</p><p> 圖1.2 系統(tǒng)總的電路圖</p><p> 電路設(shè)計(jì)部分以單片機(jī)控制電路為核
15、心有定時(shí)器電路,顯示電路,鍵盤電路,門電路,電源電路,音箱發(fā)聲電路共同組成微波爐控制系統(tǒng)電路。</p><p> 1.3 設(shè)計(jì)要求</p><p> 1.3.1 基本要求</p><p> ?。?)運(yùn)用所學(xué)的知識(shí)設(shè)計(jì)一個(gè)微波爐控制系統(tǒng)。</p><p> ?。?)上電時(shí)可設(shè)置三種最高溫度值,可設(shè)置最長(zhǎng)10分鐘定時(shí),用DS18B20
16、感知溫度,當(dāng)溫度達(dá)到設(shè)置溫度值,并持續(xù)設(shè)定時(shí)</p><p> 間長(zhǎng)度時(shí),蜂鳴器報(bào)警提示,同時(shí)時(shí)間歸零。</p><p> 1.3.2 創(chuàng)新部分</p><p> (1)開始加熱多長(zhǎng)時(shí)間、定的時(shí)間和溫度、DS18B20測(cè)的微波爐溫度在1602LCD液晶屏上顯示。</p><p> ?。?)當(dāng)溫度達(dá)到設(shè)定溫度時(shí),開始倒計(jì)時(shí),當(dāng)設(shè)定的時(shí)
17、間歸零是蜂鳴器響,同時(shí)停止計(jì)時(shí),時(shí)間歸零。</p><p> 2 各模塊方案比較與論證</p><p> 2.1 計(jì)時(shí)控制部分方案</p><p> 方案一:使用專用芯片。</p><p> 使用微控制器控制專用時(shí)鐘芯片實(shí)現(xiàn)計(jì)時(shí)控制,這種方案有著計(jì)時(shí)精度高、控制簡(jiǎn)單的優(yōu)點(diǎn),而且更易于實(shí)現(xiàn)日期/時(shí)間顯示、定是烹飪等及時(shí)擴(kuò)展功能。
18、</p><p> 方案二:采用單片機(jī)內(nèi)部定時(shí)器。</p><p> 51單片機(jī)內(nèi)不含有3個(gè)定時(shí)器,可以利用一個(gè)定時(shí)器與程序計(jì)數(shù)器相結(jié)合的方式,在系統(tǒng)晶振的驅(qū)動(dòng)下,產(chǎn)生標(biāo)準(zhǔn)時(shí)鐘頻率。</p><p> 由于方案二具有較好的靈活性、較少的電路器件和較高的性價(jià)比,而且通過(guò)精確的軟件補(bǔ)償使精度完全可以滿足控制需求,所以我們應(yīng)該選擇該方案完成設(shè)計(jì)。</p>
19、<p> 2.2 鍵盤和顯示部分方案</p><p> 方案一:采用陣列式鍵盤和LCD1602液晶屏</p><p> 此類鍵盤是采用列陣掃描方式,優(yōu)點(diǎn)是當(dāng)按鍵較多時(shí)可以降低占用單片機(jī)的I/O\口數(shù)目,缺點(diǎn)是電路復(fù)雜且會(huì)加大編程的難度。采用液晶屏美觀,能顯示多種數(shù)據(jù);缺點(diǎn)是變成復(fù)雜,占用大量的端口資源。</p><p> 方案二;采用獨(dú)立式
20、鍵盤電路和數(shù)碼管</p><p> 每個(gè)鍵單獨(dú)占有一根I/O接口線,每個(gè)I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。缺點(diǎn)是當(dāng)按鍵較多時(shí)占用單片機(jī)的I/O數(shù)目較多,優(yōu)點(diǎn)是電路設(shè)計(jì)簡(jiǎn)單,且編程極其容易。采用數(shù)碼管顯示,編程簡(jiǎn)單適合顯示少量數(shù)據(jù)。</p><p> 由于該系統(tǒng)沒采用了常規(guī)鐘表式的校對(duì)方式,用鍵和顯示的數(shù)據(jù)較多,系統(tǒng)資源不夠,故采用了第一種方案。</p>
21、;<p> 3 系統(tǒng)硬件設(shè)計(jì)</p><p> 3.1 顯示部分</p><p> 因?yàn)橄到y(tǒng)要求把設(shè)定的溫度、時(shí)間和實(shí)時(shí)溫度、時(shí)間顯示出來(lái),所以就用了LCD1602液晶顯示出來(lái)。</p><p> 腳1:VSS ,LCD地 腳2:VDD ,LCD電源 </p>&l
22、t;p> 腳3:VL ,LCD負(fù)的偏壓信號(hào)端 腳4:RS ,數(shù)據(jù)/命令選擇端(H/L)</p><p> 腳5:R/W ,讀/寫選擇端端(H/L) 腳6:E ,使能信號(hào)端 </p><p> 腳7~14:數(shù)據(jù)端口D0~D7 腳15:BLA,背光源正極</p><p> 腳16:BLK,背光源負(fù)極</p>&
23、lt;p> 圖3.1 LCD液晶1602電路原理圖</p><p> 3.2 鍵盤模塊電路設(shè)計(jì)</p><p> 在按鍵設(shè)計(jì)中運(yùn)用了軟件、硬件結(jié)合的形式進(jìn)行鍵盤掃描,K0,K1, K2, K3, K4分別連入單片機(jī)I/O接口。通過(guò)單片機(jī)內(nèi)部判斷這5個(gè)I/O借口來(lái)確定按鍵是否被按下。鍵盤電路設(shè)計(jì)如圖3.2所示</p><p> 圖3.2 鍵盤矩陣
24、原理圖</p><p> 3.3 溫度傳感器</p><p> DS18B20可設(shè)定9-12位分辨率(默認(rèn)12位);測(cè)溫范圍(-55- +125)攝氏度;支持(3-5.5V)電壓范圍;用戶可設(shè)定高溫及低溫報(bào)警,掉電不丟失;采用單總線接口方式,即允許在一條總線(信號(hào)線)掛接數(shù)十甚至上百個(gè)數(shù)字式傳感器,抗干擾強(qiáng)、易構(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è)計(jì)</p><p> 系統(tǒng)程序總體看可分為主程序,和其他模塊程序。主程序根據(jù)系統(tǒng)的工作流程,系統(tǒng)共分為四個(gè)狀態(tài),分別是:系統(tǒng)待機(jī)狀態(tài),用戶設(shè)置狀態(tài),微波爐加熱狀態(tài)和加熱完成響音提示狀態(tài)。其他
26、模塊程序包括程序顯示程序,計(jì)時(shí)程序,溫度傳感器程序,鍵盤掃描程序。</p><p> 4.1 計(jì)時(shí)程序設(shè)計(jì)</p><p> 定時(shí)方法我們采用軟硬件結(jié)合的方法,定時(shí)器工作時(shí)必須給計(jì)數(shù)器送初值,將這個(gè)值送到TH和TL中。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此工作于方式1,定時(shí)器為16位計(jì)數(shù)器其定時(shí)時(shí)間由下式計(jì)算:</p><p> 定
27、時(shí)時(shí)間=(216-X)×振蕩周期×12(或)</p><p> X=216-定時(shí)時(shí)間/振蕩周期×12</p><p> 式中x為T0的初始值,該值和計(jì)數(shù)器工作方式有關(guān)。</p><p> 如單片機(jī)的主脈沖頻率為12MHZ ,經(jīng)過(guò)12分頻</p><p> 方式0 定時(shí)時(shí)間=213 × 1微秒=
28、8.192毫秒</p><p> 方式1 定時(shí)時(shí)間=216 × 1微秒=65.536毫秒</p><p> 秒鐘已經(jīng)超過(guò)了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問(wèn)題,定時(shí)器需定時(shí)50毫秒,故T0工作于方式1,定時(shí)20次,就可定時(shí)一秒。 流程如圖4.1</p><p> 圖4.1 計(jì)時(shí)程序流程圖</p>
29、;<p> 4.2 溫度傳感器程序設(shè)計(jì)</p><p> DS18B20的轉(zhuǎn)換后的數(shù)字溫度數(shù)據(jù)是通過(guò)串行方式傳輸,所有總線器件應(yīng)嚴(yán)格遵守通信協(xié)議。 該協(xié)議定義:復(fù)位脈沖、應(yīng)答脈沖序列;寫0、寫1、讀0、讀1。 除應(yīng)答脈沖外,命令都有主機(jī)發(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)會(huì)進(jìn)入相應(yīng)的加熱狀態(tài)。系統(tǒng)進(jìn)入加熱狀態(tài)之后會(huì)根據(jù)每個(gè)檔位對(duì)時(shí)間比的不同進(jìn)行加熱。具體狀態(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è)計(jì)</p><p> 加熱停止后系統(tǒng)將關(guān)閉火力輸出并進(jìn)行響鈴提示,響鈴提示完畢后系統(tǒng)將自動(dòng)進(jìn)待機(jī)狀態(tài),具體狀態(tài)圖如下圖4.5所示。</p><p> 圖4.5加熱停止并響鈴狀態(tài)圖</p><p&g
32、t; 進(jìn)入加熱停止?fàn)顟B(tài)后系統(tǒng)首先關(guān)閉火力輸出,系統(tǒng)向火力輸出系統(tǒng)發(fā)送關(guān)閉信號(hào),并向音響發(fā)生模塊發(fā)送發(fā)音信號(hào)。發(fā)生結(jié)束后系統(tǒng)自動(dòng)進(jìn)入系統(tǒng)待機(jī)狀態(tài)。</p><p><b> 5 實(shí)驗(yàn)結(jié)果</b></p><p> 圖5.1 實(shí)驗(yàn)結(jié)果</p><p><b> 結(jié) 論</b></p><p&g
33、t; 經(jīng)過(guò)一段時(shí)間以來(lái)的學(xué)習(xí),不斷地從設(shè)計(jì)中總結(jié)和修改,并按著預(yù)期的要求反復(fù)的論證和測(cè)試。本著學(xué)習(xí)的態(tài)度,以完善設(shè)計(jì)的可靠性和穩(wěn)定性,將整個(gè)設(shè)計(jì)分模塊化的進(jìn)行,并將每個(gè)模塊加以分析和論證,成功后再聯(lián)系在一起,最終達(dá)到總體效果。</p><p> 主要完成了以下幾個(gè)方面的內(nèi)容:</p><p> 1.制定一個(gè)在不同功能是火力的控制時(shí)序表。具有三中微波爐加熱功能,分別是微</p&g
34、t;<p> 波爐工作狀態(tài)為低溫、中溫和高溫。</p><p> 2.實(shí)現(xiàn)工作步驟:復(fù)位待機(jī)-------監(jiān)測(cè)顯示電路--------設(shè)置輸出功能和定時(shí)器處置</p><p> -----啟動(dòng)定時(shí)和工作開始-------結(jié)束加熱、蜂鳴器提示。</p><p> 3.在上電時(shí),微波爐加熱處于待機(jī)狀態(tài),時(shí)間顯示電路位00:00;溫度顯示分別為0&l
35、t;/p><p><b> 和實(shí)時(shí)溫度。</b></p><p> 4.具有LCD1602液晶顯示電路,按鍵啟動(dòng)時(shí)間設(shè)置,最大預(yù)設(shè)數(shù)位10:00,溫度分</p><p> 別是20、30、50℃,最長(zhǎng)可以計(jì)時(shí)位99分59秒。</p><p> 5.設(shè)定初值后,按開啟鍵,定時(shí)器中斷開啟,計(jì)時(shí)開始,當(dāng)溫度達(dá)到設(shè)定溫度時(shí),
36、</p><p> 開始倒計(jì)時(shí)。當(dāng)?shù)褂?jì)時(shí)到時(shí)間為0則斷開微波爐加熱,并給出聲音提示,同時(shí)系統(tǒng)從新返回到待機(jī)狀態(tài)。</p><p><b> 參考文獻(xiàn)</b></p><p> 樓然苗,李光飛。單片機(jī)課程設(shè)計(jì)指導(dǎo)。北京:電子工業(yè)出版社,2007</p><p> 吳經(jīng)國(guó)。單片機(jī)應(yīng)用技術(shù),北京:中國(guó)電力出版社,200
37、0.</p><p> 閻石。數(shù)字電子技術(shù)基礎(chǔ)。北京:高等教育出版社,1998</p><p> 馬斌,韓忠華,王長(zhǎng)濤,夏興華等.《單片機(jī)原理及應(yīng)用-----C語(yǔ)言程序設(shè)計(jì)及實(shí)現(xiàn)》.人民郵電出版社 2009</p><p> 張琦,杜群貴。單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)----基于C語(yǔ)言編程。北京:電子工業(yè)出版社,2001</p><p>&l
38、t;b> 附錄:軟件設(shè)計(jì)程序</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)//長(zhǎng)延遲
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()//測(cè)試是否忙</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è)計(jì)是在xx老師的認(rèn)真指導(dǎo)下完
105、成的,在課程設(shè)計(jì)完成之際,我們小組要特別感謝我的xx老師,由于我個(gè)人理論水平還有待提高,難免有許多考慮不周全的地方,但因?yàn)橛辛藊x老師的督促知道使得我們的課程設(shè)計(jì)得以順利的接近尾聲。飲其流時(shí)思其源,成吾學(xué)時(shí)念吾師。在xx老師的言傳身教、嚴(yán)格要求和悉心指導(dǎo)下,是我們不僅接受了全新的思想觀念,樹立了宏偉的學(xué)術(shù)目標(biāo),掌握了學(xué)科的研究方法,而且還明白了許多待人待物和為人處世的道理。xx老師平易近人的人格魅力,嚴(yán)謹(jǐn)進(jìn)取的治學(xué)精神和樂觀向上的生活態(tài)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- vhdl微波爐控制器課程設(shè)計(jì)-- 數(shù)字微波爐控制器
- 單片機(jī)課程設(shè)計(jì)-基于微波爐控制系統(tǒng)設(shè)計(jì)
- eda課程設(shè)計(jì)—微波爐定時(shí)設(shè)計(jì)
- 課程設(shè)計(jì)---vhdl設(shè)計(jì)微波爐控制器
- eda課程設(shè)計(jì)---微波爐控制器設(shè)計(jì)
- 基于plc的智能微波爐控制系統(tǒng)設(shè)計(jì)
- eda課程設(shè)計(jì)---微波爐定時(shí)控制器
- 課程設(shè)計(jì)---基于fpga的微波爐控制器設(shè)計(jì)
- 微波爐語(yǔ)音控制系統(tǒng)-畢業(yè)設(shè)計(jì)論文
- 微波爐語(yǔ)音控制系統(tǒng)-畢業(yè)設(shè)計(jì)論文
- 微波爐做菜
- 微波爐圖片
- 綜合微波爐
- 選購(gòu)微波爐
- 微波爐教案
- 數(shù)字電路課程設(shè)計(jì)微波爐控制器
- 基于單片機(jī)的微波爐控制系統(tǒng)
- 畢業(yè)設(shè)計(jì)--微波爐控制器系統(tǒng)
- eda課程設(shè)計(jì)---微波爐定時(shí)控制器的設(shè)置
- 基于fpga的微波爐控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論