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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  1引言………………………………………………………………………………………… 1</p><p>  1.1設(shè)計(jì)內(nèi)容和要…………………………………………………………………………… 1</p><p>  1.2 工作原理……………………………………………………………………………

2、…… 2</p><p>  2 總體設(shè)計(jì)…………………………………………………………………………………… 2</p><p>  2.1 方案設(shè)計(jì)………………………………………………………………………………… 2</p><p>  2.2 系統(tǒng)框圖………………………………………………………………………………… 2</p><p>  2.

3、3 核心芯片簡介…………………………………………………………………………3</p><p>  2.3.1 DS1302簡介…………………………………………………………………………… 3</p><p>  2.3.2 AT89C51簡介……………………………………………………………………………3</p><p>  3 智能電子鐘軟硬件電路的設(shè)計(jì)………………………

4、………………………………………4</p><p>  3.1 硬件設(shè)計(jì)……………………………………………………………………………………4</p><p>  3.1.1 復(fù)位電路設(shè)計(jì)……………………………………………………………………………4</p><p>  3.1.2 DS1302與單片機(jī)的接口設(shè)計(jì)………………………………………………………… 5</p&

5、gt;<p>  3.1.3 LED顯示設(shè)計(jì)……………………………………………………………………………5</p><p>  3.1.4 電源設(shè)計(jì)…………………………………………………………………………………6</p><p>  3.1.5 按鍵開關(guān)去抖設(shè)計(jì)………………………………………………………………………6</p><p>  3.1.6 時(shí)鐘

6、電路的設(shè)計(jì)…………………………………………………………………………7</p><p>  3.1.7 電路總原理圖設(shè)計(jì)………………………………………………………………………8</p><p>  3.2 軟件設(shè)計(jì)……………………………………………………………………………………8</p><p>  3.2.1 流程圖…………………………………………………………………

7、…………………8</p><p>  4 protues仿真與調(diào)試……………………………………………………………………………11</p><p>  4.1 電路的仿真…………………………………………………………………………………11</p><p>  4.2軟件調(diào)試……………………………………………………………………………………11</p><

8、;p>  結(jié)論…………………………………………………………………………………………… 12</p><p>  參考文獻(xiàn)……………………………………………………………………………………… 14</p><p>  附 錄………………………………………………………………………………………… 15</p><p>  源程序…………………………………………………

9、……………………………………… 15</p><p><b>  1 引言</b></p><p>  電子時(shí)鐘主要是利用電子技術(shù)將時(shí)鐘電子化、數(shù)字化,擁有時(shí)鐘精確、體積小、界面友好、可擴(kuò)展性能強(qiáng)等特點(diǎn),被廣泛應(yīng)用于生活和工作當(dāng)中。另外,在生活和工農(nóng)業(yè)生產(chǎn)中,也常常需要溫度,這就需要電子時(shí)鐘具有多功能性。本設(shè)計(jì)主要為實(shí)現(xiàn)一款可正常顯示時(shí)鐘/日歷、帶有定時(shí)鬧鈴的多功能電

10、子時(shí)鐘。本文對(duì)當(dāng)前電子鐘開發(fā)手段進(jìn)行了比較和分析,最終確定了采用單片機(jī)技術(shù)實(shí)現(xiàn)多功能電子時(shí)鐘。本設(shè)計(jì)應(yīng)用AT89C51芯片作為核心,6位LED數(shù)碼管顯示,使用DS1302實(shí)時(shí)時(shí)鐘日歷芯片完成時(shí)鐘/日歷的基本功能。這種實(shí)現(xiàn)方法的優(yōu)點(diǎn)是電路簡單,性能可靠,實(shí)時(shí)性好,時(shí)間精確,操作簡單,編程容易。</p><p>  該電子時(shí)鐘可以應(yīng)用于一般的生活和工作中,也可通過改裝,提高性能,增加新功能,從而給人們的生活和工作帶來

11、更多的方便。</p><p>  1.1設(shè)計(jì)內(nèi)容和要求</p><p>  以AT89C51單片機(jī)為核心,制作一個(gè)LCD顯示的智能電子鐘:</p><p>  (1) 計(jì)時(shí):秒、分、時(shí)、天、周、月、年。</p><p>  (2) 閏年自動(dòng)判別。</p><p>  (3) 五路定時(shí)輸出,可任意關(guān)斷(最大可到16路)。

12、</p><p>  (4) 時(shí)間、月、日交替顯示。</p><p>  (5) 自定任意時(shí)刻自動(dòng)開/關(guān)屏。</p><p>  (6) 計(jì)時(shí)精度:誤差≤1秒/月(具有微調(diào)設(shè)置)</p><p>  (7) 鍵盤采用動(dòng)態(tài)掃描方式查詢。所有的查詢、設(shè)置功能均由功能鍵K1、K2完成。</p><p><b>  

13、1.2 工作原理</b></p><p>  本設(shè)計(jì)采用市場上流行的時(shí)鐘芯片DS1302進(jìn)行制作。DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,可以通過串行接口與計(jì)算機(jī)進(jìn)行通信,使得管腳數(shù)量減少。實(shí)時(shí)時(shí)鐘/日歷電路能夠計(jì)算2100年之前的秒、分、時(shí)、日、星期、月、年的,具有閏年調(diào)整的能力。</p><p>  DS1302時(shí)鐘

14、芯片的主要功能特性:</p><p>  (1) 能計(jì)算2100年之前的年、月、日、星期、時(shí)、分、秒的信息;每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整;時(shí)鐘可設(shè)置為24或12小時(shí)格式。</p><p>  (2) 31B的8位暫存數(shù)據(jù)存儲(chǔ)RAM。</p><p>  (3) 串行I/O口方式使得引腳數(shù)量最少。</p><p>  (4) DS1302與

15、單片機(jī)之間能簡單地采用同步串行的方式進(jìn)行通信,僅需3根線。</p><p>  (5) 寬范圍工作電壓2.0-5.5V。</p><p>  (6) 工作電流為2.0A時(shí),小于300nA。</p><p>  (7) 功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW</p><p>  控制程序在Keil軟件中編寫,編譯,整個(gè)控制電路在Prote

16、us仿真軟件中連接調(diào)示。</p><p><b>  2 總體設(shè)計(jì)方案</b></p><p><b>  2.1 方案設(shè)計(jì)</b></p><p>  實(shí)時(shí)時(shí)鐘芯片具備年、月、日、時(shí)、分、秒計(jì)時(shí)功能和多點(diǎn)計(jì)時(shí)功能,計(jì)時(shí)數(shù)據(jù)的更新每秒自動(dòng)進(jìn)行一次,不需程序干預(yù)。計(jì)算機(jī)可通過中斷或查詢方式讀取計(jì)時(shí)數(shù)據(jù)進(jìn)行顯示,因此計(jì)時(shí)功能的

17、實(shí)現(xiàn)無需占用CPU的時(shí)間,程序簡單。此外,實(shí)時(shí)時(shí)鐘芯片多數(shù)帶有鋰電池做后備電源,具備永不停止的計(jì)時(shí)功能;具有可編程方波輸出功能,可用做實(shí)時(shí)測控系統(tǒng)的采樣信號(hào)等;有的實(shí)時(shí)時(shí)鐘芯片內(nèi)部還帶有非易失性RAM,可用來存放需長期保存但有時(shí)也需變更的數(shù)據(jù),由于功能完善,精度高,軟件程序設(shè)計(jì)相對(duì)簡單,且計(jì)時(shí)不占用CPU時(shí)間,因此,在工業(yè)實(shí)時(shí)測控系統(tǒng)中多采用這一類專用芯片來實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘功能。</p><p>  利用單片機(jī)內(nèi)部的

18、定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)及秒表計(jì)時(shí)。該方案節(jié)省硬件成本,且能使設(shè)計(jì)者對(duì)單片機(jī)的指令系統(tǒng)能有更深入的了解,從而掌握單片機(jī)應(yīng)用技術(shù)MCS-51匯編語言程序設(shè)計(jì)方法,因此,本系統(tǒng)設(shè)計(jì)采用此種軟件控制方法來實(shí)現(xiàn)計(jì)時(shí)。而由于Atmel公司的AT89C51是一種自帶4KB Flash存儲(chǔ)器的低電壓、高性能的CMOS 8位微處理器。該器件采用Atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸

19、出引腳相兼容。AT89C51將多功能8位CPU和閃存集成在單個(gè)芯片中,是一種高效的微控制器,使用也更方便,壽命更長,可以反復(fù)擦除1000次。形成了功能強(qiáng)大、使用靈活和具有較高性能價(jià)格比的微控制器。它的功能強(qiáng)大,而且也比較容易購買,故本設(shè)計(jì)中所選的單片機(jī)為AT89C51單片機(jī)。</p><p><b>  2.2 系統(tǒng)框圖</b></p><p>  按照系統(tǒng)設(shè)計(jì)功能的

20、要求,初步確定系統(tǒng)由主控模塊、時(shí)控模塊、及顯示模塊和鍵盤接口模塊共4個(gè)模塊組成。主控芯片使用51系列AT89C51單片機(jī),時(shí)鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘DS1302。采用DS1302作為計(jì)時(shí)芯片,可以做到計(jì)時(shí)準(zhǔn)確。更重要的是,DS1302可以在很小電流的后備電源(2.5~5.5V電源,再2.5V時(shí)耗電小于300nA),而且DS1302可以編程選擇多種充電電流來為后備電源進(jìn)行慢速充電,可以保證

21、后備電源基本不耗電。顯示模塊采用普通的液晶顯示屏(LCD)設(shè)計(jì)框圖如圖1.1所示。</p><p>  圖2.2 設(shè)計(jì)方案框圖</p><p>  2.3 核心芯片簡介</p><p>  2.3.1 DS1302簡介</p><p>  DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、

22、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償功能,工作電壓寬達(dá)2.5~5.5V。時(shí)鐘可工作在24小時(shí)格式或12小時(shí)(AM/PM)格式。 DS1302與單片機(jī)的接口使用同步串行通信,僅用3條線與之相連接??刹捎靡淮蝹魉鸵粋€(gè)字節(jié)或突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,

23、同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。</p><p>  2.3.2 AT89C51簡介</p><p>  AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的

24、單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p>  3 智能電子鐘軟硬件電路的設(shè)計(jì)

25、</p><p><b>  3.1 硬件設(shè)計(jì)</b></p><p>  該設(shè)計(jì)的硬件電路由主控部分(單片機(jī)AT89C51)、計(jì)時(shí)部分(實(shí)時(shí)時(shí)鐘芯片DS1302)、顯示部分(八段數(shù)碼管)、電源部分(三端穩(wěn)壓器7805)、時(shí)鐘電路5個(gè)部分組成。各部分之間相互協(xié)作,構(gòu)成一個(gè)統(tǒng)一的有機(jī)整體,實(shí)現(xiàn)數(shù)字時(shí)鐘的功能。各部分的硬件電路設(shè)計(jì)如下。設(shè)計(jì)總電路圖見附錄一。</p&

26、gt;<p>  3.1.1 復(fù)位電路設(shè)計(jì)</p><p>  單片機(jī)AT89C51作為主控芯片,控制整個(gè)電路的運(yùn)行。單片機(jī)外圍需要一個(gè)復(fù)位電路,復(fù)位電路的功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤消復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。該設(shè)計(jì)采用含有二極管的復(fù)位電路,復(fù)位電路可以有效的解決電源毛刺和電源緩

27、慢下降(電池電壓不足)等引起的問題,在電源電壓瞬間下降時(shí)可以使電容迅速放電,一定寬度的電源毛刺也可令系統(tǒng)可靠復(fù)位。復(fù)位電路的設(shè)計(jì)圖如圖2所示:</p><p>  圖3.1.1 單片機(jī)復(fù)位電路圖</p><p>  AT89C51具有在系統(tǒng)可編程功能,可以很方便的改寫單片機(jī)存儲(chǔ)器內(nèi)的程序不需要把芯片中從工作環(huán)境中剝離,把AT89C51下載口接入電路,可使電路實(shí)現(xiàn)該功能。AT89C51需要接

28、入一個(gè)普通12MHz晶振,為其提供穩(wěn)定的時(shí)鐘脈沖。該設(shè)計(jì)中有6個(gè)八段數(shù)碼顯示管LED,所以,在單片機(jī)AT89C51外圍需要接入6個(gè)三極管來驅(qū)動(dòng)數(shù)碼顯示管。此外,單片機(jī)外圍需要接入3個(gè)開關(guān),用來調(diào)整時(shí)鐘。單片機(jī)外圍電路的設(shè)計(jì)圖如圖2.2示:</p><p>  3.1.2 DS1302與單片機(jī)的接口設(shè)計(jì)</p><p>  時(shí)鐘芯片DS1302與單片機(jī)AT89C51的接口是由3條線來完成的,

29、單片機(jī)AT89C51的P1.0與時(shí)鐘芯片的數(shù)據(jù)傳輸端相連,P1.1用來作為DS1302輸入時(shí)鐘SCLK控制端,P1.2控制DS1302的復(fù)位輸入端。DS1302接標(biāo)準(zhǔn)32.768KHz石英晶振。DS1302與單片機(jī)的接口電路如圖2.3所示。</p><p>  圖3.1.2 DS1302與AT89C51連接圖</p><p>  3.1.3 LED顯示設(shè)計(jì)</p><p

30、>  八段數(shù)碼顯示管有兩種,一種是共陽數(shù)碼管,其內(nèi)部是由八個(gè)陽極相連接的發(fā)光二極管組成;另一種是共陰數(shù)碼管,其內(nèi)部是由八個(gè)陰極相連接的發(fā)光二極管組成。二者原理不同但功能相同。本設(shè)計(jì)的時(shí)間顯示選用6個(gè)共陰八段數(shù)碼管LED,其外形和內(nèi)部結(jié)構(gòu)如圖3.1.3所示:</p><p>  圖3.1.3 八段共陰數(shù)碼管LED</p><p>  3.1.4 電源設(shè)計(jì)</p><

31、p>  時(shí)鐘芯片DS1302有很寬的工作電壓范圍,其工作電壓為2.5~5.5V。單片機(jī)AT89C51的工作電壓范圍相對(duì)較窄,為4.0~5.5V,所以本設(shè)計(jì)中,給電路接入三端穩(wěn)壓器7805,利用它的穩(wěn)壓功能給電路提供穩(wěn)定的+5V電壓,使電路的工作保持很高的可靠性。在電路中接入一個(gè)發(fā)光二極管作為指示燈,可以很方便地指示電源與電路是否接通。該設(shè)計(jì)的電源部分如圖2.5所示。</p><p>  圖3.1.4 電源電

32、路圖</p><p>  3.1.5 按鍵開關(guān)去抖設(shè)計(jì)</p><p>  按鍵開關(guān)在電路中的連接如圖所示。按鍵未按下時(shí),A點(diǎn)電位為高電平5V;按鍵按下時(shí),A點(diǎn)電位為低電平。A點(diǎn)電位就用于向CPU傳遞按鍵的開關(guān)狀態(tài)。但是由于按鍵的結(jié)構(gòu)為機(jī)械彈性開關(guān),在按鍵按下和斷開時(shí),觸點(diǎn)在閉合和斷開瞬間還會(huì)接觸不穩(wěn)定,引起A點(diǎn)電平不穩(wěn)定,如圖2.6所示,鍵盤的抖動(dòng)時(shí)間一般為5~10ms,抖動(dòng)現(xiàn)象會(huì)引起C

33、PU對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤。因此必須設(shè)法消除抖動(dòng)的不良后果。</p><p>  圖2.6 鍵操作和鍵抖動(dòng)</p><p>  消除抖動(dòng)的不良后果的方法有硬、軟件兩種。</p><p>  為了節(jié)省硬件,通常在單片機(jī)系統(tǒng)中,一般不采用硬件方法消除鍵的抖動(dòng),而是用軟件消除抖動(dòng)的方法。根據(jù)抖動(dòng)特性,在第一次檢測到按鍵按下后,執(zhí)行一段延時(shí)5~10ms讓

34、前延抖動(dòng)消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要給5~10ms的延時(shí),待后延抖動(dòng)消失后才轉(zhuǎn)入該鍵處理程序。</p><p>  3.1.6 時(shí)鐘電路的設(shè)計(jì)</p><p>  使用串行接口時(shí)鐘芯片DS1302設(shè)計(jì)時(shí)鐘電路。該設(shè)計(jì)方案以單片機(jī)AT89S51為主控芯片,以串行時(shí)鐘芯片DS1302為核心計(jì)時(shí)芯片,組成數(shù)字時(shí)鐘電路。該電路不但能

35、準(zhǔn)確地計(jì)時(shí)、附加其它功能,而且,其三線接口可以節(jié)省接口資源,在斷電后不丟失時(shí)間和數(shù)據(jù)信息。該設(shè)計(jì)方案的接口電路如圖2.7所示。</p><p>  圖3.1.6 DS1302接口電路</p><p>  3.1.7 電路總原理圖設(shè)計(jì)</p><p>  圖3.1.7 總原理圖</p><p><b>  3.2 軟件設(shè)計(jì)</b

36、></p><p>  電子時(shí)鐘的程序主要包括3個(gè)方面的內(nèi)容:一是DS1302從單片機(jī)中讀取數(shù)據(jù)進(jìn)行計(jì)數(shù),二是利用按鍵進(jìn)行時(shí)間的調(diào)整,三是單片機(jī)中讀取DS1302中的數(shù)據(jù)驅(qū)動(dòng)LED數(shù)碼管顯示時(shí)間。AT89C51單片機(jī)主要I/O口的分配:P10、P11、P12分別接時(shí)鐘芯片的SCLK、I/O、RST引腳,P13、P14接兩個(gè)獨(dú)立按鍵。</p><p>  3.2.1 流程圖

37、 </p><p>  本次設(shè)計(jì)的系統(tǒng)軟件設(shè)計(jì)主要包括主程序設(shè)計(jì)和各個(gè)計(jì)時(shí)子模塊、和按鍵控制子模塊程序以及報(bào)警模塊。主程序主要完成器件的初始化,并判斷有無按鍵按下,并根據(jù)判斷的結(jié)果調(diào)用相應(yīng)的子模塊程序;計(jì)時(shí)子模塊程序和日歷日期數(shù)據(jù)子模塊程序完成相應(yīng)的數(shù)據(jù)采集、處理和保存,按鍵處理子模塊程序完成日期和鬧鐘的設(shè)置,其各流程圖如下:</p><p>  圖3.2.1 主流

38、程圖</p><p>  圖3.2.1 時(shí)間調(diào)整程序流程圖</p><p>  4 protues仿真與調(diào)試</p><p><b>  4.1 電路的仿真</b></p><p>  利用keil軟件編寫源程序。在protues中畫好其電路圖如下圖3.1所示。</p><p>  圖4.1 電路

39、板的仿真圖</p><p><b>  4.2 軟件調(diào)試</b></p><p>  在硬件調(diào)試完畢的基礎(chǔ)上,需要進(jìn)一步完善程序,也就是進(jìn)入軟件調(diào)試階段。在本設(shè)計(jì)中,軟件調(diào)試主要分兩大部分:實(shí)時(shí)時(shí)鐘日歷子程序調(diào)試、按鍵子程序調(diào)試。將這兩部分調(diào)試成功,那么整個(gè)設(shè)計(jì)的軟件部分也就基本完成了。</p><p>  目前設(shè)計(jì)過程中容易造成元件和儀器儀表

40、的損壞,而借助Keil和Proteus進(jìn)行單片機(jī)系統(tǒng)的開發(fā),可以節(jié)省設(shè)計(jì)成本,提高設(shè)計(jì)速度。</p><p>  Keil軟件包是一個(gè)功能強(qiáng)大的開發(fā)平臺(tái),它包括項(xiàng)目管理器、CX51編譯器、AX51宏匯編器、BL51/LX51連接定位器、RTX51實(shí)時(shí)操作系統(tǒng)、Simulator軟件模擬器及Monitor51硬件目標(biāo)調(diào)試器。它是一種集成化程度高的文件管理編譯環(huán)境,主要功能為編譯C語言源程序,匯編程序或混合語言源程序

41、,連接和定位目標(biāo)文件和庫,創(chuàng)建HEX文件,調(diào)試目標(biāo)程序等。Keil是目前最好的51單片機(jī)開發(fā)工具之一。Keil支持軟件模擬仿真(Simulator)和用戶目標(biāo)調(diào)試(Monitor51)兩種工作模式。前者不需要任何單片機(jī)硬件即可完成用戶程序仿真、調(diào)試,后者利用硬件目標(biāo)板中的監(jiān)控程序可以直接調(diào)試目標(biāo)硬件系統(tǒng)。</p><p>  Proteus是一個(gè)完整的嵌入式系統(tǒng)軟件、硬件設(shè)計(jì)仿真平臺(tái),它包括原理圖輸入系統(tǒng)ISIS

42、、帶擴(kuò)展的Prospice混合模型仿真器、動(dòng)態(tài)元件庫、高級(jí)圖形分析模塊和處理器虛擬系統(tǒng)仿真模型VSM。ISIS是Proteus系統(tǒng)的中心,具有超強(qiáng)的控制原理設(shè)計(jì)環(huán)境。ProteusVSM最重要的特點(diǎn)是能把微處理器軟件作用在處理器上,并和該處理器的任何模擬和數(shù)字元件協(xié)同仿真,仿真執(zhí)行目標(biāo)碼就像在真正的單片機(jī)系統(tǒng)上運(yùn)行一樣,VSM CPU模型能完整仿真I/O接口、中斷、定時(shí)器、通用外部設(shè)備口及其他與CPU有關(guān)的外部設(shè)備,甚至能仿真多個(gè)處理器

43、。</p><p><b>  5 結(jié)論</b></p><p>  本次課程設(shè)計(jì)是繼前兩次課程設(shè)計(jì)以來的又一次課程設(shè)計(jì),因此在這次的設(shè)計(jì)中我感覺比之前也得心應(yīng)手了不少,單片機(jī)的課程設(shè)計(jì)需要結(jié)合各方面的知識(shí)與總結(jié)。</p><p>  這次的課程設(shè)計(jì)在小組內(nèi)進(jìn)行,我們分工明確,從繪制原理圖開始就是我們從平時(shí)的學(xué)習(xí)生活中得出來的經(jīng)驗(yàn)總結(jié),到最后的

44、程序編寫,程序仿真知道最后仿真成功的那一刻我深深體會(huì)到成功多么的來之不易。</p><p>  在這次的調(diào)試過程中,我們多次遇到了難以解決的問題,但我們并沒有氣餒,重新分析,檢查遺漏,很多時(shí)候都是因?yàn)槲覀兇中脑斐傻?,問題得以解決,我們的心情也會(huì)大為愉快,后來我們每個(gè)步驟都小心謹(jǐn)慎,設(shè)計(jì)進(jìn)度也就大大加快。我也明白了課程設(shè)計(jì)就是對(duì)我們學(xué)習(xí)成果的一個(gè)總結(jié),這次給我最大的收獲就是讓我知道了對(duì)待任何事物必須要有嚴(yán)謹(jǐn)?shù)膽B(tài)度,

45、我們只有學(xué)會(huì)基礎(chǔ)知識(shí)才能進(jìn)一步掌握更深的學(xué)問。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 辜承林,陳喬夫. 電機(jī)學(xué).華中科技大學(xué)出版社.2010</p><p>  [2] 徐瑋. C51單片機(jī)高效入門. 機(jī)械工業(yè)出版社.2007</p><p>  [3] 黃明強(qiáng).DS1302在單片機(jī)

46、系統(tǒng)中的應(yīng)用[J].保定師范??茖W(xué)校學(xué)報(bào),2004,17(2)</p><p>  [4]孫雪梅,范久臣.實(shí)時(shí)時(shí)鐘芯片在單片機(jī)系統(tǒng)中的應(yīng)用[J].沈陽教育學(xué)院學(xué)報(bào),2005,7(2)</p><p><b>  附 錄</b></p><p><b>  源程序</b></p><p><b

47、>  用C語言編寫:</b></p><p>  #include<reg52.h></p><p>  #include"LCD.h"</p><p>  uchar keydown()</p><p><b>  {</b></p><p> 

48、 uchar i = 0;</p><p>  uchar key = P2 & 0x0f;</p><p>  if((P2&0x0f) != 0x0f)</p><p><b>  {</b></p><p>  delayMs(10);</p><p>  if((P2&am

49、p;0x0f) != 0x0f)</p><p><b>  {</b></p><p>  key = P2 & 0x0f;</p><p>  while((P2&0x0f) != 0x0f);</p><p>  switch(key)</p><p><b>  

50、{</b></p><p>  //Key1~4 接P2.4~7</p><p>  case 0x0e: return 1;</p><p>  case 0x0d: return 2;</p><p>  case 0x0b: return 3;</p><p>  case 0x07: return

51、4;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</

52、b></p><p>  /***********************************************</p><p><b>  顯示時(shí)鐘</b></p><p>  ***********************************************/</p><p>  void

53、 showClock()</p><p><b>  {</b></p><p>  uchar i = 0;</p><p>  LCDclear();</p><p>  for(; i<6; i++)</p><p><b>  {</b></p>

54、<p>  displayField(i);</p><p><b>  }</b></p><p>  displaySpan('-', ':');</p><p>  TMOD=0x01;</p><p>  TH0=(65536-50000)/256;</p>

55、<p>  TL0=(65536-50000)%256;</p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p><b>  TR0=1;</b></p><p><b>  }</b&g

56、t;</p><p>  /***********************************************</p><p><b>  中斷加時(shí)間</b></p><p>  ************************************************/</p><p>  void

57、time0() interrupt 1</p><p><b>  {</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL1=(65536-50000)%256;</p><p>  countTimer ++;</p><p>  if(count

58、Timer == 20)</p><p><b>  {</b></p><p>  countTimer = 0;</p><p>  autoAdd1Sec();</p><p><b>  }</b></p><p><b>  }</b><

59、;/p><p>  void showLogo(uchar logo[])</p><p><b>  {</b></p><p>  LCDclear();</p><p>  displayStr(logo,0,0);</p><p><b>  }</b></p>

60、;<p>  void refreshPage()</p><p><b>  {</b></p><p>  if(g_year != g_LCDyear)</p><p><b>  {</b></p><p>  g_LCDyear = g_year;</p>&l

61、t;p>  displayField(e_year);</p><p><b>  }</b></p><p>  if(g_mon != g_LCDmon)</p><p><b>  {</b></p><p>  g_LCDmon = g_mon;</p><p>

62、;  displayField(e_mon);</p><p><b>  }</b></p><p>  if(g_day != g_LCDday)</p><p><b>  {</b></p><p>  g_LCDday = g_day;</p><p>  disp

63、layField(e_day);</p><p><b>  }</b></p><p>  if(g_hou != g_LCDhou)</p><p><b>  {</b></p><p>  g_LCDhou = g_hou;</p><p>  displayFiel

64、d(e_hou);</p><p><b>  }</b></p><p>  if(g_min != g_LCDmin)</p><p><b>  {</b></p><p>  g_LCDmin = g_min;</p><p>  displayField(e_min

65、);</p><p><b>  }</b></p><p>  if(g_sec != g_LCDsec)</p><p><b>  {</b></p><p>  g_LCDsec = g_sec;</p><p>  displayField(e_sec);</

66、p><p><b>  }</b></p><p><b>  }</b></p><p>  void changeClock()</p><p><b>  {</b></p><p>  uchar count = 0;</p><

67、p>  uchar key;</p><p><b>  TR0 = 0;</b></p><p>  initCousorXY();</p><p><b>  while(1)</b></p><p><b>  {</b></p><p> 

68、 refreshPage();</p><p><b>  key = 0;</b></p><p>  writeCmd(0x0E);//顯示,開光標(biāo)并閃爍</p><p>  moveCousor(g_cousorx[count],g_cousory[count]);</p><p>  key = keydown(

69、);</p><p>  if(key == 2)</p><p><b>  {</b></p><p><b>  count ++;</b></p><p><b>  }</b></p><p>  if(key == 3)</p>

70、<p><b>  {</b></p><p>  addClkField(count);</p><p><b>  }</b></p><p>  if(key == 4)</p><p><b>  {</b></p><p>  su

71、bClkField(count);</p><p><b>  }</b></p><p>  writeCmd(0x0c);//關(guān)光標(biāo)</p><p>  if(count >= 6)</p><p><b>  break;</b></p><p><b&g

72、t;  }</b></p><p><b>  TR0 = 1;</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  uchar mode

73、= 0;//0:顯示Logo,1:顯示時(shí)間</p><p>  uchar i = 0;</p><p>  uchar movelen;</p><p>  uchar logo[] = " welcome!";</p><p>  uchar move[] = "Tt could be better,b

74、ut I'm busy."; //貌似最長只能40字節(jié)</p><p>  //uchar move[] = "(*^_^*)";</p><p>  movelen = sizeof(move)-1;</p><p>  setDateTime(2013,9,12,18,23,14);</p><p>

75、  LCDinit();</p><p>  LCDclear();</p><p>  showLogo(logo);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  switch(keydown())<

76、;/p><p><b>  {</b></p><p>  case 1: mode = ! mode;</p><p>  if(mode == 1)</p><p><b>  {</b></p><p>  showClock();</p><p>

77、<b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  showLogo(logo);</p><p><b>  }</b></p><p><b&

78、gt;  break;</b></p><p>  case 2:if(mode == 1)</p><p><b>  {</b></p><p>  changeClock();</p><p><b>  }</b></p><p><b> 

79、 break;</b></p><p>  default: break;</p><p><b>  }</b></p><p>  if(mode == 1)</p><p>  refreshPage();</p><p><b>  else</b><

80、;/p><p><b>  {</b></p><p>  displayStr(move,1,15-i);</p><p>  displayStr(" ",1,15+movelen-i);</p><p><b>  }</b></p><p><b

溫馨提示

  • 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)論