基于c語(yǔ)言單片機(jī)智能電子日歷課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(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>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程名稱:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)</p><p>  報(bào)告題目:智能電子日歷</p><p><b>  學(xué)生姓名:</b></p><p>  所在學(xué)院:信息科學(xué)與工程學(xué)院</p><p><b> 

2、 專業(yè)班級(jí):</b></p><p><b>  學(xué)生學(xué)號(hào):</b></p><p><b>  指導(dǎo)教師:</b></p><p>  2013 年 12 月 25 日</p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p>&

3、lt;b>  摘要</b></p><p>  本設(shè)計(jì)是根據(jù)我們所學(xué)的單片機(jī)課程,按照大綱要求對(duì)我們進(jìn)行的一次課程檢驗(yàn),是進(jìn)行單片機(jī)課程訓(xùn)練的必要任務(wù),也對(duì)我們掌握單片機(jī)應(yīng)用有很大的幫助。單片機(jī)技術(shù)作為電子專業(yè)的基礎(chǔ)課程之一,對(duì)我們將來(lái)的工作以及生活和學(xué)習(xí)都有很密切的聯(lián)系;近年來(lái)隨著電子技術(shù)和微機(jī)計(jì)算機(jī)的迅速發(fā)展,單片機(jī)的性能不斷更新和提高,應(yīng)用領(lǐng)域也不斷擴(kuò)大,已經(jīng)在工業(yè)控制、尖端科技、智能儀器

4、、汽車電子系統(tǒng)、辦公自動(dòng)化系統(tǒng)、通信產(chǎn)品等等領(lǐng)域有廣泛的應(yīng)用,成為現(xiàn)代電子系統(tǒng)中最重要的智能化核心器件。</p><p>  關(guān)鍵詞 :?jiǎn)纹瑱C(jī),電子技術(shù),智能化</p><p><b>  目錄</b></p><p>  一、概述…………………………………………………………………………5</p><p>  二、方案設(shè)

5、計(jì)與論證………………………………………………………………5</p><p>  1.單片機(jī)芯片選擇……………………………………………………………5</p><p>  2.時(shí)間計(jì)算模塊……………………………………………………………5</p><p>  3.顯示模塊………………………………………………………………………6</p><p>  

6、三、單元電路設(shè)計(jì)……………………………………………………………………6</p><p>  1.單片機(jī)最小系統(tǒng)電路…………………………………………………………7</p><p>  2.?dāng)?shù)碼管電路………………………………………………………………8</p><p>  3.按鍵電路………………………………………………………………9

7、 </p><p>  四、程序設(shè)計(jì)………………………………………………………………………10</p><p>  1.程序總體思路和分析………………………………………………………10</p><p>  2.程序清單……………………………………………………………………11</p><p>  五、結(jié)論與心得

8、………………………………………………………………………19</p><p>  六、參考文獻(xiàn)……………………………………………………………………20</p><p><b>  一、概述</b></p><p>  本系統(tǒng)以STC89C52單片機(jī)為控制核心,通過(guò)單片機(jī)計(jì)時(shí)器模擬時(shí)間輸出,并將時(shí)間通過(guò)數(shù)碼管實(shí)時(shí)顯示出來(lái),通過(guò)相應(yīng)的按鍵調(diào)整相應(yīng)的數(shù)

9、值和功能。所以本設(shè)計(jì)可以分為以下幾個(gè)模塊:顯示模塊、按鍵模塊、定日輸出模塊。下面對(duì)各個(gè)模塊進(jìn)行逐一分析。</p><p><b>  二、方案設(shè)計(jì)與論證</b></p><p>  時(shí)間計(jì)算模塊有兩種方式,一種利用現(xiàn)成的時(shí)間計(jì)時(shí)芯片實(shí)時(shí)讀取時(shí)間,然后顯示;第二種是利用STC89C52單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)功能,實(shí)現(xiàn)時(shí)間的計(jì)算。</p><p>

10、<b>  1.單片機(jī)芯片選擇</b></p><p>  方案一:采用89C52作為硬件核心</p><p>  采用Flash ROM,內(nèi)部具有4KB ROM存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備ISP在先編程技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對(duì)芯片的多次

11、拔插會(huì)對(duì)芯片造成一定的損壞。</p><p>  方案二:采用AT89S52作為硬件核心</p><p>  片內(nèi)ROM全部采用Flash ROM;能以3V的超低壓工作,同時(shí)也與MCS-51系列單片機(jī)完全該芯片內(nèi)部存儲(chǔ)器為8KB ROM 存儲(chǔ)空間,同樣具有89C51的功能,且具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔

12、插,所以不會(huì)對(duì)芯片造成一定的損壞。</p><p>  所以選擇采用AT89S52作為主控制系統(tǒng)。</p><p><b>  2.時(shí)間計(jì)算模塊</b></p><p>  方案一:DS1302芯片</p><p>  DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,才用

13、SPI三線接口與CPU進(jìn)行通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月、年,一個(gè)月小于31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬帶2.5~5.5V。采用雙電源供電,可以設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓流充電的能力。利用單片機(jī)的控制功能就可以實(shí)現(xiàn)實(shí)時(shí)計(jì)時(shí)的功能,而且消耗的系統(tǒng)資源少,程序簡(jiǎn)單。</p><p>  方案二:?jiǎn)纹瑱C(jī)內(nèi)部定時(shí)器

14、/計(jì)數(shù)器</p><p>  STC89C52單片機(jī)內(nèi)部帶有定時(shí)器/計(jì)數(shù)功能,此定時(shí)功能時(shí)通過(guò)對(duì)外部晶振的脈沖進(jìn)行計(jì)數(shù),從而達(dá)到計(jì)時(shí)功能,只要使用11.0592MHz的晶振就能實(shí)現(xiàn)零誤差的計(jì)時(shí),因此可以利用此功能實(shí)現(xiàn)計(jì)時(shí)。</p><p>  從任務(wù)要求來(lái)看,CPU的系統(tǒng)消耗很少,有足夠的內(nèi)部資源利用定時(shí)器實(shí)現(xiàn)計(jì)時(shí)功能和處理其他算法。任務(wù)要求不需要有掉電保護(hù)功能,這樣可以減少工作量和系統(tǒng)成

15、本。</p><p><b>  3.顯示模塊</b></p><p>  方案一:使用液晶顯示屏顯示時(shí)間數(shù)字</p><p>  液晶顯示屏(LCD)具有輕薄短小、低耗電量、無(wú)輻射危險(xiǎn),平面直角顯示以及影響穩(wěn)定不閃爍等優(yōu)勢(shì),可視面積大,畫(huà)面效果好,分辨率高,抗干擾能力強(qiáng)的特點(diǎn)。但由于液晶是以點(diǎn)陣的模式顯示各種符號(hào),需要利用控制芯片創(chuàng)建字符庫(kù),

16、編程工作量大,控制器的資源占用較多,其成本也偏高。在使用時(shí),不能有靜電干擾,否則易燒壞液晶的顯示芯片,不易維護(hù)。</p><p>  方案二:使用傳統(tǒng)的LED數(shù)碼管顯示</p><p>  數(shù)碼管具有:低能耗、低損耗、低壓、壽命長(zhǎng)、耐老化、防曬、防潮、防火、防高(低)溫,對(duì)外界環(huán)境要求低,易于維護(hù),同時(shí)其精度比較高,稱重輕,精度可靠,操作簡(jiǎn)單。數(shù)碼管采用BCD編碼顯示數(shù)字,程序編譯容易,資

17、源占用較少。根據(jù)以上的論述,采用方案二。我們采用八段四位一體數(shù)碼管動(dòng)態(tài)顯示,由于顯示位數(shù)較多,故應(yīng)使用顯示驅(qū)動(dòng),在本設(shè)計(jì)中采用三極管來(lái)作為驅(qū)動(dòng)。</p><p><b>  4.按鍵模塊</b></p><p>  方案一:使用獨(dú)立式鍵盤(pán)</p><p>  獨(dú)立式鍵盤(pán)是指直接用I/O口線構(gòu)成的單個(gè)按鍵電路。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單

18、。</p><p>  方案二:使用矩陣式鍵盤(pán)</p><p>  矩陣式鍵盤(pán)是由行線和列線組成,按鍵位于行、列交叉點(diǎn)上,行線、列線分別連接到按鍵開(kāi)關(guān)的兩端。其特點(diǎn)是簡(jiǎn)單且不增加成本,這種鍵盤(pán)適合按鍵數(shù)目較多的場(chǎng)合。</p><p>  根據(jù)以上的論述,所以采用方案二。</p><p><b>  三、單元電路設(shè)計(jì)</b>

19、;</p><p><b>  1.單片機(jī)系統(tǒng)介紹</b></p><p>  AT89S52是一種低功耗高性能CHMOS 8位單片機(jī),管腳如圖所示。</p><p>  片內(nèi)含4Kbytes ISP的可反復(fù)擦寫(xiě)1000次Flash只讀程序存儲(chǔ)器,128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)。其特點(diǎn)如下:</p><p&g

20、t;  -兼容MCS-51指令系統(tǒng);</p><p>  -最大的工作頻率為33MHz;</p><p>  -具有雙工UART串行通道;</p><p>  -內(nèi)部集成看門狗計(jì)時(shí)器,不需要再外接看門狗計(jì)時(shí)器單元電路;</p><p><b>  -雙數(shù)據(jù)指示器;</b></p><p>  -支

21、持ISP(在線更新程序)功能,其優(yōu)勢(shì)在于改寫(xiě)單片機(jī)存儲(chǔ)器內(nèi)的程序不需要把芯從工作環(huán)境中剝離;</p><p><b>  -電源關(guān)閉標(biāo)識(shí);</b></p><p>  -全新的加密算法,使程序的保密性大大加強(qiáng);</p><p>  -電壓范圍寬達(dá)4-5.5V,而89C52在低于4.8V或高于5.3V則無(wú)法工作;</p><p

22、>  -燒寫(xiě)壽命長(zhǎng),其標(biāo)稱為1000次,實(shí)際至少是1000-10000次,這樣有利于初學(xué)者反復(fù)燒寫(xiě),減低學(xué)習(xí)成本;AT89S52 是一種低功耗、高性能的CMOS 8位單片機(jī)。它帶有8K Flash 可編程和擦除的只讀存儲(chǔ)器(EPROM),該器件采用ATMEL的高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)上標(biāo)準(zhǔn)的80C51和82C52的指令系統(tǒng)及引腳兼容,片內(nèi)Flash 集成在一個(gè)芯片上,可用與解決復(fù)雜的問(wèn)題,且成本較低。</p>

23、;<p>  AT89S52提供了8K字節(jié)Flash ,256字節(jié)RAM,32線I/O口,3個(gè)16位定時(shí)器/計(jì)數(shù)器,6向量?jī)蓸O中斷,一個(gè)雙工串行口,片內(nèi)根據(jù)振蕩器和始終電路等標(biāo)準(zhǔn)功能。此外,AT89S52設(shè)有靜態(tài)邏輯,并支持軟件選擇的兩種節(jié)電運(yùn)行方式、空閑方式使CPU停止工作,而允許RAM、定時(shí)器/計(jì)數(shù)器、串行口和中斷系統(tǒng)繼續(xù)工作。掉電方式下,片內(nèi)振蕩器停止工作,由于之中被凍結(jié),一切能都停止,只有片內(nèi)RAM的內(nèi)容被保存,直

24、到硬件復(fù)位才恢復(fù)正常工作。</p><p>  AT89S52結(jié)構(gòu)框圖:</p><p><b>  數(shù)碼管電路介紹</b></p><p>  由于七段數(shù)碼顯示器在顯示字形代碼時(shí)需要有足夠的功率,單片機(jī)口線的驅(qū)動(dòng)能力明顯不夠,所以需在顯示器前加顯示驅(qū)動(dòng)器,以提高其輸出功率,滿足顯示器的需求。在本設(shè)計(jì)中,我采用三極管作為顯示電路的8路正向驅(qū)動(dòng)器

25、。</p><p>  LED顯示器俗稱數(shù)碼管,在其內(nèi)部是由8個(gè)發(fā)光二極管加限流電阻組成,其連接方式有共陰和共陽(yáng)兩種,在共陰極接法中,因公共端接地,只要給某一段加高電平,該段就會(huì)亮。而在本設(shè)計(jì)中采用的是共陽(yáng)極接法,公共端接+5V電源,在某一段上加低電平,該段就會(huì)亮。</p><p>  在本次設(shè)計(jì)中,為了使硬件電路更簡(jiǎn)單化,我采用四位一體的LED數(shù)碼管,顯示原理與單個(gè)LED的顯示原理完全相

26、同。但在它的內(nèi)部把四個(gè)數(shù)碼管的段控端對(duì)應(yīng)的連在了一起與單個(gè)的數(shù)碼管相比其外部電路連接更加簡(jiǎn)單,故它只有8個(gè)段控端和4個(gè)位控端,4個(gè)位控端分別對(duì)四個(gè)數(shù)碼管進(jìn)行控制。</p><p><b>  3.按鍵模塊</b></p><p>  在單片機(jī)控制電路中,可把單片機(jī)使用的鍵盤(pán)分為獨(dú)立式和矩陣式兩種。獨(dú)立式實(shí)際上就是一組獨(dú)立的按鍵,這些按鍵可直接與單片機(jī)的I/O口連接,即

27、每個(gè)按鍵獨(dú)占一條口線,這種接法簡(jiǎn)單。矩陣式鍵盤(pán)也稱行列式鍵盤(pán),因?yàn)殒I的數(shù)目較多,所以鍵按行列組成矩陣。本設(shè)計(jì)中鍵盤(pán)數(shù)目較少,且為安裝方便,因此在本設(shè)計(jì)中采用獨(dú)立式接法。如圖所示。</p><p><b>  控制電路</b></p><p>  按從一個(gè)鍵到鍵的功能被執(zhí)行主要應(yīng)包括兩項(xiàng)工作:一是鍵的識(shí)別,即在鍵盤(pán)中找出被按的是哪個(gè)鍵,另一項(xiàng)是鍵功能的實(shí)現(xiàn)。第一項(xiàng)工作是

28、使用接口電路實(shí)現(xiàn)的,而第二項(xiàng)工作則是通過(guò)執(zhí)行中斷服務(wù)程序來(lái)完成。</p><p>  四、程序總體思路和分析</p><p>  1.程序總體思路和分析</p><p><b>  主函數(shù)的流程圖:</b></p><p><b>  程序清單</b></p><p>  #

29、include <reg52.h></p><p>  #include <intrins.h></p><p>  unsigned int time=0;</p><p>  unsigned char num=0;</p><p>  unsigned char key=0;</p><p&g

30、t;  unsigned char time_key=0;</p><p>  /*********************************/</p><p>  unsigned int year=1; //年</p><p>  unsigned char yue=1; //月</p><p>  unsigned char

31、day=1; //日</p><p>  unsigned char week=1;</p><p>  /*********************************/</p><p>  unsigned char LED=0;</p><p>  unsigned char flag_led=0;</p><

32、p>  unsigned char strl_led[] = {0,0,0,0,0,0,0,0};</p><p>  unsigned char day_add;</p><p>  unsigned char SURE;</p><p>  /*********************************/</p><p>  

33、unsigned char code str[] = {</p><p>  0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff</p><p><b>  };</b></p><p>  unsigned char su[] = {</p><p>  10,

34、10,10,10,10,10,10,10</p><p><b>  };</b></p><p>  void delay_SMG(unsigned char t)</p><p><b>  {</b></p><p>  unsigned char d;</p><p>

35、;  for(;t>0;t--)</p><p>  for(d=0;d<50;d++);</p><p><b>  }</b></p><p>  /*********************************/</p><p>  /*************DIS_LED************

36、*/</p><p>  void DIS_play()</p><p><b>  {</b></p><p>  unsigned char k; </p><p>  unsigned char dis;</p><p>  dis = 0x01;</p><

37、p>  for(k=0;k<8;k++)</p><p><b>  {</b></p><p><b>  P0 = dis;</b></p><p>  P2 |= 0xc0;</p><p>  P2 &= 0x1f;</p><p>  if(k=

38、=2 || k==4 || k==6)P0 = str[su[k]] & 0x7f;</p><p>  else P0 = str[su[k]]; </p><p>  P2 |= 0xe0;</p><p>  P2 &= 0x1f;</p><p>  dis = dis << 1;</p>

39、<p>  delay_SMG(4);</p><p>  P0 = 0xff;</p><p>  P2 |= 0xe0;</p><p>  P2 &= 0x1f;</p><p><b>  }</b></p><p><b>  }</b><

40、;/p><p>  void init_all()</p><p><b>  {</b></p><p>  P0 = 0x00;</p><p>  P2 = 0xa0;</p><p>  P2 = 0x00;</p><p>  P0 = 0x00;</p>

41、<p>  P2 = 0xa0;</p><p>  P2 = 0x00;</p><p>  P0 = 0xff;</p><p>  P2 = 0x80;</p><p>  P2 = 0x00;</p><p>  P0 = 0x00;</p><p>  P2 = 0xc0

42、;</p><p>  P2 = 0x00;</p><p><b>  }</b></p><p>  void DIS_led()</p><p><b>  {</b></p><p>  if(LED == 1)</p><p><b&g

43、t;  {</b></p><p>  P0 = 0xfe;</p><p>  P2 = 0x80;</p><p>  P2 = 0x00;</p><p><b>  }</b></p><p>  else if(LED == 2)</p><p>&l

44、t;b>  {</b></p><p>  P0 = 0xfd;</p><p>  P2 = 0x80;</p><p>  P2 = 0x00;</p><p><b>  }</b></p><p>  else if(LED == 3)</p><p&

45、gt;<b>  {</b></p><p>  P0 = 0xfb;</p><p>  P2 = 0x80;</p><p>  P2 = 0x00;</p><p><b>  }</b></p><p>  else if(LED == 4)</p>&

46、lt;p><b>  {</b></p><p>  P0 = 0xf7;</p><p>  P2 = 0x80;</p><p>  P2 = 0x00;</p><p><b>  }</b></p><p>  else if(LED == 5)</p&g

47、t;<p><b>  {</b></p><p>  P0 = 0xef;</p><p>  P2 = 0x80;</p><p>  P2 = 0x00;</p><p><b>  }</b></p><p>  else if(LED == 0)<

48、;/p><p><b>  {</b></p><p>  P0 = 0xff;</p><p>  P2 = 0x80;</p><p>  P2 = 0x00;</p><p><b>  }</b></p><p><b>  }</

49、b></p><p>  //*******************************</p><p>  //*******************************</p><p>  void IN_key()</p><p><b>  {</b></p><p>  u

50、nsigned char hang,lei;</p><p>  unsigned char zong;</p><p>  P3 = 0x0f;</p><p>  if(P3 != 0x0f)</p><p><b>  {</b></p><p>  time_key++;</p>

51、;<p>  if(time_key == 50)</p><p><b>  {</b></p><p>  if(P3 != 0x0f)</p><p><b>  {</b></p><p>  hang = P3 & 0x0f;</p><p>

52、  P3 = 0xf0;</p><p>  lei = P3 & 0xf0;</p><p>  zong = hang | lei;</p><p>  switch (zong)</p><p><b>  {</b></p><p>  case 0x7e:key = 1;

53、//模式選擇按鍵</p><p>  flag_led ++;</p><p>  if(flag_led > 6) flag_led = 0;</p><p><b>  break;</b></p><p>  case 0xbe:key = 2;</p><p>  if(flag_

54、led == 0) SURE = 3;</p><p>  if(flag_led != 0)</p><p><b>  {</b></p><p>  SURE++; //確定按鍵 </p><p>  if(SURE > 1)SURE = 0;</p>&

55、lt;p><b>  } </b></p><p><b>  break;</b></p><p>  case 0xde:key = 3;</p><p>  if(flag_led > 0) //按下模式選擇鍵</p><p><b>  {</b>

56、;</p><p>  day_add++;</p><p>  if(yue==1 || yue==3 || yue==5 || yue== 7 || yue==8 || yue== 10 || yue==12)</p><p><b>  {</b></p><p>  if(day_add > 31)day_

57、add = 31;</p><p><b>  }</b></p><p>  if(yue==4 || yue==6 || yue==9 || yue== 11)</p><p><b>  {</b></p><p>  if(day_add > 30)day_add = 30;</

58、p><p><b>  }</b></p><p>  if(yue==2)</p><p><b>  {</b></p><p>  if((year%4 ==0 && year%100 !=0) || (year%400 ==0) )</p><p><

59、;b>  {</b></p><p>  if(day_add > 28)day_add = 28;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>&l

60、t;p>  if(day_add > 29)day_add = 29;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b>&l

61、t;/p><p>  case 0xee:key = 4;</p><p>  if(flag_led > 0) //按下模式選擇鍵</p><p><b>  {</b></p><p>  if(day_add > 0)</p><p>  day_add--;</

62、p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></

63、p><p>  else if(time_key > 50)time_key = 100;</p><p><b>  } </b></p><p>  else time_key = 0;</p><p><b>  }</b></p><p>  void main()

64、</p><p><b>  {</b></p><p>  TMOD = 0x01;</p><p>  TH0 = (65536 - 1000) / 256;</p><p>  TL0 = (65536 - 1000) % 256;</p><p><b>  EA = 1;<

65、;/b></p><p><b>  ET0 = 1;</b></p><p><b>  TR0 = 1;</b></p><p>  init_all();</p><p><b>  while(1)</b></p><p><b>

66、;  {</b></p><p>  DIS_play();</p><p>  DIS_led();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void time_1() interrupt 1</

67、p><p><b>  {</b></p><p>  TH0 = (65536 - 1000) / 256;</p><p>  TL0 = (65536 - 1000) % 256;</p><p><b>  time++;</b></p><p>  if(time ==

68、 2000)</p><p><b>  {</b></p><p><b>  time = 0;</b></p><p><b>  week++;</b></p><p>  if(week == 8) week=1;</p><p>  day+

69、+; </p><p>  if(yue==1 || yue==3 || yue==5 || yue== 7 || yue==8 || yue== 10 || yue==12)</p><p><b>  {</b></p><p>  if(day == 32) </p><p><b&

70、gt;  {</b></p><p><b>  day = 1;</b></p><p><b>  yue++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

71、;  if(yue == 2)</p><p><b>  {</b></p><p>  if((year%4 ==0 && year%100 !=0) || (year%400 ==0) )</p><p><b>  {</b></p><p>  if(day == 30)&

72、lt;/p><p><b>  {</b></p><p><b>  day = 1;</b></p><p><b>  yue++;</b></p><p><b>  }</b></p><p><b>  }<

73、/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(day == 29)</p><p><b>  {</b></p><p><b>  day = 1;</b

74、></p><p><b>  yue++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(yue==4 || yue

75、==6 || yue==9 || yue== 11)</p><p><b>  {</b></p><p>  if(day == 31)</p><p><b>  {</b></p><p><b>  day = 1;</b></p><p>&

76、lt;b>  yue++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(yue == 13)</p><p><b>  {</b></p><p><b>

77、;  yue = 1;</b></p><p><b>  day = 1;</b></p><p><b>  year++;</b></p><p><b>  }</b></p><p><b>  }</b></p>&l

78、t;p><b>  IN_key();</b></p><p>  if(SURE == 1) //按下確認(rèn)鍵確認(rèn)日期</p><p><b>  {</b></p><p>  if(flag_led > 0)</p><p><b>  {</b></

79、p><p>  strl_led[flag_led] = day_add;</p><p>  flag_led = 0;</p><p><b>  SURE = 0;</b></p><p>  day_add = 0;</p><p><b>  }</b></p&g

80、t;<p><b>  }</b></p><p>  if(strl_led[1] == day)</p><p><b>  { </b></p><p>  if(SURE == 3) LED = 0; //按下關(guān)斷鍵</p><p>  else LED = 1;&l

81、t;/p><p><b>  }</b></p><p>  else if(strl_led[2] == day)</p><p><b>  {</b></p><p>  if(SURE == 3) LED = 0; //按下關(guān)斷鍵</p><p>  else LED

82、= 2;</p><p><b>  }</b></p><p>  else if(strl_led[3] == day)</p><p><b>  { </b></p><p>  if(SURE == 3) LED = 0; //按下關(guān)斷鍵</p><p> 

83、 else LED = 3;</p><p><b>  }</b></p><p>  else if(strl_led[4] == day)</p><p><b>  { </b></p><p>  if(SURE == 3) LED = 0; //按下關(guān)斷鍵</p>

84、<p>  else LED = 4;</p><p><b>  }</b></p><p>  else if(strl_led[5] == day)</p><p><b>  {</b></p><p>  if(SURE == 3) LED = 0; //按下關(guān)斷鍵</p

85、><p>  else LED = 5;</p><p><b>  }</b></p><p>  else if(strl_led[6] == day)</p><p><b>  {</b></p><p>  if(SURE == 3) LED = 0; //按下關(guān)斷鍵

86、</p><p>  else LED = 6;</p><p><b>  }</b></p><p><b>  else </b></p><p><b>  { </b></p><p><b>  LED = 0;</b>

87、</p><p><b>  SURE = 0;</b></p><p><b>  }</b></p><p>  if(LED != 6)</p><p><b>  {</b></p><p>  su[1] = year / 10 % 10;&l

88、t;/p><p>  su[2] = year % 10;</p><p>  su[3] = yue / 10;</p><p>  su[4] = yue % 10;</p><p>  su[5] = day / 10;</p><p>  su[6] = day % 10;</p><p>

89、  su[7] = week % 10;</p><p><b>  }</b></p><p>  else if(LED == 6) {su[0] = su[1] = su[2] = su[3] = su[4] = su[5] = su[6] = su[7] = 10;}</p><p><b>  }</b><

90、/p><p><b>  五、結(jié)論與心得</b></p><p>  隨著放假日子的到來(lái),我的課程設(shè)計(jì)終于完成了,課程設(shè)計(jì)不僅是對(duì)前面所學(xué)知識(shí)的一種檢驗(yàn),而且也是對(duì)自己能力的一種提高。通過(guò)這次課程設(shè)計(jì)使我明白了自己原來(lái)知識(shí)還比較欠缺。自己要學(xué)習(xí)的東西還太多,以前老是覺(jué)得自己什么東西都會(huì),什么東西都懂,有點(diǎn)眼高手低。通過(guò)這次畢業(yè)設(shè)計(jì),我們才明白學(xué)習(xí)是一個(gè)長(zhǎng)期積累的過(guò)程,在以

91、后的工作、生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己知識(shí)和綜合素質(zhì)。</p><p>  感謝我的老師*老師,讓我系統(tǒng)學(xué)習(xí)了有關(guān)單片機(jī)知識(shí)。他嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;他循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪。 從項(xiàng)目的開(kāi)始到完成,*老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。一年以來(lái),廖老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時(shí)還在思想、生活上給我以無(wú)微不至的關(guān)懷。在此真誠(chéng)的感謝*老

92、師,并致以誠(chéng)摯的謝意和崇高的敬意。</p><p>  在這次課程設(shè)計(jì)中也使我們的同學(xué)關(guān)系更進(jìn)一步了,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,聽(tīng)聽(tīng)不同的看法對(duì)我們更好的理解知識(shí),所以在這里非常感謝幫助我的同學(xué)。</p><p><b>  六、參考文獻(xiàn)</b></p><p>  [1] 李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航

溫馨提示

  • 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)論