51單片機(jī)ds1302時(shí)鐘報(bào)告概述_第1頁
51單片機(jī)ds1302時(shí)鐘報(bào)告概述_第2頁
51單片機(jī)ds1302時(shí)鐘報(bào)告概述_第3頁
51單片機(jī)ds1302時(shí)鐘報(bào)告概述_第4頁
51單片機(jī)ds1302時(shí)鐘報(bào)告概述_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、杭州電子科技大學(xué)信息工程學(xué)院杭州電子科技大學(xué)信息工程學(xué)院單片機(jī)課程設(shè)計(jì)報(bào)告項(xiàng)目:DS1302時(shí)鐘 學(xué)生姓名 學(xué) 號(hào) 完成日期 2016年12月29日1摘要時(shí)鐘在各行各業(yè)發(fā)揮著重要的作用,而它滿足人們的各種需要,更顯得重要,隨著數(shù)字技術(shù)的迅速發(fā)展,微控制器在社會(huì)的各個(gè)領(lǐng)域得到了廣泛的應(yīng)用,由于數(shù)字系統(tǒng)有著模擬系統(tǒng)所沒有的優(yōu)勢,如抗干擾性強(qiáng)、便于和PC機(jī)相聯(lián)、系統(tǒng)易于升級維護(hù)。本設(shè)計(jì)是以單片機(jī)AT80C51和DS1302芯片控制的時(shí)間計(jì)數(shù)。利用AT80C51芯片進(jìn)行低成本時(shí)鐘控制系統(tǒng)的設(shè)計(jì),能夠簡化系統(tǒng)構(gòu)成、降低系統(tǒng)成本、增強(qiáng)系統(tǒng)性能、滿足更多應(yīng)用場合的需要。系統(tǒng)實(shí)現(xiàn)對時(shí)鐘日期等在LCD上的實(shí)時(shí)顯

2、示。關(guān)鍵詞 時(shí)鐘;AT80C51;DS1302;abstractThe clock plays an important role in all walks of life, and it meet the various needs of the people, the more important, with the rapid development of digital technology, micro controller has been widely used in various fields of society, because the digital system ha

3、s a simulation system has advantages, such as strong anti-interference, easy to machine and PC. The system is easy to maintain and upgrade.This design is based on single-chip microcomputer AT80C51 and DS1302 chip control time count. The design of low cost clock control system based on AT80C51 chip c

4、an simplify the system structure, reduce the system cost, enhance the system performance and meet the needs of more applications. System to achieve real-time display of the clock date on the LCD.Keywords: clock; AT80C51; DS1302;第一章 緒論1.1時(shí)鐘模塊的介紹 1.1.1 DS1302簡介DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電

5、路,它可以對年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.0V5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時(shí)提供了對后備電源進(jìn)行涓細(xì)電流充電的能力。1.1.2 DS1302結(jié)構(gòu)DS1302的引腳排列,其中Vcc2為主電源,VCC1為后備電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2

6、大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)傳送的方法。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),

7、才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK為時(shí)鐘輸入端。 下圖為DS1302的引腳功能圖:圖1 Ds1302引腳口1.2單片機(jī)概述單片微型計(jì)算機(jī)的誕生是計(jì)算機(jī)發(fā)展史上的一個(gè)新的里程碑。近年來,隨著技術(shù)的發(fā)展和進(jìn)步,以及市場對產(chǎn)品功能和性能的要求不斷提高,直流電動(dòng)機(jī)的應(yīng)用更加廣泛,尤其是在智能機(jī)器人中的應(yīng)用。直流電動(dòng)機(jī)的起動(dòng)和調(diào)速性能、過載能力強(qiáng)等特點(diǎn)顯得十分重要,為了能夠適應(yīng)發(fā)展的要求,單閉環(huán)直流電動(dòng)機(jī)的調(diào)速控制系統(tǒng)得到了很大的發(fā)展。而作為單片嵌入式系統(tǒng)的核心單片機(jī),正朝著多功能、多選擇、高速度、低功耗、低價(jià)格、大存儲(chǔ)容量和強(qiáng)I/O功能等方向發(fā)展。隨著

8、計(jì)算機(jī)檔次的不斷提高,功能的不斷完善,單片機(jī)已越來越廣泛地應(yīng)用在各種領(lǐng)域的控制、自動(dòng)化、智能化等方面,特別是在直流電動(dòng)機(jī)的調(diào)速控制系統(tǒng)中。這是因?yàn)閱纹瑱C(jī)具有很多優(yōu)點(diǎn):體積小,功能全,抗干擾能力強(qiáng),可靠性高,結(jié)構(gòu)合理,指令豐富,控制功能強(qiáng),造價(jià)低等。所以選用單片機(jī)作為控制系統(tǒng)的核心以提高整個(gè)系統(tǒng)的可靠性和可行性。本設(shè)計(jì)的80C51單片機(jī)屬于MCS-51系列單片機(jī),由Intel公司開發(fā),其結(jié)構(gòu)是8048的延伸,改進(jìn)了8048的缺點(diǎn),增加了如乘(MUL)、除(DIV)、減(SUBB)、比較(CMP)、16位數(shù)據(jù)指針、布爾代數(shù)運(yùn)算等指令,以及串行通信能力和5個(gè)中斷源。采用40引腳雙列直插式DIP(Du

9、al In Line Package),內(nèi)有128個(gè)RAM單元及4K的ROM。圖2 80C51單片機(jī)引腳口第2章 總體方案2.1系統(tǒng)框架設(shè)計(jì)方案說明:時(shí)鐘系統(tǒng)以80C51單片機(jī)為控制核心,由輸入模塊、LCD顯示模塊及時(shí)鐘電路組成。采用獨(dú)立式鍵盤作為命令的輸入,單片機(jī)在程序控制下,定時(shí)讀取DS1302的片內(nèi)數(shù)據(jù),完成年、月、日、小時(shí)、分鐘、秒的實(shí)時(shí)顯示。圖3 系統(tǒng)框架設(shè)計(jì)2.2設(shè)計(jì)思路時(shí)鐘系統(tǒng)的主要功能包括:實(shí)現(xiàn)對時(shí)間的顯示,時(shí)間的調(diào)整,能夠很方便的實(shí)現(xiàn)時(shí)間系統(tǒng)控制。程序啟動(dòng)后,由DS1302的初始化,LCD1602的初始化后進(jìn)入主循環(huán),主循環(huán)由掃描按鍵,讀取時(shí)間,顯示三部分構(gòu)成。第3章 系統(tǒng)硬

10、件設(shè)計(jì)3.1 單片機(jī)控制模塊本設(shè)計(jì)采用protues仿真,80C51單片機(jī)的VCC、GND、XTAL1、XTAL2、RST、EA腳均沒有接外部電路,也可使用圖4 80C51電路的設(shè)計(jì)3.2 DS1302模塊本設(shè)計(jì)采用protues仿真,DS1302的X1、X2、GND腳沒有接外部電路,即可使用圖5 DS1302電路的設(shè)計(jì)3.3 LCD顯示模塊本設(shè)計(jì)采用protues仿真,LCD1602的Vcc、VEE、VDD、VSS、GND腳沒有接外部電路,即可使用圖6 LCD1602電路的設(shè)計(jì)3.1 獨(dú)立鍵盤控制模塊本設(shè)計(jì)采用protues仿真,共有5個(gè)按鍵,分別對應(yīng)不同功能,如下表:本設(shè)計(jì)中有5個(gè)獨(dú)立式按

11、鍵,具體功能如下:I/O口按鍵具體功能P3.0K1開啟時(shí)間修改P3.1K2時(shí)間位選加P3.2K3時(shí)間位選減P3.3K4時(shí)間加P3.7K5時(shí)間減表1 獨(dú)立按鍵功能圖7 獨(dú)立按鍵電路的設(shè)計(jì)結(jié)論通過本次實(shí)驗(yàn)設(shè)計(jì),使我們學(xué)到了許多書本上無法學(xué)到的知識(shí),也使我們深刻體會(huì)到單片機(jī)技術(shù)應(yīng)用領(lǐng)域的廣泛。不僅讓我們對學(xué)過的單片機(jī)知識(shí)有了很多的鞏固,同時(shí)也對單片機(jī)這一門學(xué)科產(chǎn)生了更大的興趣。通過本次設(shè)計(jì),較系統(tǒng)地掌握有關(guān)單片機(jī)控制的設(shè)計(jì)思想和設(shè)計(jì)方法,主要對51系列單片機(jī)的結(jié)構(gòu)、功能、及內(nèi)部資源,LCD顯示器等的了解,并對其進(jìn)行測試和加以應(yīng)用的知識(shí)得到學(xué)習(xí)。附錄一:總電路圖附錄二:程序15#include <

12、;reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit K1 = P30;/定義K1鍵sbit K2 = P31;/定義K2鍵 sbit K3 = P32;/定義K3鍵sbit K4 = P33;/P13定義K4鍵sbit K5 = P37;sbit BEEP=P23;/定義蜂鳴器sbit reset = P12;/P25;sbit sclk = P10;/P26;sbit io = P11;/P27;sbit LCD_RS=P35;sbit LCD_RW=P3

13、6; sbit LCD_EN=P34;uchar count_10ms;/定義10ms計(jì)數(shù)器bit K1_FLAG=0;/定義按鍵標(biāo)志位,當(dāng)按下K1鍵時(shí),該位置1,K1鍵未按下時(shí)0。uchar disp_buf16 =0x00;/定義顯示緩沖區(qū)uchar time_buf7 =0,0,0,0,0,0,0;/DS1302時(shí)間緩沖區(qū),存放秒、分、時(shí)、日、月、星期、年uchar temp 2=0;/用來存放設(shè)置時(shí)的小時(shí)、分鐘的中間值uint m=0,n=0,r=0;/*以下是函數(shù)聲明*/void Delay_ms(uint xms);bit lcd_busy();void lcd_wcmd(ucha

14、r cmd);void lcd_wdat(uchar dat);void lcd_clr();void lcd_init();void write_byte(uchar inbyte);/寫一字節(jié)數(shù)據(jù)函數(shù)聲明uchar read_byte();/讀一字節(jié)數(shù)據(jù)函數(shù)聲明void write_ds1302(uchar cmd,uchar indata);/寫DS1302函數(shù)聲明uchar read_ds1302(uchar addr);/讀DS1302函數(shù)聲明void set_ds1302(uchar addr,uchar *p,uchar n); /設(shè)置DS1302初始時(shí)間函數(shù)聲明void get

15、_ds1302(uchar addr,uchar *p,uchar n); /讀當(dāng)前時(shí)間函數(shù)聲明void init_ds1302();/DS1302初始化函數(shù)聲明/*以下是延時(shí)函數(shù)*/void Delay_ms(uint xms)uint i,j;for(i=xms;i>0;i-)/i=xms即延時(shí)約xms毫秒for(j=70;j>0;j-);/*以下是LCD忙碌檢查函數(shù)*/bit lcd_busy()bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(

16、P0&0x80);LCD_EN = 0;return result;/*以下是寫指令寄存器IR函數(shù)*/void lcd_wcmd(uchar cmd)Delay_ms(5);LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;/*以下是寫寄存器DR函數(shù)*/void lcd_wdat(uchar dat)Delay_ms(5);LCD_RS = 1;LCD

17、_RW = 0;LCD_EN = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;/*以下是LCD清屏函數(shù)*/void lcd_clr()lcd_wcmd(0x01);/清除LCD的顯示內(nèi)容Delay_ms(5);/*以下是LCD初始化函數(shù)*/void lcd_init()Delay_ms(15);/等待LCD電源穩(wěn)定lcd_wcmd(0x38);/16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)Delay_ms(5);lcd_wcmd(0x38);Delay_m

18、s(5);lcd_wcmd(0x38);Delay_ms(5);lcd_wcmd(0x0c);/顯示開,關(guān)光標(biāo)Delay_ms(5);lcd_wcmd(0x06);/移動(dòng)光標(biāo)Delay_ms(5);lcd_wcmd(0x01);/清除LCD的顯示內(nèi)容Delay_ms(5);/*以下是寫一字節(jié)數(shù)據(jù)函數(shù)*/void write_byte(uchar inbyte)uchar i;for(i=0;i<8;i+)sclk=0;/寫時(shí)低電平改變數(shù)據(jù)if(inbyte&0x01)io=1;elseio=0;sclk=1;/高電平把數(shù)據(jù)寫入DS1302_nop_();inbyte=inbyte

19、>>1;/*以下是讀一字節(jié)數(shù)據(jù)函數(shù)*/uchar read_byte()uchar i,temp=0;io=1;for(i=0;i<7;i+)sclk=0;if(io=1)temp=temp|0x80;elsetemp=temp&0x7f;sclk=1;/產(chǎn)生下跳沿temp=temp>>1;return (temp);/*寫DS1302函數(shù),往DS1302的某個(gè)地址寫入數(shù)據(jù)*/void write_ds1302(uchar cmd,uchar indata)sclk=0;reset=1;write_byte(cmd);write_byte(indata);

20、sclk=0;reset=0;/*讀DS1302函數(shù),讀DS1302某地址的的數(shù)據(jù)*/uchar read_ds1302(uchar addr)uchar backdata;sclk=0;reset=1;write_byte(addr);/先寫地址backdata=read_byte();/然后讀數(shù)據(jù)sclk=0;reset=0;return (backdata);/*以下是蜂鳴器響一聲函數(shù)*/void beep()BEEP=0;/蜂鳴器響Delay_ms(100);BEEP=1; /關(guān)閉蜂鳴器Delay_ms(100);/*以下是轉(zhuǎn)換函數(shù),負(fù)責(zé)將走時(shí)數(shù)據(jù)轉(zhuǎn)換為適合LCD顯示的數(shù)據(jù)*/void

21、 LCD_conv (uchar in7,in5,in4,in1,in2,in3 )/形參in1、in2、in3接收實(shí)參time_buf2、time_buf1、time_buf0傳來的小時(shí)、分鐘、秒數(shù)據(jù)disp_buf0=in1/10+0x30;/小時(shí)十位數(shù)據(jù)disp_buf1=in1%10+0x30;/小時(shí)個(gè)位數(shù)據(jù)disp_buf2=in2/10+0x30;/分鐘十位數(shù)據(jù)disp_buf3=in2%10+0x30;/分鐘個(gè)位數(shù)據(jù)disp_buf4=in3/10+0x30;/秒十位數(shù)據(jù)disp_buf5=in3%10+0x30;/秒個(gè)位數(shù)據(jù)disp_buf6=2+0x30;/年千位數(shù)據(jù)disp

22、_buf7=0+0x30;/年百位數(shù)據(jù)disp_buf8=in7/10+0x30;/年十位數(shù)據(jù)disp_buf9=in7%10+0x30;/年時(shí)個(gè)位數(shù)據(jù)disp_buf10=in5/10+0x30;/月十位數(shù)據(jù)disp_buf11=in5%10+0x30;/月個(gè)位數(shù)據(jù)disp_buf12=in4/10+0x30;/日十位數(shù)據(jù)disp_buf13=in4%10+0x30;/日個(gè)位數(shù)據(jù)/*以下是LCD顯示函數(shù),負(fù)責(zé)將函數(shù)LCD_conv轉(zhuǎn)換后的數(shù)據(jù)顯示在LCD上*/void LCD_disp ()lcd_wcmd(0x80+3);/顯示第一行l(wèi)cd_wdat(disp_buf6);/顯示年千位lc

23、d_wdat(disp_buf7);/顯示年百位lcd_wdat(disp_buf8);/顯示年十位lcd_wdat(disp_buf9);/顯示年個(gè)位lcd_wdat(0x3a);lcd_wdat(disp_buf10);/顯示月十位lcd_wdat(disp_buf11);/顯示月個(gè)位lcd_wdat(0x3a);lcd_wdat(disp_buf12);/顯示日十位lcd_wdat(disp_buf13);/顯示日個(gè)位lcd_wcmd(0x44 + 0x80);/從第2行第4列開始顯示lcd_wdat(disp_buf0);/顯示小時(shí)十位lcd_wdat(disp_buf1);/顯示小時(shí)

24、個(gè)位lcd_wdat(0x3a);/顯示':'lcd_wdat(disp_buf2);/顯示分鐘十位lcd_wdat(disp_buf3);/顯示分鐘個(gè)位lcd_wdat(0x3a);/顯示':'lcd_wdat(disp_buf4);/顯示秒十位lcd_wdat(disp_buf5);/顯示秒個(gè)位/*以下是按鍵處理函數(shù)*/void KeyProcess()uchar miao16,min16,hour16,ri16,yue16,nian16;/定義16進(jìn)制的分鐘和小時(shí)變量write_ds1302(0x8e,0x00);/DS1302寫保護(hù)控制字,允許寫lcd_

25、wcmd(0x0f);lcd_wcmd(0x80+0x40+12);if(K2=0)Delay_ms(10);/延時(shí)去抖if(K2=0)while(!K2);m+;if(m=7)m=1;if(K3=0)Delay_ms(10);/延時(shí)去抖if(K3=0)while(!K3);m-;if(m=0)m=6;if(m!=0)if(m=1&&K4=0)Delay_ms(10);/延時(shí)去抖if(m=1&&K4=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+0x40+8);while(!K4);beep();time_buf1=time_buf1+1;/分鐘

26、加1if(time_buf1=60) time_buf1=0;/當(dāng)分鐘加到60時(shí)初始化為0min16=time_buf1/10*16+time_buf1%10;/將所得的分鐘數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x82,min16);if(m=2&&K4=0)Delay_ms(10);/延時(shí)去抖if(m=2&&K4=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+0x40+5);while(!K4);beep();time_buf2=time_buf2+1;/小時(shí)減1if(time_buf2=24) time_buf2=0;/當(dāng)變成0時(shí)

27、初始化為24hour16=time_buf2/10*16+time_buf2%10;/將所得的小時(shí)數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x84,hour16);if(m=3&&K4=0)Delay_ms(10);/延時(shí)去抖if(m=3&&K4=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+12);while(!K4);beep();time_buf3=time_buf3+1;/日減1if(time_buf3=32) time_buf3=1;/當(dāng)日加到31初始化為0ri16=time_buf3/10*16+time_buf3%10;/將

28、所得的日數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x86,ri16);if(m=4&&K4=0)Delay_ms(10);/延時(shí)去抖if(m=4&&K4=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+9);while(!K4);beep();time_buf4=time_buf4+1;/月加1if(time_buf4=13) time_buf4=1;/當(dāng)月加到12初始化為1yue16=time_buf4/10*16+time_buf4%10;/將所得的月數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x88,yue16);if(m=5&

29、amp;&K4=0)Delay_ms(10);/延時(shí)去抖if(m=5&&K4=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+6);while(!K4);beep();time_buf6=time_buf6+1;/年減1if(time_buf6=100) time_buf6=0;/當(dāng)年加到100初始化為0nian16=time_buf6/10*16+time_buf6%10;/將所得的年數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x8C,nian16);if(m=6&&K4=0)Delay_ms(10);/延時(shí)去抖if(m=6&

30、;&K4=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+0x40+11);while(!K4);beep();time_buf0=time_buf0+1;/秒加1if(time_buf0=60) time_buf0=0;/當(dāng)秒加到60時(shí)初始化為0nian16=time_buf0/10*16+time_buf0%10;/將所得的秒數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x80,miao16);if(m=1&&K5=0)Delay_ms(10);/延時(shí)去抖if(m=1&&K5=0)lcd_wcmd(0x0f);lcd_wcmd(0x

31、80+0x40+8);while(!K5);beep();time_buf1=time_buf1-1;/分鐘減1if(time_buf1=-1) time_buf1=59;/當(dāng)分鐘加到60時(shí)初始化為0min16=time_buf1/10*16+time_buf1%10;/將所得的分鐘數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x82,min16);if(m=2&&K5=0)Delay_ms(10);/延時(shí)去抖if(m=2&&K5=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+0x40+5);while(!K5);beep();time_bu

32、f2=time_buf2-1;/小時(shí)減1if(time_buf2=-1) time_buf2=23;/當(dāng)小時(shí)變成0時(shí)初始化為24hour16=time_buf2/10*16+time_buf2%10;/將所得的小時(shí)數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x84,hour16);if(m=3&&K5=0)Delay_ms(10);/延時(shí)去抖if(m=3&&K5=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+12);while(!K5);beep();time_buf3=time_buf3-1;/日減1if(time_buf3=0) tim

33、e_buf3=31;/當(dāng)日加到60時(shí)初始化為0ri16=time_buf3/10*16+time_buf3%10;/將所得的日數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x86,ri16);if(m=4&&K5=0)Delay_ms(10);/延時(shí)去抖if(m=4&&K5=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+9);while(!K5);beep();time_buf4=time_buf4-1;/月減1if(time_buf4=0) time_buf4=12;/當(dāng)月加到12時(shí)初始化為0yue16=time_buf4/10*16+ti

34、me_buf4%10;/將所得的月數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x88,yue16);if(m=5&&K5=0)Delay_ms(10);/延時(shí)去抖if(m=5&&K5=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+6);while(!K5);beep();time_buf6=time_buf6-1;/年減1if(time_buf6=0) time_buf6=99;/當(dāng)年加到60時(shí)初始化為0nian16=time_buf6/10*16+time_buf6%10;/將所得的年數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x8

35、C,nian16);if(m=6&&K5=0)Delay_ms(10);/延時(shí)去抖if(m=6&&K5=0)lcd_wcmd(0x0f);lcd_wcmd(0x80+0x40+11);while(!K5);beep();time_buf0=time_buf0-1;/秒減1if(time_buf0=0) time_buf0=59;/當(dāng)秒加到60時(shí)初始化為0nian16=time_buf0/10*16+time_buf0%10;/將所得的秒數(shù)據(jù)轉(zhuǎn)變成16進(jìn)制數(shù)據(jù)write_ds1302(0x80,miao16);/*以下是讀取時(shí)間函數(shù),負(fù)責(zé)讀取當(dāng)前的時(shí)間,并將讀取到的時(shí)間轉(zhuǎn)換為10進(jìn)制數(shù)*/void get_time

溫馨提示

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

最新文檔

評論

0/150

提交評論