單片機課程設(shè)計--課設(shè)作息時間控制_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計</p><p>  課程名稱 單片機 </p><p>  課題名稱 課設(shè)作息時間控制 </p><p>  專 業(yè) 電氣工程 </p><p>  班 級 ****

2、 </p><p>  學 號 ********* </p><p>  姓 名 ******* </p><p>  指導教師 </p><p>  2012年 9月 14 日</p><p>

3、;  課 程 設(shè) 計 任 務(wù) 書</p><p>  課程名稱 單片機原理及應(yīng)用 </p><p>  課 題 單片機作息時間控制器 </p><p>  專業(yè)班級 電氣**** </p><p>  學生姓名 ***** </p><p

4、>  學 號 ******** </p><p>  指導老師 </p><p>  審 批 </p><p>  任務(wù)書下達日期 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è)計內(nèi)容及要求1</p><p>  1.2本設(shè)計實現(xiàn)的功能1</p><

6、p>  第2章 系統(tǒng)方案設(shè)計2</p><p>  2.1 系統(tǒng)總體方案設(shè)計2</p><p>  2.2 系統(tǒng)總體方案框圖2</p><p>  第3章 硬件設(shè)計3</p><p>  3.1 時間顯示電路的設(shè)計3</p><p>  3.2按鍵電路的設(shè)計4</p><p&g

7、t;  3.3 響鈴電路的設(shè)計5</p><p>  3.4 內(nèi)部時鐘電路的設(shè)計5</p><p>  3.5 復(fù)位電路的設(shè)計6</p><p>  3.6 單片機硬件資源分配6</p><p>  第4章 軟件設(shè)計7</p><p>  4.1 系統(tǒng)軟件設(shè)計思路7</p><p>

8、;  4.2 主程序的設(shè)計7</p><p>  4.3 中斷子程序8</p><p>  4.4 鍵盤函數(shù)的設(shè)計9</p><p>  第5章 調(diào)試與分析10</p><p>  5.1 硬件制作11</p><p>  5.2 硬件調(diào)試13</p><p>  5.3 存在問題

9、與解決方案14</p><p>  第6章 課題總結(jié)15</p><p><b>  參考文獻16</b></p><p><b>  附錄 A17</b></p><p><b>  第1章 概述</b></p><p><b>

10、;  設(shè)計內(nèi)容及要求</b></p><p>  作息時間控制器常用于學校教學樓的時間控制,利用單片機內(nèi)部定時器實現(xiàn)時間基準定時,并配合“啟動”、“復(fù)位”等按鍵的操作完成鈴聲、音樂的開/??刂?,顯示的內(nèi)容要求有時、分、秒。</p><p>  本課題要求以單片機為核心,設(shè)計一個具有定時和計數(shù)功能的智能化作息時間控制器。該控制器要求有以下功能:</p><p&

11、gt;  按作息時間接通/斷開電鈴;</p><p>  課間接通/斷開播放音樂設(shè)備;</p><p><b>  時鐘顯示。</b></p><p><b>  本設(shè)計實現(xiàn)的功能</b></p><p><b>  本設(shè)計實現(xiàn)的功能為</b></p><p

12、>  使用LED顯示時間,顯示格式為“時、分”(其中時、分各用兩位LED等顯示,秒用第二位LED的小數(shù)點顯示);</p><p>  可自行設(shè)置時鐘時間,可對時間進行調(diào)整,使其快速進行到定時時間,并作出相應(yīng)的響鈴動作;</p><p>  當時鐘到達定時時間時,啟動響鈴功能,以此模擬上、下課自動響鈴及課間自動播放音樂;</p><p>  以蜂鳴器、繼電器模擬

13、響鈴過程</p><p>  第2章 系統(tǒng)方案設(shè)計</p><p>  2.1 系統(tǒng)總體方案設(shè)計</p><p>  本設(shè)計用單片機設(shè)計制作完成,由于其功能的實現(xiàn)主要通過軟件編程來完成,所以降低了硬件電路的復(fù)雜性,也相應(yīng)的降低了其成本。</p><p>  根據(jù)設(shè)計要求,總電路分為鍵盤接口電路、單片機時鐘電路、復(fù)位電路、LED顯示電路、響鈴

14、電路、電源電路六個部分。其中鍵盤接口電路采用4個按鍵,分別實現(xiàn)對時針的加一功能、減一功能和對分針的加一功能、減一功能;時鐘電路,在本系統(tǒng)中采用內(nèi)部時鐘電路,由一個石英晶體管振蕩器和兩個微調(diào)電容組成;復(fù)位電路中給給RST引腳連續(xù)輸入2個機器周期(即24個時鐘振蕩周期)以上高電平,就可完成初始化操作;顯示電路采用4段7位LED顯示管顯示時間,其中前兩位顯示時針,后兩位顯示分針,前兩位與后兩位之間的小數(shù)點通過閃動來實現(xiàn)秒針的顯示;響鈴電路中由

15、P1口輸出電平,經(jīng)三極管驅(qū)動繼電器后通過電鈴?fù)瓿身戔彛驹O(shè)計中采用蜂鳴器、繼電器代替;電源電路,本設(shè)計由外部電源對其供電。 </p><p>  2.2 系統(tǒng)總體方案框圖</p><p>  圖 2.1 系統(tǒng)設(shè)計框圖</p><p><b>  第3章 硬件設(shè)計</b></p><p>  3.1 時間顯示電路的設(shè)計&

16、lt;/p><p>  LED數(shù)碼管顯示方式有靜態(tài)顯示方式和動態(tài)顯示方式兩種。靜態(tài)顯示方式雖然占用CPU較少,接口簡單,但其硬件電路比較復(fù)雜,成本較高,所以本設(shè)計中采用動態(tài)顯示方式。</p><p>  動態(tài)顯示方式是指輪流電量各位LED數(shù)碼管,利用定時掃描的方式輪流點亮各位數(shù)碼管。LED公用一個8位的I/O,即P0口。4位LED的位選線分別由相對應(yīng)的P2.0-P2.3控制,段選線并聯(lián)后接地。

17、由于采用的是4位LED數(shù)碼管顯示,所以前兩位LED顯示“時針”,后兩位顯示“分針”,秒針利用時針的小數(shù)點進行顯示,亮滅周期為一秒。到達定時時間時,由計時系統(tǒng)的輸出狀態(tài)產(chǎn)生一個脈沖信號然后觸發(fā)蜂鳴器引發(fā)鬧鈴。校時電路是用來對“時針”、“分針”顯示數(shù)字進行校對調(diào)整。</p><p><b>  時間電路設(shè)計如下:</b></p><p>  3.2按鍵電路的設(shè)計</

18、p><p>  因考慮節(jié)省I/O線數(shù)量,方便操作,本設(shè)計采用矩陣式鍵盤。矩陣式鍵盤由I/O線組成行、列結(jié)構(gòu),行、列線不相通,通過一個設(shè)置在行、列交叉點上的按鍵來連通。本設(shè)計中采用四個按鍵,具體功能如下:</p><p>  同時,本設(shè)計通過調(diào)用一個延時函數(shù),消除鍵盤的抖動問題,提高了時間調(diào)整額精度。</p><p><b>  按鍵電路設(shè)計如下:</b&

19、gt;</p><p>  3.3 響鈴電路的設(shè)計</p><p>  響鈴電路是通過函數(shù)對時鐘和設(shè)定響鈴時間進行比較,當時鐘值與響鈴設(shè)定值相當時,發(fā)出一個脈沖信號,經(jīng)放大器驅(qū)動送至揚聲器發(fā)聲,從而實現(xiàn)響鈴功能。其中,對響鈴函數(shù)中所調(diào)用的延時函數(shù)進行延時長短的調(diào)整,可對所響鈴聲進行改變。</p><p><b>  響鈴電路設(shè)計如下:</b>&

20、lt;/p><p>  3.4 內(nèi)部時鐘電路的設(shè)計</p><p>  單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,它的輸入端為XTAL1引腳,輸出端為XTAL2引腳。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個穩(wěn)定的自己振蕩器,形成內(nèi)部時鐘方式的電路。其中微調(diào)電容選擇C1=C2=30uF。</p><p>  3.5 復(fù)位電路的設(shè)計</p>&

21、lt;p>  可靠的復(fù)位電路是保證單片機正常運行的關(guān)鍵因素。將RST引腳連續(xù)輸入2個機器周期(即24個時鐘振蕩期間)以上高電平,即可以完成單片機的初始化操作。本設(shè)計采用按鈕復(fù)位方式。</p><p>  3.6 單片機硬件資源分配</p><p>  表3.1 I/O口分配表</p><p><b>  第4章 軟件設(shè)計</b><

22、;/p><p>  4.1 系統(tǒng)軟件設(shè)計思路</p><p>  本系軟件設(shè)計中,利用單片機定時器設(shè)計時間計時處理,采用單片機內(nèi)部的T0定時器溢出中斷來實現(xiàn),工作在T1方式下,定時50微妙,則連續(xù)中斷20次即為一秒,得到了我們所需時間的最小單位。因為匯編語言的移植性較差,而C語言則比較靈活,因此本設(shè)計采用C52編寫程序。在程序中除了有主函數(shù)外還包含許多子函數(shù),如顯示函數(shù)、鍵盤函數(shù)、聲音函數(shù)、響

23、鈴函數(shù)、時間顯示函數(shù)、延時函數(shù)。</p><p>  4.2 主程序的設(shè)計</p><p>  主程序循環(huán)中掃描是否有鍵按下,如有鍵按下,則做出相應(yīng)的功能處理,同時掃描顯示時間數(shù)據(jù),并檢查時候到達響鈴設(shè)置時間。若無按鍵,則繼續(xù)執(zhí)行主程序。</p><p>  系統(tǒng)設(shè)計主框圖如下:</p><p>  圖4.1 系統(tǒng)設(shè)計主框圖</p>

24、;<p><b>  4.3 中斷子程序</b></p><p>  本設(shè)計采用中斷子程序。當連續(xù)中斷20次時,即為一秒,此時秒加一;當秒值為60時,分鐘加一,同時秒清零;當分鐘值為60時,小時加一,同時分鐘值清零;當小時為24時小時清零 ,完成一天的計時,所有程序初始化。</p><p>  中斷子程序設(shè)計圖如下:</p><p&g

25、t;  圖4.2 中斷子程序設(shè)計圖</p><p>  4.4 鍵盤函數(shù)的設(shè)計</p><p>  鍵盤程序是完成對時鐘的調(diào)整。當按下S1、S2、S3、S4按鍵時,執(zhí)行相應(yīng)的“對時針加1”、“對時針減1”、“對分針加1”、“對分針減1”功能。</p><p>  鍵盤函數(shù)設(shè)計圖如下:</p><p>  圖4.3 鍵盤函數(shù)設(shè)計圖</p&

26、gt;<p>  第5章 調(diào)試與分析</p><p><b>  5.1 硬件制作</b></p><p>  在焊接板子過程中,以“由低到高”為原則依次對其進行焊接。</p><p>  主板焊接流程如下:電阻:10K(1個)、2K(2個)、1K(17個)、200/100歐(1個),續(xù)流二極管IN4148(1個),整流二極管I

27、N4007(4個),晶振12M/11.0592M(1個),輕觸按鍵(2個),電容:30P(2個),104獨石(4個),104瓷片(4個),排阻,芯片插座(40腳、16腳、8腳各1個),三極管:9012(1個)、9015(2個),電源指示LED(1個),P1口長方形LED(8個),電解電容:22 UF(1個)、1000UF(2個),蜂鳴器,繼電器,跳針(3個),擴展排針(三排),電源接插件(1個),電源開關(guān)(1個)。</p>

28、<p>  鍵盤及數(shù)碼管副板焊接流程如下:電阻1K(12個),輕觸按鍵共16個,4位撥碼開關(guān)(1個),9015三極管(4個),四合一數(shù)碼管(1個),跳針(2個),擴展排針(兩排)。</p><p><b>  5.2 硬件調(diào)試</b></p><p>  將編好程序在Keil uVision4中調(diào)試完成,程序沒有錯誤的時候,通過STC_ISP_480下載到

29、單片機中,然后進行調(diào)試。</p><p>  首先連接好外部電源,將電源打開為單片機通電,顯示屏顯示初時設(shè)置時間為20:59(可調(diào)整),小數(shù)點閃爍為秒針。如圖5.1所示:</p><p>  圖5.1 顯示設(shè)置初值</p><p>  任意調(diào)到一個顯示值(現(xiàn)以15:59為例),在基礎(chǔ)上按下S1鍵,實現(xiàn)對時針的加一功能,時間變?yōu)?6:59,如圖5.2所示:</p

30、><p>  圖5.2 實現(xiàn)對時針的加一功能</p><p>  在15:59基礎(chǔ)上按下S2鍵,實現(xiàn)對時針的減一功能,時間變?yōu)?4:59,如圖5.3所示:</p><p>  圖5.3 實現(xiàn)對時針的減一功能</p><p>  在15:59基礎(chǔ)上按下S3鍵,實現(xiàn)對分針的加一功能,時間變?yōu)?6:00,如圖5.4所示:</p><

31、p>  圖5.4 實現(xiàn)對分針的加一功能</p><p>  在15:59基礎(chǔ)上按下S4鍵,實現(xiàn)對分針的減一功能,時間變?yōu)?5:58,如圖5.5所示:</p><p>  圖5.5 實現(xiàn)對分針的減一功能</p><p>  當時鐘運行至響鈴設(shè)定值時,啟動響鈴功能。如時鐘為22:00時,蜂鳴器發(fā)出聲音,繼電器工作,模擬響鈴過程。如圖5.6所示:</p>

32、<p>  圖5.6 實現(xiàn)響鈴功能</p><p>  5.3 存在問題與解決方案</p><p>  軟件調(diào)試過程遇到一些問題,如在定義函數(shù)時忘記了定義全部的函數(shù),導致運行結(jié)果出現(xiàn)未定義,經(jīng)過認真查看修改以后。該問題得以解決;即可實現(xiàn)要求功能。</p><p><b>  第6章 課題總結(jié)</b></p><

33、;p>  兩周的單片機課程設(shè)計已經(jīng)接近尾聲了,在這兩個星期里面,從拿到課題的課題的第一天起,大家就開始忙忙碌碌的查資料,翻教材,不斷的努力著,慢慢從一開始的不知道如何下手,到確定了設(shè)計方案,再到如今的完工,不得不感謝一下老師的耐心教導和同學的熱情幫助。單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事。如響鈴函數(shù)中,之前通過以時間與設(shè)定好的數(shù)組相對比,若相等

34、則進行響鈴,但一直沒有辦法實現(xiàn),后來設(shè)置了一個標志,利用switch語句,通過一個算式來進行與時鐘的對比,則實現(xiàn)了響鈴功能。</p><p>  這個程序中還有一些可以改進與完善的地方。如可通過24C02鎖存器對調(diào)整好的時間進行鎖存,實現(xiàn)斷電保護功能;可通過一個按鍵,來實現(xiàn)對響鈴模式夏季與冬季模式的切換與調(diào)整,并實現(xiàn)記憶功能;還可以通過對所響鈴聲進行編輯,模擬上下課響不同的鈴聲,以示區(qū)分。</p>

35、<p>  在這兩周的設(shè)計之中,每個人都有很多的收獲,我也不例外,出現(xiàn)了很多的問題,從解決問題之中學會了很多知識和技巧。到現(xiàn)在為止,已經(jīng)有做過多次的設(shè)計了,但是這次的設(shè)計讓我有了長足的進步,確實加強了對單片機硬件和軟件的兼顧和融會貫通。</p><p>  在這次課程設(shè)計中,感謝王迎旭老師的耐心指導,感謝同組同學的鼓勵與配合。通過本次課程設(shè)計,我認識到了自己的許多缺點和不足,體會到了實踐是檢驗真理的唯一

36、標準以及實踐出真知的道理。在以后的學習生活中,我會努力將學習知識要看做是自己的興趣愛好,要主動學習。不僅要學會書本上的知識,更要掌握學好知識的方法和技巧,這樣才能使自己在今后的科技道路上越走越遠!</p><p><b>  參考文獻</b></p><p>  [1] 王迎旭.單片機原理與應(yīng)用 [M].北京:機械工業(yè)出版社,2012[2]

37、60;三恒星科技.MCS-51 單片機原理與應(yīng)用實例 [M].北京:電子工業(yè)出版社,2008[3] 王守中.51單片機開發(fā)入門與典型實例 [M].北京:人民郵電出版社,2007[4] 李全利.單片機原理及應(yīng)用技術(shù) [M].北京:高等教育出版社,2004[5] 林毓梁.單片機原理及應(yīng)用 [M].北京:機械工業(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(); //鍵盤函數(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ù)</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ù)</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() //鍵盤函數(shù)</p><p><b>  { </b></p><p>  if(hour_add==0) //時鐘加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、 //時鐘減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; //其余時間,直接跳轉(zhuǎn)</p><p><b>  }</b></p><p>  

90、if(bell==1) //鈴聲啟動</p><p><b>  { </b></p><p><b>  sound(); </b></p><p>  } </p><p><b>  }</b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論