課程設(shè)計(jì)--單片機(jī)定時(shí)鬧鐘設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ī)應(yīng)用》</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  教學(xué)院(部) 電氣與電子信息工程學(xué)院 </p><p>  教 研 室 電氣自動(dòng)化    </p><p>

2、;  指 導(dǎo) 教 師 </p><p>  課程設(shè)計(jì)時(shí) 間 2012.5.7~2012.5.11 </p><p>  課程設(shè)計(jì)班 級(jí) </p><p>  學(xué) 號(hào)

3、 </p><p>  姓 名 </p><p>  同 組 人 </p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p>&

4、lt;p>  一、課程設(shè)計(jì)題目: 單片機(jī)應(yīng)用 </p><p><b>  二、課程設(shè)計(jì)內(nèi)容</b></p><p>  1. 根據(jù)具體設(shè)計(jì)課題的技術(shù)指標(biāo)和給定條件,以單片機(jī)為核心器件,能獨(dú)立而正確地進(jìn)行方案論證和電路設(shè)計(jì),要求概念清楚、方案合理、方法正確、步驟完整;</p><p>  2. 熟悉、掌握各種外圍接口電路芯片的工作

5、原理和控制方法;</p><p>  3. 熟練使用單片機(jī)匯編語(yǔ)言進(jìn)行軟件設(shè)計(jì);</p><p>  4. 熟練使用Proteus、Keil軟件進(jìn)行仿真電路測(cè)試;</p><p>  5. 熟練使用Protel軟件設(shè)計(jì)印刷電路板;</p><p>  6. 學(xué)會(huì)查閱有關(guān)參考資料和手冊(cè),并能正確選擇有關(guān)元器件和參數(shù);</p>&l

6、t;p>  7. 編寫(xiě)設(shè)計(jì)說(shuō)明書(shū),參考畢業(yè)設(shè)計(jì)論文格式撰寫(xiě)設(shè)計(jì)報(bào)告。</p><p><b>  三、進(jìn)度安排</b></p><p><b>  1.時(shí)間安排</b></p><p><b>  四、基本要求</b></p><p> ?。?)根據(jù)要求確定系統(tǒng)設(shè)計(jì)方案;

7、</p><p> ?。?)繪制系統(tǒng)框圖、系統(tǒng)原理總圖,印刷電路板圖,列出元器件明細(xì)表;</p><p>  (3)計(jì)算電路參數(shù)和選擇元器件,畫(huà)出軟件框圖,列出程序清單;</p><p> ?。?)仿真,測(cè)試與修改調(diào)整;</p><p> ?。?)誤差分析與調(diào)整;</p><p> ?。?)寫(xiě)出使用說(shuō)明書(shū);</p

8、><p> ?。?)對(duì)設(shè)計(jì)進(jìn)行全面總結(jié),寫(xiě)出課程設(shè)計(jì)報(bào)告。</p><p>  五、課程設(shè)計(jì)考核辦法與成績(jī)?cè)u(píng)定</p><p>  六、課程設(shè)計(jì)參考資料</p><p>  [1]電氣與電子信息工程學(xué)院.單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū) </p><p>  [2]熊靜琪.計(jì)算機(jī)控制技術(shù).北京:電子工業(yè)出版社,2003.</p>

9、;<p>  [3]黃忠霖.控制系統(tǒng)MATIAB計(jì)算及仿真.北京:國(guó)防工業(yè)出版社, 2004.</p><p>  [4]彭為等.單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講. 北京:電子工業(yè)出版社,2007</p><p>  [5]王慶利等.單片機(jī)設(shè)計(jì)案例實(shí)踐教程.北京:北京郵電大學(xué)出版社,2008</p><p>  [6]韓志軍等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)——入門(mén)向?qū)?/p>

10、與設(shè)計(jì)實(shí)例.北京:機(jī)械工業(yè)出版社,2005</p><p>  [7]皮大能等. 單片機(jī)課程設(shè)計(jì)指導(dǎo)書(shū). 北京:北京理工大學(xué)出版社,2010</p><p>  指導(dǎo)教師: 陶彪 胡薔 </p><p><b>  摘要</b></p><p>  本次課程設(shè)計(jì)是在單片機(jī)授課結(jié)束的情況下,通過(guò)老師的指導(dǎo)

11、和小組同學(xué)的協(xié)助,獨(dú)立自主的完成項(xiàng)目設(shè)計(jì),我們小組選定的是定時(shí)鬧鐘的設(shè)計(jì),下面簡(jiǎn)單闡述一下該項(xiàng)目的設(shè)計(jì)思路。</p><p>  利用動(dòng)態(tài)數(shù)碼管作為顯示器,K20-K27作為輸入按鍵,蜂鳴器作為聲音輸出制作一個(gè)定時(shí)鬧鐘。</p><p><b>  最后結(jié)果要求做到:</b></p><p><b>  1、正確顯示時(shí)分。</b

12、></p><p>  2、可以利用按鈕調(diào)整時(shí)間和設(shè)定鬧鐘時(shí)間。</p><p>  3、當(dāng)時(shí)間到達(dá)設(shè)定的鬧鐘時(shí)間時(shí),蜂鳴器發(fā)出嘀、嘀、嘀的報(bào)警聲。</p><p>  4、通過(guò)串口在PC上設(shè)定時(shí)間和鬧鐘。</p><p>  關(guān)鍵字:定時(shí)鬧鐘 </p><p><b>  目錄</b>

13、</p><p><b>  1 概述5</b></p><p>  2主要硬件介紹及電路原理設(shè)計(jì)6</p><p>  2.1 STC89C52RC單片機(jī)簡(jiǎn)要介紹7</p><p>  2.2鍵盤(pán)和LED數(shù)碼管顯示器簡(jiǎn)介8</p><p>  2.3主要電路原理與設(shè)計(jì)9</p&g

14、t;<p><b>  3 軟件設(shè)計(jì)11</b></p><p><b>  3.1 概述12</b></p><p>  3.2 主模塊的設(shè)計(jì)12</p><p>  3.3 基本顯示模塊設(shè)計(jì)12</p><p>  3.4 時(shí)間設(shè)定模塊設(shè)計(jì)13</p>&l

15、t;p>  3.5 鬧鈴功能的實(shí)現(xiàn)14</p><p>  4.Proteus軟件仿真15</p><p>  5課程設(shè)計(jì)體會(huì)17</p><p><b>  參考文獻(xiàn)18</b></p><p><b>  附:程序清單19</b></p><p><

16、b>  1.概述</b></p><p>  本設(shè)計(jì)是定時(shí)鬧鐘的設(shè)計(jì),由單片機(jī)AT89C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個(gè)單片機(jī)電子定時(shí)鬧鐘。</p><p>  定時(shí)鬧鐘設(shè)計(jì)可采用數(shù)字電路實(shí)現(xiàn),也可以采用單片機(jī)來(lái)完成。定時(shí)鬧鐘是用數(shù)字集成電路構(gòu)成的,用數(shù)碼管顯示“時(shí)”,“分”,“秒”的現(xiàn)代計(jì)時(shí)裝置。單片機(jī)具有集成度高、功能強(qiáng)、通用性好、特別是它能耗

17、低、價(jià)格便宜、可靠性高、抗干擾能力強(qiáng)和使用方便等獨(dú)特的優(yōu)點(diǎn),所以單片機(jī)現(xiàn)在廣泛的應(yīng)用到家用電器、機(jī)電產(chǎn)品、兒童玩具、機(jī)器人、辦公自動(dòng)化產(chǎn)品等領(lǐng)域。所以在該設(shè)計(jì)中采用單片機(jī)利用AT89C51,它是低功耗、高性能的CMOS型8位單片機(jī)。片內(nèi)帶有4KB的Flash存儲(chǔ)器,且允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。另外, AT89C51的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有128B 的RAM、32條I/O口線、2個(gè)16位定時(shí)計(jì)數(shù)器、5個(gè)中斷源、一個(gè)

18、全雙工串行口等。AT89C51單片機(jī)結(jié)合七段顯示器設(shè)計(jì)的簡(jiǎn)易定時(shí)鬧鈴時(shí)鐘,可以設(shè)置現(xiàn)在的時(shí)間及顯示鬧鈴設(shè)置時(shí)間,若時(shí)間到則發(fā)出一陣聲響,進(jìn)—步可以擴(kuò)充控制電器的啟停。</p><p>  設(shè)計(jì)內(nèi)容包括了秒信號(hào)發(fā)生器、時(shí)間顯示電路、按鍵電路、供電電源以及鬧鈴指示電路等幾部分的設(shè)計(jì)。采用四個(gè)開(kāi)關(guān)來(lái)控制定時(shí)鬧鐘的工作狀態(tài),分別為:K1、設(shè)置時(shí)間和鬧鐘的小時(shí);K2、設(shè)置小時(shí)以及設(shè)置鬧鐘的開(kāi)關(guān);K3、設(shè)置分鐘和鬧鐘的分鐘;

19、K4、設(shè)置完成退出。</p><p>  課設(shè)準(zhǔn)備中根據(jù)具體的要求,查找資料,然后按要求根據(jù)已學(xué)過(guò)的時(shí)鐘程序編寫(xiě)定時(shí)鬧鐘的程序,依據(jù)程序利用proteus軟件進(jìn)行了仿真試驗(yàn),對(duì)出現(xiàn)的問(wèn)題進(jìn)行分析和反復(fù)修改源程序,最終得到正確并符合要求的結(jié)果。</p><p>  設(shè)計(jì)完成的定時(shí)鬧鐘達(dá)到課程設(shè)計(jì)的要求,在到達(dá)定時(shí)的時(shí)間便立即發(fā)出蜂鳴聲音,持續(xù)一分鐘。顯示采用的六位數(shù)碼管電路,如果亮度感覺(jué)不夠

20、,可以通過(guò)提升電阻來(lái)調(diào)節(jié),控制程序中延遲時(shí)間的長(zhǎng)短,可以獲得不同的效果。也可以改蜂鳴器為繼電器,通過(guò)控制繼電器從而進(jìn)一步擴(kuò)展的來(lái)控制一些家電開(kāi)關(guān)。</p><p>  2.主要硬件介紹及電路原理設(shè)計(jì)</p><p>  2.1 STC89C52RC單片機(jī)簡(jiǎn)要介紹</p><p>  在單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)是整個(gè)系統(tǒng)的核心,對(duì)整個(gè)系統(tǒng)的信息輸入、處理、信息輸出進(jìn)行

21、控制。與單片機(jī)配套的有相應(yīng)的復(fù)位電路、時(shí)鐘電路以及擴(kuò)展的存儲(chǔ)器和I\O接口,使單片機(jī)應(yīng)用系統(tǒng)能夠運(yùn)行。</p><p>  在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,往往都會(huì)輸入信息和顯示信息,這就涉及鍵盤(pán)和顯示器。在單片機(jī)應(yīng)用系統(tǒng)中,一般都根據(jù)系統(tǒng)的要求配置相應(yīng)的鍵盤(pán)和顯示器。配置鍵盤(pán)和顯示器一般都沒(méi)有統(tǒng)一的規(guī)定,有的系統(tǒng)功能復(fù)雜,需輸入的信息和顯示的信息量大,配置的鍵盤(pán)和顯示器功能相對(duì)強(qiáng)大,而有些系統(tǒng)輸入/輸出的信息少,這時(shí)可

22、能用幾個(gè)按鍵和幾個(gè)LED指示燈就可以進(jìn)行處理了。在單片機(jī)應(yīng)用系統(tǒng)在中配置的鍵盤(pán)可以是獨(dú)立鍵盤(pán),也可能是矩陣鍵盤(pán)。顯示器可以是LED指示燈,也可以是LED數(shù)碼管,也可以是LCD顯示器,還可以使用CRT顯示器。單片機(jī)應(yīng)用系統(tǒng)中鍵盤(pán)一般用的比較多的是矩陣鍵盤(pán),顯示器用的比較多的是LED數(shù)碼管還LCD顯示器。</p><p>  2.2 鍵盤(pán)和LED數(shù)碼管顯示器簡(jiǎn)介</p><p>  鍵盤(pán)是單片

23、機(jī)應(yīng)用系統(tǒng)中最常用的輸入設(shè)備,在單片機(jī)應(yīng)用系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單的人機(jī)通信。鍵盤(pán)實(shí)際上是一組按鍵開(kāi)關(guān)的集合,平時(shí)按鍵開(kāi)關(guān)總是處于斷開(kāi)狀態(tài),當(dāng)按下鍵時(shí)它才閉合。鍵盤(pán)的結(jié)構(gòu)形式一般有兩種:獨(dú)立式鍵盤(pán)和矩陣式鍵盤(pán)。矩陣式鍵盤(pán)的工作方式有3種:查詢工作方式、定時(shí)掃描工作方式和中斷工作方式。</p><p>  LED數(shù)碼管顯示器在單片機(jī)應(yīng)用系統(tǒng)中,經(jīng)常用到LED數(shù)碼管作為顯示輸出設(shè)備,LED數(shù)碼管顯示器雖然顯示信息簡(jiǎn)單,但它具有顯

24、示清晰、亮度高、使用電壓低、壽命長(zhǎng)、與單片機(jī)接口方便等特點(diǎn),基本上能夠滿足單片機(jī)應(yīng)用系統(tǒng)的需要,所以在單片機(jī)應(yīng)用系統(tǒng)中經(jīng)常用到。LED數(shù)碼管顯示器是由發(fā)光二極管按一定的結(jié)構(gòu)組合起來(lái)的顯示器件。在單片機(jī)應(yīng)用系統(tǒng)中通常使用的是8段式LED數(shù)碼管顯示器,它有共陰極和共陽(yáng)極兩種。所謂譯碼方式是指由顯示字符轉(zhuǎn)換得到對(duì)應(yīng)的字段碼的方式。對(duì)于LED數(shù)碼管顯示器,通常的譯碼方式</p><p>  有兩種:硬件譯碼方式和軟件譯碼

25、方式。LED數(shù)碼管在顯示時(shí),通常有兩種顯示方式:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。在使用時(shí)可以把它們組合起來(lái)。在實(shí)際應(yīng)用時(shí),如果數(shù)碼管個(gè)數(shù)較少,通常用硬件譯碼靜態(tài)顯示,在數(shù)碼管個(gè)數(shù)較多時(shí),則通常用軟件譯碼動(dòng)態(tài)顯示。</p><p>  2.3主要電路原理設(shè)計(jì)</p><p> ?。?)系統(tǒng)硬件電路的設(shè)計(jì):</p><p>  電路是由控制部分和顯示部分兩大部分組成。利用單

26、片機(jī)程序進(jìn)行控制,單片機(jī)以晶體振蕩器的振蕩周期(或外部引入的時(shí)鐘周期)為最小的時(shí)序單位,片內(nèi)的各種微操作都以此周期為時(shí)序基準(zhǔn)。振蕩頻率二分頻后形成狀態(tài)周期或稱s周期,所以,1個(gè)狀態(tài)周期包含有2個(gè)振蕩周期。振蕩頻率foscl2分頻后形成機(jī)器周期MC。所以,1個(gè)機(jī)器周期包含有6個(gè)狀態(tài)周期或12個(gè)振蕩周期。1個(gè)到4個(gè)機(jī)器周期確定一條指令的執(zhí)行時(shí)間,這個(gè)時(shí)間就是指令周期。AT89S52單片機(jī)指令系統(tǒng)中,各條指令的執(zhí)行時(shí)間都在1個(gè)到4個(gè)機(jī)器周期之

27、間。</p><p>  ,并通過(guò)數(shù)碼管進(jìn)行顯示單片機(jī)普遍采用鎖相環(huán)技術(shù),使單片機(jī)的時(shí)鐘頻率可由程序控制。鎖相環(huán)允許用戶在片外使用頻率較低的晶振,可以很大地減小板級(jí)噪聲;而且,由于時(shí)鐘頻率可由程序控制,系統(tǒng)時(shí)鐘可以在一個(gè)很寬的范圍內(nèi)調(diào)整,總線頻率往往能升得很高。但是,使用鎖相環(huán)也會(huì)帶來(lái)額外的功率消耗。 單就時(shí)鐘方案來(lái)講,使用外部晶振且不使用鎖相環(huán)是功率消耗最小的一種。AT89S52單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形

28、式得到:內(nèi)部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器(簡(jiǎn)稱晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。內(nèi)部振蕩方式的外部電路如下圖所示。圖中,電容器C01,C02起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在5-30pF。晶振頻率的典型值為12MH2,采用6MHz的情況也比較多。內(nèi)部振蕩方式所得的時(shí)鐘情號(hào)比較穩(wěn)定,實(shí)用電

29、路中使用較多。外部振蕩方式是把外部已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi)。這種方式適宜用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)保持同步。外部振蕩方式的外部電路如下圖所示。</p><p><b>  如圖所示:</b></p><p><b>  各模塊分析:</b></p><p>  顯示模塊——電路先通過(guò)電源電路送出+5V電壓,單片機(jī)AT

30、89S52通過(guò)74LS47和CD4515(4—16譯碼器)驅(qū)動(dòng)數(shù)碼管顯示數(shù)值, 顯示部分采用普通共陽(yáng)極數(shù)碼管顯示,采用動(dòng)態(tài)掃描,以減少硬件電路??紤]到一次掃描12位數(shù)碼管顯示時(shí)會(huì)出現(xiàn)閃爍情況,設(shè)計(jì)時(shí)分兩排顯示,一排顯示時(shí)間和年月日,一排顯示星期和溫度, 共陽(yáng)極數(shù)碼管中8個(gè)發(fā)光二極管的陽(yáng)極(二極管正端)連在一起。通常,公共陽(yáng)極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸入端為低電平時(shí),該端所連接的字段導(dǎo)通并點(diǎn)亮

31、。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。采用動(dòng)態(tài)顯示方式,比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示簡(jiǎn)單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時(shí),CPU要依次掃描,占用CPU較多時(shí)間。  為了提供共陽(yáng)LED數(shù)碼管的驅(qū)動(dòng)電壓,用三極管9012作電源驅(qū)動(dòng)輸出。采用12MHz晶振,有利于提高秒計(jì)時(shí)的精確性。三極管采用901

32、2。數(shù)碼管采用紅色的共陽(yáng)型LED數(shù)碼管,亮度高些,因?yàn)槭菕呙璧娘@示方式,所</p><p>  時(shí)鐘模塊——利用芯片內(nèi)部的振蕩器,然后在引腳XTAL1和引腳 XTAL2兩端接晶體諧振器,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部的時(shí)鐘電路,如圖外接晶振時(shí),C1和C2的值通常選擇30pF; C1、C2對(duì)頻率有微</p><p>  調(diào)作用,晶體諧振器的頻率12MHz。為了減

33、少寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近。設(shè)置了12—24兩種顯示狀態(tài),調(diào)整計(jì)時(shí)的按鍵、設(shè)置定時(shí)的按鍵且定時(shí)設(shè)置了3次定時(shí)、還另加載了星期、年、月、日的調(diào)整及閏年的自動(dòng)調(diào)整;</p><p>  溫度模塊——主要由18B20通過(guò)單片機(jī)AT89S52中的溫度程序不斷的檢測(cè)溫度來(lái)顯示溫度溫度傳感器DS18B20采集溫度信號(hào)送該給單片機(jī)處理,存儲(chǔ)器通過(guò)單片機(jī)對(duì)某些時(shí)間點(diǎn)的

34、數(shù)據(jù)進(jìn)行存儲(chǔ);</p><p>  音樂(lè)模塊——通過(guò)LM386N-1給揚(yáng)聲器信號(hào)來(lái)發(fā)出音樂(lè),這個(gè)模塊主要是為時(shí)鐘定時(shí)到時(shí)發(fā)出音樂(lè)鬧鈴,而在軟件部分設(shè)置了可以一次設(shè)置3次定時(shí),每次定時(shí)到時(shí),音樂(lè)程序中編了6種音樂(lè),它可以自動(dòng)選擇6種音樂(lè)中的任一音樂(lè)響1分鐘,如果中間不想讓鬧鈴響可以按一按鍵,鬧鈴就立刻停止</p><p>  復(fù)位模塊——單片機(jī)復(fù)位電路是使CPU和系統(tǒng)中的其他功能部件都處在一

35、個(gè)確定的初始狀態(tài),并從該狀態(tài)開(kāi)始工作,例如復(fù)位后PC=0000H,使單片機(jī)從第一個(gè)單元取指令。無(wú)論是在單片機(jī)剛接上電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位;單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器PC=0000H,這表明程序從0000H地址單元開(kāi)始執(zhí)行。單片機(jī)冷啟動(dòng)后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個(gè)特殊功能寄存器復(fù)位后的狀態(tài)為確定值,見(jiàn)下表。值得指出的是,記住一些特殊功能寄存

36、器復(fù)位后的主要狀態(tài),對(duì)于了解單片機(jī)的初態(tài),減少應(yīng)用程序中的韌始化部分是十分必要的。說(shuō)明:表中符號(hào)*為隨機(jī)狀態(tài);A=00H,表明累加器已被清零;</p><p>  PSW=00H,表明選寄存器0組為工作寄存器組;SP=07H,表明堆棧指針指向片內(nèi)RAM 07H字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第一個(gè)被壓入的內(nèi)容寫(xiě)入到08H單元中;Po-P3=FFH,表明已向各端口線寫(xiě)入1,此時(shí),各端口既可用于輸入又可

37、用于輸出;IP=×××00000B,表明各個(gè)中斷源處于低優(yōu)先級(jí);IE=0××00000B,表明各個(gè)中斷均被關(guān)斷;</p><p>  系統(tǒng)復(fù)位是任何微機(jī)系統(tǒng)執(zhí)行的第一步,使整個(gè)控制芯片回到默認(rèn)的硬件狀態(tài)下。51單片機(jī)的復(fù)位是由RESET引腳來(lái)控制的,此引腳與高電平相接超過(guò)24個(gè)振蕩周期后,51單片機(jī)即進(jìn)入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET

38、引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會(huì)執(zhí)行外部程序。</p><p>  安全省電模式——電源電路上裝了保險(xiǎn)管只要電流大于額定電流保險(xiǎn)就斷來(lái)保護(hù)電路,省電模式:不看時(shí)顯示不亮,看時(shí),按下一鍵顯示就亮,盡量達(dá)到人性化。</p><p><b>  3. 軟件設(shè)計(jì)</b></p><p>

39、;<b>  3.1 概述</b></p><p>  軟件設(shè)計(jì)的重點(diǎn)在于秒脈沖信號(hào)的產(chǎn)生、顯示的實(shí)現(xiàn)、以及按鍵的處理等方面?;谲浖拿朊}沖信號(hào)通常有延時(shí)法和定時(shí)中斷法。延時(shí)法一般采用查詢方</p><p>  式,在延時(shí)子程序前后必然需要查詢和處理的程序,導(dǎo)致誤差的產(chǎn)生,因此其秒脈沖的精度不高;中斷法的原理是,利用單片機(jī)內(nèi)部的定時(shí)器溢出中斷來(lái)實(shí)現(xiàn)。例如,設(shè)定某定時(shí)

40、器每100ms中斷1次,則10次的周期為1s。本系統(tǒng)中所使用的晶振頻率為12MHZ。</p><p>  3.2 主模塊的設(shè)計(jì)</p><p>  主模塊是系統(tǒng)軟件的主框架。結(jié)構(gòu)化程序設(shè)計(jì)一般有“自上而下”和“自下而上”兩種方式,“自上而下”法的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的程序框圖如下圖2所示:</p><p

41、><b>  圖 2</b></p><p>  3.3 基本顯示模塊設(shè)計(jì)</p><p>  基本顯示模塊設(shè)計(jì)的重點(diǎn)是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù)據(jù)的并行發(fā)送,高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要</p><p>  經(jīng)常調(diào)校,數(shù)字式

42、電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。</p><p>  程序流程如圖3所示。</p><p><b>  圖 3</b></p><p>  3.4 時(shí)間設(shè)定模塊設(shè)計(jì)</p>&l

43、t;p>  時(shí)間設(shè)定模塊的設(shè)計(jì)要點(diǎn)是按鍵的去抖處理與“一鍵多態(tài)”的處理。即只涉及4個(gè)鍵完成了6位時(shí)間參數(shù)的設(shè)定。軟件法去抖動(dòng)的實(shí)質(zhì)是軟件延時(shí),即檢測(cè)到某一鍵狀態(tài)變化后延時(shí)一段時(shí)間,再檢測(cè)該按鍵的狀態(tài)是否還保持著,如是則作為按鍵處理,否則,視為抖動(dòng),不予理睬。去抖中的延時(shí)時(shí)間一般參考資料多描述為10ms左右,實(shí)際應(yīng)用中,應(yīng)大于20ms,否則,會(huì)導(dǎo)致按一次作多次處理,影響程序正常執(zhí)行?!耙绘I多態(tài)”即多功能鍵的實(shí)現(xiàn)思想是,根據(jù)按鍵時(shí)刻的

44、系統(tǒng)狀態(tài),決定按鍵采取何種動(dòng)作,即何種功能。</p><p>  其流程圖如下圖4所示:</p><p><b>  圖 4</b></p><p>  3.5 鬧鈴功能的實(shí)現(xiàn)</p><p>  鬧鈴功能的實(shí)現(xiàn)涉及到兩個(gè)方面:鬧鈴時(shí)間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時(shí)間設(shè)定模塊的設(shè)計(jì)可參照時(shí)間設(shè)定模塊,這里著重闡述鬧

45、鈴判別與處理模塊的設(shè)計(jì)問(wèn)題。鬧鈴判別與鬧鈴處理的關(guān)鍵在于判別何時(shí)要進(jìn)行鬧鈴。當(dāng)時(shí)十位、時(shí)個(gè)位、分十位、分個(gè)位中任一位發(fā)生改變(進(jìn)位)時(shí),就必須進(jìn)行鬧鈴判別。譯碼顯示電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出送到七段顯示譯碼驅(qū)動(dòng)器譯碼驅(qū)動(dòng),通過(guò)六個(gè)七段LED顯示器顯示出來(lái)。鬧鈴電路根據(jù)計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生一脈沖信號(hào),然后加上一個(gè)高頻或低頻信號(hào)送到放大電路驅(qū)動(dòng)蜂鳴器發(fā)聲實(shí)現(xiàn)報(bào)時(shí)。校時(shí)電路是直接加一個(gè)脈沖信號(hào)到時(shí)計(jì)數(shù)器或者分計(jì)數(shù)器或者秒計(jì)數(shù)器

46、來(lái)對(duì)“時(shí)”、“分”、“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整。</p><p><b>  其流程圖如下所示:</b></p><p><b>  圖5.1</b></p><p><b>  圖5.2</b></p><p>  考慮到實(shí)用性,在該電子鐘的設(shè)計(jì)中修改定時(shí)或調(diào)整時(shí)間時(shí)采用了閃

47、爍,而且以定時(shí)20組鬧鐘。在編程上,首先進(jìn)行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開(kāi)始定義了一組固定單元用來(lái)存儲(chǔ)計(jì)數(shù)的秒,分,時(shí)以及定時(shí)時(shí)間的序號(hào)等。</p><p>  在顯示程序段中主要進(jìn)行了閃爍的處理,采用定時(shí)器中斷置標(biāo)志位,再與位選相互結(jié)合的方法來(lái)控制調(diào)時(shí)或定時(shí)中的閃爍。時(shí),分,秒顯示則是用了軟件譯碼(查表)的方式,再用了一段固定的程序段進(jìn)行進(jìn)制轉(zhuǎn)化。初始化之后,用中斷方式對(duì)其計(jì)數(shù),計(jì)

48、數(shù)的同時(shí)采用了定時(shí)器比較的方法,比較當(dāng)前計(jì)數(shù)時(shí)間與定時(shí)時(shí)間是否相等,若相等則將鬧鈴標(biāo)志位置數(shù)。由于定義了定時(shí)鬧鐘組,在這里采用中斷組次,每中斷一次比較一組鬧鐘,避免了一次比較中斷時(shí)間過(guò)長(zhǎng),影響下次中斷時(shí)間。顯示之后查詢鬧鈴標(biāo)志位是否與前面所置數(shù)相等,若相等則響鈴。</p><p>  為了避免響鈴影響顯示,采用了每顯示幾屏以后在顯示程序中出現(xiàn)脈沖,驅(qū)動(dòng)喇叭,不會(huì)影響顯示。之后用查詢方式對(duì)按鍵進(jìn)行判斷,若有鍵按下,

49、則進(jìn)行軟件延時(shí)消抖,避免了抖動(dòng)引起的干擾,執(zhí)行相應(yīng)的定時(shí),選時(shí)或調(diào)時(shí)程序段。對(duì)當(dāng)前時(shí)間或定時(shí)時(shí)間修改后又返回到最初的顯示程序段,如此循環(huán)下去。</p><p>  Proteus軟件仿真</p><p>  本次課程設(shè)計(jì)所采用的程序調(diào)試軟件為keil軟件,所采用的仿真軟件為protus 6 professional軟件。</p><p>  本次試驗(yàn)的效果圖如下所示

50、:</p><p><b>  性能及誤差分析</b></p><p>  K1鍵用于系統(tǒng)進(jìn)入時(shí)間調(diào)節(jié)狀態(tài),根據(jù)所按次數(shù)不同,分別進(jìn)入時(shí)分秒調(diào)節(jié)狀態(tài),K2、K3分別用于對(duì)顯示時(shí)間和鬧鐘時(shí)間的增加和減小調(diào)節(jié),K4鍵用于顯示鬧鐘所定時(shí)間,對(duì)K4鍵所按次數(shù)不同分別進(jìn)入鬧鐘的時(shí)分秒調(diào)節(jié)狀態(tài)。該電子鐘的誤差主要由晶振自身的誤差所造成,晶振的誤差約為0. 0001~0. 0000

51、01</p><p>  結(jié)構(gòu)化軟件程序的調(diào)試一般可以將重點(diǎn)放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。本次課設(shè),采用keil調(diào)試軟件來(lái)調(diào)試程序,通過(guò)各個(gè)模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。</p><p>  仿真部分采用protus 6 professio

52、nal軟件,此軟件功能強(qiáng)大且操作較為簡(jiǎn)單,可以很容易的實(shí)現(xiàn)各種系統(tǒng)的仿真。</p><p>  首先打開(kāi)protus 6 professional軟件,在元件庫(kù)中找到要選用的所有元件,然后進(jìn)行原理圖的繪制;繪制好后再選擇keil已經(jīng)編譯好的*.hex文件,選擇運(yùn)行,觀察顯示結(jié)果,根據(jù)顯示的結(jié)果和課設(shè)的要求再修改程序,再運(yùn)行查,直到滿足要求。</p><p><b>  5. 課程

53、設(shè)計(jì)體會(huì)</b></p><p>  單片機(jī)是一門(mén)應(yīng)用性很強(qiáng)的學(xué)科,課程設(shè)計(jì)是培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)我們實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。雖然在做課程設(shè)計(jì)以前已經(jīng)系統(tǒng)的把單片機(jī)課本認(rèn)真的學(xué)習(xí)了一下,但是在剛拿到設(shè)計(jì)任務(wù)書(shū)時(shí)還是有點(diǎn)一頭霧水,不知道該從哪里下手。令人欣慰的是經(jīng)過(guò)一周的學(xué)習(xí),雖然過(guò)程很艱辛,但是總算實(shí)現(xiàn)了定時(shí)鬧鐘的功能,所有的

54、努力都很值得。這一周的大部分時(shí)間都在研究程序怎么處理,在這個(gè)過(guò)程中加深了我對(duì)匯編語(yǔ)言命令的應(yīng)用,而且也更加了解到軟硬件配套的重要性。</p><p>  通過(guò)這次課程設(shè)計(jì),使我對(duì)這們功課有了更深刻的認(rèn)識(shí)和了解。首先對(duì)于硬</p><p>  件電路的工作原理有了進(jìn)一步系統(tǒng)的學(xué)習(xí),同樣就有了進(jìn)一步的認(rèn)識(shí),使我懂得了理論與實(shí)際相結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐

55、相結(jié)合起來(lái),才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。其次軟件在這次設(shè)計(jì)中也有不足之處,比如音樂(lè)的響聲不連續(xù),但又不知道從哪個(gè)地方入手解決這個(gè)問(wèn)題,這要求在以后的學(xué)習(xí)中,拓寬自己的知識(shí)面,解決設(shè)計(jì)的不足之處。</p><p>  總之,通過(guò)這次課程設(shè)計(jì)不僅使我鞏固了本課程所學(xué)的基本知識(shí),還使我具有了撰寫(xiě)科研報(bào)告的初步訓(xùn)練能力,我相信這些能力在我以后的工作或者是再學(xué)習(xí)中一定會(huì)起到不小的作用,一切的辛苦和艱難都是值

56、得的。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]電氣與電子信息工程學(xué)院.單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū) </p><p>  [2]熊靜琪.計(jì)算機(jī)控制技術(shù).北京:電子工業(yè)出版社,2003.</p><p>  [3]黃忠霖.控制系統(tǒng)MATIAB計(jì)算及仿真.北京:國(guó)防工業(yè)出版社, 2004.</p&

57、gt;<p>  [4]彭為等.單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講. 北京:電子工業(yè)出版社,2007</p><p>  [5]王慶利等.單片機(jī)設(shè)計(jì)案例實(shí)踐教程.北京:北京郵電大學(xué)出版社,2008</p><p>  [6]韓志軍等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)——入門(mén)向?qū)c設(shè)計(jì)實(shí)例.北京:機(jī)械工業(yè)出版社,2005</p><p>  [7]皮大能等. 單片機(jī)課程設(shè)計(jì)指

58、導(dǎo)書(shū). 北京:北京理工大學(xué)出版社,2010</p><p><b>  程序清單</b></p><p>  #include<reg52.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p>

59、;<p>  sbit dula=P2^6;</p><p>  sbit wela=P2^7;</p><p>  sbit key1=P1^0;</p><p>  sbit key2=P1^1;</p><p>  sbit key3=P1^2;</p><p>  sbit key4=P1^3;&

60、lt;/p><p>  sbit buzzer=P3^7;</p><p>  uchar code table[]={</p><p>  0x3f,0x06,0x5b,0x4f,</p><p>  0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0x6f,0x77,0x7c,</p>

61、;<p>  0x39,0x5e,0x79,0x71};</p><p>  uchar code table1[]={</p><p>  0xbf,0x86,0xdb,0xcf,</p><p>  0xe6,0xed,0xfd,0x87,</p><p>  0xff,0xef,0xf7,0xfc,</p>

62、<p>  0xb9,0xde,0xf9,0xf1};</p><p>  uint num,num1,num2,num3,shi1,shi2,fen1,fen2,miao1,miao2,keynum1,keynum4;</p><p>  uint nnum1,nnum2,nnum3,nshi1,nshi2,nfen1,nfen2,nmiao1,nmiao2;</p>

63、;<p>  void delayms(uint xms)</p><p><b>  {</b></p><p><b>  uint i,j;</b></p><p>  for(i=xms;i>0;i--)</p><p>  for(j=110;j>0;j--);&

64、lt;/p><p><b>  }</b></p><p>  void display(uchar A,uchar B,uchar C,uchar D,uchar E,uchar F)</p><p><b>  {</b></p><p>  miao1=num1/10;</p>&l

65、t;p>  miao2=num1%10;</p><p>  fen1=num2/10;</p><p>  fen2=num2%10;</p><p>  shi1=num3/10;</p><p>  shi2=num3%10; </p><p>  nmiao1=nnum1/10;</p>&

66、lt;p>  nmiao2=nnum1%10;</p><p>  nfen1=nnum2/10;</p><p>  nfen2=nnum2%10;</p><p>  nshi1=nnum3/10;</p><p>  nshi2=nnum3%10; </p><p><b>  P0=0xff

67、;</b></p><p><b>  wela=1;</b></p><p><b>  P0=0xfe;</b></p><p><b>  wela=0;</b></p><p><b>  dula=1;</b></p>

68、<p>  P0=table[A];</p><p><b>  dula=0;</b></p><p>  delayms(1);</p><p><b>  P0=0xff;</b></p><p><b>  wela=1;</b></p><

69、;p><b>  P0=0xfd;</b></p><p><b>  wela=0;</b></p><p><b>  dula=1;</b></p><p>  P0=table1[B];</p><p><b>  dula=0;</b>&l

70、t;/p><p>  delayms(1);</p><p><b>  P0=0xff;</b></p><p><b>  wela=1;</b></p><p><b>  P0=0xfb;</b></p><p><b>  wela=0;

71、</b></p><p><b>  dula=1;</b></p><p>  P0=table[C];</p><p><b>  dula=0;</b></p><p>  delayms(1);</p><p><b>  P0=0xff;<

72、;/b></p><p><b>  wela=1;</b></p><p><b>  P0=0xf7;</b></p><p><b>  wela=0;</b></p><p><b>  dula=1;</b></p><

73、p>  P0=table1[D];</p><p><b>  dula=0;</b></p><p>  delayms(1);</p><p><b>  P0=0xff;</b></p><p><b>  wela=1;</b></p><p&

74、gt;<b>  P0=0xef;</b></p><p><b>  wela=0;</b></p><p><b>  dula=1;</b></p><p>  P0=table[E];</p><p><b>  dula=0;</b></p

75、><p>  delayms(1);</p><p><b>  P0=0xff;</b></p><p><b>  wela=1;</b></p><p><b>  P0=0xdf;</b></p><p><b>  wela=0;<

76、/b></p><p><b>  dula=1;</b></p><p>  P0=table[F];</p><p><b>  dula=0;</b></p><p>  delayms(1);</p><p><b>  }</b><

77、/p><p>  void keyscan()</p><p><b>  {</b></p><p>  if(key1==0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key1==

78、0)</p><p><b>  {</b></p><p>  keynum1++;</p><p>  while(!key1);</p><p><b>  }</b></p><p><b>  }</b></p><p>

79、;  if(keynum1!=0)</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  if(keynum1==1)</p><p><b>  { </b></p><p>  if(key2=

80、=0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key2==0)</p><p><b>  { </b></p><p><b>  num1++;</b></p>

81、<p>  if(num1==60)</p><p><b>  num1=0;</b></p><p>  while(!key2);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(

82、key3==0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key3==0)</p><p><b>  {</b></p><p>  if(num1==0)</p><p>&l

83、t;b>  num1=60;</b></p><p><b>  num1--;</b></p><p>  while(!key3);</p><p><b>  }</b></p><p><b>  }</b></p><p>&

84、lt;b>  }</b></p><p>  if(keynum1==2)</p><p><b>  { </b></p><p>  if(key2==0)</p><p><b>  {</b></p><p>  delayms(10);</p

85、><p>  if(key2==0)</p><p><b>  { </b></p><p><b>  num2++;</b></p><p>  if(num2==60)</p><p><b>  num2=0;</b></p><

86、;p>  while(!key2);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(key3==0)</p><p><b>  {</b></p><p>  delayms(10);&

87、lt;/p><p>  if(key3==0)</p><p><b>  {</b></p><p>  if(num2==0)</p><p><b>  num2=60;</b></p><p><b>  num2--;</b></p>

88、<p>  while(!key3);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(keynum1==3)</p><p><b>

89、;  { </b></p><p>  if(key2==0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key2==0)</p><p><b>  { </b></p><

90、;p><b>  num3++;</b></p><p>  if(num3==24)</p><p><b>  num3=0;</b></p><p>  while(!key2);</p><p><b>  }</b></p><p>&l

91、t;b>  }</b></p><p>  if(key3==0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key3==0)</p><p><b>  {</b></p>

92、<p>  if(num3==0)</p><p><b>  num3=24;</b></p><p><b>  num3--;</b></p><p>  while(!key3);</p><p><b>  }</b></p><p&g

93、t;<b>  }</b></p><p><b>  }</b></p><p>  if(keynum1==4)</p><p><b>  {</b></p><p>  keynum1=0;</p><p><b>  TR0=1;&l

94、t;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(key4==0)</p><p><b>  {</b></p><p>  delayms(10);</p>&l

95、t;p>  if(key4==0)</p><p><b>  {</b></p><p>  keynum4++;</p><p>  while(!key4);</p><p><b>  }</b></p><p><b>  }</b>&l

96、t;/p><p>  if(keynum4!=0)</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  if(keynum4==1)</p><p><b>  { </b></p>&

97、lt;p>  if(key2==0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key2==0)</p><p><b>  { </b></p><p><b>  nnum1++;<

98、;/b></p><p>  if(nnum1==60)</p><p><b>  nnum1=0;</b></p><p>  while(!key2);</p><p><b>  }</b></p><p><b>  }</b></

99、p><p>  if(key3==0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key3==0)</p><p><b>  {</b></p><p>  if(nnum1==0)&

100、lt;/p><p><b>  nnum1=60;</b></p><p><b>  nnum1--;</b></p><p>  while(!key3);</p><p><b>  }</b></p><p><b>  }</b&g

101、t;</p><p><b>  }</b></p><p>  if(keynum4==2)</p><p><b>  { </b></p><p>  if(key2==0)</p><p><b>  {</b></p><p

102、>  delayms(10);</p><p>  if(key2==0)</p><p><b>  { </b></p><p><b>  nnum2++;</b></p><p>  if(nnum2==60)</p><p><b>  nnum2=

103、0;</b></p><p>  while(!key2);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(key3==0)</p><p><b>  {</b></p>

104、;<p>  delayms(10);</p><p>  if(key3==0)</p><p><b>  {</b></p><p>  if(nnum2==0)</p><p><b>  nnum2=60;</b></p><p><b> 

105、 nnum2--;</b></p><p>  while(!key3);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(keynum4==3

106、)</p><p><b>  { </b></p><p>  if(key2==0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key2==0)</p><p><b>

107、;  { </b></p><p><b>  nnum3++;</b></p><p>  if(nnum3==24)</p><p><b>  nnum3=0;</b></p><p>  while(!key2);</p><p><b>  }

108、</b></p><p><b>  }</b></p><p>  if(key3==0)</p><p><b>  {</b></p><p>  delayms(10);</p><p>  if(key3==0)</p><p>

109、<b>  {</b></p><p>  if(nnum3==0)</p><p><b>  nnum3=24;</b></p><p><b>  nnum3--;</b></p><p>  while(!key3);</p><p><b

110、>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(keynum4==4)</p><p><b>  {</b></p><p>  keynum4=0;<

111、/p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p>&

112、lt;p><b>  {</b></p><p><b>  num3=12;</b></p><p><b>  nnum3=6;</b></p><p>  TMOD=0x01;</p><p>  TH0=(65536-50000)/256;</p>

113、<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>  while(1)<

114、/b></p><p><b>  {</b></p><p>  keyscan();</p><p>  if(keynum4==0)</p><p><b>  {</b></p><p>  display(shi1,shi2,fen1,fen2,miao1,m

115、iao2);</p><p><b>  }</b></p><p>  if(keynum4!=0)</p><p><b>  {</b></p><p>  display(nshi1,nshi2,nfen1,nfen2,nmiao1,nmiao2); </p><p>

116、;<b>  }</b></p><p>  if(keynum1==0)</p><p>  if(num1==nnum1&num2==nnum2&num3==nnum3)</p><p><b>  {</b></p><p><b>  buzzer=0;</b

117、></p><p>  delayms(5000);</p><p><b>  buzzer=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>

118、;</p><p>  void T0_time() interrupt 1</p><p><b>  {</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p><b>  num++

119、;</b></p><p>  if(num==20)</p><p><b>  {</b></p><p><b>  num=0;</b></p><p><b>  num1++;</b></p><p>  if(num1==60)

120、</p><p><b>  num1=0;</b></p><p>  if(num1==0)</p><p><b>  {</b></p><p><b>  num2++;</b></p><p>  if(num2==60)</p>

121、<p><b>  num2=0;</b></p><p>  if(num2==0)</p><p><b>  {</b></p><p><b>  num3++;</b></p><p>  if(num3==24)</p><p>

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論