




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、硬件課程設(shè)計(jì)報告班級: 信科09-3姓名: 學(xué)號: 指導(dǎo)老師:完成日期:2011年12月20日課程設(shè)計(jì)指導(dǎo)老師評閱書指導(dǎo)老師評語:指導(dǎo)老師簽字:年 月 日目錄目錄3stc89c52單片機(jī)引腳圖.4實(shí)驗(yàn)電路原理圖5實(shí)驗(yàn)要求5概要6焊接工藝總結(jié)7編程思想.8程序框圖9核心代碼.12體會與建議.15附源代碼.16stc89c52引腳圖電路原理圖實(shí)驗(yàn)要求1, 完成電路板的焊接。2, 完成對兩個測試程序的代碼恢復(fù)。概要大學(xué)里面大多數(shù)課程是理論課程,但對于我們對動手能力要求較強(qiáng)的信科專業(yè),只學(xué)習(xí)理論知識遠(yuǎn)遠(yuǎn)不夠。學(xué)校里以前安排的一些實(shí)驗(yàn)課程,一直沒有引起自己的足夠注意,大多數(shù)都是課上應(yīng)付一下,然后草草交一
2、篇報告就了事了。以至于把寫報告當(dāng)成了實(shí)驗(yàn)的主要內(nèi)容,這是本末倒置的。隨著時間的積累,這種狀態(tài)在使我發(fā)虛。雖然大多數(shù)人仍是這種狀態(tài)。單片機(jī)是信科專業(yè)的核心課程,是和各種競賽,以及以后工作聯(lián)系最緊密的課程,是鍛煉動手能力的絕佳機(jī)會。因此在最開始我就給予了它足夠的重視,雖然進(jìn)展并不是一帆風(fēng)順,但我感覺收獲是豐富的,甚至可以說,這門課是我上大學(xué)以來讓我收獲最大的一門課程??粗陌傩凶约簩懙脑创a和運(yùn)行流暢時鐘,鬧鈴,以及別人羨慕的眼神,我感到一絲絲快意。整個課程設(shè)計(jì)分成兩個部分,第一個部分是電路板的焊接與調(diào)通,這是純硬件的,雖然技術(shù)含量比較低,但由于以前焊的少,還是碰到了好多問題,具體感受將在接下來
3、的說。第二個部分是程序設(shè)計(jì),這是實(shí)驗(yàn)的主要部分,是軟硬件結(jié)合的部分,也是最要技術(shù)的部分,要想寫出可運(yùn)行的程序,必須對每個電子器件和整個電路圖的布局引腳足夠熟悉。程序的設(shè)計(jì)是可以讓人入迷的,我記得好幾個晚上,我為了解決程序運(yùn)行過程中存在的問題而無法入睡。當(dāng)然,這次實(shí)驗(yàn)只是一個開端,電子設(shè)計(jì)還有很長的路要走,而留給我的時間已經(jīng)不多了,我會利用本次課程給我的知識,在這條路上走下去,相對于一些同學(xué),我可能晚了一步,但我相信,我會迅速追趕上來的。下面,我將寫出實(shí)驗(yàn)的具體內(nèi)容。焊接工藝總結(jié)這次焊接只是將直插的端口用焊錫封堵上,不涉及電路的連接,因此對知識的要求比較低。依我所見,如果焊接一帆風(fēng)順的話,反倒不
4、利于學(xué)習(xí),因?yàn)槿绻麤]有排錯的過程,人就不會關(guān)注電路板的內(nèi)部結(jié)構(gòu),及元器件的布局。我以前焊電路板比較少,因此焊接過程中出了很多問題,這才迫使我關(guān)注電路板的布線,甚至動用了萬用表去排錯,這使得我在編程之前已經(jīng)對電路很熟悉了,因此編程的時候比較順利。結(jié)合自己和周圍的同學(xué)焊接時遇到的問題,我得到了很多焊接電路板時的經(jīng)驗(yàn),具體總結(jié)如下:1. 焊接時心態(tài)一定要放平穩(wěn),不要著急,欲速則不達(dá)。2. 焊接時對有極性,有方向的器件一定要注意,比如發(fā)光二級管,數(shù)碼管,排阻等,不要安反。3. 焊接前最好保證器件本身是好的,這樣可以保證出現(xiàn)的問題是電路問題而不是器件本身的問題。雖然電子器件損壞得可能性比較小,但不是沒有
5、可能的。一旦裝上去再檢測器件本身的好壞就不是那么容易了。4. 對引腳比較多的器件一定要注意,確保安裝是正確的,因?yàn)檫@些器件一旦安裝錯誤想拆下來是很麻煩的。5. 對于同種器件一定要注意型號,這次兩個不同型號的排阻讓人吃盡了苦頭。6. 一定要注意安裝的順序,因?yàn)橛行┢骷坏┫劝惭b上另外一些器件就不好安裝或不能安裝了。編程思想這個程序是我到現(xiàn)在為止個人完成的最長的一個程序。程序一旦變長就會出現(xiàn)很多問題,比如說思維上容易混亂,查找錯誤困難,解決這些問題的核心編程思想就是使各個部分獨(dú)立出來,也就是使用模塊化的編程思想。這個程序,我主要分為六個模塊:全局變量的定義模塊,ds1302的初始化模塊,蜂鳴器音樂
6、播放模塊,時間顯示模塊,時間調(diào)節(jié)模塊和主函數(shù)調(diào)用模塊。當(dāng)然這些模塊并不是完全孤立的,他們存在相互調(diào)用,有一定耦合度。這是不可避免的。比如說要實(shí)現(xiàn)鬧鈴功能,即在顯示時間的同時顯示鬧鈴,就必須在顯示時間的代碼時延作為音符的延時。當(dāng)然我盡力做到各模塊的獨(dú)立性盡可能高。這樣做的好處有兩個,一個是使程序看起來清晰易懂,另外一個就是當(dāng)程序執(zhí)行和自己想的不一樣時容易判定哪一部分出了問題。當(dāng)然解決這些問題的另一個問題是必須有良好的編程風(fēng)格,恰當(dāng)利用空格換行和注釋。我想這一點(diǎn)我做到了。編程的基礎(chǔ)是對cpu工作原理的深刻理解和對電路結(jié)構(gòu)的明確把我。這要求把硬件和軟件結(jié)合起來,是最有難度,最要水平的地方,經(jīng)過這次訓(xùn)
7、練的洗禮,我感覺到我的能力有了質(zhì)的飛躍。程序設(shè)計(jì)框圖1,整體結(jié)構(gòu)框圖(主函數(shù)部分和時間調(diào)節(jié)部分)開始key6=1?讀取時間讀取時間是否顯示時分秒顯示年月日檢測鬧鈴檢測鬧鈴檢測按鍵檢測按鍵2,檢測按鍵調(diào)時部分程序框圖(以時分秒部分說明,年月日部分類似)開始key1是否按下?s1=s1+1s1=s1 s1%3=?012哪個鍵被按下?哪個鍵被按下?哪個鍵被按下?將小時加1后寫入ds1302將小時減1后寫入ds1302將 分鐘加1 后寫入ds1302將分鐘減1后寫入ds1302將秒加1后寫入ds1302將秒減1后寫入ds1302與左邊類似,這里略去沒有鍵按下key2key3key2key3key2ke
8、y33,鬧鐘部分程序流程圖:開始hour=12?(可調(diào))否是播放音樂哪個鍵被按下?換音樂停止播放音樂key4key5核心代碼音樂播放部分(鬧鈴部分)核心代碼:void delay(unsigned char t) /延時程序,控制發(fā)音的時間長度 unsigned char t1; unsigned long t2; for(t1 = 0; t1 t; t1+) /雙重循環(huán), 共延時t個半拍 for(t2 = 0; t2 20; t2+) read_time(); display1(); ; /延時期間, 可進(jìn)入t0中斷去顯示時間 tr0 = 0; /關(guān)閉t0, 停止發(fā)音這一部分是音符的延時,是
9、利用讀取時間和顯示時間完成延時的,保證了在響鬧鈴的同時還能顯示時間。void sound(void) if(hour=0x12) /12點(diǎn)時響鬧鐘 unsigned char k, i; tmod = 1; /置t0定時工作方式1 et0 = 1; /開t0中斷 ea = 1; /開cpu中斷 while(flag%2=0&flag30000) i = 0; time1 = 1; while(time1) k = sszymmh1i + 7 * sszymmh1i + 1 - 1; /第i個是音符, 第i+1個是第幾個八度 timer0h = freqhk; /從數(shù)據(jù)表中讀出頻率數(shù)值 time
10、r0l = freqlk; /實(shí)際上, 是定時的時間長度 time1 = sszymmh1i + 2; /讀出時間長度數(shù)值 i += 3; song(); if(key4=0|key5=0) break; +flag;if(key5=0)flag=30000; while(flag%2=1&flag30000) i = 0; time1 = 1; while(time1) k = sszymmh2i + 7 * sszymmh2i + 1 - 1; /第i個是音符, 第i+1個是第幾個八度 timer0h = freqhk; /從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = freqlk; /實(shí)際
11、上, 是定時的時間長度 time1 = sszymmh2i + 2; /讀出時間長度數(shù)值 i += 3; song(); if(key4=0|key5=0) break; +flag;if(key5=0)flag=30000;break; 這一部分是音樂播放的主函數(shù),有幾個方面需要注意,第一,利用if語句完成了定時功能,要想修改鬧鈴時間只需修改if語句里的內(nèi)容。第二,利用flag和按鍵共同完成了鬧鈴的控制,flag起初置0(上電后置0),按一下key4加1,當(dāng)它除以2余0時且小于一個特別大地?cái)?shù)時播放第一首樂曲,當(dāng)它除以2余1且小于一個特別大的數(shù)時播放第二首樂曲,當(dāng)檢測到key5按下時,把fla
12、g置成那個非常大的數(shù),此時播放結(jié)束,跳出循環(huán)。這就實(shí)現(xiàn)了用key4換音樂,用key5斷鬧鈴的功能。時間顯示部分:p2=0x80;p0=tabhour/16;delayms(3);p2=0x00;這里以小時的顯示說明,有三個問題需要注意。第一,共陽極和共陰數(shù)碼管的區(qū)別,對于每段數(shù)碼管,共陽極給0時發(fā)光,共陰極給1時發(fā)光,所以它們的編碼是不同的。對于每位而言,共陽極給1時導(dǎo)通,共陰極導(dǎo)通,所以編碼也是不同的。第二,從ds1302讀到的時間是用bcd碼表示的,所以對16求整和求余才能得到相應(yīng)的編碼。第三,我們看起來8位同時顯示利用的是視覺暫留。其實(shí)不是一直在顯示的.時間調(diào)節(jié)部分核心地嗎:if(key
13、2=0) delayms(100); if(key2=0)/key2按下表示加 write_ds1302(0x8e,0x00);/寫保護(hù)寄存器的使用if(hour0x23) write_ds1302(0x84,( hour=(hour/16*10+hour%16)+1)/10*16+(hour/16*10+hour%16)+1)%10 );/16進(jìn)制與十進(jìn)制轉(zhuǎn)換else write_ds1302(0x84,(0x00);/如果到了23點(diǎn)再加1應(yīng)寫入0點(diǎn),如果還照常加1,將會出現(xiàn)亂碼,以下類似write_ds1302(0x8e,0x80);/寫保護(hù)寄存器的使用這里以修改小時的代碼來說明問題,有三
14、個問題要注意。第一,利用按鍵控制加減,必須有足夠的延時,這里用了100毫秒,如果時間過短,程序會好幾次檢測到按下。第二,調(diào)試時必須首先將從ds1302讀到的bcd碼轉(zhuǎn)換成十進(jìn)制再加1,再轉(zhuǎn)換成bcd碼,然后寫入ds1302,要不然會出現(xiàn)亂碼。第三,調(diào)時的過程必須注意邊界,例如小時加到23應(yīng)歸零,小時減到0應(yīng)歸23,否則會出現(xiàn)亂碼。調(diào)節(jié)哪一位用的是全局變量,和鬧鈴中換音樂的方法類似,就不再羅嗦了。主函數(shù)部分核心代碼:while(1) changetime();/不斷循環(huán)掃描顯示,確定key6有沒有被按下主函數(shù)最好簡短,我做到了,但主函數(shù)非常重要。這里需要注意的是while(1)這個死循環(huán)是很重要
15、的,只有不斷循環(huán),才能檢測到key6有沒有被按下,依次確定是在年月日狀態(tài)下工作還是時分秒狀態(tài)下工作。至于,顯示時間,檢測鬧鈴都放時間調(diào)節(jié)函數(shù)changetime()中了。體會與建議通過這次試驗(yàn),我感覺到了在動手能力上和知識綜合運(yùn)用上的巨大提升。這些體會已在概要部分有了說明,這里不再贅述。當(dāng)然,直到驗(yàn)收的時刻,程序在設(shè)計(jì)上仍有一定不足,有待提升。事后,我比較了一下自己寫的程序和別的同學(xué)寫的程序。找出了自己的優(yōu)點(diǎn)和缺點(diǎn),優(yōu)點(diǎn)是使用方便,操作便捷,缺點(diǎn)是還有些可以擴(kuò)展的功能沒寫上。首先表現(xiàn)在,鬧鈴的時間只能在軟件上修改,不能用鍵盤調(diào)節(jié)鬧鈴時間。當(dāng)時把精力集中在利用擴(kuò)展鬧鈴的功能上,最終使數(shù)字鐘的鬧鈴
16、有了切換音樂的功能,結(jié)果是程序太長了,我刪掉了一部分樂譜才把程序裝下,當(dāng)時想再擴(kuò)展功能肯定裝不下了,所以也就沒再想怎么擴(kuò)展。其實(shí)數(shù)字鐘可以擴(kuò)展的功能很多,比如可以設(shè)置倒計(jì)時功能,可以利用紅外線遙控控制調(diào)節(jié),可以安裝溫度傳感器顯示溫度,等等,當(dāng)然這就太多了,內(nèi)存肯定不夠用。現(xiàn)在我在準(zhǔn)備參加電子設(shè)計(jì)競賽,做的也是數(shù)字鐘,不過這次用的avr單片機(jī),內(nèi)存要大,這就可以盡全力擴(kuò)展功能了。關(guān)于對本課程的建議,我覺得應(yīng)該繼續(xù)這樣開硬件課程設(shè)計(jì)這門課給每個同學(xué)配一套零件,讓同學(xué)們自己焊板子。同時,要加強(qiáng)監(jiān)管,尤其是平時,我個人覺得不能等到最后驗(yàn)收,而應(yīng)該將驗(yàn)收分幾次完成,貫穿于整個課程設(shè)計(jì),這樣不至于使一些同
17、學(xué),平時不努力,最后什么也做不出來,只能弄個程序草草交差了事。附:程序源代碼/*包含頭文件*/#include #include /*端口定義*/sbit ds1302_clk = p10;sbit ds1302_io = p11;sbit ds1302_rst = p12;/ds1302端口sbit key6=p17;sbit key5=p16;sbit key1=p32;sbit key2=p33;sbit key3=p34;sbit key4=p35;/鍵盤端口sbit speaker=p14;/蜂鳴器端口int s1=0,s2=0; /控制調(diào)節(jié)哪一位的變量int flag=0; /控制
18、蜂鳴器int day1; /記憶時間,以便每天可以使用鬧鈴/*共陽led段碼表*/unsigned char code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*定義全局變量*/unsigned char second,minute,hour,day,month,year;/秒,分,時,天,月,年變量定義/*延時程序*/void delayms(int xms)int i,j;for(i=xms;i0;i-)for(j=110;j0;j-);/*函數(shù)功能:數(shù)碼管顯示子程序*/*顯示時分秒*/void display1(voi
19、d)p2=0x80;p0=tabhour/16;delayms(3);p2=0x00;p2=0x40;p0=tabhour%16;delayms(3);p2=0x00;p2=0x20;p0=0xbf;/顯示-delayms(3);p2=0x00;p2=0x10;p0=tabminute/16;delayms(3);p2=0xff;p2=0x08;p0=tabminute%16;delayms(3);p2=0x00;p2=0x04;p0=0xbf;/顯示-delayms(3);p2=0x00;p2=0x02;p0=tabsecond/16;delayms(3);p2=0x00;p2=0x01;p
20、0=tabsecond%16;delayms(3);p2=0x00;/*顯示年月日*/void display2(void)p2=0x80;p0=tabyear/16;delayms(3);p2=0x00;p2=0x40;p0=tabyear%16;delayms(3);p2=0x00;p2=0x20;p0=0xbf;/顯示-delayms(3);p2=0x00;p2=0x10;p0=tabmonth/16;delayms(3);p2=0xff;p2=0x08;p0=tabmonth%16;delayms(3);p2=0x00;p2=0x04;p0=0xbf;/顯示-delayms(3);p2
21、=0x00;p2=0x02;p0=tabday/16;delayms(3);p2=0x00;p2=0x01;p0=tabday%16;delayms(3);p2=0x00;/*以下為ds1302基本操作程序*/*函數(shù)功能:向ds1302送一字節(jié)數(shù)據(jù)子程序入口參數(shù):出口參數(shù):*/void inputbyte(unsigned char byte1)char i;for(i=8;i0;i-)ds1302_io=(bit)(byte1&0x01);ds1302_clk=1;_nop_();ds1302_clk=0;byte1=1;return;/*函數(shù)功能:讀ds1302一個字節(jié)子程序入口參數(shù):出口
22、參數(shù):*/unsigned char outputbyte() unsigned char i;unsigned ucdat=0;for(i=8;i0;i-)ds1302_io=1;ucdat=1;if(ds1302_io)ucdat|=0x80;ds1302_clk=1;_nop_();ds1302_clk=0; return(ucdat);/*函數(shù)功能:向ds1302某地址寫一字節(jié)數(shù)據(jù)子程序入口參數(shù):addr,tdat出口參數(shù):*/void write_ds1302(unsigned char addr,unsigned char tdat)ds1302_rst=0;_nop_();ds1
23、302_clk=0;_nop_();ds1302_rst=1; inputbyte(addr);_nop_();inputbyte(tdat);ds1302_clk=1;_nop_();ds1302_rst=0;/*函數(shù)功能:讀ds1302地址子程序入口參數(shù):add出口參數(shù):timedata*/unsigned char read_ds1302(unsigned char addr)unsigned char timedata;ds1302_rst=0;_nop_();ds1302_clk=0;_nop_();ds1302_rst=1;inputbyte(addr);timedata=outp
24、utbyte();ds1302_clk=1;_nop_();ds1302_rst=0;return(timedata);/*函數(shù)功能:讀ds1302時間子程序入口參數(shù):出口參數(shù):全局變量(second,minute,hour,week,day,month,year)*/void read_time()second=read_ds1302(0x81);/秒寄存器minute=read_ds1302(0x83);/分hour=read_ds1302(0x85);/時day=read_ds1302(0x87);/日month=read_ds1302(0x89);/月year=read_ds1302(
25、0x8d);/年 /*以下為蜂鳴器程序,作為鬧鐘*/unsigned char timer0h, timer0l, time1;/-/單片機(jī)晶振采用11.0592mhz/ 頻率-半周期數(shù)據(jù)表 高八位 本軟件共保存了四個八度的28個頻率數(shù)據(jù)code unsigned char freqh = 0xf2, 0xf3, 0xf5, 0xf5, 0xf6, 0xf7, 0xf8, /低音1234567 0xf9, 0xf9, 0xfa, 0xfa, 0xfb, 0xfb, 0xfc, 0xfc,/1,2,3,4,5,6,7,i 0xfc, 0xfd, 0xfd, 0xfd, 0xfd, 0xfe, /
26、高音 234567 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff; /超高音 1234567/ 頻率-半周期數(shù)據(jù)表 低八位code unsigned char freql = 0x42, 0xc1, 0x17, 0xb6, 0xd0, 0xd1, 0xb6, /低音1234567 0x21, 0xe1, 0x8c, 0xd8, 0x68, 0xe9, 0x5b, 0x8f, /1,2,3,4,5,6,7,i 0xee, 0x44, 0x6b, 0xb4, 0xf4, 0x2d, /高音 234567 0x47, 0x77, 0xa2, 0xb6, 0xda,
27、 0xfa, 0x16; /超高音 1234567/-/樂譜1 世上只有媽媽好數(shù)據(jù)表 要想演奏不同的樂曲, 只需要修改這個數(shù)據(jù)表code unsigned char sszymmh1 = 6, 2, 3, 5, 2, 1, 3, 2, 2, 5, 2, 2, 1, 3, 2, 6, 2, 1, 5, 2, 1, /一個音符有三個數(shù)字。前為第幾個音、中為第幾個八度、后為時長(以半拍為單位)。/6, 2, 3 分別代表:, 中音, 個半拍;/5, 2, 1 分別代表:, 中音, 個半拍;/3, 2, 2 分別代表:, 中音, 個半拍;/5, 2, 2 分別代表:, 中音, 個半拍;/1, 3, 2
28、 分別代表:, 高音, 個半拍;/6, 2, 4, 3, 2, 2, 5, 2, 1, 6, 2, 1, 5, 2, 2, 3, 2, 2, 1, 2, 1,6, 1, 1, 5, 2, 1, 3, 2, 1,;/-/樂譜2祝你生日快樂code unsigned char sszymmh2= 5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4, 5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, ;/限于內(nèi)存,樂譜沒有寫完void t0int() interrupt 1 /t0中斷程序,控制發(fā)音的音調(diào) tr0 = 0; /先關(guān)閉t0 speake
29、r = !speaker; /輸出方波, 發(fā)音 th0 = timer0h; /下次的中斷時間, 這個時間, 控制音調(diào)高低 tl0 = timer0l; tr0 = 1; /啟動t0/-void delay(unsigned char t) /延時程序,控制發(fā)音的時間長度 unsigned char t1; unsigned long t2; for(t1 = 0; t1 t; t1+) /雙重循環(huán), 共延時t個半拍 for(t2 = 0; t2 20; t2+) read_time(); display1(); ; /延時期間, 可進(jìn)入t0中斷去顯示時間 tr0 = 0; /關(guān)閉t0, 停止
30、發(fā)音/-void song() /演奏一個音符 th0 = timer0h; /控制音調(diào) tl0 = timer0l; tr0 = 1; /啟動t0, 由t0輸出方波去發(fā)音delay(time1); /控制時間長度/-void sound(void) if(hour=0x12) /12點(diǎn)時響鬧鐘 unsigned char k, i; tmod = 1; /置t0定時工作方式1 et0 = 1; /開t0中斷 ea = 1; /開cpu中斷 while(flag%2=0&flag30000) i = 0; time1 = 1; while(time1) k = sszymmh1i + 7 *
31、sszymmh1i + 1 - 1; /第i個是音符, 第i+1個是第幾個八度 timer0h = freqhk; /從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = freqlk; /實(shí)際上, 是定時的時間長度 time1 = sszymmh1i + 2; /讀出時間長度數(shù)值 i += 3; song(); if(key4=0|key5=0) break; +flag;if(key5=0)flag=30000; while(flag%2=1&flag30000) i = 0; time1 = 1; while(time1) k = sszymmh2i + 7 * sszymmh2i + 1 - 1
32、; /第i個是音符, 第i+1個是第幾個八度 timer0h = freqhk; /從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = freqlk; /實(shí)際上, 是定時的時間長度 time1 = sszymmh2i + 2; /讀出時間長度數(shù)值 i += 3; song(); if(key4=0|key5=0) break; +flag;if(key5=0)flag=30000;break; /*以下為時間變換函數(shù)*/ void changetime() while(key6=1) /如果key6未被按下,則顯示時分秒 day1=day;/讀取時間 display1(); /顯示使時間 sound(
33、); /檢測鬧鈴 if(key1=0) delayms(100); if(key1=0) /確認(rèn)按下 s1+;switch(s1%3) /分情況通論,按一下調(diào)時,再按一下調(diào)分,再按一下調(diào)秒,如此循環(huán)往復(fù) case 0: if(key2=0) delayms(100); if(key2=0)/key2按下表示加 write_ds1302(0x8e,0x00);/寫保護(hù)寄存器的使用if(hour0x00) write_ds1302(0x84,( hour=(hour/16*10+hour%16)-1)/10*16+(hour/16*10+hour%16)-1)%10 );elsewrite_ds1302(0x84,0x23);write_ds1302(0x8e,0x80);break; case 1: if(key2=0) delayms(100); if(key2=0) write_ds1302(0x8e,0x00);if(minute0x00) write_ds1302(0x82,( minute=(minute/16*10+minute%16)-1)/10*16+(minute/16*10+minute%16)-1)%10 ) ;elsewrite_ds1302(0x82,0x59);write_ds1302(0x8e,0x80);bre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 既有線施工安全管理措施
- 業(yè)務(wù)拓展策略執(zhí)行情況分析表
- 農(nóng)民合作社財(cái)務(wù)規(guī)范化管理手冊
- 護(hù)師主管護(hù)師復(fù)習(xí)測試卷
- 法務(wù)知識入門學(xué)習(xí)指南
- 三農(nóng)村合作社公共交通規(guī)劃指南
- 季度人力資源招聘與優(yōu)化規(guī)劃書
- 股份制公司辦公環(huán)境優(yōu)化計(jì)劃
- 互聯(lián)網(wǎng)租賃車平臺合作協(xié)議
- 電視編導(dǎo)制作實(shí)戰(zhàn)指南
- GB/T 22084.2-2024含堿性或其他非酸性電解質(zhì)的蓄電池和蓄電池組便攜式密封蓄電池和蓄電池組第2部分:金屬氫化物鎳電池
- (高清版)DZT 0203-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 稀有金屬類
- 《阿Q正傳》《邊城》聯(lián)讀課件 統(tǒng)編版高中語文選擇性必修下冊
- 設(shè)計(jì)方案提資
- 小學(xué)美術(shù)人教版三年級下冊 .動物的花衣裳 教學(xué)課件
- 2024年六安職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 天津醫(yī)院運(yùn)營分析報告
- 消化道出血病人健康教育課件
- ps摳圖講課教案
- 《橋梁施工方法掛籃》課件
- 《慢性呼吸道疾病》課件
評論
0/150
提交評論