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

下載本文檔

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

文檔簡介

1、<p>  《智能儀表課程設(shè)計》設(shè)計報告</p><p>  課題名稱 數(shù)字電子時鐘 </p><p>  姓名 </p><p>  學(xué)號 </p><p>  班級名稱 測控0801 <

2、;/p><p>  指導(dǎo)教師 </p><p><b>  二〇一一年九月</b></p><p><b>  目錄</b></p><p>  任務(wù)書-------------------------------------------------------

3、-1~2</p><p>  儀表的功能要求及性能指標(biāo)-------------------------------3</p><p><b>  硬件設(shè)計</b></p><p>  2.1 MCS-51單片機(jī)------------------------------------------4~5</p><p> 

4、 2.2LED驅(qū)動芯片ZLG7290--------------------------------5~7</p><p><b>  軟件設(shè)計</b></p><p>  3.1軟件設(shè)計功能需求--------------------------------------8</p><p>  3.2 軟件設(shè)計框圖---------------

5、---------------------------9~12</p><p>  設(shè)計實物圖---------------------------------------------------13</p><p>  課程設(shè)計總結(jié)------------------------------------------------14~15</p><p><b

6、>  附錄:</b></p><p>  6.1參考文獻(xiàn)------------------------------------------------16</p><p>  6.2器件清單------------------------------------------------16</p><p>  6.3設(shè)計程序-----------

7、--------------------------------------17~42</p><p>  《智能儀表課程設(shè)計》任務(wù)書</p><p><b>  一、課題名稱</b></p><p><b>  時鐘設(shè)計</b></p><p>  二、設(shè)計內(nèi)容及設(shè)計要求</p>&

8、lt;p>  1)由2個4位型數(shù)碼管組成,分別顯示時,分,秒,可以切換顯示年,月,日以及星期</p><p>  2)能夠隨時對時間日期進(jìn)行調(diào)整</p><p>  3)能夠隨時輸入定時鬧鐘</p><p>  4)定時時間到,鬧鐘發(fā)出信號</p><p>  5)具有整點報時功能</p><p>  6)鬧鐘提

9、醒信號為斷續(xù)形式,時間為1分鐘 </p><p><b>  時間安排</b></p><p><b>  第一周:</b></p><p>  星期一~星期二:布置任務(wù),熟悉資料,確定儀表的功能要求、性能指標(biāo)。熟悉實驗板原理圖和印刷板圖。</p><p>  星期三~星期五:進(jìn)行儀表的方案選擇,確

10、定主要芯片、工作方式、輸入輸出信號的接口方式、鍵盤和顯示方式、以及通信方式。進(jìn)行硬件設(shè)計和元器件選擇,畫出硬件原理圖。</p><p><b>  第二周:</b></p><p>  星期一~星期五:根據(jù)硬件原理圖,焊接硬件電路;測試硬件電路的功能;軟件設(shè)計,包括軟件需求說明、軟件結(jié)構(gòu)框圖、主要軟件功能模塊的流程圖;編寫程序。</p><p>

11、;<b>  第三周:</b></p><p>  星期一~星期三:調(diào)試程序,聯(lián)調(diào)軟件和硬件。</p><p>  星期四~星期五:寫課程設(shè)計報告。</p><p><b>  四、應(yīng)交成果</b></p><p><b>  應(yīng)交成果包括:</b></p>&l

12、t;p>  紙質(zhì)課程設(shè)計報告和電子文檔;</p><p>  硬件原理圖的Protel文件,程序;</p><p>  可以演示的硬件和軟件成果</p><p>  1儀表的功能要求、性能指標(biāo)要求</p><p><b>  1.1 初級要求:</b></p><p>  1)用單片機(jī)的定時

13、器產(chǎn)生1s的定時時間,作為秒計數(shù)時間</p><p>  2)當(dāng)1s產(chǎn)生時,秒計數(shù)加1,到60s時歸0并向分鐘進(jìn)1,分鐘到60時歸0并向時進(jìn)1,時到24時歸0并向日進(jìn)1,日通過計算當(dāng)時月份進(jìn)行計數(shù)</p><p>  3)開機(jī)時,顯示00-00-00,并開始計時。鬧鐘初始設(shè)置為00-00-00,日期為11-9-15-5,并開始計時。</p><p><b>

14、;  1.2 中級要求</b></p><p>  在以上基礎(chǔ)上,在單片機(jī)的p1.0--p1.3加入4個鍵</p><p>  p1.0 時間設(shè)置鍵,按一次對時進(jìn)行校對,按第二次對分進(jìn)行校對,第三次對秒進(jìn)行校對,再按一下正常顯示。</p><p>  P1.1 鬧鐘及日期設(shè)置鍵,按下后開始對鬧鐘進(jìn)行設(shè)置,按一,二,三次分別是對時,分,秒進(jìn)行設(shè)置四,五,六

15、,七次分別是對年,月,日,星期進(jìn)行設(shè)置,再次按下恢復(fù)正常顯示時間。</p><p>  3)P1.2 加鍵,時間設(shè)置或者鬧鈴設(shè)置時加鍵,每按一次加一。</p><p>  4)P1.3 顯示切換鍵,在時間正常顯示時,按下一次后,切換為顯示日期,再次按下則顯示時間。</p><p><b>  2硬件設(shè)計</b></p><p

16、>  2.1 MCS-51單片機(jī)</p><p>  MCS-51單片機(jī)的內(nèi)部總體結(jié)構(gòu)其基本特性如下:8位CPU、片內(nèi)振蕩器、4k字節(jié)ROM、128字節(jié)RAM、21個特殊功能寄存器、32根I/O線、可尋址的64k字節(jié)外部數(shù)據(jù)、程序存貯空間、2個16位定時器、計數(shù)器中斷結(jié)構(gòu):具有二個優(yōu)先級、五個中斷源一個全雙口串行口位尋址(即可尋找某位的內(nèi)容)功能,適于按位進(jìn)行邏輯運算的位處理器。除128字節(jié)RAM、4k字節(jié)

17、ROM和中斷、串行口及定時器模塊外,還有4組I/O口P0~P3,余下的就是CPU的全部組成。把4kROM換為EPROM就是8751的結(jié)構(gòu),如去掉ROM/EPROM部分即為8031,如果將ROM置換為Flash存貯器或EEPROM,或再省去某些I/O,即可得到51系列的派生品種,如89C51、AT89C2051等單片機(jī)。單片機(jī)各部分是通過內(nèi)部的總線有機(jī)地連接起來的。 </p><p>  1、運算器 運算器以完成二

18、進(jìn)制的算術(shù)/邏輯運算部件ALU為核心,再加上暫存器TMP、累加器ACC、寄存器B、程序狀態(tài)標(biāo)志寄存器PSW及布爾處理器。 </p><p>  2、控制器 控制器是CPU的神經(jīng)中樞,它包括定時控制邏輯電路、指令寄存器、譯碼器、地址指針DPTR及程序計數(shù)器PC、堆棧指針SP等。這里程序計數(shù)器PC是由16位寄存器構(gòu)成的計數(shù)器。要單片機(jī)執(zhí)行一個程序,就必須把該程序按順序預(yù)先裝入存儲器ROM的某個區(qū)域。單片機(jī)動作時應(yīng)按順

19、序一條條取出指令來加以執(zhí)行。 </p><p>  存儲器是單片機(jī)的又一個重要組成部分,每個存儲單元對應(yīng)一個地址,如256個單元共有256個地址,用兩位16進(jìn)制數(shù)表示,即存儲器的地址(00H~FFH)。 </p><p>  2.2LED驅(qū)動芯片ZLG7290B</p><p>  ZLG7290B 是廣州周立功單片機(jī)發(fā)展有限公司自行設(shè)計的數(shù)碼管顯示驅(qū)動及鍵盤掃描管

20、理芯片。能夠直接驅(qū)動8 位共陰式數(shù)碼管(或64 只獨立的LED),同時還可以掃描管理多達(dá)64 只按鍵。其中有8 只按鍵還可以作為功能鍵使用,就像電腦鍵盤上的Ctrl、Shift、Alt 鍵一樣。另外ZLG7290B 內(nèi)部還設(shè)置有連擊計數(shù)器,能夠使某鍵按下后不松手而連續(xù)有效。采用I2C 總線方式,與微控制器的接口僅需兩根信號線。該芯片為工業(yè)級芯片,抗干擾能力強(qiáng),在工業(yè)測控中已有大量應(yīng)用。</p><p>  附:Z

21、LG7290B 引腳功能表</p><p>  引腳序號 引腳名稱 功能描述</p><p>  1 SC/KR2 數(shù)碼管c 段/鍵盤行信號2</p><p>  2 SD/KR3 數(shù)碼管d 段/鍵盤行信號3</p><p>  3 DIG3/KC3 數(shù)碼管位選信號3/鍵盤列信號3</p><p>  4 DIG2/K

22、C2 數(shù)碼管位選信號2/鍵盤列信號2</p><p>  5 DIG1/KC1 數(shù)碼管位選信號1/鍵盤列信號1</p><p>  6 DIG0/KC0 數(shù)碼管位選信號0/鍵盤列信號0</p><p>  7 SE/KR4 數(shù)碼管e 段/鍵盤行信號4</p><p>  8 SF/KR5 數(shù)碼管f 段/鍵盤行信號5</p>&l

23、t;p>  9 SG/KR6 數(shù)碼管g 段/鍵盤行信號6</p><p>  10 DP/KR7 數(shù)碼管dp 段/鍵盤行信號7</p><p>  11 GND 接地12 DIG6/KC6 數(shù)碼管位選信號6/鍵盤列信號6</p><p>  13 DIG7/KC7 數(shù)碼管位選信號7/鍵盤列信號7</p><p>  14 INT 鍵盤中

24、斷請求信號,低電平(下降沿)有效</p><p>  15 RST 復(fù)位信號,低電平有效</p><p>  16 Vcc 電源,+3.3~5.5V</p><p>  17 OSC1 晶振輸入信號</p><p>  18 OSC2 晶振輸出信號</p><p>  19 SCL I2C 總線時鐘信號</p&g

25、t;<p>  20 SDA I2C 總線數(shù)據(jù)信號</p><p>  21 DIG5/KC5 數(shù)碼管位選信號5/鍵盤列信號5</p><p>  22 DIG4/KC4 數(shù)碼管位選信號4/鍵盤列信號4</p><p>  23 SA/KR0 數(shù)碼管a 段/鍵盤行信號0</p><p>  24 SB/KR1 數(shù)碼管b 段/鍵盤

26、行信號1</p><p><b>  總設(shè)計框圖</b></p><p><b>  3軟件設(shè)計</b></p><p>  3.1軟件設(shè)計功能需求</p><p>  1)用單片機(jī)的定時器產(chǎn)生1s的定時時間,作為秒計數(shù)時間</p><p>  2)當(dāng)1s產(chǎn)生時,秒計數(shù)加1,

27、到60s時歸0并向分鐘進(jìn)1,分鐘到60時歸0并向時進(jìn)1,時到24時歸0并向日進(jìn)1,日通過計算當(dāng)時月份進(jìn)行計數(shù)</p><p>  3)開機(jī)時,顯示00-00-00,并開始計時。鬧鐘初始設(shè)置為00-00-00,日期為11-9-05,并開始計時。</p><p>  3.2主要功能模塊的軟件框圖。</p><p><b>  T0中斷服務(wù)</b>&

28、lt;/p><p><b>  鍵盤掃描程序</b></p><p><b>  時鐘計時框圖</b></p><p><b>  總設(shè)計框圖</b></p><p><b>  實物圖</b></p><p><b>  課

29、程設(shè)計總結(jié)</b></p><p>  通過此次課程設(shè)計,使我更加扎實的掌握了有關(guān)單片機(jī)方面的知識,在設(shè)計過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經(jīng)驗不足。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。 過而能改,善莫大焉。在課程設(shè)計過程中,我們不斷發(fā)現(xiàn)錯誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢

30、測調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多問題,最后在老師的指導(dǎo)下,終于游逆而解。在今后社會的發(fā)展和學(xué)習(xí)實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收獲成功,收獲喜悅,也永遠(yuǎn)不可能得到社會及他人對你的認(rèn)可! 課程設(shè)計誠然

31、是一門專業(yè)課,給我很多專業(yè)知識以及專業(yè)技能上的提升,同時又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時,設(shè)計讓我感觸很深。使我對抽象的理論有了具體的認(rèn)識。通過這次課</p><p><b>  附錄</b></p><p><b>  6.1參考文獻(xiàn)</b></p><p>  《單片機(jī)電路

32、設(shè)計分析與制作》 機(jī)械工業(yè)出版社 周景潤</p><p>  《單片機(jī)系統(tǒng)設(shè)計與應(yīng)用實例》 機(jī)械工業(yè)出版社 韓志軍</p><p><b>  6.2 器件清單</b></p><p><b>  ZLG7290</b></p><p>  STC89C51單片機(jī)</p><p

33、><b>  MAX232</b></p><p><b>  4位數(shù)碼管2個</b></p><p><b>  按鈕4個</b></p><p><b>  面板</b></p><p><b>  蜂鳴器</b></

34、p><p><b>  導(dǎo)線若干 </b></p><p><b>  電阻,電容若干</b></p><p><b>  6.3 源程序</b></p><p>  #include <reg52.h></p><p>  #include

35、"I2C.h"</p><p>  #include "ZLG7290.h"</p><p>  #define tl 0xba;</p><p>  #define th 0x3c;</p><p>  sbit time=P1^0;//時間設(shè)置</p><p>

36、  sbit timer=P1^1;//鬧鐘設(shè)置</p><p>  sbit add=P1^2;//加</p><p>  sbit dec=P1^3;//減</p><p>  sbit speaker=P3^5;//鬧鐘輸出</p><p>  bit disp_sd;

37、//數(shù)碼管閃動顯示標(biāo)志位</p><p>  bit disp_ms;//數(shù)碼管顯示時間/鬧鐘標(biāo)志位</p><p>  bit disp_sdt;//數(shù)碼管閃動間隔反轉(zhuǎn)標(biāo)志位</p><p>  bit zhengdian=0;//整點報時標(biāo)志位</p><p>  bit b=0,

38、a=0;</p><p>  unsigned char time_cc,timer_cc;//調(diào)時計數(shù)器</p><p>  unsigned char count0,count1,second,minit,hour;//時間時分秒</p><p>  unsigned char second1,minit1,hour1;//鬧鐘時分秒&

39、lt;/p><p>  unsigned char year,month,day,week,n;</p><p>  unsigned char hour_zd;//整點小時記錄</p><p>  void delay(void)</p><p><b>  {</b></p><p&

40、gt;  unsigned int i;</p><p>  for(i=0;i<200;i++);</p><p><b>  }</b></p><p><b>  /*</b></p><p>  函數(shù):SystemInit()</p><p><b>

41、  功能:系統(tǒng)初始化</b></p><p><b>  */</b></p><p>  void SystemInit()</p><p><b>  {</b></p><p>  I2C_Init();</p><p>  TMOD = 0x01;<

42、/p><p>  Delay();//等待ZLG7290復(fù)位完畢</p><p><b>  }</b></p><p>  void display(void)</p><p><b>  {</b></p><p>  unsigned dat; </p>

43、<p><b>  if(a==0)</b></p><p><b>  {</b></p><p>  if(disp_ms==0)</p><p><b>  {</b></p><p>  if(disp_sd==0)</p><p>&

44、lt;b>  {</b></p><p>  dat=hour/10;</p><p>  ZLG7290_Download(7,0,0,dat);</p><p>  dat=hour%10;</p><p>  ZLG7290_Download(6,0,0,dat);</p><p>  ZLG7

45、290_Download(5,0,0,31);</p><p>  dat=minit/10;</p><p>  ZLG7290_Download(4,0,0,dat);</p><p>  dat=minit%10;</p><p>  ZLG7290_Download(3,0,0,dat);</p><p>  

46、ZLG7290_Download(2,0,0,31);</p><p>  dat=second/10;</p><p>  ZLG7290_Download(1,0,0,dat);</p><p>  dat=second%10;</p><p>  ZLG7290_Download(0,0,0,dat);</p><p

47、><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(time_cc==0x01)</p><p><b>  {</b></p><p> 

48、 dat=hour/10;</p><p>  ZLG7290_Download(7,0,1,dat);</p><p>  dat=hour%10;</p><p>  ZLG7290_Download(6,0,1,dat);</p><p>  ZLG7290_Download(5,0,0,31);</p><p&g

49、t;<b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  dat=hour/10;</p><p>  ZLG7290_Download(7,0,0,dat);</p><p>

50、  dat=hour%10;</p><p>  ZLG7290_Download(6,0,0,dat);</p><p>  ZLG7290_Download(5,0,0,31);</p><p><b>  }</b></p><p>  if(time_cc==0x02)</p><p>

51、<b>  {</b></p><p>  dat=minit/10;</p><p>  ZLG7290_Download(4,0,1,dat);</p><p>  dat=minit%10;</p><p>  ZLG7290_Download(3,0,1,dat);</p><p> 

52、 ZLG7290_Download(2,0,0,31);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  dat=minit/10;</p><p>  Z

53、LG7290_Download(4,0,0,dat);</p><p>  dat=minit%10;</p><p>  ZLG7290_Download(3,0,0,dat);</p><p>  ZLG7290_Download(2,0,0,31);</p><p><b>  }</b></p>&

54、lt;p>  if(time_cc==0x03)</p><p><b>  {</b></p><p>  dat=second/10;</p><p>  ZLG7290_Download(1,0,1,dat);</p><p>  dat=second%10;</p><p> 

55、 ZLG7290_Download(0,0,1,dat);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  dat=second/10;</p><p> 

56、 ZLG7290_Download(1,0,0,dat);</p><p>  dat=second%10;</p><p>  ZLG7290_Download(0,0,0,dat);</p><p><b>  }</b></p><p><b>  }</b></p><p

57、><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  if(b==0)</b></p><p><b>  {</b></p>

58、<p>  if(disp_sd==0)</p><p><b>  {</b></p><p>  dat=hour1/10;</p><p>  ZLG7290_Download(7,0,0,dat);</p><p>  dat=hour1%10;</p><p>  ZLG729

59、0_Download(6,0,0,dat);</p><p>  ZLG7290_Download(5,0,0,31);</p><p>  dat=minit1/10;</p><p>  ZLG7290_Download(4,0,0,dat);</p><p>  dat=minit1%10;</p><p>  

60、ZLG7290_Download(3,0,0,dat);</p><p>  ZLG7290_Download(2,0,0,31);</p><p>  dat=second1/10;</p><p>  ZLG7290_Download(1,0,0,dat);</p><p>  dat=second1%10;</p><

61、;p>  ZLG7290_Download(0,0,0,dat);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(timer_cc==0x01)</p>

62、<p><b>  {</b></p><p>  dat=hour1/10;</p><p>  ZLG7290_Download(7,0,1,dat);</p><p>  dat=hour1%10;</p><p>  ZLG7290_Download(6,0,1,dat);</p>&l

63、t;p>  ZLG7290_Download(5,0,0,31);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  dat=hour1/10;</p><

64、p>  ZLG7290_Download(7,0,0,dat);</p><p>  dat=hour1%10;</p><p>  ZLG7290_Download(6,0,0,dat);</p><p>  ZLG7290_Download(5,0,0,31);</p><p><b>  }</b></

65、p><p>  if(timer_cc==0x02)</p><p><b>  {</b></p><p>  dat=minit1/10;</p><p>  ZLG7290_Download(4,0,1,dat);</p><p>  dat=minit1%10;</p><

66、;p>  ZLG7290_Download(3,0,1,dat);</p><p>  ZLG7290_Download(2,0,0,31);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b>&l

67、t;/p><p>  dat=minit1/10;</p><p>  ZLG7290_Download(4,0,0,dat);</p><p>  dat=minit1%10;</p><p>  ZLG7290_Download(3,0,0,dat);</p><p>  ZLG7290_Download(2,0,0,

68、31);</p><p><b>  }</b></p><p>  if(timer_cc==0x03)</p><p><b>  {</b></p><p>  dat=second1/10;</p><p>  ZLG7290_Download(1,0,1,dat)

69、;</p><p>  dat=second1%10;</p><p>  ZLG7290_Download(0,0,1,dat);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b&g

70、t;</p><p>  dat=second/10;</p><p>  ZLG7290_Download(1,0,0,dat);</p><p>  dat=second%10;</p><p>  ZLG7290_Download(0,0,0,dat);</p><p><b>  }</b>

71、;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(disp_sd==0)</p&

72、gt;<p><b>  {</b></p><p>  dat=year/10;</p><p>  ZLG7290_Download(7,0,0,dat);</p><p>  dat=year%10;</p><p>  ZLG7290_Download(6,0,0,dat);</p>

73、<p>  dat=month/10;</p><p>  ZLG7290_Download(5,0,0,dat);</p><p>  dat=month%10;</p><p>  ZLG7290_Download(4,0,0,dat);</p><p>  dat=day/10;</p><p>  Z

74、LG7290_Download(3,0,0,dat);</p><p>  dat=day%10;</p><p>  ZLG7290_Download(2,0,0,dat);</p><p>  ZLG7290_Download(1,0,0,31);</p><p><b>  dat=week;</b></p&

75、gt;<p>  ZLG7290_Download(0,0,0,dat);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(timer_cc==0x04)<

76、;/p><p><b>  {</b></p><p>  dat=year/10;</p><p>  ZLG7290_Download(7,0,1,dat);</p><p>  dat=year%10;</p><p>  ZLG7290_Download(6,0,1,dat);</p&g

77、t;<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  dat=year/10;</p><p>  ZLG7290_Download(7,0,0,dat);</p>

78、<p>  dat=year%10;</p><p>  ZLG7290_Download(6,0,0,dat);</p><p><b>  } </b></p><p>  if(timer_cc==0x05)</p><p><b>  {</b></p>

79、<p>  dat=month/10;</p><p>  ZLG7290_Download(5,0,1,dat);</p><p>  dat=month%10;</p><p>  ZLG7290_Download(4,0,1,dat);</p><p><b>  }</b></p>&

80、lt;p><b>  else</b></p><p><b>  {</b></p><p>  dat=month/10;</p><p>  ZLG7290_Download(5,0,0,dat);</p><p>  dat=month%10;</p><p>

81、  ZLG7290_Download(4,0,0,dat);</p><p><b>  }</b></p><p>  if(timer_cc==0x06)</p><p><b>  {</b></p><p>  dat=day/10;</p><p>  ZLG72

82、90_Download(3,0,1,dat);</p><p>  dat=day%10;</p><p>  ZLG7290_Download(2,0,1,dat);</p><p><b>  }</b></p><p><b>  else</b></p><p>&l

83、t;b>  {</b></p><p>  dat=day/10;</p><p>  ZLG7290_Download(3,0,0,dat);</p><p>  dat=day%10;</p><p>  ZLG7290_Download(2,0,0,dat);</p><p><b>

84、  }</b></p><p>  if(timer_cc==0x07)</p><p><b>  {</b></p><p>  ZLG7290_Download(1,0,0,31);</p><p><b>  dat=week;</b></p><p> 

85、 ZLG7290_Download(0,0,1,dat);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  ZLG7290_Download(1,0,0,31);</p>

86、;<p><b>  dat=week;</b></p><p>  ZLG7290_Download(0,0,0,dat);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b&g

87、t;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  dat=year/10;</p&g

88、t;<p>  ZLG7290_Download(7,0,0,dat);</p><p>  dat=year%10;</p><p>  ZLG7290_Download(6,0,0,dat);</p><p>  dat=month/10;</p><p>  ZLG7290_Download(5,0,0,dat);<

89、/p><p>  dat=month%10;</p><p>  ZLG7290_Download(4,0,0,dat);</p><p>  dat=day/10;</p><p>  ZLG7290_Download(3,0,0,dat);</p><p>  dat=day%10;</p><p&

90、gt;  ZLG7290_Download(2,0,0,dat);</p><p>  ZLG7290_Download(1,0,0,31);</p><p><b>  dat=week;</b></p><p>  ZLG7290_Download(0,0,0,dat);</p><p><b>  }&l

91、t;/b></p><p><b>  }</b></p><p>  void key_scan(void)</p><p><b>  {</b></p><p>  unsigned int i;</p><p>  if(time==0)</p>

92、<p><b>  {</b></p><p>  speaker=1;</p><p>  for(i=0;i<10;i++)</p><p>  display();</p><p>  if(time==0)</p><p><b>  {</b>&l

93、t;/p><p><b>  TR0=0;</b></p><p><b>  do </b></p><p>  display();</p><p>  while(time==0);</p><p>  disp_sd=1;</p><p>  di

94、sp_ms=0;</p><p>  time_cc++;</p><p>  if(time_cc==4)</p><p><b>  {</b></p><p><b>  TR0=1;</b></p><p>  time_cc=0;</p><p&

95、gt;  disp_sd=0;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(timer==0)</p><p><b>  {</b&g

96、t;</p><p>  speaker=1;</p><p>  for(i=0;i<10;i++)</p><p><b>  {</b></p><p>  display();</p><p><b>  }</b></p><p>  

97、if(timer==0)</p><p><b>  { </b></p><p><b>  do </b></p><p>  display();</p><p>  while(timer==0);</p><p>  disp_sd=1;//數(shù)碼管閃動顯示

98、</p><p>  disp_ms=1;//顯示模式為鬧鐘時間</p><p>  timer_cc++;</p><p>  if(timer_cc==4)</p><p><b>  {b=1;}</b></p><p>  if(timer_cc==8)</p>&

99、lt;p><b>  {</b></p><p><b>  b=0;</b></p><p>  timer_cc=0;</p><p>  disp_sd=0;//閃動關(guān)閉</p><p>  disp_ms=0;//切換到時間模式</p><p>

100、;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(dec==0)</p><p><b>  {</b></p><p>  for(i=0;i<

101、;10;i++)</p><p><b>  {</b></p><p>  display();</p><p><b>  }</b></p><p><b>  do </b></p><p>  display();</p><

102、;p>  while(dec==0);</p><p><b>  a=~a;</b></p><p><b>  }</b></p><p>  if(add==0)</p><p><b>  {</b></p><p>  for(i=0;i

103、<10;i++)</p><p><b>  {</b></p><p>  display();</p><p><b>  }</b></p><p>  if(add==0)</p><p><b>  {</b></p>

104、<p><b>  do </b></p><p>  display(); </p><p>  while(add==0);</p><p>  if(disp_ms==0)</p><p><b>  {</b></p><p>  switch(time_c

105、c)</p><p><b>  {</b></p><p>  case (0x01): { hour++; if(hour>23) hour=0; break;}</p><p>  case (0x02): { minit++; if(minit>59) minit=0; break;}</p><p&

106、gt;  case (0x03): { second++;if(second>59) second=0; break;}</p><p>  default: break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  

107、else</b></p><p><b>  {</b></p><p>  switch(timer_cc)</p><p><b>  {</b></p><p>  case (0x01): {if(hour1==24) hour1=0; else hour1++; break;}

108、</p><p>  case (0x02): {if(minit1==60) minit1=0; else minit1++; break;}</p><p>  case (0x03): {if(second1==60) second1=0; else second1++; break;}</p><p>  case (0x04): {year++;break

109、;} </p><p>  case (0x05): {if(month==12) month=1;else month++;break;} </p><p>  case (0x06): {if(day==31) day=1;else day++;break;}</p><p>  case (0x07): {if(week==7) week=1;else we

110、ek++;break;}</p><p>  default:break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>

111、;</p><p><b>  }</b></p><p>  void timer_alam(void)</p><p><b>  {</b></p><p>  if((disp_ms==0)&&(disp_sd==0)) //正常運行時間的狀態(tài)下</p&

112、gt;<p><b>  {</b></p><p>  if((hour1==hour)&&(minit1==minit))</p><p><b>  {</b></p><p>  speaker=disp_sdt;</p><p><b>  }<

113、;/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(zhengdian==1)</p><p><b>  {</b></p><p>  speaker=disp_sdt;&l

114、t;/p><p><b>  }</b></p><p><b>  else</b></p><p>  speaker=1;</p><p><b>  }</b></p><p><b>  }</b></p>&l

115、t;p><b>  }</b></p><p>  //******************************主函數(shù)*************************************************</p><p>  void main(void)</p><p><b>  {</b><

116、;/p><p>  second=0x00; //時間初始化為00:00:00</p><p><b>  minit=59;</b></p><p><b>  hour=23;</b></p><p>  second1=0x00; </p><p>  minit1=0x0

117、0;</p><p><b>  hour1=12;</b></p><p><b>  year=11;</b></p><p><b>  month=9;</b></p><p><b>  day=16;</b></p><p&

118、gt;<b>  week=5;</b></p><p>  count0=0x00;</p><p>  count1=0x00;</p><p>  TMOD=0x11;</p><p><b>  TL0=tl;</b></p><p><b>  TH0=t

119、h;</b></p><p><b>  TL1=tl;</b></p><p><b>  TH1=th;</b></p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><

120、;p><b>  ET1=1;</b></p><p><b>  TR0=1;</b></p><p><b>  TR1=1;</b></p><p>  SystemInit();</p><p><b>  while(1)</b><

121、/p><p><b>  { </b></p><p>  key_scan();</p><p>  display();</p><p>  timer_alam();</p><p><b>  }</b></p><p><b>  

122、}</b></p><p>  //*********************************中斷服務(wù)函數(shù)**************************************</p><p>  /***********************************************************************</p>

123、<p>  * 函數(shù)名稱:leap()</p><p>  * 功 能:計算二月份天數(shù)</p><p>  * 入口參數(shù):year</p><p><b>  * 出口參數(shù):無</b></p><p>  **************************************************

124、*****************/ </p><p>  unsigned leap(unsigned year) //判斷是否閏年并返回二月份的天數(shù)</p><p>  { //閏年返回29,平年返回28</p><p>  if(year%4==0)</p>&l

125、t;p>  return 29;</p><p>  else return 28;</p><p><b>  }</b></p><p>  /*******************************************************************</p><p>  * 函數(shù)名稱

126、:mon()</p><p>  * 功 能:計算并返回每個月的天數(shù)</p><p>  * 入口參數(shù):month</p><p><b>  * 出口參數(shù):無</b></p><p>  ***************************************************************

127、****/ </p><p>  unsigned mon(unsigned month) //計算并返回每個月的天數(shù)</p><p><b>  {</b></p><p>  switch(month)</p><p><b>  {</b></p><p

128、><b>  case 1:</b></p><p><b>  case 3:</b></p><p><b>  case 5:</b></p><p><b>  case 7:</b></p><p><b>  case 8:&l

129、t;/b></p><p><b>  case 10:</b></p><p>  case 12:return 31;break; //1,3,5,7,8,10,12月每月31天</p><p><b>  case 4:</b></p><p><b>  case

130、6:</b></p><p><b>  case 9:</b></p><p>  case 11:return 30;break; //4,6,9,11月每月30天</p><p>  case 2: return leap(year);break;//返回二月份的天數(shù)</p><p>  defau

131、lt:break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //*********************************中斷服務(wù)函數(shù)**************************************</p><p>  

132、void time0_int(void) interrupt 1 </p><p><b>  {</b></p><p><b>  TL0=tl;</b></p><p><b>  TH0=th;</b></p><p><b>  TR0=1;</b&

133、gt;</p><p><b>  count0++;</b></p><p>  if(count0==20)</p><p><b>  {</b></p><p><b>  count0=0;</b></p><p>  second++;&l

134、t;/p><p>  if(hour_zd==second)//報時到小時數(shù)后關(guān)閉報時標(biāo)志。</p><p>  zhengdian=0;</p><p>  if(second==60)</p><p><b>  {</b></p><p><b>  second=0;&

135、lt;/b></p><p><b>  minit++;</b></p><p>  if(minit==60)</p><p><b>  {</b></p><p>  zhengdian=1;//開啟整點報時</p><p><b>  min

136、it=0;</b></p><p><b>  hour++;</b></p><p>  hour_zd=hour;</p><p>  if(hour_zd>12)</p><p>  hour_zd=hour_zd-12;//12小時制報時方式</p><p>  if

137、(hour==24)</p><p><b>  {</b></p><p><b>  hour=0;</b></p><p><b>  day++;</b></p><p><b>  week++;</b></p><p>

138、  if(week==7)</p><p><b>  {</b></p><p><b>  week=1;</b></p><p><b>  week++;</b></p><p><b>  }</b></p><p>  

139、n=mon(month);</p><p><b>  if(day>n)</b></p><p><b>  {</b></p><p><b>  day=1;</b></p><p><b>  month++;</b></p>

140、<p>  if(month==13)</p><p><b>  {</b></p><p><b>  month=1;</b></p><p><b>  year++;</b></p><p><b>  }</b></p>

141、<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><

142、p><b>  }</b></p><p>  //*********************************中斷服務(wù)函數(shù)**************************************</p><p>  void time1_int(void) interrupt 3 </p><p><b>  {&

143、lt;/b></p><p><b>  TL1=tl;</b></p><p><b>  TH1=th;</b></p><p><b>  TR1=1;</b></p><p><b>  count1++;</b></p>&l

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論