版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于DS1302和AT89C51的萬年歷制作一、 題目分析以及器件選擇1、設(shè)計(jì)要求:電子萬年歷(a)、基本功能要求:1能夠正確進(jìn)行日歷記錄和顯示2能夠輸入設(shè)定年份3能夠通過按鍵進(jìn)行日歷的調(diào)整4能夠測試出溫度2、方案選擇:1時(shí)鐘芯片的選擇在這個(gè)系統(tǒng)中,最重要的就是時(shí)鐘芯片的選擇,在電子時(shí)鐘設(shè)計(jì)中,常用的時(shí)鐘芯片有DS1302、DS1216、DS1643、DS1302。每種芯片的主要功能基本相同,只是在引腳數(shù)量、備用電池的安裝方式、計(jì)時(shí)精度和擴(kuò)展功能等方面略有不同。DS12877與DS1216芯片都有內(nèi)嵌式鋰電池作為備用電源:X1203引腳少,沒有嵌入式鋰電池,跟DS1302芯片功能相似,只是相比
2、較之下,X1203與AT89S51搭配使用時(shí)占用I/O口較多。DS1643為帶有全功能實(shí)時(shí)時(shí)鐘的非易失性型SRAM,集成了非易失性型SRAM、實(shí)時(shí)時(shí)鐘、晶振、電源掉電控制電路和鋰電池電源,BCD碼表示的年、月、日、星期、時(shí)、分、秒,帶閏年補(bǔ)償。同樣。DS1643擁有28只管腳,硬件連起來占用微處理器I/O口較多,不方便系統(tǒng)功能拓展和維護(hù)。故而從性價(jià)比和貨源上考慮,本設(shè)計(jì)采用實(shí)時(shí)時(shí)鐘芯片DS1302。2顯示器件的選擇顯示器件的選擇范圍很廣,成本最低的就是采用八位數(shù)碼管進(jìn)行顯示,但是使用八位數(shù)碼管,經(jīng)過評(píng)估和計(jì)算需要至少八個(gè),這占用了太大的空間,而且很不美觀。第二個(gè)選擇就是使用液晶,采用12864
3、大液晶是普遍的選擇,但是成本太高,而且函數(shù)調(diào)用不便,程序較長,因此從節(jié)約成本的角度考慮,使用小液晶1602進(jìn)行設(shè)計(jì)。3設(shè)計(jì)評(píng)估本次設(shè)計(jì)完成了基本要求規(guī)定那個(gè)的所有內(nèi)容,能夠正確進(jìn)行日歷記錄和顯示、能夠輸入設(shè)定年份、能夠通過按鍵進(jìn)行日歷的調(diào)整、能夠進(jìn)行整點(diǎn)報(bào)時(shí)、每年1月1日進(jìn)行新年報(bào)時(shí)。二、 DS1302簡介1、總體概述圖一:DS1302外部引腳DS1302是一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加有31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可以采用突發(fā)方式,一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可以提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小于31日時(shí)可以自動(dòng)調(diào)整,包
4、括閏年,有效值2100年??梢圆捎?2h或24h方式計(jì)時(shí),采用雙電源供電,可設(shè)置備用電源充電方式,同時(shí)提供了對(duì)后備電源進(jìn)行涓流充電的能力。7個(gè)附加字節(jié)的暫存儲(chǔ)器,包括移位寄存器、控制邏輯、振蕩器、實(shí)時(shí)時(shí)鐘和RAM。芯片為8引腳小型DIP封裝,引腳排列如圖一所示,引腳功能見表一。引腳號(hào)名稱功能1Vcc1備份電源輸入2X132.768Hz晶振輸入3X232.768Hz晶振輸出4GND地5RST控制移位寄存器/復(fù)位6I/O數(shù)據(jù)輸入/輸出7SCLK串行時(shí)鐘8Vcc2主電源輸入表一:DS1302引腳功能說明2、DS1302的控制字和讀寫時(shí)序說明在變成過程中要注意DS1302的讀寫時(shí)序。DS1302是SP
5、I總線驅(qū)動(dòng)方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要了解DS1302的控制字。DS1302的控制字見表二:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT01RAMA4A3A2A1A0RDCKWR表二:DS1302的控制字控制字的作用是設(shè)定DS1302的工作方式、傳輸字節(jié)等。每次數(shù)據(jù)的傳輸都是由控制字開始??刂谱指魑坏暮x和作用如下:1、 BIT7:控制字的最高位有效,必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中;2、 BIT6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);3、 BIT5至BIT1(A4
6、A0):用A4A0表示,定義片內(nèi)寄存器和RAM地址。定義如下:當(dāng)BIT6位=0時(shí),定義時(shí)鐘和其他寄存器的地址。A4A0=06,順序?yàn)槊?、分、時(shí)、日、月、星期、年的寄存器。當(dāng)A4A0=7,為芯片寫保護(hù)寄存器地址。當(dāng)A4A0=8.為慢速充電參數(shù)選擇寄存器。當(dāng)A4A0=31,為時(shí)鐘多字節(jié)方式選擇寄存器。當(dāng)BIT6=1時(shí),定義RAM的地址,A4!A0=030,對(duì)應(yīng)各子地址的RAM,地址31對(duì)應(yīng)的是RAM多字節(jié)方式選擇寄存器。4、 BIT0(最低有效位):如果為0,表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作??刂谱挚偸菑淖畹臀婚_始輸出。在控制字指令輸入后的下一個(gè)SCLK時(shí)鐘上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)
7、據(jù)輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個(gè)SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。圖二:DS1302數(shù)據(jù)讀寫時(shí)序三、 DS1302在單片機(jī)系統(tǒng)中應(yīng)用的實(shí)現(xiàn)DS1302與單片機(jī)的鏈接僅需要3條線,即SCLK、I/O、RST。VCC2在單電源與電池供電的系統(tǒng)中提供地電源并能提供低功率的電池備份。VCC2在雙電源系統(tǒng)中提供電源,在這種運(yùn)行方式下VCC1連接到備份電源,以便在沒有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。DS1302由兩者中的較大者供電。當(dāng)VCC2大于VCC1+0.2V時(shí),VC2給DS1302供電。當(dāng)VCC2小于在單片機(jī)系統(tǒng)中使
8、用VCC1的時(shí)候,DS1302由VCC1供電。在本系統(tǒng)中,以ATmega為主器件,DS1302為從器件,RST接在主器件的PC4/TD0上,此引腳為高位的時(shí)候,選中該芯片,對(duì)其進(jìn)行操作。串行數(shù)據(jù)線I/O與串行時(shí)鐘線SCLK分別接在PC3/TMS和PC2/TCK上,所有的單片機(jī)地址、命令、及數(shù)據(jù)均通過這兩條線傳輸。在系統(tǒng)中,主器件在總線上產(chǎn)生時(shí)鐘脈沖,尋址信號(hào),數(shù)據(jù)信號(hào),而從器件則相應(yīng)接收數(shù)據(jù),送出數(shù)據(jù)。對(duì)DS1302的每一次讀寫都需要16個(gè)時(shí)鐘脈沖,前8個(gè)脈沖輸入操作地址和讀寫命令。1、 硬件設(shè)計(jì)此系統(tǒng)中的主要器件為單片機(jī)AT89C51和DS1302,系統(tǒng)的邏輯圖如下:圖三:系統(tǒng)的邏輯框圖其接
9、口電路如圖四所示。圖四:接口電路2、 程序設(shè)計(jì)單片機(jī)控制DS1302時(shí)鐘芯片的程序,主要包括兩個(gè)方面的關(guān)鍵內(nèi)容,一個(gè)是單片機(jī)對(duì)DS1302寄存器的地址定義和控制字的寫入,二是數(shù)據(jù)的讀取。單片機(jī)控制的DS1320時(shí)鐘實(shí)時(shí)時(shí)間控制樓成圖如下:為了節(jié)約成本,使用了實(shí)驗(yàn)室的開發(fā)板進(jìn)行連接,只是外接了一個(gè)1602小液晶。電路圖在整體框架圖中可以看見。四、 總結(jié)串行時(shí)鐘芯片DS1302連線簡單、體積小、價(jià)格低,再為控制其系統(tǒng)中應(yīng)用有著突出的優(yōu)點(diǎn)。DS1302可以用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄。這種記錄對(duì)長時(shí)間的連續(xù)測控系統(tǒng)結(jié)果分析及對(duì)異常數(shù)據(jù)出現(xiàn)
10、的原因的查找具有重要意義。附錄一:主程序#include #include /#include LCD1602.h/#include DS1302.h#define uint unsigned int#define uchar unsigned charsbit DS1302_CLK = P17; /實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳 sbit DS1302_IO = P16; /實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳 sbit DS1302_RST = P15; /實(shí)時(shí)時(shí)鐘復(fù)位線引腳sbit wireless_1 = P30;sbit wireless_2 = P31;sbit wireless_3 = P32;sbit wi
11、reless_4 = P33;sbit ACC0 = ACC0;sbit ACC7 = ACC7;char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; /秒,分,時(shí)到日,月,年位閃的計(jì)數(shù)sbit Set = P20; /模式切換鍵sbit Up = P21; /加法按鈕sbit Down = P22; /減法按鈕sbit out = P23; /立刻跳出調(diào)整模式按鈕sbit DQ = P10; /溫度傳送數(shù)據(jù)IO口char done,count,temp,flag,up_flag,down_flag;
12、uchar temp_value; /溫度值uchar TempBuffer5,week_value2;void show_time(); /液晶顯示程序/*1602液晶顯示部分子程序*/Port Definitions*sbit LcdRs= P25;sbit LcdRw= P26;sbit LcdEn = P27;sfr DBPort = 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口/內(nèi)部等待函數(shù)*unsigned char LCD_Wait(void)LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_(); LcdEn=0;
13、return DBPort;/向LCD寫入命令或數(shù)據(jù)*#define LCD_COMMAND0 / Command#define LCD_DATA1 / Data#define LCD_CLEAR_SCREEN0x01 / 清屏#define LCD_HOMING 0x02 / 光標(biāo)返回原點(diǎn)void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意順序LcdEn=1;_nop_();/注意順序LcdEn=0;_nop_();LCD_Wait(
14、);/設(shè)置顯示模式*#define LCD_SHOW0x04 /顯示開#define LCD_HIDE0x00 /顯示關(guān) #define LCD_CURSOR0x02 /顯示光標(biāo)#define LCD_NO_CURSOR0x00 /無光標(biāo) #define LCD_FLASH0x01 /光標(biāo)閃動(dòng)#define LCD_NO_FLASH0x00 /光標(biāo)不閃動(dòng)void LCD_SetDisplay(unsigned char DisplayMode)LCD_Write(LCD_COMMAND, 0x08|DisplayMode);/設(shè)置輸入模式*#define LCD_AC_UP0x02#defin
15、e LCD_AC_DOWN0x00 / default#define LCD_MOVE0x01 / 畫面可平移#define LCD_NO_MOVE0x00 /defaultvoid LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND, 0x04|InputMode);/初始化LCD*void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38); /8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW
16、|LCD_NO_CURSOR); /開啟顯示, 無光標(biāo)LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); /清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC遞增, 畫面不動(dòng)/液晶字符輸入的位置*void GotoXY(unsigned char x, unsigned char y)if(y=0)LCD_Write(LCD_COMMAND,0x80|x);if(y=1)LCD_Write(LCD_COMMAND,0x80|(x-0x40);/將字符輸出到液晶顯示void Print(unsigned char *str)whil
17、e(*str!=0)LCD_Write(LCD_DATA,*str);str+;/*DS1302時(shí)鐘部分子程序*/typedef struct _SYSTEMTIME_unsigned char Second;unsigned char Minute;unsigned char Hour;unsigned char Week;unsigned char Day;unsigned char Month;unsigned char Year;unsigned char DateString11;unsigned char TimeString9;SYSTEMTIME;/定義的時(shí)間類型SYSTEMT
18、IME CurrentTime;#define AM(X)X#define PM(X)(X+12) / 轉(zhuǎn)成24小時(shí)制#define DS1302_SECOND0x80 /時(shí)鐘芯片的寄存器位置,存放時(shí)間#define DS1302_MINUTE0x82#define DS1302_HOUR0x84 #define DS1302_WEEK0x8A#define DS1302_DAY0x86#define DS1302_MONTH0x88#define DS1302_YEAR0x8C void DS1302InputByte(unsigned char d) /實(shí)時(shí)時(shí)鐘寫入一字節(jié)(內(nèi)部函數(shù)) un
19、signed char i; ACC = d; for(i=8; i0; i-) DS1302_IO = ACC0; /相當(dāng)于匯編中的 RRC DS1302_CLK = 1; DS1302_CLK = 0; ACC = ACC 1; unsigned char DS1302OutputByte(void) /實(shí)時(shí)時(shí)鐘讀取一字節(jié)(內(nèi)部函數(shù)) unsigned char i; for(i=8; i0; i-) ACC = ACC 1; /相當(dāng)于匯編中的 RRC ACC7 = DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; return(ACC); void W
20、rite1302(unsigned char ucAddr, unsigned char ucDa)/ucAddr: DS1302地址, ucData: 要寫的數(shù)據(jù) DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr); / 地址,命令 DS1302InputByte(ucDa); / 寫1Byte數(shù)據(jù) DS1302_CLK = 1; DS1302_RST = 0; unsigned char Read1302(unsigned char ucAddr)/讀取DS1302某地址的數(shù)據(jù) unsigned c
21、har ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr|0x01); / 地址,命令 ucData = DS1302OutputByte(); / 讀1Byte數(shù)據(jù) DS1302_CLK = 1; DS1302_RST = 0; return(ucData);void DS1302_GetTime(SYSTEMTIME *Time) /獲取時(shí)鐘芯片的時(shí)鐘數(shù)據(jù)到自定義的結(jié)構(gòu)型數(shù)組unsigned char ReadValue;ReadValue = Read1302(DS1302_SEC
22、OND);Time-Second = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_MINUTE);Time-Minute = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_HOUR);Time-Hour = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_DAY);Time-Day = (ReadValue&0x70)4)
23、*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_WEEK);Time-Week = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_MONTH);Time-Month = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_YEAR);Time-Year = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);void DateToStr
24、(SYSTEMTIME *Time) /將時(shí)間年,月,日,星期數(shù)據(jù)轉(zhuǎn)換成液晶顯示字符串,放到數(shù)組里DateString if(hide_year2) /這里的if,else語句都是判斷位閃爍,2就不顯示,輸出字符串為 2007/07/22 Time-DateString0 = 2; Time-DateString1 = 0; Time-DateString2 = Time-Year/10 + 0; Time-DateString3 = Time-Year%10 + 0; else Time-DateString0 = ; Time-DateString1 = ; Time-DateString
25、2 = ; Time-DateString3 = ;Time-DateString4 = /;if(hide_monthDateString5 = Time-Month/10 + 0; Time-DateString6 = Time-Month%10 + 0; else Time-DateString5 = ; Time-DateString6 = ; Time-DateString7 = /;if(hide_dayDateString8 = Time-Day/10 + 0; Time-DateString9 = Time-Day%10 + 0; else Time-DateString8 =
26、 ; Time-DateString9 = ; if(hide_weekWeek%10 + 0; /星期的數(shù)據(jù)另外放到 week_value數(shù)組里,跟年,月,日的分開存放,因?yàn)榈纫幌乱谧詈箫@示 else week_value0 = ; week_value1 = 0;Time-DateString10 = 0; /字符串末尾加 0 ,判斷結(jié)束字符void TimeToStr(SYSTEMTIME *Time) /將時(shí),分,秒數(shù)據(jù)轉(zhuǎn)換成液晶顯示字符放到數(shù)組 TimeString; if(hide_hourTimeString0 = Time-Hour/10 + 0; Time-TimeStri
27、ng1 = Time-Hour%10 + 0; else Time-TimeString0 = ; Time-TimeString1 = ;Time-TimeString2 = :; if(hide_minTimeString3 = Time-Minute/10 + 0; Time-TimeString4 = Time-Minute%10 + 0; else Time-TimeString3 = ; Time-TimeString4 = ; Time-TimeString5 = :; if(hide_secTimeString6 = Time-Second/10 + 0; Time-TimeS
28、tring7 = Time-Second%10 + 0; else Time-TimeString6 = ; Time-TimeString7 = ; Time-DateString8 = 0;void Initial_DS1302(void) /時(shí)鐘芯片初始化 unsigned char Second=Read1302(DS1302_SECOND);if(Second&0x80) /判斷時(shí)鐘芯片是否關(guān)閉 Write1302(0x8e,0x00); /寫入允許Write1302(0x8c,0x07); /以下寫入初始化時(shí)間 日期:07/07/25.星期: 3. 時(shí)間: 23:59:55Writ
29、e1302(0x88,0x07);Write1302(0x86,0x25);Write1302(0x8a,0x07);Write1302(0x84,0x23);Write1302(0x82,0x59);Write1302(0x80,0x55);Write1302(0x8e,0x80); /禁止寫入/*ds18b20子程序*/*ds18b20延遲子函數(shù)(晶振12MHz )*/ void delay_18B20(unsigned int i)while(i-);/*ds18b20初始化函數(shù)*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /D
30、Q復(fù)位 delay_18B20(8); /稍做延時(shí) DQ = 0; /單片機(jī)將DQ拉低 delay_18B20(80); /精確延時(shí) 大于 480us DQ = 1; /拉高總線 delay_18B20(14); x=DQ; /稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗 delay_18B20(20);/*ds18b20讀一個(gè)字節(jié)*/ unsigned char ReadOneChar(void)uchar i=0;uchar dat = 0;for (i=8;i0;i-) DQ = 0; / 給脈沖信號(hào) dat=1; DQ = 1; / 給脈沖信號(hào) if(DQ) dat|=0x8
31、0; delay_18B20(4); return(dat);/*ds18b20寫一個(gè)字節(jié)*/ void WriteOneChar(uchar dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat=1; /*讀取ds18b20當(dāng)前溫度*/void ReadTemp(void)unsigned char a=0;unsigned char b=0;unsigned char t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號(hào)
32、列號(hào)的操作WriteOneChar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換delay_18B20(100); / this message is wery importantInit_DS18B20();WriteOneChar(0xCC); /跳過讀序號(hào)列號(hào)的操作WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度delay_18B20(100);a=ReadOneChar(); /讀取溫度值低位b=ReadOneChar(); /讀取溫度值高位temp_value=b4; void temp_to_str() /溫度數(shù)據(jù)轉(zhuǎn)換成液晶字符顯示 TempBuff
33、er0=temp_value/10+0; /十位 TempBuffer1=temp_value%10+0; /個(gè)位 TempBuffer2=0xdf; /溫度符號(hào) TempBuffer3=C; TempBuffer4=0;void Delay1ms(unsigned int count)unsigned int i,j;for(i=0;icount;i+)for(j=0;j0;delay-) for(i=0;i0x59) /超過59秒,清零 temp=0; break; case 2: temp=Read1302(DS1302_MINUTE); /讀取分?jǐn)?shù) temp=temp+1; /分?jǐn)?shù)加1
34、 up_flag=1; if(temp0x59) /超過59分,清零 temp=0; break; case 3: temp=Read1302(DS1302_HOUR); /讀取小時(shí)數(shù) temp=temp+1; /小時(shí)數(shù)加1 up_flag=1; if(temp0x23) /超過23小時(shí),清零 temp=0; break; case 4: temp=Read1302(DS1302_WEEK); /讀取星期數(shù) temp=temp+1; /星期數(shù)加1 up_flag=1; if(temp0x7) temp=1; break; case 5: temp=Read1302(DS1302_DAY); /
35、讀取日數(shù) temp=temp+1; /日數(shù)加1 up_flag=1; if(temp0x31) temp=1; break; case 6: temp=Read1302(DS1302_MONTH); /讀取月數(shù) temp=temp+1; /月數(shù)加1 up_flag=1; if(temp0x12) temp=1; break; case 7: temp=Read1302(DS1302_YEAR); /讀取年數(shù) temp=temp+1; /年數(shù)加1 up_flag=1; if(temp0x85) temp=0; break; default:break; while(Up=0); while(wi
36、reless_2=1); /void Downkey()/降序按鍵 Down=1; if(Down=0|wireless_3=1) mdelay(8); switch(count) case 1: temp=Read1302(DS1302_SECOND); /讀取秒數(shù) temp=temp-1; /秒數(shù)減1 down_flag=1; /數(shù)據(jù)調(diào)整后更新標(biāo)志 if(temp=0x7f) /小于0秒,返回59秒 temp=0x59; break; case 2: temp=Read1302(DS1302_MINUTE); /讀取分?jǐn)?shù) temp=temp-1; /分?jǐn)?shù)減1 down_flag=1; if
37、(temp=-1) temp=0x59; /小于0秒,返回59秒 break; case 3: temp=Read1302(DS1302_HOUR); /讀取小時(shí)數(shù) temp=temp-1; /小時(shí)數(shù)減1 down_flag=1; if(temp=-1) temp=0x23; break; case 4: temp=Read1302(DS1302_WEEK); /讀取星期數(shù) temp=temp-1; /星期數(shù)減1 down_flag=1; if(temp=0) temp=0x7; break; case 5: temp=Read1302(DS1302_DAY); /讀取日數(shù) temp=temp-1; /日數(shù)減1 down_flag=1; if(temp=0) temp=31; break; case 6: temp=Read1302(DS1302_MONTH); /讀取月數(shù) temp=temp-1; /月數(shù)減1 down_flag=1; if(temp=0) temp=12; break; case 7: temp=Read1302(DS1302_YEAR); /讀取年數(shù) temp=temp-1; /年數(shù)減1 down_flag=1; if(temp=-1) temp=0x85;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 20042.5-2024質(zhì)子交換膜燃料電池第5部分:膜電極測試方法
- 二零二五版瓷磚行業(yè)展會(huì)贊助合同3篇
- 2024泰州旅游行業(yè)員工勞動(dòng)合同標(biāo)準(zhǔn)范本2篇
- 2024標(biāo)的為800萬元的物流服務(wù)合同
- 2025年度綠色節(jié)能產(chǎn)品展銷會(huì)參展服務(wù)合同書3篇
- 二零二五年度高層管理人才派遣服務(wù)合同2篇
- 2025年度集裝箱金融服務(wù)合同含融資與結(jié)算3篇
- 2024版紗窗訂購合同范本
- 2025年度鋼材企業(yè)兼并收購合同2篇
- 2024版擔(dān)保個(gè)人借款協(xié)議
- 高職《勞動(dòng)教育》指導(dǎo)綱要
- XX公司年會(huì)活動(dòng)報(bào)價(jià)單
- 鋼鐵生產(chǎn)企業(yè)溫室氣體核算與報(bào)告案例
- 農(nóng)業(yè)合作社全套報(bào)表(已設(shè)公式)-資產(chǎn)負(fù)債表-盈余及盈余分配表-成員權(quán)益變動(dòng)表-現(xiàn)金流量表
- 貝利嬰幼兒發(fā)展量表BSID
- 人教部編版八年級(jí)歷史下冊第7課 偉大的歷史轉(zhuǎn)折課件(共25張PPT)
- SB/T 10863-2012家用電冰箱維修服務(wù)技術(shù)規(guī)范
- 偏癱患者的臨床護(hù)理及康復(fù)評(píng)估課件
- 公路施工期環(huán)保課件
- 檢驗(yàn)科危急值項(xiàng)目范圍考核試題與答案
- 3Q模板 IQOQPQ驗(yàn)證方案模版
評(píng)論
0/150
提交評(píng)論