萬(wàn)年歷畢業(yè)設(shè)計(jì)---基于stc89c52萬(wàn)年歷的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(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>  畢業(yè)論文</b></p><p>  基于STC89C52萬(wàn)年歷的設(shè)計(jì)</p><p>  姓 名: X X X </p><p>  指導(dǎo)教師: X X </p><p>  專 業(yè): xxxxxxxxxxx </p>

2、<p>  班 級(jí): xxx </p><p>  20xx年xx月xx日</p><p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p><b>  前 言2</b></p>

3、<p>  1. 系統(tǒng)基本設(shè)計(jì)思路3</p><p>  2. 單元電路方案論證3</p><p>  2.1 控制器模塊3</p><p>  2.2 計(jì)時(shí)模塊3</p><p>  2.3 顯示模塊3</p><p>  2.4 最終方案4</p><p>

4、  3. 主要芯片介紹4</p><p>  3.1 STC89C52單片機(jī)4</p><p>  3.2 DS12C887時(shí)鐘芯片5</p><p>  4. 程序流程圖6</p><p><b>  結(jié) 論7</b></p><p><b>  參考文獻(xiàn)8<

5、;/b></p><p><b>  致 謝9</b></p><p>  附錄 1 原理圖10</p><p>  附錄 2 主要源程序11</p><p>  基于STC89C52萬(wàn)年歷的設(shè)計(jì)</p><p>  摘 要:本設(shè)計(jì)采用STC89C52單片機(jī)作為主控制器,用DS12

6、C887時(shí)鐘芯片計(jì)時(shí)、DS18B20檢測(cè)溫度,單片機(jī)通過(guò)時(shí)鐘芯片獲取時(shí)間數(shù)據(jù)、DS18B20采集溫度信號(hào),處理后把時(shí)間和溫度數(shù)據(jù)通過(guò)4-16線譯碼器和鎖存器送給15位共陰數(shù)碼管同步顯示年、月、日、時(shí)、分、星期和溫度。該萬(wàn)年歷設(shè)有三個(gè)按鍵:S1、S2和S3鍵,使之具備了校時(shí)功能。 </p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī),DS12C887,譯碼器,數(shù)碼管</p><p><b>  前

7、 言</b></p><p>  隨著微電子技術(shù)和超大規(guī)模集成電路技術(shù)的不斷發(fā)展 ,家用電子產(chǎn)品種類日益豐富 ,數(shù)字顯示的萬(wàn)年歷已經(jīng)越來(lái)越流行。</p><p>  單片機(jī)是在集成電路芯片上集成了各種元件的微型計(jì)算機(jī),這些元件包括中央處理器CPU、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)、時(shí)鐘部件的集成和I/O接口電路。由于單片機(jī)具有體積小、價(jià)格低、可靠性高

8、、開發(fā)應(yīng)用方便等特點(diǎn)因此在現(xiàn)代電子技術(shù)和工業(yè)領(lǐng)域應(yīng)用較為廣泛,在智能儀表中單片機(jī)是應(yīng)用最多、最活躍的領(lǐng)域之一。在控制領(lǐng)域中,現(xiàn)如今人們更注意計(jì)算機(jī)的低成本、小體積、運(yùn)行的可靠性和控制的靈活性。</p><p>  時(shí)鐘芯片DS12C887自帶晶振和電池,計(jì)時(shí)精度高,在沒(méi)有外部電源的情況下可工作10年,可計(jì)算2100年前的年,月,日,時(shí),分,秒,星期七種日歷信息,并帶有閏年補(bǔ)償功能。LED數(shù)碼管以其控制簡(jiǎn)單,顯示清

9、晰,成本低等優(yōu)點(diǎn)而倍受歡迎。</p><p>  為此設(shè)計(jì)了計(jì)時(shí)準(zhǔn)確,成本低廉的萬(wàn)年歷。</p><p>  1. 系統(tǒng)基本設(shè)計(jì)思路</p><p>  萬(wàn)年歷是一種用數(shù)字電路記錄時(shí)間的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更長(zhǎng)的使用壽命。而且可以記錄年、月、日、星期等信息。</p><p>  本設(shè)計(jì)采用STC8

10、9C52單片機(jī)作為主控制器,以DS12C887時(shí)鐘芯片計(jì)時(shí)、DS18B20采集溫度,鎖存器74HC573分別鎖存位選和段選信號(hào),通過(guò)4-16線譯碼器74HC154做位選,驅(qū)動(dòng)15位共陰數(shù)碼管同步顯示日歷、時(shí)間和溫度信息。并且可以通過(guò)按鍵修改時(shí)鐘日歷信息。 </p><p>  2. 單元電路方案論證</p><p>  根據(jù)設(shè)計(jì)要求,本系統(tǒng)主要由控制器模塊、顯示模塊構(gòu)成。為較好的實(shí)現(xiàn)各模塊

11、的功能,我們分別設(shè)計(jì)了幾種方案并分別進(jìn)行了論證。</p><p><b>  2.1 控制器模塊</b></p><p>  方案1:采用51系列單片機(jī)作為系統(tǒng)控制器</p><p>  單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度大,可用軟件編程實(shí)現(xiàn)各種算法和邏輯控制。由于其功耗低、體積較小、技術(shù)成熟和成本低等優(yōu)點(diǎn),在各個(gè)領(lǐng)域應(yīng)用廣泛。而且抗干

12、擾性能好。</p><p>  方案2:采用凌陽(yáng)系列單片機(jī)作為系統(tǒng)的控制器</p><p>  凌陽(yáng)系列單片機(jī)可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,模塊大,密度高,它將所有器件集成在一塊芯片上,減少了體積,提高了穩(wěn)定性。凌陽(yáng)系列單片機(jī)提高了系統(tǒng)的處理速度,適合作為大規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。</p><p>  因51單片機(jī)價(jià)格比凌陽(yáng)系列低得多,且本設(shè)計(jì)不需要很高的處理速度,從

13、經(jīng)濟(jì)和方便使用角度考慮,本設(shè)計(jì)選擇了方案1。</p><p><b>  2.2 計(jì)時(shí)模塊</b></p><p>  方案1:采用DS1302為計(jì)時(shí)時(shí)鐘芯片</p><p>  該芯片是串行電路,與單片機(jī)接口簡(jiǎn)單,但需另備電池和32.768kHz晶振,因焊接工藝和晶振質(zhì)量等原因會(huì)導(dǎo)致精度降低。</p><p>  方案

14、2:采用DS12C887為計(jì)時(shí)時(shí)鐘芯片</p><p>  該芯片與單片機(jī)采用8位并口通信,傳遞信息速度快。自帶有鋰電池和晶振,外部掉電后,其內(nèi)部時(shí)間信息還能夠保持10年之久,因電路被封裝在一起,可以保證很高的精度和抗干擾能力。而且芯片功能豐富,可以通過(guò)內(nèi)部寄存器設(shè)置鬧鐘,并產(chǎn)生鬧鐘中斷。</p><p>  綜合考慮,本設(shè)計(jì)采用DS12C887作為計(jì)時(shí)時(shí)鐘。</p><

15、;p><b>  2.3 顯示模塊</b></p><p>  方案1:采用LED數(shù)碼管</p><p>  采用LED數(shù)碼管這種方案。雖然顯示的內(nèi)容有限,但是也可以顯示數(shù)字和幾個(gè)英文字母,在這個(gè)設(shè)計(jì)中已經(jīng)足夠了,并且價(jià)格比液晶字符式要低的多,為了控制設(shè)計(jì)制作的成本,在此設(shè)計(jì)中選用LED數(shù)碼管顯示。</p><p>  方案2:采用液晶字

16、符顯示器</p><p>  顯示用液晶字符式,可以用軟件達(dá)到很好的控制,硬件不復(fù)雜,液晶字符顯示器可以顯示很豐富的內(nèi)容,但是液晶字符式價(jià)格昂貴,在本設(shè)計(jì)中不需要用到復(fù)雜的顯示內(nèi)容,因此放棄了此方案。</p><p>  從經(jīng)濟(jì)的角度考慮,本設(shè)計(jì)選擇了方案1。</p><p><b>  2.4 最終方案</b></p><

17、p>  經(jīng)過(guò)反復(fù)論證,最終確定了如下方案:</p><p>  (1)采用STC89C52單片機(jī)作為主控制器。</p><p>  (2)采用DS12C887作為計(jì)時(shí)時(shí)鐘。</p><p>  (3)采用LED數(shù)碼管作為顯示器。</p><p><b>  3. 主要芯片介紹</b></p><

18、p>  3.1 STC89C52單片機(jī)</p><p>  51系列單片機(jī)的引腳配置如圖1所示。主要包括P0、P1、P2、P3口以及讀寫功能輸出,時(shí)鐘輸入端等。</p><p>  圖1 STC89C52單片機(jī)引腳圖</p><p>  3.1.1 最小系統(tǒng)設(shè)計(jì)</p><p>  最小系統(tǒng)包括單片機(jī)及其所需的必要的電源、時(shí)鐘、復(fù)位等部

19、件,能使單片機(jī)始終處于正常的運(yùn)行狀態(tài)。電源、時(shí)鐘等電路是使單片機(jī)能運(yùn)行的必備條件,可以將最小系統(tǒng)作為應(yīng)用系統(tǒng)的核心部分,通過(guò)對(duì)其進(jìn)行存儲(chǔ)器擴(kuò)展、A/D擴(kuò)展等,使單片機(jī)完成較復(fù)雜的功能。</p><p>  STC89C52是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡(jiǎn)單﹑可靠。用STC89C52單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可,結(jié)構(gòu)如圖2所示,由于集成度的限制,

20、最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。</p><p>  圖2 單片機(jī)最小系統(tǒng)原理框圖</p><p>  3.1.2 時(shí)鐘電路</p><p>  STC89C52單片機(jī)的時(shí)鐘信號(hào)通常有兩種方式產(chǎn)生:一是內(nèi)部時(shí)鐘方式,二是外部時(shí)鐘方式。內(nèi)部時(shí)鐘方式如圖3所示。在STC89C52單片機(jī)內(nèi)部有一振蕩電路,只要在單片機(jī)的XTAL1(18)和XTAL2(19)引腳外接

21、石英晶體(簡(jiǎn)稱晶振),就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5~30pF,典型值為30pF。晶振CYS的振蕩頻率范圍在1.2~12MHz間選擇,典型值為12MHz和6MHz。</p><p>  圖3 STC89C52內(nèi)部時(shí)鐘電路</p><p>  3.1.3 復(fù)位電路</p><p>  當(dāng)在ST

22、C89C52單片機(jī)的RST引腳引入高電平并保持2個(gè)機(jī)器周期時(shí),單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài))。</p><p>  復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。</p><p>  最簡(jiǎn)單的上電自動(dòng)復(fù)位電路中上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充放電來(lái)實(shí)現(xiàn)的。只要Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。</p>

23、<p>  除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。本設(shè)計(jì)就是用的按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過(guò)RST(9)端與電源Vcc接通而實(shí)現(xiàn)的。按鍵手動(dòng)復(fù)位電路見圖4。時(shí)鐘頻率用11.0592MHZ時(shí)C取10uF,R取10kΩ。</p><p>  圖4 STC89C52 復(fù)位電路</p><p>  3.2 DS12C887時(shí)鐘芯片</p&

24、gt;<p>  DS12C887實(shí)時(shí)時(shí)鐘芯片功能豐富,可以用來(lái)直接代替IBM PC上的時(shí)鐘日歷芯片DS12887,同時(shí),它的管腳也和MC146818B、DS12887相兼容。</p><p>  由于DS12C887能夠自動(dòng)產(chǎn)生世紀(jì)、年、月、日、時(shí)、分、秒等時(shí)間信息,其內(nèi)部又增加了世紀(jì)寄存器,從而利用硬件電路解決子“千年”問(wèn)題; DS12C887中自帶有鋰電池,外部掉電時(shí),其內(nèi)部時(shí)間信息還能夠保持

25、10年之久;對(duì)于一天內(nèi)的時(shí)間記錄,有12小時(shí)制和24小時(shí)制兩種模式。在12小時(shí)制模式中,用AM和PM區(qū)分上午和下午;時(shí)間的表示方法也有兩種,一種用二進(jìn)制數(shù)表示,一種是用BCD碼表示;DS12C887中帶有128字節(jié) RAM,其中有11字節(jié)RAM用來(lái)存儲(chǔ)時(shí)間信息,4字節(jié)RAM用來(lái)存儲(chǔ)DS12C887的控制信息,稱為控制寄存器,113字節(jié)通用RAM使用戶使用;此外用戶還可對(duì)DS12C887進(jìn)行編程以實(shí)現(xiàn)多種方波輸出,并可對(duì)其內(nèi)部的三路中斷通

26、過(guò)軟件進(jìn)行屏蔽。引腳圖如圖5所示。</p><p>  圖5 DS12C887引腳圖</p><p><b>  4.程序流程圖</b></p><p>  程序流程圖如圖6所示:</p><p><b>  結(jié) 論</b></p><p>  本設(shè)計(jì)在調(diào)試過(guò)程中仿真顯示正

27、常,在實(shí)際中溫度顯示卻不正常,查了好久,終于在老師的幫助下發(fā)現(xiàn)是程序的問(wèn)題,經(jīng)過(guò)改正,溫度顯示正常。這時(shí)發(fā)現(xiàn)數(shù)碼管顯示亮度有點(diǎn)低且閃爍嚴(yán)重,后來(lái)加了三極管驅(qū)動(dòng)電路,將掃描數(shù)碼管時(shí)間改短,顯示的問(wèn)題終于解決了。</p><p>  通過(guò)對(duì)自己在大學(xué)兩年時(shí)間里所學(xué)的知識(shí)的回顧,并充分發(fā)揮對(duì)所學(xué)知識(shí)的理解和對(duì)畢業(yè)設(shè)計(jì)的思考及書面表達(dá)能力,最終完成了本設(shè)計(jì)。這為自己今后進(jìn)一步深化學(xué)習(xí),積累了一定寶貴的經(jīng)驗(yàn)。撰寫論文的過(guò)程

28、也是專業(yè)知識(shí)的學(xué)習(xí)過(guò)程,它使我運(yùn)用已有的專業(yè)基礎(chǔ)知識(shí),對(duì)其進(jìn)行設(shè)計(jì),分析和解決一個(gè)理論問(wèn)題或?qū)嶋H問(wèn)題,把知識(shí)轉(zhuǎn)化為能力的實(shí)際訓(xùn)練。培養(yǎng)了我運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 張藝剛主編.單片機(jī)原理與接口技術(shù)[M] 北京:北京航空航天大學(xué)出版社,2005-9-1 </p><p&

29、gt;  [2] 胡宴如主編.模擬電子技術(shù)[M] 高等教育出版社,2008-2-1 </p><p>  [3] 趙利主編.數(shù)字電子技術(shù)[M] 冶金工業(yè)出版社,2009-1-1 </p><p>  [4] 李華.單片機(jī)C語(yǔ)言編程[M].北京:北京航空航天大學(xué)出版社,2005-8-1.</p><p><b>  致 謝</b></p&

30、gt;<p>  這次畢業(yè)設(shè)計(jì)得到了很多人的幫助,其中老師對(duì)我的關(guān)心和支持尤為重要,每次遇到難題,我首先想到的就是向老師尋求幫助。另外,她嚴(yán)謹(jǐn)?shù)淖黠L(fēng)使我的論文即使在謹(jǐn)小細(xì)微處也給予了糾正,讓我的論文無(wú)論是結(jié)構(gòu)還是內(nèi)容變得更加公整、緊湊,感謝史老師對(duì)我的悉心指導(dǎo)。</p><p>  感謝校方給予我這樣一次機(jī)會(huì),能夠獨(dú)立地完成這樣一個(gè)設(shè)計(jì),作為檢驗(yàn)這些年來(lái)學(xué)習(xí)的成果,在這個(gè)過(guò)程當(dāng)中,學(xué)校給予我們各種方

31、便,使我們?cè)诩磳㈦x校的最后一段時(shí)間里,能夠更多學(xué)習(xí)一些實(shí)踐應(yīng)用知識(shí),增強(qiáng)了我們實(shí)踐操作和動(dòng)手應(yīng)用能力,提高了獨(dú)立思考的能力。再一次對(duì)我的母校表示感謝。</p><p><b>  附錄 1 原理圖</b></p><p>  附錄 2 主要源程序</p><p>  #include<reg52.h></p><

32、p>  #include<intrins.h></p><p>  #include<absacc.h></p><p>  #include "DS18B20.h"</p><p>  #include "DS12C887.h"</p><p>  #include &q

33、uot;display.h"</p><p>  #define uc unsigned char</p><p>  #define ui unsigned int</p><p>  sbit lew=P2^0;</p><p>  sbit lex=P2^1;</p><p>  sbit deng=P

34、2^2;</p><p>  sbit fmq=P2^3;</p><p>  sbit s1=P2^5;</p><p>  sbit s2=P2^6;</p><p>  sbit s3=P2^7;</p><p>  uc code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7

35、d,0x07,0x7f,0x6f,0x00};</p><p>  uc code dxy[]={0,1,2,1,0,1,0,1,1,0,1,0,1};</p><p>  uc num,set=0,ee;</p><p><b>  ui wendu;</b></p><p>  char hour,min,sec,

36、day,mon,year,xq;</p><p>  bit bdata bs,tt,h,out_clear;</p><p>  void delay(uc x)</p><p><b>  {</b></p><p><b>  uc i,j;</b></p><p> 

37、 for(i=0;i<x;i++)</p><p>  for(j=0;j<110;j++);</p><p><b>  }</b></p><p>  /*****定時(shí)器T0*****/</p><p>  void init()</p><p><b>  {</

38、b></p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p>  TMOD=0x01;</p><p><b>  TH0=0x4b;</b></p><p><b>  TL0=

39、0xff;</b></p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p>  void ds12c887()//讀取寫入ds12c887函數(shù)</p><p><b>  {</b></p><

40、p>  if((tt==1)&&(set==0)) //當(dāng)退出時(shí)間設(shè)定時(shí),首先將設(shè)定的時(shí)間寫入芯片</p><p><b>  {</b></p><p><b>  tt=0;</b></p><p>  write_ds12c887(2,min);</p><p>  wr

41、ite_ds12c887(4,hour);</p><p>  write_ds12c887(6,xq);</p><p>  write_ds12c887(7,day);</p><p>  write_ds12c887(8,mon);</p><p>  write_ds12c887(9,year);</p><p&g

42、t;<b>  }</b></p><p>  if(set==0)</p><p><b>  {</b></p><p>  sec=read_ds12c887(0);</p><p>  min=read_ds12c887(2);</p><p>  hour=read

43、_ds12c887(4);</p><p>  xq=read_ds12c887(6);</p><p>  day=read_ds12c887(7);</p><p>  mon=read_ds12c887(8);</p><p>  year=read_ds12c887(9);</p><p><b> 

44、 }</b></p><p>  if(set!=0) sec=read_ds12c887(0);</p><p><b>  }</b></p><p>  /*****按鍵函數(shù)*****/</p><p>  void key()</p><p><b>  {</

45、b></p><p>  ui out_set=0,clear_0=0;</p><p>  out_clear=0;</p><p><b>  if(s1==0)</b></p><p>  {delay(5);</p><p><b>  if(s1==0)</b>

46、;</p><p><b>  {</b></p><p>  while((s1==0)&&(set!=0))</p><p><b>  {</b></p><p>  display();</p><p>  out_set++;</p>

47、<p>  if(out_set==300)</p><p><b>  {</b></p><p><b>  set=0;</b></p><p>  out_set=0;</p><p><b>  tt=0;</b></p><p> 

48、 fmq=0;delay(20);fmq=1;delay(100);</p><p>  fmq=0;delay(20);fmq=1;</p><p><b>  goto x;</b></p><p><b>  }</b></p><p><b>  }</b></p

49、><p><b>  set++;</b></p><p><b>  if(set<8)</b></p><p><b>  {</b></p><p>  out_set=0;</p><p>  fmq=0;delay(10);fmq=1;<

50、;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  set=0;</b></p><p><b>  tt=1;</b

51、></p><p>  fmq=0;delay(200);fmq=1;</p><p><b>  }</b></p><p>  x:while(!s1)</p><p><b>  {</b></p><p>  display();</p>&

52、lt;p>  sec_led();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(set!=0)</p><p><b>  {</

53、b></p><p><b>  if(s2==0)</b></p><p>  {delay(5);</p><p><b>  if(s2==0)</b></p><p><b>  {</b></p><p>  fmq=0;delay(10

54、);fmq=1;</p><p>  if(set==1)</p><p><b>  {</b></p><p><b>  year++;</b></p><p>  if(year==100) year=0;</p><p>  if((dxy[mon]==2)&

55、;&(year%4!=0)&&(day>28)==1)</p><p>  //當(dāng)平年二月day大于28時(shí)</p><p><b>  day=28;</b></p><p><b>  }</b></p><p>  if(set==2)</p><

56、;p><b>  {</b></p><p><b>  mon++;</b></p><p>  if(mon==13)</p><p><b>  mon=1;</b></p><p>  if((dxy[mon]==0)&&(day>30)==

57、1)</p><p>  //當(dāng)小月day大于30時(shí)</p><p><b>  day=30;</b></p><p>  if((dxy[mon]==2)&&(year%4==0)&&(day>28)==1)</p><p>  //當(dāng)平年二月day大于28時(shí)</p>

58、<p><b>  day=28;</b></p><p>  if((dxy[mon]==2)&&(year%4!=0)&&(day>29)==1)</p><p>  //當(dāng)閏年二月day大于29時(shí)</p><p><b>  day=29;</b></p>

59、;<p><b>  }</b></p><p>  if(set==3)</p><p><b>  {</b></p><p><b>  day++;</b></p><p>  if((dxy[mon]==0)&&(day==31)==1)

60、</p><p>  //當(dāng)小月day被加到了31時(shí)</p><p><b>  day=1;</b></p><p>  if((dxy[mon]==1)&&(day==32)==1)</p><p>  //當(dāng)大月day被加到32時(shí)</p><p><b>  day

61、=1;</b></p><p>  if((dxy[mon]==2)&&(year%4==0)&&(day==29)==1)</p><p>  //當(dāng)平年二月day被加到29時(shí)</p><p><b>  day=1;</b></p><p>  if((dxy[mon]==

62、2)&&(year%4!=0)&&(day==30)==1)//當(dāng)閏年二月day被加到30時(shí)</p><p><b>  day=1;</b></p><p><b>  }</b></p><p>  if(set==4)</p><p><b&g

63、t;  {</b></p><p><b>  hour++;</b></p><p>  if(hour==24) hour=0;</p><p><b>  }</b></p><p>  if(set==5)</p><p><b>  {<

64、/b></p><p><b>  min++;</b></p><p>  if(min==60) min=0;</p><p><b>  }</b></p><p>  if(set==6)</p><p><b>  {</b></p

65、><p><b>  xq++;</b></p><p>  if(xq==8) xq=1;</p><p><b>  }</b></p><p>  if(set==7) bs=~bs;</p><p>  while(!s2) display();</p>&

66、lt;p><b>  }</b></p><p><b>  }</b></p><p><b>  if(s3==0)</b></p><p><b>  {減函數(shù)略}</b></p><p><b>  }</b></

67、p><p><b>  }</b></p><p>  /*****開機(jī)流水燈顯示*****/</p><p>  void display1()</p><p><b>  {</b></p><p><b>  uc i;</b></p>

68、<p>  for(i=0;i<15;i++)</p><p>  {P1=i;lew=1;lew=0;P1=tab[8];lex=1;lex=0;delay(80);P1=tab[10];lew=1;lex=1;lex=0;}</p><p>  for(i=0;i<15;i++)</p><p>  {P1=i;lew=1;lew=0;P1

69、=tab[8];lex=1;lex=0;delay(1);}</p><p>  P1=tab[10];lew=1;lex=1;</p><p><b>  }</b></p><p>  /*****整點(diǎn)報(bào)時(shí)函數(shù)(8-22)*****/</p><p>  void baoshi()</p><p&

70、gt;<b>  {</b></p><p>  if((hour>7)&&(hour<23)&&(min==0)&&(sec==0)&&(bs==0)&&(set==0)) fmq=0;</p><p>  if((fmq==0)&&(sec==1)&

71、&(bs==0)&&(set==0)) fmq=1;</p><p><b>  }</b></p><p>  /*****秒燈控制函數(shù)*****/</p><p>  void sec_led()</p><p><b>  {</b></p><p&

72、gt;  if(set==0) deng=h;</p><p>  if(set==1) deng=1;</p><p>  if(set==7) deng=bs;//整點(diǎn)報(bào)開關(guān)指示</p><p><b>  }</b></p><p>  /*****主函數(shù)*****/</p><p>  

73、void main()</p><p><b>  {</b></p><p><b>  uc aa;</b></p><p><b>  init();</b></p><p>  for(aa=0;aa<10;aa++) ds18b20();</p>

74、<p>  fmq=0; display1(); fmq=1;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  key();</b></p><p>  ds12c887();</p&g

75、t;<p><b>  baoshi();</b></p><p>  ds18b20();</p><p>  sec_led();</p><p>  display();</p><p><b>  }</b></p><p><b>  }&l

76、t;/b></p><p>  void time() interrupt 1</p><p><b>  {</b></p><p><b>  TH0=0x4b;</b></p><p><b>  TL0=0xff;</b></p><p>

77、<b>  ee++;</b></p><p>  if(ee==10)</p><p><b>  {</b></p><p><b>  h=~h;</b></p><p><b>  ee=0;</b></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)論