2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  單片機(jī)課程設(shè)計(jì)</b></p><p>  基于微波爐控制系統(tǒng)設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  微波爐是一種利用2450兆赫的電磁波來烹飪食品的廚房器具。其工作的核心是其控制部分,本設(shè)計(jì)就是對(duì)微波爐的電腦控制系統(tǒng)的一個(gè)嘗試,設(shè)計(jì)給出了系統(tǒng)軟、硬件的組成和

2、實(shí)現(xiàn)方法。結(jié)合實(shí)際要求,敘述了控制器電路的工作真理和微波爐的工作過程。設(shè)計(jì)具有操作簡便,運(yùn)行穩(wěn)定,定時(shí)時(shí)間和功率控制比較精確的特點(diǎn)。它以STC公司生產(chǎn)的8位單片機(jī)STC90C516RD+為控制核心;以DS18B20作為溫度傳感器,用于實(shí)時(shí)測(cè)量微波爐內(nèi)食物的溫度;獨(dú)立式鍵盤調(diào)整輸入,用來設(shè)定溫度、定時(shí)時(shí)間等工作參數(shù);用1602LCD液晶屏來顯示時(shí)間和溫度。通過本設(shè)計(jì)能實(shí)現(xiàn)對(duì)微波爐的智能化控制,是微波爐的應(yīng)用功能更強(qiáng)大,使用方便。</

3、p><p>  單片機(jī)最小系統(tǒng)以STC90C516RD+為核心,外加時(shí)鐘和復(fù)位電路,電路結(jié)構(gòu)簡單,抗干擾能力強(qiáng),成本相對(duì)較低,非常符合本設(shè)計(jì)的所有要求。 STC90C516RD+單片機(jī)系列是在STC系列的基礎(chǔ)上發(fā)展起來的,是當(dāng)前8位單片機(jī)的典型代表,采用CHMOS工藝,即互補(bǔ)金屬氧化物的HMOS工藝, CHMOS是CMOS和HMOS的結(jié)合,具有HMOS高速度和高密度的特點(diǎn),還具有CMOS低功耗的特點(diǎn)。 </p

4、><p>  關(guān)鍵詞:單片機(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);從簡單到復(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)用的意義局不僅限于它的廣闊范圍以及所帶來的經(jīng)濟(jì)效益,更重要的意義還在于:單片機(jī)的應(yīng)用正從根本上改變著傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能使用單片機(jī)通過軟件(編程序)方法實(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è)置最長10分鐘定時(shí),用DS18B20

16、感知溫度,當(dāng)溫度達(dá)到設(shè)置溫度值,并持續(xù)設(shè)定時(shí)</p><p>  間長度時(shí),蜂鳴器報(bào)警提示,同時(shí)時(shí)間歸零。</p><p>  1.3.2 創(chuàng)新部分</p><p> ?。?)開始加熱多長時(shí)間、定的時(shí)間和溫度、DS18B20測(cè)的微波爐溫度在1602LCD液晶屏上顯示。</p><p>  (2)當(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í)精度高、控制簡單的優(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à)比,而且通過精確的軟件補(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ì)簡單,且編程極其容易。采用數(shù)碼管顯示,編程簡單適合顯示少量數(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í)間顯示出來,所以就用了LCD1602液晶顯示出來。</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接口。通過單片機(jī)內(nèi)部判斷這5個(gè)I/O借口來確定按鍵是否被按下。鍵盤電路設(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)過12分頻</p><p>  方式0  定時(shí)時(shí)間=213 × 1微秒=

28、8.192毫秒</p><p>  方式1  定時(shí)時(shí)間=216 × 1微秒=65.536毫秒</p><p>  秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題,定時(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ù)是通過串行方式傳輸,所有總線器件應(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)過一段時(shí)間以來的學(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℃,最長可以計(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)國。單片機(jī)應(yīng)用技術(shù),北京:中國電力出版社,200

37、0.</p><p>  閻石。數(shù)字電子技術(shù)基礎(chǔ)。北京:高等教育出版社,1998</p><p>  馬斌,韓忠華,王長濤,夏興華等.《單片機(jī)原理及應(yīng)用-----C語言程序設(shè)計(jì)及實(shí)現(xiàn)》.人民郵電出版社 2009</p><p>  張琦,杜群貴。單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)----基于C語言編程。北京:電子工業(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)//長延遲

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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論