【文章內(nèi)容簡介】
2 def i tie SECOND REG OxO0 Static uchar data REGISTER ADD Stat ic uchar Set c1ock=O: Static bit bdata va1ue set=1: Static bit bdata f Set=O: Static bit bdata f Set corl=O: star iC uchar up clock=O: Static bit bdata va1ue up=1: static bit bdata f _ up=O: static bit bdata f _up— con=O; static uchar down _clock=O; static bit bdata . value_down=1: static bit bdata f _down=O: static bit bdata f _down_con=O; uchar code tab _dis[11]={OxcO, Oxf9, Oxa4, OxbO, 0x99, 0x92, 0x82, Oxf8, Ox80, Ox90, Oxff):/ *消隱信號 */ void main(void)//主函數(shù) { uchar data verdict _set=O apart_year, apart _century; int _enable; //開總中斷 timerO _initialize 0://定時器 0 初始化 int _initialize0; //外部中斷初始化 whi1e(1) { set if (f _con==1)// set 鍵處理 { f _set _con=O: REG I STER _ ADD++: i f (REGISTER_ADD6) REG I STER _ ADD=O: ) if (f_up_con==1)// up 鍵處理 { f _up _con=O; write _timing(B _REGISTER, Ox8f): switch (REGISTER ADD) { case 0: break: case 1: year++: i f (year9999)year=O: apart_year=(year% l0): write_timing(YEAR_ REG apart_year): write_timing(CENTURY_REG, apart_century): break: case 2: month++: i f (month12)month=l; write_timing(MONTH_REG, month); break; case 3: day++: if (day31)day=l: write_timing(DAY_REG, day): break: case 4: hour++: i f (hour23) hour=O: write_timing(HOUR_REG, hour): break: case 5: minute++: if (minute59)minute=O: write_timing(MINUTE_REG, minute) break: case 6: weekday++; if (weekday7)weekday=1: write_timing(WEEKDAY_REG, weekday) break: ) Write_timing(B_REGISTER, OxOf); switch (REGISTER ADD) { case 0: break: case 1: year 一一: i f (yearO) year=9999: apart_century=(year10): apart_year=(year% lO); write_timing(YEAR_REG ,apart_year) writ _timing(CENTURY_REG, apart_century) break: case 2: month 一一: if (month1)month=l2: write_timing(MONTH_REG, month); break; case 3: day 一一: if (day1)day=31: write_timing(DAY_ REG, day): break: case 4: hour 一一: if (hour==255)hour=23: write_timing(HOUR_REG, hour): break: case 5: minute 一一: if (minute==255)minute=59: write_timing(MINUTE_REG, minute) break: case 6: weekday 一一: if (weekday1)weekday=7; write_timing(WEEKDAY_REG, weekday)。 break; } Write_timing(B_REGISTER, OxOf): } display()://調(diào)用顯示函數(shù) } void read_rtc(void)//讀時鐘芯片函數(shù) { uchar verdict_uiP, century, p_month, p_day, p_hour, p_minute, p_weekday: int p_year: do { Verdict_uip=read_timing(OxOa): verdict_uip=1: } century=read_timing(CENTURY_REG): p_year=lO*century+read_timing(YEAR_REG) p_month=read_timing(MONTH_REG): p_day=read_timing(DAY_REG): p_weekday=read_timing(WEEKDAY_REG): p_hour=read_timing(HOUR_REG): p_minute=read_timing(MINUTE_REG): if (p_yearyear!=0)year=p_year: month; if (p_ month— month!=0)month=p_day: if (p_dayday!=0)day=p_day。 if (p_weekday!=0)weekday=p_weekday。 if(p_hourhour!=0)hour=p_hour。 if(p_minuteminute!=0)minute=p_minute。 } /木木木定時器 0中斷函數(shù)木木木/ void timerO(void) interrupt 1 USing 1 { TRO=O; THO=Oxfd: TLO=OxO0: TRO=1: Counter++: if (counter==l50) {read — rtc 0: counter=O: } } 結(jié)語 這次的畢業(yè)設(shè)計是對我大學三年里所學知識的考核和總結(jié),考察了我對所學基礎(chǔ)知識和專業(yè)知識的一種綜合應(yīng)用能力,在這幾個月里通過我自己的努力以及倪榕生老師的悉心指導,本著嚴謹求實,開拓創(chuàng)新的精神完成了這次畢業(yè)設(shè)計。 在這次畢業(yè)設(shè)計中讓我學會了把書本上的知識應(yīng)用到了實際中來,在實踐中加深了對所學知識理解,真正的理解了理論可以指導實踐,實踐可以加深對理論的理解這句話。雖 然在這畢業(yè)設(shè)計中有遇到過不少的問題,但是在我自己的努力之下,在老師的悉心幫助之下都一一的解決了,在解決問題的同時也提高了自己分析問題的能力,增加了不少寶貴的經(jīng)驗,學習到了書本上沒有的東西。 在此要感謝倪榕生老師對我悉心