基于MCS51單片機(jī)的鬧鐘提醒器設(shè)計(jì)報(bào)告_第1頁(yè)
基于MCS51單片機(jī)的鬧鐘提醒器設(shè)計(jì)報(bào)告_第2頁(yè)
基于MCS51單片機(jī)的鬧鐘提醒器設(shè)計(jì)報(bào)告_第3頁(yè)
基于MCS51單片機(jī)的鬧鐘提醒器設(shè)計(jì)報(bào)告_第4頁(yè)
基于MCS51單片機(jī)的鬧鐘提醒器設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩22頁(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、 成績(jī)課程論文題 目: 基于mcs51單片機(jī)的鬧鐘 提醒器設(shè)計(jì)報(bào)告 學(xué)生姓名: 陳 浩 敏 學(xué)生學(xué)號(hào): 1008030204 系 別: 電氣信息工程學(xué)院 專 業(yè): 電子信息工程 年 級(jí): 10級(jí) 任課教師: 張 水 鋒 電氣信息工程學(xué)院制2012年12月目錄一、設(shè)計(jì)方案選定:31.1 前言31.2 實(shí)驗(yàn)?zāi)康?1.3總體設(shè)計(jì)要求31.3.1、基本要求31.3.2、自由發(fā)揮部分31.4 方案選定4二、硬件電路設(shè)計(jì)42.1 at89c5242.2 復(fù)位電路42.3 晶振電路52.4 時(shí)鐘顯示52.4.1 lcd16026 2.4.2 ds1302:62.5 程序框圖62.6 基本電路及工作原理7三、

2、軟件設(shè)計(jì)和仿真83.1 軟件設(shè)計(jì)83.2 proteus仿真25四、課程設(shè)計(jì)體會(huì)26參考文獻(xiàn)27基于mcs51單片機(jī)的鬧鐘提醒器學(xué)生:陳浩敏指導(dǎo)教師:張水鋒電氣信息工程學(xué)院 電子信息工程專業(yè)一、設(shè)計(jì)方案選定:1.1 前言:?jiǎn)纹?jì)算機(jī)即單片微型計(jì)算機(jī),(single-chip microcomputer)。是集cpu ,ram ,rom,定時(shí),計(jì)數(shù)和多種接口于一體的微控制器。他體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動(dòng)化上。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次課程設(shè)計(jì)通過對(duì)它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬的能力?;趩纹瑱C(jī)的定時(shí)和控制裝置在許多行業(yè)有著

3、廣泛的應(yīng)用。而數(shù)字定時(shí)鬧鐘是其中最基本,也是最有代表性的一個(gè)實(shí)例。數(shù)字定時(shí)鬧鐘的設(shè)計(jì)方法有許多種,例如,可以用中小規(guī)模集成電路組成數(shù)字定時(shí)鬧鐘,也可以利用專用的時(shí)鐘芯片配以顯示電路及其所需要的外圍電路組成數(shù)字定時(shí)鬧鐘,還可以利用單片機(jī)來(lái)實(shí)現(xiàn)數(shù)字定時(shí)鬧鐘。這些方法都各有其特點(diǎn),其中,利用單片機(jī)來(lái)實(shí)現(xiàn)數(shù)字定時(shí)鬧鐘具有編程靈活、精度高等特點(diǎn),便于數(shù)字定時(shí)鬧鐘功能的擴(kuò)充,同時(shí)還可以用該數(shù)字定時(shí)鬧鐘發(fā)出各種控制信號(hào)。1.2 實(shí)驗(yàn)?zāi)康模?1、熟悉集成電路的引腳安排。 2、掌握各芯片的邏輯功能及使用方法。 3、充分認(rèn)識(shí)單片機(jī)設(shè)計(jì)。 4、了解數(shù)字鐘的組成及工作原理。 5、提高同學(xué)們的動(dòng)手能力和編程技巧。1.3

4、總體設(shè)計(jì)要求: 1.3.1、基本要求: (1) 顯示準(zhǔn)確的北京時(shí)間(時(shí)、分、秒),可用24小時(shí)制式; (2) 隨時(shí)可以調(diào)校時(shí)間; (3)鬧鈴功能。 1.3.2、自由發(fā)揮部分: (1)秒表功能; (2)增加公歷日期顯示功能(年、月、日),年號(hào)只顯示最后兩位; (3) 隨時(shí)可以調(diào)校年、月、日; (4) 允許通過轉(zhuǎn)換功能鍵轉(zhuǎn)換顯示時(shí)間或日期。1.4 方案選定:思路:基于單片機(jī)的數(shù)字定時(shí)鬧鐘在設(shè)計(jì)時(shí)需要解決三個(gè)方面的主要問題:一是lcd顯示模塊的驅(qū)動(dòng)和編程,二是有關(guān)單片機(jī)中定時(shí)器的使用,三是如何利用單片機(jī)的外中斷實(shí)現(xiàn)時(shí)鐘功能和運(yùn)行模式的轉(zhuǎn)化。在基于單片機(jī)系統(tǒng)的數(shù)字定時(shí)鬧鐘電路中,除了基本的單片機(jī)系統(tǒng)和

5、外圍電路外,還需要外部的控制和顯示裝置。在本設(shè)計(jì)中,輸入裝置是按鍵開關(guān),用于控制數(shù)字定時(shí)鬧鐘的運(yùn)行模式,顯示裝置是lcd液晶顯示器。該數(shù)字定時(shí)鬧鐘是由at89c52單片機(jī)控制的,可以達(dá)到以下效果:1、能夠顯示“時(shí)時(shí)-分分-秒秒”。2、能夠設(shè)定定時(shí)時(shí)間、修改定時(shí)時(shí)間。3、定時(shí)時(shí)間到能夠發(fā)出一分鐘的報(bào)警聲。at89c52的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有128b 的ram、32條i/o口線、2個(gè)16位定時(shí)計(jì)數(shù)器、5個(gè)中斷源、一個(gè)全雙工串行口等。顯示部分采用六位一體的共陽(yáng)極數(shù)碼管。二、硬件電路設(shè)計(jì):2.1 at89c52: at89c52是51系列單片機(jī)的一個(gè)型號(hào),它是atmel公司生產(chǎn)的。

6、 主要功能特性: 1、兼容mcs51指令系統(tǒng)。2、8k可反復(fù)擦寫(1000次)flash rom。 3、32個(gè)雙向i/o口。 4、256x8bit內(nèi)部ram。 5、3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷。 6、時(shí)鐘頻率0-24mhz 7、2個(gè)串行中斷,可編程uart串行通道,2個(gè)外部中斷源,共6個(gè)中斷源 ,2個(gè)讀寫中斷口線,3級(jí)加密位,低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能。 2.2 復(fù)位電路: 為確保微機(jī)系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。一般微機(jī)電路正常工作需要供電電源為5v5%,即4.755.25v。由于微機(jī)電路是時(shí)序數(shù)字電路,它需要穩(wěn)定的時(shí)

7、鐘信號(hào),因此在電源上電時(shí),只有當(dāng)vcc超過4.75v低于5.25v以及晶體振蕩器穩(wěn)定工作時(shí),復(fù)位信號(hào)才被撤除,微機(jī)電路開始正常工作。 2.3 晶振電路:晶振在數(shù)字電路的基本作用是提供一個(gè)時(shí)序控制的標(biāo)準(zhǔn)時(shí)刻。數(shù)字電路的工作是根據(jù)電路設(shè)計(jì),在某個(gè)時(shí)刻門完成特定的任務(wù),如果沒有一個(gè)時(shí)序控制的標(biāo)準(zhǔn)時(shí)刻,整個(gè)數(shù)字電路就會(huì)成為“聾子”,不知道什么時(shí)刻該做什么事情了。晶振的作用是為系統(tǒng)提供基本的時(shí)鐘信號(hào)。通常一個(gè)系統(tǒng)共用一個(gè)晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。晶振的工作原理: 主板時(shí)鐘芯片即分頻器的原始工作振蕩頻率,由石英晶體多諧振蕩器的諧振頻

8、率來(lái)產(chǎn)生,晶振其實(shí)是一個(gè)頻率產(chǎn)生器,他主要把傳進(jìn)去的電壓轉(zhuǎn)化為頻率信號(hào)。提供給分頻率一個(gè)基準(zhǔn)的14.318mhz的振蕩頻率,它是一個(gè)多諧振蕩器的正回饋環(huán)電路,也就是說(shuō)它把輸入作為輸出,把輸出作為輸入的回饋頻率,象這樣一個(gè)永無(wú)休止的循環(huán)自激過程。2.4 時(shí)鐘顯示 2.4.1 lcd1602:工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行) 2.4.2 ds1302: 引腳功能及結(jié)構(gòu) ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc10.2v時(shí),

9、vcc2給ds1302供電。當(dāng)vcc2小于vcc1時(shí),ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。 下圖為ds1302的引腳功能圖: ds1302封裝圖 要特別說(shuō)明的是備用電源b1,可以用電池或者超級(jí)電容器(0.1f以上)。雖然ds1302在主電源掉電后的耗電很小,但是,如果要長(zhǎng)時(shí)間保證時(shí)鐘正常,最好選用小型充電電池。可以用老式電腦主板上的3.6v充電電池。如果斷電時(shí)間較短(幾小時(shí)或幾天)時(shí),就可以用漏電較小的普通電解電容器代替。100 f就可以保證1小時(shí)的正常走時(shí)。ds1302在第一次加電

10、后,必須進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。2.5 程序框圖:lcd液晶顯示電路復(fù)位、時(shí)鐘等電路單片機(jī) 鬧鐘鈴聲指示電路按鈕電路電源系統(tǒng)電子鬧鐘的主電路指的是圖中的框部分,主要設(shè)計(jì)到單片機(jī)電路和按鍵按鈕電路,主機(jī)的設(shè)計(jì)具體地說(shuō)有:(1)系統(tǒng)時(shí)鐘電路設(shè)計(jì);(2)系統(tǒng)復(fù)位電路設(shè)計(jì);(3)按鍵與按鈕電路設(shè)計(jì);(4)鬧鈴聲指示電路設(shè)計(jì)。本設(shè)計(jì)是定時(shí)鬧鐘的設(shè)計(jì),由單片機(jī)at89c52芯片和lcd液晶顯示器為核心,輔以時(shí)鐘芯片等必要電路,構(gòu)成的一個(gè)單片機(jī)電子定時(shí)鬧鐘。電子鐘設(shè)計(jì)可以采用數(shù)字。初始化2 程序流程圖計(jì)時(shí)時(shí)間顯示 比較蜂鳴器響y鬧鐘?鬧鐘標(biāo)志n讀鍵讀鍵判斷定時(shí)設(shè)定值2.6 基本電路

11、及工作原理:定時(shí)鬧鐘的設(shè)計(jì),由單片機(jī)at89c52芯片和ds1302和lcd液晶顯示器為核心,輔以必要的電路,構(gòu)成一個(gè)單片機(jī)電子定時(shí)鬧鐘。電子鐘設(shè)計(jì)可以采用數(shù)字電路實(shí)現(xiàn),也可以采用單片機(jī)來(lái)完成。at89c52的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有128b 的ram、32條i/o口線、2個(gè)16位定時(shí)計(jì)數(shù)器、5個(gè)中斷源、一個(gè)全雙工串行口等。at89c52結(jié)合用lcd液晶顯示器設(shè)計(jì)的簡(jiǎn)易定時(shí)鬧鐘,可以設(shè)置限制的時(shí)間及顯示鬧鐘設(shè)置時(shí)間,若時(shí)間一到則發(fā)車一陣聲響,進(jìn)一步可以擴(kuò)充控制電器的啟停。定時(shí)鬧鐘包括時(shí)間顯示,按鍵電路,復(fù)位電路,鬧鈴指示電路等等幾部分。三、軟件設(shè)計(jì)和仿真: 3.1 軟件設(shè)計(jì):#

12、include #include #include #define uchar unsigned char#define uint unsigned intsbit key_set =p10;sbit key_add =p11;sbit key_sub =p12;sbit key_break =p13;sbit bell =p30;sbit rs=p25;sbit rw=p26;sbit e =p27;sbit t_clk=p22;sbit t_io =p21;sbit t_rst=p20;sbit acc0=acc0;sbit acc7=acc7;uchar alarm_temp2=0,0;

13、/時(shí)、分uchar time_temp7=0x00,0x00,0x00,0x19,0x12,0x03,0x12,;/存放初始化時(shí)間及從ds1302讀取的數(shù)據(jù) /數(shù)據(jù)格式:秒 分 時(shí) 日 月 星期 年 /初始時(shí)間: 00-00-00-03-19- 12 -12bit m;void inittimer0(void) /50ms中斷,用于產(chǎn)生:的閃爍 tmod = 0x01; th0 = 0x3c; tl0 = 0x0b0; ea = 1; et0 = 1; tr0 = 1; /*定時(shí)器延時(shí),n為延時(shí)的微秒數(shù),整個(gè)程序可用*/void delay(uint n) th1=-n/236; tl1=-n

14、%236; tr1=1; while(!tf1) tf1=0; tr1=0;void delay_4s(void) /誤差 0us unsigned char a,b,c; for(c=252;c0;c-) for(b=230;b0;b-) for(a=33;a0;a-); _nop_(); /if keil,require use intrins.h/* lcd1602驅(qū)動(dòng)程序 *void lcd_wdat(uchar m) rs=1; rw=0; p0=m; delay(1); e=1; delay(1); e=0; void lcd_wcmd(uchar h) rs=0; rw=0; p

15、0=h; delay(1); e=1; delay(1); e=0;void lcd_init(void) delay(15000); lcd_wcmd(0x38); delay(5000); lcd_wcmd(0x38); delay(5000); lcd_wcmd(0x38); delay(5000); lcd_wcmd(0x0c); lcd_wcmd(0x06); lcd_wcmd(0x01);/*-*/*ds1302讀寫程序*/void rtinputbyte(uchar d) /往ds1302寫入1byte數(shù)據(jù) (內(nèi)部函數(shù)),d 寫入的數(shù)據(jù) uchar i; acc = d; for

16、(i=8; i0; i-) t_io = acc0; /*相當(dāng)于匯編中的 rrc */ t_clk = 1; t_clk = 0; acc = acc 1; uchar rtoutputbyte(void) /從ds1302讀取1byte數(shù)據(jù) (內(nèi)部函數(shù)) / uchar i; for(i=8; i0; i-) acc = acc 1; /*相當(dāng)于匯編中的 rrc */ acc7 = t_io; t_clk = 1; t_clk = 0; return(acc); void w1302(uchar ucaddr, uchar ucda)/往ds1302寫入數(shù)據(jù) /先寫地址,后寫命令/數(shù)據(jù) (內(nèi)

17、部函數(shù)) t_rst = 0; /ucaddr: ds1302地址, ucdata: 要寫的數(shù)據(jù) t_clk = 0; t_rst = 1; rtinputbyte(ucaddr); /* 地址,命令 */ rtinputbyte(ucda); /* 寫1byte數(shù)據(jù)*/ t_clk = 1; t_rst = 0;uchar r1302(uchar ucaddr)/讀取ds1302某地址的數(shù)據(jù),先寫地址,后讀命令/數(shù)據(jù) (內(nèi)部函數(shù)) /ucaddr: ds1302地址 uchar ucdata; /ucdata :讀取的數(shù)據(jù) t_rst = 0; t_clk = 0; t_rst = 1; r

18、tinputbyte(ucaddr); /* 地址,命令 */ ucdata = rtoutputbyte(); /* 讀1byte數(shù)據(jù) */ t_clk = 1; t_rst = 0; return(ucdata);void set1302(uchar *pclock) /設(shè)置初始時(shí)間,先寫地址,后讀命令/數(shù)據(jù)(寄存器多字節(jié)方式) /簆clock: 設(shè)置時(shí)鐘數(shù)據(jù)地址 格式為: 秒 分 時(shí) 日 月 星期 年 uchar i; uchar ucaddr = 0x80; w1302(0x8e,0x00); /* 控制命令,wp=0,寫操作*/ for(i =7; i0; i-) w1302(uca

19、ddr,*pclock); /* 秒 分 時(shí) 日 月 星期 年 */ pclock+; ucaddr +=2; w1302(0x8e,0x80); /* 控制命令,wp=1,寫保護(hù)*/*-開機(jī)顯示-*/void display1(void) uchar i; uchar code dis4=week; uchar code p116=name:chen haomin; uchar code p216= no:1008030204 ; delay(1000); for(i=0;i16;i+) lcd_wcmd(0x80|i); lcd_wdat(p1i); for(i=0;i16;i+) lcd

20、_wcmd(0xc0|i); lcd_wdat(p2i); delay_4s(); lcd_init(); delay(1000); delay(1000); lcd_wcmd(0x80);/2 lcd_wdat(0x32); lcd_wcmd(0x81);/0 lcd_wdat(0x30); for(i=0;i4;i+) delay(10);lcd_wcmd(0x80|i+0x0b);lcd_wdat(disi); /*-顯示部分-*/void disp(void) /*顯示時(shí)間*/ lcd_wcmd(0x82); lcd_wdat(r1302(0x8d)/16+0x30);/年 lcd_w

21、cmd(0x83); lcd_wdat(r1302(0x8d)%16+0x30); lcd_wcmd(0x84); /- lcd_wdat(45); lcd_wcmd(0x85); lcd_wdat(r1302(0x89)/16+0x30);/月 lcd_wcmd(0x86); lcd_wdat(r1302(0x89)%16+0x30); lcd_wcmd(0x87); /- lcd_wdat(45); lcd_wcmd(0x88); lcd_wdat(r1302(0x87)/16+0x30);/日 lcd_wcmd(0x89); lcd_wdat(r1302(0x87)%16+0x30);

22、lcd_wcmd(0x8a); lcd_wdat(32); lcd_wcmd(0x8f); lcd_wdat(r1302(0x8b)%16+0x30);/星期 lcd_wcmd(0xc0); lcd_wdat(r1302(0x85)/16+0x30);/時(shí) lcd_wcmd(0xc1); lcd_wdat(r1302(0x85)%16+0x30); /lcd_wcmd(0xc2); /: /lcd_wdat(58); lcd_wcmd(0xc3); lcd_wdat(r1302(0x83)/16+0x30);/分 lcd_wcmd(0xc4); lcd_wdat(r1302(0x83)%16+

23、0x30); /lcd_wcmd(0xc5); /lcd_wdat(58); /: lcd_wcmd(0xc6); lcd_wdat(r1302(0x81)/16+0x30);/秒 lcd_wcmd(0xc7); lcd_wdat(r1302(0x81)%16+0x30); /*顯示鬧鐘*/ lcd_wcmd(0xcb); lcd_wdat(alarm_temp1/10+0x30);/時(shí) lcd_wcmd(0xcc); lcd_wdat(alarm_temp1%10+0x30); lcd_wcmd(0xcd); lcd_wdat(58); lcd_wcmd(0xce); lcd_wdat(al

24、arm_temp0/10+0x30);/分 lcd_wcmd(0xcf); lcd_wdat(alarm_temp0%10+0x30);/秒/*-系統(tǒng)設(shè)置-*/void sys_set(void) uchar i,j; uchar key_state=0; tr0=0; /停止閃爍,顯示: lcd_wcmd(0xc2); lcd_wdat(58); lcd_wcmd(0xc5); lcd_wdat(58); while(key_break) if(!key_set) /adjust the key state delay(10000); if(!key_set) while(!key_set)

25、; key_state+; if(key_state=9) key_state=0; switch(key_state)/調(diào)整時(shí)間時(shí),需要的時(shí)候再讀出各寄存器的值,以完成調(diào)整時(shí)間的要求 /雖然會(huì)浪費(fèi)一定的空間,但能保證較快地響應(yīng)請(qǐng)求 /在每次讀出數(shù)據(jù)后應(yīng)將bcd碼轉(zhuǎn)化為16進(jìn)制數(shù),調(diào)整完成后,再將16進(jìn)制數(shù)轉(zhuǎn)化為bcd碼,最后給ds1302送數(shù) case 0:/時(shí)鐘 秒調(diào)整 time_temp0 lcd_wcmd(0xc8); lcd_wdat(67);/c lcd_wcmd(0xc9); lcd_wdat(45);/- lcd_wcmd(0xca); lcd_wdat(83); /s tim

26、e_temp0=r1302(0x81);/讀出秒寄存器 time_temp0=time_temp0/16*10+time_temp0%16;/轉(zhuǎn)化為16進(jìn)制數(shù) if(!key_add) delay(10000); if(!key_add) while(!key_add); time_temp0+; if(time_temp0=60) time_temp0=0; if(!key_sub) delay(10000); if(!key_sub) while(!key_sub); time_temp0-; if(time_temp0=255)time_temp0=59; w1302(0x8e,0x00

27、); w1302(0x80,time_temp0/10*16+time_temp0%10); w1302(0x8e,0x80); break; case 1:/時(shí)鐘 分調(diào)整 lcd_wcmd(0xc8); lcd_wdat(67);/c lcd_wcmd(0xc9); lcd_wdat(45);/- lcd_wcmd(0xca); lcd_wdat(77);/m time_temp1=r1302(0x83);/讀出分寄存器 time_temp1=time_temp1/16*10+time_temp1%16; if(!key_add) /+ delay(10000); if(!key_add)

28、while(!key_add); time_temp1+; if(time_temp1=60) time_temp1=0; if(!key_sub) /- delay(10000); if(!key_sub) while(!key_sub); time_temp1-; if(time_temp1=255) time_temp1=59; w1302(0x8e,0x00); w1302(0x82,time_temp1/10*16+time_temp1%10); w1302(0x8e,0x80); break; case 2:/時(shí)鐘 時(shí)調(diào)整 lcd_wcmd(0xc8); lcd_wdat(67);

29、/c lcd_wcmd(0xc9); lcd_wdat(45);/- lcd_wcmd(0xca); lcd_wdat(72);/h time_temp2=r1302(0x85);/讀出時(shí)寄存器 time_temp2=time_temp2/16*10+time_temp2%16; if(!key_add) /+ delay(10000); if(!key_add) while(!key_add); time_temp2+; if(time_temp2=24)time_temp2=0; if(!key_sub) /- delay(10000); if(!key_sub) while(!key_s

30、ub); time_temp2-; if(time_temp2=255) time_temp2=23; w1302(0x8e,0x00); w1302(0x84,time_temp2/10*16+time_temp2%10);/轉(zhuǎn)換為bcd碼 w1302(0x8e,0x80); break; case 3:/時(shí)鐘 日調(diào)整 lcd_wcmd(0xc8); lcd_wdat(67);/c lcd_wcmd(0xc9); lcd_wdat(45);/- lcd_wcmd(0xca); lcd_wdat(68);/d time_temp3=r1302(0x87);/讀出日寄存器 time_temp3=

31、time_temp3/16*10+time_temp3%16; time_temp6=r1302(0x8d);/讀年,用于判斷平年與閏年 i=time_temp6/16*10+time_temp6%16;/轉(zhuǎn)化為16進(jìn)制 j=r1302(0x89);/讀月 if(!key_add) /+ delay(10000); if(!key_add) while(!key_add); time_temp3+;if(j=0x02) if(time_temp3=30)&(i%4) time_temp3=0; if(time_temp3=29)&(!(i%4) time_temp3=0; if(j=0x01)

32、|(j=0x03)|(j=0x05)|(j=0x07)|(j=0x08)|(j=0x10)|(j=0x12) if(time_temp3=32) time_temp3=0; if(j=4)|(j=6)|(j=9)|(j=0x11) if(time_temp3=31) time_temp3=0; if(!key_sub) /- delay(10000); if(!key_sub) while(!key_sub); time_temp3-; if(j=2) /2月 if(time_temp3=255)&(i%4) time_temp3=29; if(time_temp3=255)&(!(i%4)

33、time_temp3=28; if(j=1)|(j=3)|(j=5)|(j=7)|(j=8)|(j=0x10)|(j=0x12)/1、3、5、7、8、10、12月 if(time_temp3=255) time_temp3=31; if(j=4)|(j=6)|(j=9)|(j=0x11)/4、6、9、11月 if(time_temp3=255) time_temp3=30; w1302(0x8e,0x00); w1302(0x86,time_temp3/10*16+time_temp3%10);/回寫 w1302(0x8e,0x80); break; case 4:/時(shí)鐘 月調(diào)整 lcd_wc

34、md(0xc8); lcd_wdat(67);/c lcd_wcmd(0xc9); lcd_wdat(45);/- lcd_wcmd(0xca); lcd_wdat(77);/m time_temp4=r1302(0x89);/讀出分寄存器 time_temp4=time_temp4/16*10+time_temp4%16; if(!key_add) /+ delay(10000); if(!key_add) while(!key_add); time_temp4+; if(time_temp4=13) time_temp4=0; if(!key_sub) /- delay(10000); i

35、f(!key_sub) while(!key_sub); time_temp4-; if(time_temp4=255) time_temp4=12; w1302(0x8e,0x00); w1302(0x88,time_temp4/10*16+time_temp4%10); w1302(0x8e,0x80); break; case 5:/時(shí)鐘 星期調(diào)整 lcd_wcmd(0xc8); lcd_wdat(67);/c lcd_wcmd(0xc9); lcd_wdat(45);/- lcd_wcmd(0xca); lcd_wdat(87);/w time_temp5=r1302(0x8b);/讀

36、出星期寄存器 time_temp5=time_temp5/16*10+time_temp5%16; if(!key_add) /+ delay(10000); if(!key_add) while(!key_add); time_temp5+; if(time_temp5=8) time_temp5=1; if(!key_sub) /- delay(10000); if(!key_sub) while(!key_sub); time_temp5-; if(time_temp5=0) time_temp5=7; w1302(0x8e,0x00); w1302(0x8a,time_temp5/10*16+time_temp5%10); w1302(0x8e,0x80); break; case 6:/時(shí)鐘 年調(diào)整 lcd_wcmd(0xc8); lcd_wdat(67);/c l

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論