




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、電氣工程學(xué)院創(chuàng) 新 設(shè) 計 說 明 書題目: 多功能電子鐘 學(xué)院(系): 電氣工程學(xué)院 年級專業(yè): 10級過程控制2班 學(xué) 號: 100103010193 學(xué)生姓名: 卓策 燕山大學(xué)課程設(shè)計(論文)任務(wù)書院(系):電氣工程學(xué)院 基層教學(xué)單位:電子實驗中心 學(xué) 號學(xué)生姓名專業(yè)(班級)設(shè)計題目多功能電子鐘設(shè)計技術(shù)參數(shù)使用數(shù)碼管顯示時間;具有鬧鐘功能設(shè)置、取消功能;具有時間調(diào)整功能設(shè)計要求時間可以設(shè)置24小時或12小時模式;時間可以使用按鍵調(diào)整;鬧鐘可以使用按鍵設(shè)置、取消;鬧鐘狀態(tài)使用第六位位數(shù)碼管顯示是否工作。時間顯示模式使用第五位數(shù)碼管顯示。工作量學(xué)會使用iar軟件;獨立完成電路設(shè)計,程序設(shè)計、
2、連接電路和調(diào)試;參加答辯并書寫任務(wù)書。工作計劃第5章 了解單片機的基本知識,學(xué)習(xí)使用軟件,下發(fā)任務(wù)書,開始電路設(shè)計;第6章 學(xué)習(xí)使用相關(guān)軟件,繼續(xù)電路設(shè)計;第7章 完成電路設(shè)計;第8章 編程下載、連接電路、調(diào)試和驗收;第9章 答辯并書寫任務(wù)書。參考資料1 強錫富. 傳感器. 機械工業(yè)出版社,2001年2 李科杰. 新編傳感器技術(shù)手冊. 國防工業(yè)出版社,2002年3 賈伯年. 傳感器技術(shù). 東南大學(xué)出版社,1992指導(dǎo)教師簽字基層教學(xué)單位主任簽字說明:此表一式四份,學(xué)生、指導(dǎo)教師、基層教學(xué)單位、系部各一份。 年 月 日 目 錄一、 設(shè)計目的、設(shè)計題目二、 設(shè)計任務(wù)、功能描述三、 硬件原理分析四、
3、 軟件設(shè)計五、 程序清單 六、 心得體會摘要本設(shè)計從日常生活中常見的事物入手,通過對電子時鐘的設(shè)計,讓我們認(rèn)識到單片機已經(jīng)深入到我們生活的每個領(lǐng)域,該設(shè)計不僅可以鍛煉我們的動手能力,而且可以加深我們對單片機的認(rèn)識和激發(fā)我們對未知科學(xué)領(lǐng)域的探索。本文利用單片機實現(xiàn)數(shù)字時鐘計時功能的主要內(nèi)容。它體積小,成本低、功能強、使用方便、可靠性高等一系列優(yōu)點,廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動化上。本次設(shè)計采用獨立式按鍵進行時間調(diào)整,其中stm8s是核心元件,同時采用數(shù)碼管led動態(tài)顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。與傳統(tǒng)機械表相比,它具有走時精確,顯示直觀等特點。它的計時周期為24小時,顯滿刻度為“23
4、時59分59秒”,另外利用ds1302具有校時功能,斷電后有記憶功能,恢復(fù)供電時可實現(xiàn)計時同步等特點。該系統(tǒng)同時具有硬件設(shè)計簡單、工作穩(wěn)定性高、價格低廉等優(yōu)點。關(guān)鍵詞:stm8s ; led數(shù)碼管;ds1302芯片;一、設(shè)計目的、設(shè)計題目本設(shè)計的目的是設(shè)計一個實用的電子時鐘,該時鐘能夠?qū)崿F(xiàn)日常的時鐘顯示,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,同時具有時鐘調(diào)整、鬧鐘等功能。二、 設(shè)計任務(wù)、功能描述整體設(shè)計任務(wù):本電子時鐘設(shè)計首要的工作是結(jié)合以往所學(xué)的單片機程序編寫理論和編寫規(guī)則來編寫電子時鐘的軟件部分,編寫時要結(jié)合所配的stm8s105芯片的管腳功能和其他硬件電路,如d
5、s1302時鐘芯片和lcd1602液晶顯示屏,該部分運用stvd單片機軟件來完成。在編寫完軟件并檢測完正確后用仿真硬件檢測運行檢測程序是否正確,并調(diào)試。待這一切工作做好后再利用系統(tǒng)板硬件電路來實踐實現(xiàn)軟件功能與硬件的結(jié)合。三、 硬件原理分析電路設(shè)計分析電路原理設(shè)計是基于小系統(tǒng)包括電源電路、復(fù)位電路、按鍵電路、時鐘電路、lcd液晶顯示驅(qū)動電路、輸出控制電路。電源部分是用直流電源經(jīng)變壓來提供的5v,晶體振蕩器采用的是16mhz的石英晶體振蕩器。部分硬件設(shè)計:(1)本設(shè)計采用ds1302實時時鐘芯片來進行計時,并將1302的數(shù)據(jù)輸入單片機進行處理,送入lcd1602液晶顯示屏進行顯示。(2)用四個電
6、位按鍵來實現(xiàn)對電子時鐘的調(diào)試工作,當(dāng)按第一下總控鍵時進入中斷程序,即時鐘的調(diào)整狀態(tài),有兩個電位按鍵分別來調(diào)整時鐘的加和減;第四個按鍵用來調(diào)整時分秒日月年,按一下調(diào)整秒,連按兩下調(diào)整分,按三下調(diào)整時,四下調(diào)整日,五下調(diào)整月,六下調(diào)整年,七下退出時間設(shè)置。(3)用一個按鍵和其他部件組成的復(fù)位電路與芯片連接來實現(xiàn)整個程序及硬件的重新復(fù)位功能。部分電路圖如下:1.1復(fù)位電路本次設(shè)計采用按鍵電平復(fù)位,按鍵電平復(fù)位相當(dāng)于按復(fù)位鍵后,復(fù)位端通過電阻與vdd電源接通,如下圖:1.2振蕩器和時鐘電路設(shè)計本次設(shè)計采用常用的內(nèi)部時鐘方式接法:通過在引腳oscin和oscout兩端跨接晶體或陶瓷諧振器,再利用芯片內(nèi)部
7、的振蕩電路,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘電路,如圖所示,外接晶振時,c1和c2的值通常選擇為20-30pf。c1、c2對頻率有微調(diào)作用,影響振蕩的穩(wěn)定性和起振速度。所采用的晶體或陶瓷諧振器得頻率選擇0-24mhz。為了減小寄生電容,更好的保證振蕩器穩(wěn)定、可靠的工作,諧振器和電容贏盡可能與單片機芯片靠近安裝。1.3電源因為該電路所需電壓為5v,可直接用電池供應(yīng)或也可以用直流電源供應(yīng),但需經(jīng)過變壓才行。 stm8s105s芯片略圖1.4 ds1302實時時鐘芯片ds1302 是美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘電路,它可以對年、月、日、周日、
8、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級產(chǎn)品,與ds1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細(xì)電流充電的能力。ds1302的引腳排列中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc10.2v時,vcc2給ds1302供電。當(dāng)vcc2小于vcc
9、1時,ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對ds1302進行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。scl
10、k始終是輸入端。電路圖如下: 1.4 lcd1602液晶屏顯示電路1602是一種字符型液晶顯示模塊,專門用于顯示字母、數(shù)字、符號等點陣式lcd,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以某公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實物如圖1602lcd分為帶背光和不帶背光兩種,基控制器大部分為hd44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖1602lcd采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下:第1腳:vss為地電源。第2腳:vdd接5v正電源。第3腳:vl為液晶顯示器對比
11、度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10k的電位器調(diào)整對比度。第4腳:rs為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:r/w為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)rs和r/w共同為低電平時可以寫入指令或者顯示地址,當(dāng)rs為低電平r/w為高電平時可以讀忙信號,當(dāng)rs為高電平r/w為低電平時可以寫入數(shù)據(jù)。第6腳:e端為使能端,當(dāng)e端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:d0d7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極1.5輸出控制電路將pb口用于單片機和lcd
12、顯示器的數(shù)據(jù)傳輸通道,如下圖所示,通過控制lcd的讀寫控制端將1302的數(shù)據(jù)顯示出來。1.6整體布局圖四、 軟件設(shè)計分析1、地址空間及端口分配_bool rs pc_odr:1; /pc作為lcd的控制端,設(shè)置為輸入_bool rw pc_odr:2;_bool en pc_odr:3;_bool sclk pa_odr:4; /串行時鐘,輸入輸出控制_bool dio pa_odr:5; /三線接口時的數(shù)據(jù)線_bool id pa_idr:5;_bool ce pa_odr:6; /作為復(fù)位端口_bool id1 pg_idr:0; /將pd6引腳設(shè)置為外部中斷的輸入引腳2、總體架構(gòu)說明該時
13、鐘程序設(shè)計思路如下:(1)、在程序頭將設(shè)計中的一些io口進行分配并注釋。(2)、初始化程序,對單片機的io口設(shè)置為輸入輸出等,對1302,1602的參數(shù)進行設(shè)置,如設(shè)定時鐘運行為24小時制;將一些未到時鐘設(shè)計功能的功能端口關(guān)閉等。(3)開始主程序進行程序掃描,先掃初始化字子程序初始化ds1302和lcd1602,啟動時鐘芯片進行計時,初始化1602的顯示方式,將分配好的時分秒等數(shù)字調(diào)入到顯示子程序中。顯示子程序通過分配的空間對應(yīng)口將ds1302時鐘芯片的數(shù)據(jù)顯示相應(yīng)的時分秒,年月日等。進入按鍵掃描,判斷按鍵是否有變動,若有就根據(jù)設(shè)計程序?qū)ο鄳?yīng)的按鍵按入次數(shù)而進行實現(xiàn)相應(yīng)的功能。如進入時間調(diào)整,
14、中斷進入、退出等。最后返回主程序頭重新依次掃描。顯示過程設(shè)有消隱,按鍵通過軟件去斗。(4)、子程序部分。在主程序的調(diào)用下依據(jù)不同的子程序工能而編寫子程序,有多級嵌套。這些子程序包括顯示子程序、延時子程序、時間計數(shù)子程序、按鍵處理子程序、調(diào)時間子程序等。3、各子程序功能顯示子程序:將時鐘芯片1302內(nèi)的時鐘數(shù)據(jù)送入單片機進行處理再送入lcd1602內(nèi)進行顯示,顯示格式為:年/月/日/時/分/秒/星期。延時子程序:該子程序是為了實現(xiàn)1302及1602在讀寫過程中的上升下降沿讓芯片有足夠的讀寫時間,以及字符有足夠的顯示時間,同時作為按鍵開關(guān)掃描去抖的延遲時間。時間計數(shù)子程序:該程序功能是調(diào)動ds13
15、02的初始化程序、讀寫程序,并將其內(nèi)部數(shù)據(jù)送入單片機內(nèi)進行處理。ds1302選擇24小時工作方式,秒計數(shù),走到59后進位分,后變00從新開始計時,分走到59后進位時,分從新開始00計時,時走到23,分走到59,秒走到59后進入從新日期周期計時。按鍵處理子程序:該程序進行按鍵處理的功能判斷分別對時分秒、年月日等進行調(diào)整已經(jīng)中斷的進入與退出等。4、程序#include stm8s.hvoid delay(int n);void write_ds1302(char addr,char dat);int read_ds1302(char addr);void write_sfm(char add,ch
16、ar dat);void lcd_wcom(char com);void write_sfm1(char add,char dat);void jia_key(char rd,char wd,char fd,char fen);void hjia_key(char rd,char wd,char fd,char shi);void rjia_key(char rd,char wd,char fd,char day);void yjia_key(char rd,char wd,char fd,char yue); void njia_key(char rd,char wd,char fd,cha
17、r nian);char n1,n2,n3;char u0,u1,u2,u3;char table=20 - - ; char table1= : : ;char table2=0,1,2,3,4,5,6,7,8,9;char table3=montuewedthufrisatsun;char table4= happy birthday ; /16個字符char table5=;#define uint unsigned int #define uchar unsigned char #define pb pb_odr#define write_second 0x80 /秒寫寄存器地址#de
18、fine write_minute 0x82/分寫寄存器地址#define write_hour 0x84/時寫寄存器地址#define write_day 0x86/日寫寄存器地址#define write_month 0x88/月寫寄存器地址#define write_week 0x8a/周寫寄存器地址#define write_year 0x8c/年寫寄存器地址#define write_protect 0x8e/寫保護字節(jié)寫寄存器地址#define write_chongdian 0x90 /慢充電寄存器地址#define read_second 0x81/秒讀寄存器地址#define
19、 read_minute 0x83/分讀寄存器地址#define read_hour 0x85/時讀寄存器地址#define 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; /串行時鐘,輸入輸出控制_bool dio pa_odr:5;
20、 /三線接口時的數(shù)據(jù)線_bool id pa_idr:5;_bool ce pa_odr:6; /復(fù)位_bool da_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;/鍵盤的輸入/int shfm_key(void) uchar lshi;uchar an=0,n=0;doif(!id1)delay(6);if(!id1)while(!id
21、1);lshi=1;an+;if(an=1)write_ds1302(write_second,0x80); /先暫停時鐘秒u2=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); /顯示功能開,有光標(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
22、); /顯示分lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開,有光標(biāo)if(an=3)u0=read_ds1302(read_hour);u0=(u0&0x70)4)*10+(u0&0x0f);write_sfm(0,u0); lcd_wcom(0x80+0x40+1); /顯示時lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開,有光標(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); /顯示日lcd_
23、wcom(0x38);lcd_wcom(0x0f); /顯示功能開,有光標(biāo)if(an=5)n2=read_ds1302(read_month);n2=(n2&0x70)4)*10+(n2&0x0f);write_sfm1(5,n2); lcd_wcom(0x80+6); /顯示月lcd_wcom(0x38);lcd_wcom(0x0f); /顯示功能開,有光標(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);l
24、cd_wcom(0x0f); /顯示功能開,有光標(biāo)if(an=7)lshi=0;an=0;write_ds1302(write_second,0x00); /從新開啟時鐘lcd_wcom(0x38);lcd_wcom(0x0c);n=1; switch(an)case 1: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(writ
25、e_second,read_second,6,0);asm(nop);break;case 2 :if(id2=0) /分的加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) /時的加 delay(4);if(id2=0)
26、 while(!id2);asm(nop);hjia_key(write_hour,read_hour,0,1);asm(nop); if(id3=0) /小時的減 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
27、(4);if(id3=0) while(!id3);asm(nop);rjia_key(write_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); brea
28、k;case 6:if(id2=0) /年的加 delay(4);if(id2=0) while(!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(char addr,char dat)cha
29、r i ;pc_ddr |=0xff;pc_cr1 |=0xff;pc_cr2 |=0x00;ce = 0; /先復(fù)位sclk = 0; /清零,保持io口的低電平,以待數(shù)據(jù)的寫入ce = 1; /置1,開始寫數(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;/讀操作/int read_ds1302(char addr) char i;char k;char dat;da_od=0;da_cr1=0;da_cr2=0;ce=
30、0;sclk=0;ce=1;/發(fā)送地址for(i=0;i=1;sclk=1;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
31、_ddr |=0x1c;pd_cr1 |=0x0f;exti_cr1|=0x00;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ù)/void delay(int n) int x,y; for(x=n;x0;x-) for(y=110;y0;y-); /1602寫命令函/void lcd_wcom(char com)rs=0; /選擇指令寄存器 rw=0; /選擇寫 pb=com; /把命令字送入pbdela
32、y(5); /延時一小會兒,讓1602準(zhǔn)備接收數(shù)據(jù) en=1; /使能線電平變化,命令送入1602的8位數(shù)據(jù)口 en=0; /1602寫數(shù)據(jù)函數(shù) /void lcd_wdat(uchar dat) rs=1; /選擇數(shù)據(jù)寄存器 rw=0; /選擇寫 pb=dat; /把要顯示的數(shù)據(jù)送入p2 delay(5); /延時一小會兒,讓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字形
33、 lcd_wcom(0x0c); /開啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍 lcd_wcom(0x06); /顯示地址遞增,即寫一個數(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/
34、10)4)*10+(u0&0x0f);if(shi=1) u0+;if(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(n
35、2+1)=0) n2=12;if(n212) n2=12; write_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); /顯示功能開,有光標(biāo)lcd_wcom(0x80+fd);/初始化1302,設(shè)置開始時候的時
36、分秒void init_ds1302(void)write_ds1302(write_protect,0x00);write_ds1302(write_year,0x0a);/年write_ds1302(write_month,0xc); /月write_ds1302(write_day,0x22); /日write_ds1302(write_hour,0x23); /小時write_ds1302(write_minute,0x59); /分write_ds1302(write_second,0x00); /秒write_ds1302(write_protect,0x80); /關(guān)閉寄存器操作
37、;void write_sfm(char add,char dat) char shi,ge;shi=dat/10;ge=dat%10;lcd_wcom(0x80+0x40+add);lcd_wdat(table2shi); lcd_wdat(table2ge);void write_sfm1(char add,char dat) char shi,ge;shi=dat/10;ge=dat%10;lcd_wcom(0x80+add);lcd_wdat(table2shi);lcd_wdat(table2ge);void write_sfm2(uchar add,uchar dat) uchar
38、 k,ge;ge=dat%10;lcd_wcom(0x80+add);for(k=(ge*3-3);k(ge*3);k+) lcd_wdat(table3k);delay(5);void lcd_init1(void) /顯示祝福語 uchar i,k=0;pd_odr=0x11;lcd_wcom(0x80);for(i=0;i16;i+) lcd_wdat(table4i); lcd_wcom(0x80+0x40);for(k=0;k4)*10+(u2&0x0f); /轉(zhuǎn)十進制的bcd碼換成十進制 write_sfm(6,u2); u1=read_ds1302(read_minute ); /分 u1=(u1&0xf0)4)*10+(u1&0x0f); /轉(zhuǎn)換成十進制 write_sfm(3,u1); /顯示分 u0=read_ds1302(read_hour ); /時 u0=(u0&0xf0)4)*10+(u0&0
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 衡陽師范學(xué)院《馬克思主義哲學(xué)(下)》2023-2024學(xué)年第二學(xué)期期末試卷
- 電子科技大學(xué)中山學(xué)院《車輛建模與仿真》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘肅省蘭州市第六十三中學(xué)2025屆高三3月期初測試化學(xué)試題含解析
- 武漢科技大學(xué)《數(shù)字化教學(xué)資源設(shè)計與開發(fā)(C)》2023-2024學(xué)年第二學(xué)期期末試卷
- 許昌職業(yè)技術(shù)學(xué)院《植物保健與和諧植?!?023-2024學(xué)年第二學(xué)期期末試卷
- 湖南吉利汽車職業(yè)技術(shù)學(xué)院《日本文學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 工程造價領(lǐng)域發(fā)展趨勢
- 工程教育基礎(chǔ)
- 廠房強化護欄施工方案
- 屋面設(shè)備基礎(chǔ)施工方案
- 11294營銷管理-國家開放大學(xué)2023年1月至7月期末考試真題及答案(共2套)
- 中國普通食物營養(yǎng)成分表(修正版)
- 綠色建筑與無障礙環(huán)境的結(jié)合
- 清表及場地平整施工方案
- 2024-2025學(xué)年九年級化學(xué)人教版上冊檢測試卷(1-4單元)
- 08SS704混凝土模塊式化糞池圖集
- 人教版新目標(biāo)九年級英語Unit12單元集體備課教案
- 無縫氣瓶檢驗作業(yè)指導(dǎo)書2024
- 彩票大數(shù)據(jù)預(yù)測分析
- 《改革開放史》教學(xué)大綱
- 鐵路機車車輛制動鉗工(高級)職業(yè)鑒定考試題及答案(新版)
評論
0/150
提交評論