版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì)</p><p> 課程名稱(chēng) 單片機(jī) </p><p> 課題名稱(chēng) 課設(shè)作息時(shí)間控制 </p><p> 專(zhuān) 業(yè) 電氣工程 </p><p> 班 級(jí) ****
2、 </p><p> 學(xué) 號(hào) ********* </p><p> 姓 名 ******* </p><p> 指導(dǎo)教師 </p><p> 2012年 9月 14 日</p><p>
3、; 課 程 設(shè) 計(jì) 任 務(wù) 書(shū)</p><p> 課程名稱(chēng) 單片機(jī)原理及應(yīng)用 </p><p> 課 題 單片機(jī)作息時(shí)間控制器 </p><p> 專(zhuān)業(yè)班級(jí) 電氣**** </p><p> 學(xué)生姓名 ***** </p><p
4、> 學(xué) 號(hào) ******** </p><p> 指導(dǎo)老師 </p><p> 審 批 </p><p> 任務(wù)書(shū)下達(dá)日期 2012 年 9月 4日</p><p>
5、; 任務(wù)完成日期 2012年 9月 14 日</p><p><b> 目 錄</b></p><p><b> 第1章 概述1</b></p><p> 1.1設(shè)計(jì)內(nèi)容及要求1</p><p> 1.2本設(shè)計(jì)實(shí)現(xiàn)的功能1</p><
6、p> 第2章 系統(tǒng)方案設(shè)計(jì)2</p><p> 2.1 系統(tǒng)總體方案設(shè)計(jì)2</p><p> 2.2 系統(tǒng)總體方案框圖2</p><p> 第3章 硬件設(shè)計(jì)3</p><p> 3.1 時(shí)間顯示電路的設(shè)計(jì)3</p><p> 3.2按鍵電路的設(shè)計(jì)4</p><p&g
7、t; 3.3 響鈴電路的設(shè)計(jì)5</p><p> 3.4 內(nèi)部時(shí)鐘電路的設(shè)計(jì)5</p><p> 3.5 復(fù)位電路的設(shè)計(jì)6</p><p> 3.6 單片機(jī)硬件資源分配6</p><p> 第4章 軟件設(shè)計(jì)7</p><p> 4.1 系統(tǒng)軟件設(shè)計(jì)思路7</p><p>
8、; 4.2 主程序的設(shè)計(jì)7</p><p> 4.3 中斷子程序8</p><p> 4.4 鍵盤(pán)函數(shù)的設(shè)計(jì)9</p><p> 第5章 調(diào)試與分析10</p><p> 5.1 硬件制作11</p><p> 5.2 硬件調(diào)試13</p><p> 5.3 存在問(wèn)題
9、與解決方案14</p><p> 第6章 課題總結(jié)15</p><p><b> 參考文獻(xiàn)16</b></p><p><b> 附錄 A17</b></p><p><b> 第1章 概述</b></p><p><b>
10、; 設(shè)計(jì)內(nèi)容及要求</b></p><p> 作息時(shí)間控制器常用于學(xué)校教學(xué)樓的時(shí)間控制,利用單片機(jī)內(nèi)部定時(shí)器實(shí)現(xiàn)時(shí)間基準(zhǔn)定時(shí),并配合“啟動(dòng)”、“復(fù)位”等按鍵的操作完成鈴聲、音樂(lè)的開(kāi)/??刂?,顯示的內(nèi)容要求有時(shí)、分、秒。</p><p> 本課題要求以單片機(jī)為核心,設(shè)計(jì)一個(gè)具有定時(shí)和計(jì)數(shù)功能的智能化作息時(shí)間控制器。該控制器要求有以下功能:</p><p&
11、gt; 按作息時(shí)間接通/斷開(kāi)電鈴;</p><p> 課間接通/斷開(kāi)播放音樂(lè)設(shè)備;</p><p><b> 時(shí)鐘顯示。</b></p><p><b> 本設(shè)計(jì)實(shí)現(xiàn)的功能</b></p><p><b> 本設(shè)計(jì)實(shí)現(xiàn)的功能為</b></p><p
12、> 使用LED顯示時(shí)間,顯示格式為“時(shí)、分”(其中時(shí)、分各用兩位LED等顯示,秒用第二位LED的小數(shù)點(diǎn)顯示);</p><p> 可自行設(shè)置時(shí)鐘時(shí)間,可對(duì)時(shí)間進(jìn)行調(diào)整,使其快速進(jìn)行到定時(shí)時(shí)間,并作出相應(yīng)的響鈴動(dòng)作;</p><p> 當(dāng)時(shí)鐘到達(dá)定時(shí)時(shí)間時(shí),啟動(dòng)響鈴功能,以此模擬上、下課自動(dòng)響鈴及課間自動(dòng)播放音樂(lè);</p><p> 以蜂鳴器、繼電器模擬
13、響鈴過(guò)程</p><p> 第2章 系統(tǒng)方案設(shè)計(jì)</p><p> 2.1 系統(tǒng)總體方案設(shè)計(jì)</p><p> 本設(shè)計(jì)用單片機(jī)設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成,所以降低了硬件電路的復(fù)雜性,也相應(yīng)的降低了其成本。</p><p> 根據(jù)設(shè)計(jì)要求,總電路分為鍵盤(pán)接口電路、單片機(jī)時(shí)鐘電路、復(fù)位電路、LED顯示電路、響鈴
14、電路、電源電路六個(gè)部分。其中鍵盤(pán)接口電路采用4個(gè)按鍵,分別實(shí)現(xiàn)對(duì)時(shí)針的加一功能、減一功能和對(duì)分針的加一功能、減一功能;時(shí)鐘電路,在本系統(tǒng)中采用內(nèi)部時(shí)鐘電路,由一個(gè)石英晶體管振蕩器和兩個(gè)微調(diào)電容組成;復(fù)位電路中給給RST引腳連續(xù)輸入2個(gè)機(jī)器周期(即24個(gè)時(shí)鐘振蕩周期)以上高電平,就可完成初始化操作;顯示電路采用4段7位LED顯示管顯示時(shí)間,其中前兩位顯示時(shí)針,后兩位顯示分針,前兩位與后兩位之間的小數(shù)點(diǎn)通過(guò)閃動(dòng)來(lái)實(shí)現(xiàn)秒針的顯示;響鈴電路中由
15、P1口輸出電平,經(jīng)三極管驅(qū)動(dòng)繼電器后通過(guò)電鈴?fù)瓿身戔?,本設(shè)計(jì)中采用蜂鳴器、繼電器代替;電源電路,本設(shè)計(jì)由外部電源對(duì)其供電。 </p><p> 2.2 系統(tǒng)總體方案框圖</p><p> 圖 2.1 系統(tǒng)設(shè)計(jì)框圖</p><p><b> 第3章 硬件設(shè)計(jì)</b></p><p> 3.1 時(shí)間顯示電路的設(shè)計(jì)&
16、lt;/p><p> LED數(shù)碼管顯示方式有靜態(tài)顯示方式和動(dòng)態(tài)顯示方式兩種。靜態(tài)顯示方式雖然占用CPU較少,接口簡(jiǎn)單,但其硬件電路比較復(fù)雜,成本較高,所以本設(shè)計(jì)中采用動(dòng)態(tài)顯示方式。</p><p> 動(dòng)態(tài)顯示方式是指輪流電量各位LED數(shù)碼管,利用定時(shí)掃描的方式輪流點(diǎn)亮各位數(shù)碼管。LED公用一個(gè)8位的I/O,即P0口。4位LED的位選線分別由相對(duì)應(yīng)的P2.0-P2.3控制,段選線并聯(lián)后接地。
17、由于采用的是4位LED數(shù)碼管顯示,所以前兩位LED顯示“時(shí)針”,后兩位顯示“分針”,秒針利用時(shí)針的小數(shù)點(diǎn)進(jìn)行顯示,亮滅周期為一秒。到達(dá)定時(shí)時(shí)間時(shí),由計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生一個(gè)脈沖信號(hào)然后觸發(fā)蜂鳴器引發(fā)鬧鈴。校時(shí)電路是用來(lái)對(duì)“時(shí)針”、“分針”顯示數(shù)字進(jìn)行校對(duì)調(diào)整。</p><p><b> 時(shí)間電路設(shè)計(jì)如下:</b></p><p> 3.2按鍵電路的設(shè)計(jì)</
18、p><p> 因考慮節(jié)省I/O線數(shù)量,方便操作,本設(shè)計(jì)采用矩陣式鍵盤(pán)。矩陣式鍵盤(pán)由I/O線組成行、列結(jié)構(gòu),行、列線不相通,通過(guò)一個(gè)設(shè)置在行、列交叉點(diǎn)上的按鍵來(lái)連通。本設(shè)計(jì)中采用四個(gè)按鍵,具體功能如下:</p><p> 同時(shí),本設(shè)計(jì)通過(guò)調(diào)用一個(gè)延時(shí)函數(shù),消除鍵盤(pán)的抖動(dòng)問(wèn)題,提高了時(shí)間調(diào)整額精度。</p><p><b> 按鍵電路設(shè)計(jì)如下:</b&
19、gt;</p><p> 3.3 響鈴電路的設(shè)計(jì)</p><p> 響鈴電路是通過(guò)函數(shù)對(duì)時(shí)鐘和設(shè)定響鈴時(shí)間進(jìn)行比較,當(dāng)時(shí)鐘值與響鈴設(shè)定值相當(dāng)時(shí),發(fā)出一個(gè)脈沖信號(hào),經(jīng)放大器驅(qū)動(dòng)送至揚(yáng)聲器發(fā)聲,從而實(shí)現(xiàn)響鈴功能。其中,對(duì)響鈴函數(shù)中所調(diào)用的延時(shí)函數(shù)進(jìn)行延時(shí)長(zhǎng)短的調(diào)整,可對(duì)所響鈴聲進(jìn)行改變。</p><p><b> 響鈴電路設(shè)計(jì)如下:</b>&
20、lt;/p><p> 3.4 內(nèi)部時(shí)鐘電路的設(shè)計(jì)</p><p> 單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,它的輸入端為XTAL1引腳,輸出端為XTAL2引腳。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自己振蕩器,形成內(nèi)部時(shí)鐘方式的電路。其中微調(diào)電容選擇C1=C2=30uF。</p><p> 3.5 復(fù)位電路的設(shè)計(jì)</p>&
21、lt;p> 可靠的復(fù)位電路是保證單片機(jī)正常運(yùn)行的關(guān)鍵因素。將RST引腳連續(xù)輸入2個(gè)機(jī)器周期(即24個(gè)時(shí)鐘振蕩期間)以上高電平,即可以完成單片機(jī)的初始化操作。本設(shè)計(jì)采用按鈕復(fù)位方式。</p><p> 3.6 單片機(jī)硬件資源分配</p><p> 表3.1 I/O口分配表</p><p><b> 第4章 軟件設(shè)計(jì)</b><
22、;/p><p> 4.1 系統(tǒng)軟件設(shè)計(jì)思路</p><p> 本系軟件設(shè)計(jì)中,利用單片機(jī)定時(shí)器設(shè)計(jì)時(shí)間計(jì)時(shí)處理,采用單片機(jī)內(nèi)部的T0定時(shí)器溢出中斷來(lái)實(shí)現(xiàn),工作在T1方式下,定時(shí)50微妙,則連續(xù)中斷20次即為一秒,得到了我們所需時(shí)間的最小單位。因?yàn)閰R編語(yǔ)言的移植性較差,而C語(yǔ)言則比較靈活,因此本設(shè)計(jì)采用C52編寫(xiě)程序。在程序中除了有主函數(shù)外還包含許多子函數(shù),如顯示函數(shù)、鍵盤(pán)函數(shù)、聲音函數(shù)、響
23、鈴函數(shù)、時(shí)間顯示函數(shù)、延時(shí)函數(shù)。</p><p> 4.2 主程序的設(shè)計(jì)</p><p> 主程序循環(huán)中掃描是否有鍵按下,如有鍵按下,則做出相應(yīng)的功能處理,同時(shí)掃描顯示時(shí)間數(shù)據(jù),并檢查時(shí)候到達(dá)響鈴設(shè)置時(shí)間。若無(wú)按鍵,則繼續(xù)執(zhí)行主程序。</p><p> 系統(tǒng)設(shè)計(jì)主框圖如下:</p><p> 圖4.1 系統(tǒng)設(shè)計(jì)主框圖</p>
24、;<p><b> 4.3 中斷子程序</b></p><p> 本設(shè)計(jì)采用中斷子程序。當(dāng)連續(xù)中斷20次時(shí),即為一秒,此時(shí)秒加一;當(dāng)秒值為60時(shí),分鐘加一,同時(shí)秒清零;當(dāng)分鐘值為60時(shí),小時(shí)加一,同時(shí)分鐘值清零;當(dāng)小時(shí)為24時(shí)小時(shí)清零 ,完成一天的計(jì)時(shí),所有程序初始化。</p><p> 中斷子程序設(shè)計(jì)圖如下:</p><p&g
25、t; 圖4.2 中斷子程序設(shè)計(jì)圖</p><p> 4.4 鍵盤(pán)函數(shù)的設(shè)計(jì)</p><p> 鍵盤(pán)程序是完成對(duì)時(shí)鐘的調(diào)整。當(dāng)按下S1、S2、S3、S4按鍵時(shí),執(zhí)行相應(yīng)的“對(duì)時(shí)針加1”、“對(duì)時(shí)針減1”、“對(duì)分針加1”、“對(duì)分針減1”功能。</p><p> 鍵盤(pán)函數(shù)設(shè)計(jì)圖如下:</p><p> 圖4.3 鍵盤(pán)函數(shù)設(shè)計(jì)圖</p&
26、gt;<p> 第5章 調(diào)試與分析</p><p><b> 5.1 硬件制作</b></p><p> 在焊接板子過(guò)程中,以“由低到高”為原則依次對(duì)其進(jìn)行焊接。</p><p> 主板焊接流程如下:電阻:10K(1個(gè))、2K(2個(gè))、1K(17個(gè))、200/100歐(1個(gè)),續(xù)流二極管IN4148(1個(gè)),整流二極管I
27、N4007(4個(gè)),晶振12M/11.0592M(1個(gè)),輕觸按鍵(2個(gè)),電容:30P(2個(gè)),104獨(dú)石(4個(gè)),104瓷片(4個(gè)),排阻,芯片插座(40腳、16腳、8腳各1個(gè)),三極管:9012(1個(gè))、9015(2個(gè)),電源指示LED(1個(gè)),P1口長(zhǎng)方形LED(8個(gè)),電解電容:22 UF(1個(gè))、1000UF(2個(gè)),蜂鳴器,繼電器,跳針(3個(gè)),擴(kuò)展排針(三排),電源接插件(1個(gè)),電源開(kāi)關(guān)(1個(gè))。</p>
28、<p> 鍵盤(pán)及數(shù)碼管副板焊接流程如下:電阻1K(12個(gè)),輕觸按鍵共16個(gè),4位撥碼開(kāi)關(guān)(1個(gè)),9015三極管(4個(gè)),四合一數(shù)碼管(1個(gè)),跳針(2個(gè)),擴(kuò)展排針(兩排)。</p><p><b> 5.2 硬件調(diào)試</b></p><p> 將編好程序在Keil uVision4中調(diào)試完成,程序沒(méi)有錯(cuò)誤的時(shí)候,通過(guò)STC_ISP_480下載到
29、單片機(jī)中,然后進(jìn)行調(diào)試。</p><p> 首先連接好外部電源,將電源打開(kāi)為單片機(jī)通電,顯示屏顯示初時(shí)設(shè)置時(shí)間為20:59(可調(diào)整),小數(shù)點(diǎn)閃爍為秒針。如圖5.1所示:</p><p> 圖5.1 顯示設(shè)置初值</p><p> 任意調(diào)到一個(gè)顯示值(現(xiàn)以15:59為例),在基礎(chǔ)上按下S1鍵,實(shí)現(xiàn)對(duì)時(shí)針的加一功能,時(shí)間變?yōu)?6:59,如圖5.2所示:</p
30、><p> 圖5.2 實(shí)現(xiàn)對(duì)時(shí)針的加一功能</p><p> 在15:59基礎(chǔ)上按下S2鍵,實(shí)現(xiàn)對(duì)時(shí)針的減一功能,時(shí)間變?yōu)?4:59,如圖5.3所示:</p><p> 圖5.3 實(shí)現(xiàn)對(duì)時(shí)針的減一功能</p><p> 在15:59基礎(chǔ)上按下S3鍵,實(shí)現(xiàn)對(duì)分針的加一功能,時(shí)間變?yōu)?6:00,如圖5.4所示:</p><
31、p> 圖5.4 實(shí)現(xiàn)對(duì)分針的加一功能</p><p> 在15:59基礎(chǔ)上按下S4鍵,實(shí)現(xiàn)對(duì)分針的減一功能,時(shí)間變?yōu)?5:58,如圖5.5所示:</p><p> 圖5.5 實(shí)現(xiàn)對(duì)分針的減一功能</p><p> 當(dāng)時(shí)鐘運(yùn)行至響鈴設(shè)定值時(shí),啟動(dòng)響鈴功能。如時(shí)鐘為22:00時(shí),蜂鳴器發(fā)出聲音,繼電器工作,模擬響鈴過(guò)程。如圖5.6所示:</p>
32、<p> 圖5.6 實(shí)現(xiàn)響鈴功能</p><p> 5.3 存在問(wèn)題與解決方案</p><p> 軟件調(diào)試過(guò)程遇到一些問(wèn)題,如在定義函數(shù)時(shí)忘記了定義全部的函數(shù),導(dǎo)致運(yùn)行結(jié)果出現(xiàn)未定義,經(jīng)過(guò)認(rèn)真查看修改以后。該問(wèn)題得以解決;即可實(shí)現(xiàn)要求功能。</p><p><b> 第6章 課題總結(jié)</b></p><
33、;p> 兩周的單片機(jī)課程設(shè)計(jì)已經(jīng)接近尾聲了,在這兩個(gè)星期里面,從拿到課題的課題的第一天起,大家就開(kāi)始忙忙碌碌的查資料,翻教材,不斷的努力著,慢慢從一開(kāi)始的不知道如何下手,到確定了設(shè)計(jì)方案,再到如今的完工,不得不感謝一下老師的耐心教導(dǎo)和同學(xué)的熱情幫助。單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫(xiě)過(guò)幾次程序,但我覺(jué)的寫(xiě)好一個(gè)程序并不是一件簡(jiǎn)單的事。如響鈴函數(shù)中,之前通過(guò)以時(shí)間與設(shè)定好的數(shù)組相對(duì)比,若相等
34、則進(jìn)行響鈴,但一直沒(méi)有辦法實(shí)現(xiàn),后來(lái)設(shè)置了一個(gè)標(biāo)志,利用switch語(yǔ)句,通過(guò)一個(gè)算式來(lái)進(jìn)行與時(shí)鐘的對(duì)比,則實(shí)現(xiàn)了響鈴功能。</p><p> 這個(gè)程序中還有一些可以改進(jìn)與完善的地方。如可通過(guò)24C02鎖存器對(duì)調(diào)整好的時(shí)間進(jìn)行鎖存,實(shí)現(xiàn)斷電保護(hù)功能;可通過(guò)一個(gè)按鍵,來(lái)實(shí)現(xiàn)對(duì)響鈴模式夏季與冬季模式的切換與調(diào)整,并實(shí)現(xiàn)記憶功能;還可以通過(guò)對(duì)所響鈴聲進(jìn)行編輯,模擬上下課響不同的鈴聲,以示區(qū)分。</p>
35、<p> 在這兩周的設(shè)計(jì)之中,每個(gè)人都有很多的收獲,我也不例外,出現(xiàn)了很多的問(wèn)題,從解決問(wèn)題之中學(xué)會(huì)了很多知識(shí)和技巧。到現(xiàn)在為止,已經(jīng)有做過(guò)多次的設(shè)計(jì)了,但是這次的設(shè)計(jì)讓我有了長(zhǎng)足的進(jìn)步,確實(shí)加強(qiáng)了對(duì)單片機(jī)硬件和軟件的兼顧和融會(huì)貫通。</p><p> 在這次課程設(shè)計(jì)中,感謝王迎旭老師的耐心指導(dǎo),感謝同組同學(xué)的鼓勵(lì)與配合。通過(guò)本次課程設(shè)計(jì),我認(rèn)識(shí)到了自己的許多缺點(diǎn)和不足,體會(huì)到了實(shí)踐是檢驗(yàn)真理的唯一
36、標(biāo)準(zhǔn)以及實(shí)踐出真知的道理。在以后的學(xué)習(xí)生活中,我會(huì)努力將學(xué)習(xí)知識(shí)要看做是自己的興趣愛(ài)好,要主動(dòng)學(xué)習(xí)。不僅要學(xué)會(huì)書(shū)本上的知識(shí),更要掌握學(xué)好知識(shí)的方法和技巧,這樣才能使自己在今后的科技道路上越走越遠(yuǎn)!</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 王迎旭.單片機(jī)原理與應(yīng)用 [M].北京:機(jī)械工業(yè)出版社,2012[2]
37、60;三恒星科技.MCS-51 單片機(jī)原理與應(yīng)用實(shí)例 [M].北京:電子工業(yè)出版社,2008[3] 王守中.51單片機(jī)開(kāi)發(fā)入門(mén)與典型實(shí)例 [M].北京:人民郵電出版社,2007[4] 李全利.單片機(jī)原理及應(yīng)用技術(shù) [M].北京:高等教育出版社,2004[5] 林毓梁.單片機(jī)原理及應(yīng)用 [M].北京:機(jī)械工業(yè)出版社,2005 </p>&l
38、t;p><b> 附錄 A</b></p><p><b> 程序清單:</b></p><p> #include<reg52.h></p><p> #include<stdio.h></p><p> #include<intrins.h>
39、</p><p> #define uchar unsigned char</p><p> unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} ;</p><p> unsigned char wei[]={0x01,0x02,0x04,0x08,0x0
40、0} ;</p><p> unsigned char temp,hourshi,hourge,minuteshi,minutege;</p><p> unsigned int second=0,minute=59,hour=20;</p><p> unsigned int dh[]={0,1,2,3,4,5};</p><p>
41、 unsigned int dm[]={1,2,3,4,5,6}; </p><p> unsigned char count ;</p><p> unsigned char s,i,temp,flag,f,h=0,m=0;</p><p> sbit hour_add=P1^0;</p><p> sbit hour_sub=
42、P1^1;</p><p> sbit minute_add=P1^2;</p><p> sbit minute_sub=P1^3;</p><p> sbit ring=P1^4;</p><p> sbit P0_7=P0^7;</p><p> void display();
43、 //顯示函數(shù)</p><p> void key(); //鍵盤(pán)函數(shù)</p><p> void sound(); //聲音函數(shù)</p><p> void voice(int,int);
44、 //響鈴函數(shù)</p><p> void main() //主函數(shù)</p><p><b> {</b></p><p> temp=0xee;</p><p><b> ring=1;</b&g
45、t;</p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p><p> TMOD=0x01;</p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;
46、</p><p><b> TR0=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> hourshi=hour/10;</p><p> hourge=hour%10;&l
47、t;/p><p> minuteshi=minute/10;</p><p> minutege=minute%10;</p><p> display();</p><p> voice(minute,hour);</p><p><b> key();</b></p>&l
48、t;p><b> } </b></p><p><b> }</b></p><p> void timer() interrupt 1 //時(shí)鐘顯示函數(shù)</p><p><b> {</b></p><p> TH
49、0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p><b> count++;</b></p><p> if(count==20)</p><p><b> {</b></p><p><b
50、> second++;</b></p><p><b> count=0;</b></p><p> if(second==60)</p><p><b> {</b></p><p><b> minute++;</b></p>&l
51、t;p> second=0;</p><p> if(minute==60)</p><p><b> {</b></p><p><b> hour++;</b></p><p> minute=0; </p><p> if(hour==24)<
52、/p><p><b> {</b></p><p><b> hour=0;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b>&l
53、t;/p><p><b> }</b></p><p><b> }</b></p><p> void delay1ms(int n) //延時(shí)函數(shù)</p><p><b> {</b></p><p&
54、gt; unsigned char j;</p><p><b> int t;</b></p><p> for(j=n;j>0;j--)</p><p> for(t=110;t>0;t--)</p><p><b> ;</b></p><p>&
55、lt;b> }</b></p><p> void key() //鍵盤(pán)函數(shù)</p><p><b> { </b></p><p> if(hour_add==0) //時(shí)鐘加1
56、 </p><p><b> { </b></p><p> delay1ms(5);</p><p> if(hour_add==0)</p><p><b> {</b></p><p> do delay1ms(4);</p><p
57、> while(hour_add!=1);</p><p><b> if(s==0)</b></p><p><b> {</b></p><p><b> hour++;</b></p><p> if(hour==24)</p><p&
58、gt;<b> hour=0;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p> if(hour_sub==0)
59、 //時(shí)鐘減1 </p><p><b> { </b></p><p> delay1ms(5);</p><p> if(hour_sub==0)</p><p><b> {</b></p><p> do de
60、lay1ms(4);</p><p> while(hour_sub!=1);</p><p><b> if(s==0)</b></p><p><b> {</b></p><p><b> hour--;</b></p><p> if(
61、hour==-1)</p><p><b> hour=23;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p> if(m
62、inute_add==0) //分鐘加1 </p><p><b> { </b></p><p> delay1ms(5);</p><p> if(minute_add==0)</p><p><b> {</b>
63、;</p><p> do delay1ms(4);</p><p> while (minute_add!=1);</p><p> if(s==0) </p><p><b> { </b></p><p><b> minute++;</b></p&
64、gt;<p> if(minute==60)</p><p><b> {</b></p><p><b> minute=0;</b></p><p><b> }</b></p><p><b> }</b></p>
65、<p><b> }</b></p><p><b> }</b></p><p> if(minute_sub==0) //分鐘減1 </p><p><b> { </b></p><
66、;p> delay1ms(5);</p><p> if(minute_sub==0)</p><p><b> {</b></p><p> do delay1ms(4);</p><p> while (minute_sub!=1);</p><p> if(s==0)
67、</p><p><b> { </b></p><p><b> minute--;</b></p><p> if(minute==-1)</p><p><b> {</b></p><p> minute=59;</p>
68、<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p
69、> void display() //顯示函數(shù)</p><p><b> {</b></p><p><b> if(s==0)</b></p><p><b> {</b></p><p><b&g
70、t; P2=temp;</b></p><p> P0=table[hourshi];</p><p> delay1ms(5);</p><p> temp=_crol_(temp,1) ;</p><p><b> P2=temp;</b></p><p> P0=t
71、able[hourge];</p><p> if(count<=10)</p><p><b> {</b></p><p><b> P0_7=1; </b></p><p><b> }</b></p><p> if(count&
72、gt;10)</p><p><b> { </b></p><p><b> P0_7=0;</b></p><p><b> }</b></p><p> delay1ms(5);</p><p> temp=_crol_(temp,1)
73、;</p><p><b> P2=temp;</b></p><p> P0=table[minuteshi];</p><p> delay1ms(5);</p><p> temp=_crol_(temp,1);</p><p><b> P2=temp;</b&
74、gt;</p><p> P0=table[minutege];</p><p> delay1ms(5);</p><p> temp=_crol_(temp,1);</p><p><b> }</b></p><p><b> if(s==1)</b><
75、/p><p><b> {</b></p><p><b> P2=temp;</b></p><p> P0=table[hour_temp/10];</p><p> delay1ms(5);</p><p> temp=_crol_(temp,1);</p&
76、gt;<p><b> P2=temp;</b></p><p> P0=table[hour_temp%10];</p><p> delay1ms(5);</p><p> temp=_crol_(temp,1);</p><p><b> P2=temp;</b><
77、;/p><p> P0=table[minute_temp/10];</p><p> delay1ms(5);</p><p> temp=_crol_(temp,1);</p><p><b> P2=temp;</b></p><p> P0=table[minute_temp%10]
78、;</p><p> delay1ms(5);</p><p> temp=_crol_(temp,1);</p><p><b> }</b></p><p><b> }</b></p><p> void sound()
79、 //聲音函數(shù)</p><p><b> {</b></p><p><b> ring=0;</b></p><p> delay1ms(5000);</p><p><b> ring=1;</b></p><p
80、><b> }</b></p><p> void voice(int h,int m) //響鈴函數(shù)</p><p><b> {</b></p><p> uchar bell=0,music=0;</p><p> in
81、t time=0;</p><p> time=h+m*60;</p><p> switch(time)</p><p><b> {</b></p><p> case 390: bell=1;break; //6:30</p><p> cas
82、e 400: bell=1;break; //6:40</p><p> case 430: bell=1;break; //7:10</p><p> case 465: bell=1;break; //7:45</p><p> case 480: b
83、ell=1;break; //8:00</p><p> case 525: bell=1;break; //8:45</p><p> case 535: bell=1;break; //8:55</p><p> case 580: bell=1;br
84、eak; //9:40</p><p> case 610: bell=1;break; //10:10</p><p> case 655: bell=1;break; //10:55</p><p> case 665: bell=1;break;
85、 //11:05</p><p> case 710: bell=1;break; //11:50</p><p> case 855: bell=1;break; //14:15</p><p> case 870: bell=1;break;
86、 //14:30</p><p> case 915: bell=1;break; //15:15</p><p> case 925: bell=1;break; /15:25</p><p> case 970: bell=1;break;
87、 //16:10</p><p> case 1000: bell=1;break; //16:40</p><p> case 1045: bell=1;break; //17:25</p><p> case 1055: bell=1;break;
88、 //17:35</p><p> case 1100: bell=1;break; //18:20</p><p> case 1170: bell=1;break; //19:30</p><p> case 1290: bell=1;break;
89、//21:30</p><p> case 1320: bell=1;break; //22:00</p><p> default:break; //其余時(shí)間,直接跳轉(zhuǎn)</p><p><b> }</b></p><p>
90、if(bell==1) //鈴聲啟動(dòng)</p><p><b> { </b></p><p><b> sound(); </b></p><p> } </p><p><b> }</b
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)作息時(shí)間控制器課程設(shè)計(jì)
- 單片機(jī)課間作息時(shí)間控制器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---作息時(shí)間表系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)控制作息時(shí)間系統(tǒng)
- 作息時(shí)間控制課程設(shè)計(jì)報(bào)告
- 畢業(yè)設(shè)計(jì)--單片機(jī)作息時(shí)間控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)作息時(shí)間的控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的作息時(shí)間打鈴系統(tǒng)設(shè)計(jì)
- 作息時(shí)間控制系統(tǒng)課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)基于單片機(jī)的作息時(shí)間控制器
- 基于單片機(jī)的作息時(shí)間控制鐘系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的作息時(shí)間控制鐘系統(tǒng)論文
- 電子畢業(yè)論文--單片機(jī)實(shí)現(xiàn)作息時(shí)間控制系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)---作息鐘系統(tǒng)
- 課程設(shè)計(jì)---作息時(shí)間控制器的設(shè)計(jì)報(bào)告
- 基于單片機(jī)的校園作息時(shí)間控制系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 利用單片機(jī)實(shí)現(xiàn)作息時(shí)間控制系統(tǒng)電子畢業(yè)論文
- 課程設(shè)計(jì)-可編程作息時(shí)間控制器
- 基于stc89c51單片機(jī)作息時(shí)間控制鐘控制系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)-時(shí)間控制器
評(píng)論
0/150
提交評(píng)論