版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)課程設(shè)計(jì)設(shè)計(jì)題目:電子時(shí)鐘設(shè)計(jì)電子學(xué) 院_ 物理與光電工程學(xué)院 專(zhuān) 業(yè)_ 電子科學(xué)與技術(shù) 年級(jí)班別 08級(jí)電子一班 學(xué) 號(hào) 3108009109 學(xué)生姓名_ 陳羅武 指導(dǎo)教師_ 何榕禮_ 2010年 12 月 18 日目錄一、 設(shè)計(jì)目的、設(shè)計(jì)題目二、 設(shè)計(jì)任務(wù)、功能描述.三、 硬件原理分析.四、 軟件設(shè)計(jì).五、 程序清單.一、設(shè)計(jì)目的、設(shè)計(jì)題目本設(shè)計(jì)的目的是設(shè)計(jì)一個(gè)實(shí)用的電子時(shí)鐘,該時(shí)鐘能夠?qū)崿F(xiàn)日常的時(shí)鐘顯示,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,同時(shí)具有時(shí)鐘調(diào)整、鬧鐘等功能。二、 設(shè)計(jì)任務(wù)、功能描述整體設(shè)計(jì)任務(wù):本電子時(shí)鐘設(shè)計(jì)首要的工作是結(jié)合以往所學(xué)的單片機(jī)程
2、序編寫(xiě)理論和編寫(xiě)規(guī)則來(lái)編寫(xiě)電子時(shí)鐘的軟件部分,編寫(xiě)時(shí)要結(jié)合所配的STM8S105芯片的管腳功能和其他硬件電路,如DS1302時(shí)鐘芯片和LCD1602液晶顯示屏,該部分運(yùn)用STVD單片機(jī)軟件來(lái)完成。在編寫(xiě)完軟件并檢測(cè)完正確后用仿真硬件檢測(cè)運(yùn)行檢測(cè)程序是否正確,并調(diào)試。待這一切工作做好后再利用系統(tǒng)板硬件電路來(lái)實(shí)踐實(shí)現(xiàn)軟件功能與硬件的結(jié)合。三、硬件原理分析電路設(shè)計(jì)分析電路原理設(shè)計(jì)是基于小系統(tǒng)包括電源電路、復(fù)位電路、按鍵電路、時(shí)鐘電路、LCD液晶顯示驅(qū)動(dòng)電路、輸出控制電路。電源部分是用直流電源經(jīng)變壓來(lái)提供的5V,晶體振蕩器采用的是16MHz的石英晶體振蕩器。部分硬件設(shè)計(jì):(1)本設(shè)計(jì)采用DS1302實(shí)
3、時(shí)時(shí)鐘芯片來(lái)進(jìn)行計(jì)時(shí),并將1302的數(shù)據(jù)輸入單片機(jī)進(jìn)行處理,送入LCD1602液晶顯示屏進(jìn)行顯示。(2)用四個(gè)電位按鍵來(lái)實(shí)現(xiàn)對(duì)電子時(shí)鐘的調(diào)試工作,當(dāng)按第一下總控鍵時(shí)進(jìn)入中斷程序,即時(shí)鐘的調(diào)整狀態(tài),有兩個(gè)電位按鍵分別來(lái)調(diào)整時(shí)鐘的加和減;第四個(gè)按鍵用來(lái)調(diào)整時(shí)分秒日月年,按一下調(diào)整秒,連按兩下調(diào)整分,按三下調(diào)整時(shí),四下調(diào)整日,五下調(diào)整月,六下調(diào)整年,七下退出時(shí)間設(shè)置。(3)用一個(gè)按鍵和其他部件組成的復(fù)位電路與芯片連接來(lái)實(shí)現(xiàn)整個(gè)程序及硬件的重新復(fù)位功能。部分電路圖如下:1.1復(fù)位電路本次設(shè)計(jì)采用按鍵電平復(fù)位,按鍵電平復(fù)位相當(dāng)于按復(fù)位鍵后,復(fù)位端通過(guò)電阻與VDD電源接通,如下圖:1.2振蕩器和時(shí)鐘電路設(shè)
4、計(jì)本次設(shè)計(jì)采用常用的內(nèi)部時(shí)鐘方式接法:通過(guò)在引腳OSCIN和OSCOUT兩端跨接晶體或陶瓷諧振器,再利用芯片內(nèi)部的振蕩電路,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路,如圖所示,外接晶振時(shí),C1和C2的值通常選擇為20-30pf。C1、C2對(duì)頻率有微調(diào)作用,影響振蕩的穩(wěn)定性和起振速度。所采用的晶體或陶瓷諧振器得頻率選擇0-24MHz。為了減小寄生電容,更好的保證振蕩器穩(wěn)定、可靠的工作,諧振器和電容贏盡可能與單片機(jī)芯片靠近安裝。1.3電源因?yàn)樵撾娐匪桦妷簽?v,可直接用電池供應(yīng)或也可以用直流電源供應(yīng),但需經(jīng)過(guò)變壓才行。1.4 DS1302實(shí)時(shí)時(shí)鐘芯片DS1302 是美國(guó)DALL
5、AS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。DS1302的引腳排列中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電
6、。當(dāng)Vcc2大于Vcc10.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí)
7、,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說(shuō)明。SCLK始終是輸入端。電路圖如下:1.4 LCD1602液晶屏顯示電路1602是一種字符型液晶顯示模塊,專(zhuān)門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以某公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實(shí)物如圖1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如下
8、:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第1
9、5腳:背光源正極。第16腳:背光源負(fù)極1.5輸出控制電路將PB口用于單片機(jī)和LCD顯示器的數(shù)據(jù)傳輸通道,如下圖所示,通過(guò)控制LCD的讀寫(xiě)控制端將1302的數(shù)據(jù)顯示出來(lái)。1.6整體布局圖四、 軟件設(shè)計(jì)分析1、地址空間及端口分配_Bool rs PC_ODR:1; /PC作為L(zhǎng)CD的控制端,設(shè)置為輸入_Bool rw PC_ODR:2;_Bool en PC_ODR:3;_Bool sclk PA_ODR:4; /串行時(shí)鐘,輸入輸出控制_Bool dio PA_ODR:5; /三線接口時(shí)的數(shù)據(jù)線_Bool id PA_IDR:5;_Bool ce PA_ODR:6; /作為復(fù)位端口_Bool ID
10、1 PG_IDR:0; /將PD6引腳設(shè)置為外部中斷的輸入引腳2、總體架構(gòu)說(shuō)明該時(shí)鐘程序設(shè)計(jì)思路如下:(1)、在程序頭將設(shè)計(jì)中的一些IO口進(jìn)行分配并注釋。(2)、初始化程序,對(duì)單片機(jī)的IO口設(shè)置為輸入輸出等,對(duì)1302,1602的參數(shù)進(jìn)行設(shè)置,如設(shè)定時(shí)鐘運(yùn)行為24小時(shí)制;將一些未到時(shí)鐘設(shè)計(jì)功能的功能端口關(guān)閉等。(3)開(kāi)始主程序進(jìn)行程序掃描,先掃初始化字子程序初始化DS1302和LCD1602,啟動(dòng)時(shí)鐘芯片進(jìn)行計(jì)時(shí),初始化1602的顯示方式,將分配好的時(shí)分秒等數(shù)字調(diào)入到顯示子程序中。顯示子程序通過(guò)分配的空間對(duì)應(yīng)口將DS1302時(shí)鐘芯片的數(shù)據(jù)顯示相應(yīng)的時(shí)分秒,年月日等。進(jìn)入按鍵掃描,判斷按鍵是否有
11、變動(dòng),若有就根據(jù)設(shè)計(jì)程序?qū)ο鄳?yīng)的按鍵按入次數(shù)而進(jìn)行實(shí)現(xiàn)相應(yīng)的功能。如進(jìn)入時(shí)間調(diào)整,中斷進(jìn)入、退出等。最后返回主程序頭重新依次掃描。顯示過(guò)程設(shè)有消隱,按鍵通過(guò)軟件去斗。(4)、子程序部分。在主程序的調(diào)用下依據(jù)不同的子程序工能而編寫(xiě)子程序,有多級(jí)嵌套。這些子程序包括顯示子程序、延時(shí)子程序、時(shí)間計(jì)數(shù)子程序、按鍵處理子程序、調(diào)時(shí)間子程序等。3、各子程序功能顯示子程序:將時(shí)鐘芯片1302內(nèi)的時(shí)鐘數(shù)據(jù)送入單片機(jī)進(jìn)行處理再送入LCD1602內(nèi)進(jìn)行顯示,顯示格式為:年/月/日/時(shí)/分/秒/星期。延時(shí)子程序:該子程序是為了實(shí)現(xiàn)1302及1602在讀寫(xiě)過(guò)程中的上升下降沿讓芯片有足夠的讀寫(xiě)時(shí)間,以及字符有足夠的顯示
12、時(shí)間,同時(shí)作為按鍵開(kāi)關(guān)掃描去抖的延遲時(shí)間。時(shí)間計(jì)數(shù)子程序:該程序功能是調(diào)動(dòng)DS1302的初始化程序、讀寫(xiě)程序,并將其內(nèi)部數(shù)據(jù)送入單片機(jī)內(nèi)進(jìn)行處理。DS1302選擇24小時(shí)工作方式,秒計(jì)數(shù),走到59后進(jìn)位分,后變00從新開(kāi)始計(jì)時(shí),分走到59后進(jìn)位時(shí),分從新開(kāi)始00計(jì)時(shí),時(shí)走到23,分走到59,秒走到59后進(jìn)入從新日期周期計(jì)時(shí)。按鍵處理子程序:該程序進(jìn)行按鍵處理的功能判斷分別對(duì)時(shí)分秒、年月日等進(jìn)行調(diào)整已經(jīng)中斷的進(jìn)入與退出等。4、程序清單#include stm8s105C_S.huchar n1,n2,n3;uchar u0,u1,u2,u3;uchar table=20 - - ; uchar
13、table1= : : ;uchar table2=0,1,2,3,4,5,6,7,8,9;uchar table3=MonTueWedThuFriSatSun;uchar table4= Happy birthday ; /16個(gè)字符uchar table5=;#define uint unsigned int #define uchar unsigned char #define PB PB_ODR#define Write_second 0X80 /秒寫(xiě)寄存器地址#define Write_minute 0X82/分寫(xiě)寄存器地址#define Write_hour 0X84/時(shí)寫(xiě)寄存器地
14、址#define Write_day 0X86/日寫(xiě)寄存器地址#define Write_month 0X88/月寫(xiě)寄存器地址#define Write_week 0X8A/周寫(xiě)寄存器地址#define Write_year 0X8C/年寫(xiě)寄存器地址#define Write_protect 0X8E/寫(xiě)保護(hù)字節(jié)寫(xiě)寄存器地址#define Write_chongdian 0x90 /慢充電寄存器地址#define Read_second 0X81/秒讀寄存器地址#define Read_minute 0X83/分讀寄存器地址#define Read_hour 0X85/時(shí)讀寄存器地址#defi
15、ne Read_day 0X87/日讀寄存器地址#define Read_month 0X89/月讀寄存器地址#define Read_week 0X8B/周讀寄存器地址#define Read_year 0X8D/年讀寄存器地址_Bool rs PC_ODR:1; /pc作為lcd的控制端,設(shè)置為輸入_Bool rw PC_ODR:2;_Bool en PC_ODR:3;_Bool sclk PA_ODR:4; /串行時(shí)鐘,輸入輸出控制_Bool dio PA_ODR:5; /三線接口時(shí)的數(shù)據(jù)線_Bool id PA_IDR:5;_Bool ce PA_ODR:6; /復(fù)位_Bool da_
16、od PA_DDR:5;_Bool da_CR1 PA_CR1:5;_Bool da_CR2 PA_CR2:5;_Bool ID1 PG_IDR:0; /將Pd6引腳設(shè)置我外部中斷的輸入引腳_Bool ID2 PD_IDR:5;_Bool ID3 PG_IDR:1;_Bool ID4 PD_IDR:6;/鍵盤(pán)的輸入/shfm_key(void) uchar lshi;uchar an=0,n=0;doif(!ID1)delay(6);if(!ID1)while(!ID1);lshi=1;an+;if(an=1)Write_ds1302(Write_second,0x80); /先暫停時(shí)鐘秒u2
17、=Read_ds1302(Read_second );u2=(u2&0x70)4)*10+(u2&0x0F);write_sfm(6,u2); lcd_wcom(0x80+0x40+7);lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開(kāi),有光標(biāo)if(an=2)u1=Read_ds1302(Read_minute);u1=(u1&0x70)4)*10+(u1&0x0F);write_sfm(3,u1); lcd_wcom(0x80+0x40+4); /顯示分lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開(kāi),有光標(biāo)if(an=3)u0=Read_
18、ds1302(Read_hour);u0=(u0&0x70)4)*10+(u0&0x0F);write_sfm(0,u0); lcd_wcom(0x80+0x40+1); /顯示時(shí)lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開(kāi),有光標(biāo)if(an=4)n3=Read_ds1302(Read_day);n3=(n3&0x70)4)*10+(n3&0x0F);write_sfm1(8,n3); lcd_wcom(0x80+9); /顯示日l(shuí)cd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開(kāi),有光標(biāo)if(an=5)n2=Read_ds1302(Read
19、_month);n2=(n2&0x70)4)*10+(n2&0x0F);write_sfm1(5,n2); lcd_wcom(0x80+6); /顯示月lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開(kāi),有光標(biāo) if(an=6)n1=Read_ds1302(Read_year);n1=(n1&0x70)4)*10+(n1&0x0F);write_sfm1(2,n1); lcd_wcom(0x80+3); /顯示年lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開(kāi),有光標(biāo)if(an=7)lshi=0;an=0;Write_ds1302(Write_
20、second,0x00); /從新開(kāi)啟時(shí)鐘lcd_wcom(0x38);lcd_wcom(0x0c);n=1; switch(an)case1:if(ID2=0)delay(4);if(ID2=0) while(!ID2);_asm(NOP);jia_key(Write_second,Read_second,6,1);_asm(NOP);if(ID3=0) /秒的減 delay(4);if(ID3=0) while(!ID3);_asm(NOP);jia_key(Write_second,Read_second,6,0);_asm(NOP);break;case 2 :if(ID2=0) /分
21、的加delay(4);if(ID2=0)while(!ID2);_asm(NOP);jia_key(Write_minute ,Read_minute,3,1);_asm(NOP);if(ID3=0) /分的減delay(4);if(ID3=0) while(!ID3);_asm(NOP);jia_key(Write_minute ,Read_minute,3,0);_asm(NOP); break;case 3 :if(ID2=0) /時(shí)的加 delay(4);if(ID2=0) while(!ID2);_asm(NOP);hjia_key(Write_hour,Read_hour,0,1)
22、;_asm(NOP); if(ID3=0) /小時(shí)的減 delay(4);if(ID3=0) while(!ID3);_asm(NOP);hjia_key(Write_hour,Read_hour,0,0);_asm(NOP); break;case 4: if(ID2=0) /日的加 delay(4);if(ID2=0) while(!ID2);_asm(NOP);rjia_key(Write_day,Read_day,8,1);_asm(NOP);if (ID3=0) /日的減 delay(4);if(ID3=0) while(!ID3);_asm(NOP);rjia_key(Write_
23、day,Read_day,8,0);_asm(NOP);break;case 5: if(ID2=0) /月的加delay(4);if(ID2=0) while(!ID2);_asm(NOP);yjia_key(Write_month ,Read_month,5,1);_asm(NOP); if(ID3=0) /月的減 delay(4);if(ID3=0) while(!ID3);_asm(NOP);yjia_key(Write_month ,Read_month,5,0);_asm(NOP); break;case 6:if(ID2=0) /年的加 delay(4);if(ID2=0) wh
24、ile(!ID2);_asm(NOP);njia_key(Write_year,Read_year,2,1);_asm(NOP); if(ID3=0) /年的減delay(4);if(ID3=0) while(!ID3);_asm(NOP);njia_key(Write_year,Read_year,2,0);_asm(NOP); break; while(lshi=1);_asm(NOP);return(n);return(n); void Write_ds1302(uchar addr,uchar dat)uchar i ;PC_DDR |=0xFF;PC_CR1 |=0xFF;PC_CR
25、2 |=0X00;ce = 0; /先復(fù)位sclk = 0; /清零,保持io口的低電平,以待數(shù)據(jù)的寫(xiě)入ce = 1; /置1,開(kāi)始寫(xiě)數(shù)據(jù)/發(fā)送地址for(i =0;i1; /右移一位sclk =1; /產(chǎn)生上升沿,發(fā)送數(shù)據(jù)sclk =0;/發(fā)送數(shù)據(jù)for(i=0;i1;sclk=1; /產(chǎn)生上升沿,發(fā)送數(shù)據(jù)delay(1);sclk=0;ce = 0;/讀操作/Read_ds1302(uchar addr) uchar i;uchar k;uchar dat;da_od=0;da_CR1=0;da_CR2=0;ce=0;sclk=0;ce=1;/發(fā)送地址for(i=0;i=1;sclk=1;
26、delay(2);da_od=0;da_CR1=0;da_CR2=0;/讀取數(shù)據(jù)/for(k=0;k=1;sclk=1;delay(2);sclk=0;delay(2); if(id=0)dat&=0x7f;else dat |= 0x80 ;sclk=1;ce=0;return(dat);/IO口的初始化/void GPIO_Init(void) PC_DDR |=0X0F;PC_CR1 |=0X0F;PC_CR2 |=0X00;PG_DDR |=0X00;PG_CR1 |=0X03;PG_CR2 |=0X00;PD_DDR |=0X1C;PD_CR1 |=0X0F;EXTI_CR1|=0X
27、00;ITC_SPR2|=0X30;PD_CR2 |=0X40;PA_DDR |=0XFF;PA_CR1 |=0XFF;PA_CR2 |=0X00;PB_DDR |=0XFF;PB_CR1 |=0XFF;PB_CR2 |=0X00;/延時(shí)函數(shù)/void delay(uint n) uint x,y; for(x=n;x0;x-) for(y=110;y0;y-); /1602寫(xiě)命令函/void lcd_wcom(uchar com)rs=0; /選擇指令寄存器 rw=0; /選擇寫(xiě) PB=com; /把命令字送入PBdelay(5); /延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù) en=1; /使能
28、線電平變化,命令送入1602的8位數(shù)據(jù)口 en=0; /1602寫(xiě)數(shù)據(jù)函數(shù) /void lcd_wdat(uchar dat) rs=1; /選擇數(shù)據(jù)寄存器 rw=0; /選擇寫(xiě) PB=dat; /把要顯示的數(shù)據(jù)送入P2 delay(5); /延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù) en=1; /使能線電平變化,數(shù)據(jù)送入1602的8位數(shù)據(jù)?en=0; /1602初始化函數(shù)/void lcd_init(void) uchar a,k;delay(15); /等待電源穩(wěn)定lcd_wcom(0x38); /8位數(shù)據(jù),雙列,5*7字形 lcd_wcom(0x0c); /開(kāi)啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍 l
29、cd_wcom(0x06); /顯示地址遞增,即寫(xiě)一個(gè)數(shù)據(jù)后顯示位置右移一位 lcd_wcom(0x01); /清屏 /顯示第一行/lcd_wcom(0x80);for(a=0;a15;a+)lcd_wdat(tablea);delay(5);/顯示第二行/lcd_wcom(0x80+0x40);for(k=0;k4)*10+(u1&0x0F);if(fen=1) u1+;if(u1=60) u1=0;else u1-;if(u1+1)=0) u1=59;if(u159) u1=59;Write_ds1302(rd,(u1/10)4)*10+(u0&0x0F);if(shi=1) u0+;if
30、(u0=24)u0=0;else u0-;if(u0+1)=0) u0=23; if(u023) u0=23; Write_ds1302(rd,(u0/10)4)*10+(n3&0x0F);if (day=1) n3+;if(n3=32) n3=0;elsen3-;if(n3+1)=0)n3=31;_asm(nop);if(n331) n3=31;Write_ds1302(rd,(n3/10)4)*10+(n2&0x0F);_asm(nop);if(yue=1) n2+;if(n2=13) n2=0; elsen2-;if(n2+1)=0) n2=12;if(n212) n2=12; Writ
31、e_ds1302(rd,(n2/10)4)*10+(n1&0x0F); if (nian=1) n1+;if(n1=100) n1=0; else n1-; if(n1+1)=0) n1=99; if(n199) n1=99; Write_ds1302(rd,(n1/10)4 | (n1%10);write_sfm1(fd,n1); lcd_wcom(0x80+fd); /顯示lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開(kāi),有光標(biāo)lcd_wcom(0x80+fd);/初始化1302,設(shè)置開(kāi)始時(shí)候的時(shí)分秒void Init_DS1302(void)Write_ds13
32、02(Write_protect,0x00);Write_ds1302(Write_year,0x0A);/年Write_ds1302(Write_month,0XC); /月Write_ds1302(Write_day,0X22); /日Write_ds1302(Write_hour,0X23); /小時(shí)Write_ds1302(Write_minute,0X59); /分Write_ds1302(Write_second,0X00); /秒Write_ds1302(Write_protect,0x80); /關(guān)閉寄存器操作;void write_sfm(uchar add,uchar dat) uchar shi,ge;shi=dat/10;ge=dat%10;lcd_wcom(0x80+0x40+add);lcd_wdat(table2shi); lcd_wdat(table2ge);void write_sfm1(uchar add,uchar dat) uchar shi,ge;shi=dat/10;ge=dat%10;lcd_wcom(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度模特時(shí)尚品牌代言聘用合同-@-15
- 2025年度事業(yè)單位網(wǎng)絡(luò)安全管理員勞動(dòng)合同范本3篇
- 二零二五年度內(nèi)墻涂料研發(fā)生產(chǎn)與品牌營(yíng)銷(xiāo)承包合同
- 2025年度智能晾曬系統(tǒng)配套個(gè)人木工裝修合同3篇
- 2025年度個(gè)人閑置物品轉(zhuǎn)讓合同范本3篇
- 2025年度個(gè)人投資理財(cái)咨詢(xún)服務(wù)合同范本8篇
- 2025年度個(gè)人住房貸款質(zhì)押合同標(biāo)準(zhǔn)文本及貸款逾期處理規(guī)定3篇
- 2025年度個(gè)人房地產(chǎn)抵押借款合同電子簽名版
- 二零二五年度農(nóng)家樂(lè)民宿設(shè)施使用權(quán)轉(zhuǎn)讓合同4篇
- 2025年度個(gè)人股權(quán)收購(gòu)與轉(zhuǎn)讓合同(資產(chǎn)重組版)3篇
- 射頻在疼痛治療中的應(yīng)用
- 和平精英電競(jìng)賽事
- 四年級(jí)數(shù)學(xué)豎式計(jì)算100道文檔
- “新零售”模式下生鮮電商的營(yíng)銷(xiāo)策略研究-以盒馬鮮生為例
- 項(xiàng)痹病辨證施護(hù)
- 職業(yè)安全健康工作總結(jié)(2篇)
- 懷化市數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展概況及未來(lái)投資可行性研究報(bào)告
- 07FD02 防空地下室電氣設(shè)備安裝
- 教師高中化學(xué)大單元教學(xué)培訓(xùn)心得體會(huì)
- 彈簧分離問(wèn)題經(jīng)典題目
- 部編版高中歷史中外歷史綱要(下)世界史導(dǎo)言課課件
評(píng)論
0/150
提交評(píng)論