版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)說明書作者:學(xué)號:學(xué)院:系(專業(yè)):題目:基于單片機(jī)設(shè)計(jì)LED顯示電子鐘指導(dǎo)者:評閱者:蛋2輛0羅1險(xiǎn)0緩岡稱年妹捆講6糠玩月受7協(xié)日策畢縣業(yè)啦設(shè)秧計(jì)秒中不文咸摘落要蟲基舌于妨單腐片現(xiàn)機(jī)適設(shè)確計(jì)黃L耕E浴D糟顯融示川電消子溉鐘腔摘私要鋒:未本怖設(shè)叮計(jì)怨使椅用播1假2友M革H摟Z咸晶辮振材與度單彩片呢機(jī)錢A哥T棚8斬9捐C污5醋1泄相央連肯接流,蜂以逐A惱T外8翼9費(fèi)C裂5套1疼芯頓片五為翠核耕心良,舊采境用爽動佳態(tài)犯掃酒描身方趙式敬顯很示抓,考通路過剪使涌用鳳該預(yù)單恢片彩機(jī)獨(dú),己加禮之巖在盼顯焰示嘆電辭路棒部合分畢使出用鋪7嫌4報(bào)0責(zé)7謠驅(qū)丈動由電躬路占,行實(shí)廉現(xiàn)雪在滾6起個(gè)臘L癥E陷D側(cè)數(shù)鍋碼盜管死上滲顯省示庭日飽期屠、匙時(shí)故間停、夠定線時(shí)板、螞鬧河鈴硬,慧通餃過寶6互個(gè)墓按治鍵能實(shí)冒現(xiàn)澡設(shè)派置信日式期壯、汪進(jìn)鋒行積調(diào)擾時(shí)很、倡設(shè)跡定烈鬧攝鈴蓋、猛倒跳計(jì)榆時(shí)段等即功陡能吸,姓在媽實(shí)王現(xiàn)深各訊功墊能汽時(shí)樣數(shù)紡碼昆管潤進(jìn)棗行抵相體應(yīng)擴(kuò)顯留示盞,蕉鬧豐鈴冷或耽定款時(shí)描時(shí)妹間染到為時(shí)靠蜂雀鳴倘器肌響提,苗按傲下妙鬧敞鈴艦鍵慣或淹定豆時(shí)童鍵解時(shí)輩,肝聲遲音撒停機(jī)止障。襲軟駐件復(fù)部岡分佛用膠匯垂編故實(shí)坊現(xiàn)饞,裁分矩為奇顯條示次、質(zhì)延框遲漲、晌調(diào)省時(shí)克、蝴鬧怠鈴朽、哨定址時(shí)浙、烤調(diào)瓦整瞧日食期婦等五部放分極。錦通躁過窯軟孤硬膏件沃結(jié)染合慘達(dá)問到罩最壟終薦目螞的宣。怠關(guān)滅鍵摘詞楊:話果電董子慧鐘律領(lǐng)單液片艘機(jī)門遲動鈴態(tài)耕掃汗描膝刑匯臣編拌語橡言凈畢搖業(yè)輪設(shè)遼計(jì)每外書文滅摘羽要葬T毀i鞏t蜻l錦e峰巡離赴D麻e滔s沾i健g照n暑曉o斑f京糠L俗E隔D叢姐S企h惹o姜w盤太E段l贈e饅c靜t份r爭i涼c戰(zhàn)流C夫l健o扣c恨k垃捎B匪a躍s傳e耕d代垃o剃n絡(luò)壞扔讀浮顯后仰德烈?guī)r不檔胞貸泰亦趨腔情硬規(guī)宮今鼓競幼M艇i搬c洗r階o川p禍r院o搭c陪e憶s兵s芬o西r仁界界劃恢彼氣制診中核途似驚巴畏A齊b文s姓t乒r壤a須c及t兇T彈h葬i宣s股翅d尸e脂s慚i譯g狐n撿牢u歌s漲e從s距貧a教摧1逗2屬喬M用H只Z紋器c蹲r嫩y床s掛t岸a煮l德時(shí)t賢o府洲c促o逆n填n胖e利c拐t糖翻w妻i也t療h杜咐t省h壯e戰(zhàn)室m沈a司c負(fù)h舊i舅n母e碗成A與T倒8侍9栽C疼5竭1精,畝功t搖a蒸k徑e臣s存返A(chǔ)含T份8陰9斥C禁5甲1悶認(rèn)c麻h畫i喚p冰s懷陷a啊s具脅c杏o疼r昏e樣.員竹I襖t永貞a驢d旁o前p碧t短s嚇牽t刻h隙e掩旱d逃y主n惹a享m約i俯c斜米s介t舊a辱t崖e受插o守f飯曉t襪h對e裙垮s曬c僵a蒜n繼n低i旺n末g確抖m知e身t青h旋o伐d隸蔽t糟o崗販s魔h藏o累w寧.傘拆U殖s伴i愚n腐g掘越t民h耀i凝s袖閣M菜C念U查霜a得n爺d謀問7績4瓦0危7日幻d遠(yuǎn)r溝i終v芹e寒話e徹l鈔e既c玉t偶r或i逼c蝴鏡c既i云r斬c墻u尋i峽t鞏,畝掏w套e愧爐a器r破e偷肺a胖b喚l寬e腿朗t規(guī)o夸奮s愈h蓄o乞w筋容d劣a恥t繪e哲,猜握t雖i話m域e病,銜主f飄i慚x帖燈t紗h場e復(fù)敗t彩i想m酷e頃,測眼m勢a待k趁e破焰b形e聲l克l貫瞎o專n甜主6嘆央L出E侍D施千f孟i稈g唐u疲r奶e嘩s菊貢t長u觸b挨e活s桃.沈普W蒸e耗剃c文a件n猛類u者s魚e工詞6雅傍k嶄e炎y傾城t荒o膏舒c染o州n去s詞t閱i蹦t漫u驚t眉e猾蹤d拍a律t酸e踐,鉤豬a稅d器j寨u郵s謹(jǐn)t饞躍t泳i耳m教e丟,暫拴e炒n牲a辟c敞t惜害t文h伸e賴匠b懇e摟l芽l攻唯a距n榜d俊感s迅e書t謝騾t愉h透e灶屬c扣o怠u脈n芝t氧d養(yǎng)o葛w仆n課尤t肅i居m朗e堆r紫.潤釀W蔥h禁e守n懇善t糊h高e等琴e青l(xiāng)抖e拾c伐t端r走i雜c拘盜c勾a姿r為r帶y高i寶n鼠g惱通o險(xiǎn)u表t胸勉e灶a沒c匯h攪羨f柄u合n攤c氧t匹i閉o以n件,訪貌t麥h睜e嘴率f良i設(shè)g北u騾r天e娃s菜瓶t割u接b壺e襪顫s腔h星o宗w版知t疲h宇e撇借t膜i樸g面h占t大坡f予u脖n卻c帳t搶i紙o榮n鞠盛.宴W省h性e刃n垂棕t惠h望e重何a末l鋼a告r潤m駐蹤c諷l風(fēng)o婆c亦k惹峰a種n顏d患廣t艙h盼e現(xiàn)件c釘o像u篇n剝t尤d蜓o柴w金n稿敗t讓i群m古e起r燕牛w龍e虜r票e捕往r珠e雨a撤c委h黃e龜d久,育抬t歲h醬e旅艷v羨o貝i姜c抬e乞壓b類e捎g笑i仗n耳s吃.初替W邀h永i棗l期e圖靠3鴿史o蜘r鑰霸4午豪i鞏s醋恐p胡r極e方s購s杯e增d吃,宗芝t末h炸e汁燒v返o幫i季c臉e紅百s腎t殿o罷p芒s救.膀向T繳h弱e漸奪s孫o訂f娛t佛w國a絕r跡e無潛p民a磚r男t徑香i涌s浮串r疊e任a渠l旨i樸z劉e愛d窗剩b晶y捎服a陳s隊(duì)s特e案m勝b勇l江e隆r煤名l桌a邊n滔g英u紡a辯g梁e學(xué).蠟鄰I揀t點(diǎn)斤w閑a泊s畜窯d時(shí)i駐v仰i剃d伐e留d蜘遲i刷n挺t瓣o量宗t籮o醒袋s櫻h括o肉w堡,錦建d予e丈l事a影y級,紡峰a哈d方j(luò)悔u阿s醒t召,湊笑m場a片k余e袋址b癢e化l寇l敢,蜂顯i膠n平類f板i撲x撤e脖d昆向t葡i浸m婦e濾,站彎a乒d峽j婆u眉s評t閘唉d輝a虹t朝e均款e缺t散c芽.椅嚼p喬a頭r瞞t寺.效恢W河e搬妥g饒e析t沿啊t循h(huán)貼e咳脾e狹n谷d染窯p中u挨r桃p盡o行s暗e顯賭c瓣o雹m泉b池i作n井i肺n揚(yáng)g枕祥t寄h閑e妙取s膨o宅f螺t閱w流a萍r捕e罷料a脫n慰d每冰t看h目e欄忍h宋a著r傷d監(jiān)w適a叛r廟e吵.緒K薄e腳y靜w秤o堪r撈d釣s民:燙妖E鏡l孩e觸c裙t信r謹(jǐn)i得c允限c銅l島o深c布k蛇枕百M(fèi)須C袖U私照供D逮y途n虜a督m走i夕c跌盲s攏t穿a賺t貧e凝奉s煉c邁a燕n異i屑n抱g梳叔闊a召s褲s察e需m泥b自l簽e靜r岡幣l燦a懷n申g切u篩a梯g恐e姻目鐘笛終錫次HYPERLINK膛1央5HYPERLINK丙1誓5HYPERLINK\l"_Toc263756025"胡6謙.果2另仿漫真車過伸程調(diào):托1兆6HYPERLINK\l"_Toc263756026"狹仿寒真朱圖銅的膀繪敞制譽(yù)1萬6HYPERLINK\l"_Toc263756027"球功孟能嬌的訓(xùn)實(shí)藥現(xiàn)絮1稅7HYPERLINK\l"_Toc263756028"柳7霧史換實(shí)莫際口電玻路奔的貫實(shí)全現(xiàn)男1煩8HYPERLINK\l"_Toc263756029"耕8月計(jì)確日漁歷部功水能稅的紫實(shí)紙現(xiàn)裁2罰0HYPERLINK\l"_Toc263756030"夢9裙疏赤電拘子魔鐘女設(shè)俘計(jì)愿中釀遇蘿到金的獲問縣題頑及予其筍解末決朱方都法歲2揮3HYPERLINK\l"_Toc263756031"計(jì)結(jié)信論商2果5HYPERLINK\l"_Toc263756032"套參腰考理文誓獻(xiàn)丙2旁6HYPERLINK\l"_Toc263756033"那致瞧謝恩2防8HYPERLINK\l"_Toc263756034"愚附候錄狐A謹(jǐn)抄整張?bào)w天電靠路將圖填2想9HYPERLINK\l"_Toc263756035"最附宿錄售B羽慨完耐整淡程般序洋3騰0學(xué)1甚抱轎引羽言林單嚼片許機(jī)慢因伸將綠其教主奸要袍組泊成圈部損分燭集淹成值在賭一暈個(gè)丑芯拐片灰上榆而綁得鑄名磚,疾就逆是蘇把鄰中桿央估處答理芝器遲、慧隨么機(jī)喉存濟(jì)儲姑器絹、濟(jì)只威讀習(xí)存刻儲侍器巖、簡中質(zhì)斷劈系缸統(tǒng)角、盜定港時(shí)狹器急/揉計(jì)妻數(shù)蛙器脖以牧及熔I層/曲O扮接正口落電平路欄等太部梨件寫集卡成構(gòu)在腰一糞個(gè)燭芯病片殿上唉[字1小]耍。爛震單味片沸機(jī)夫自扛2今0幟世央紀(jì)升7蛛0扎年鑰代潑問書世龜以蝴來嗽,遠(yuǎn)以號其米極葬高孝的獵性緒能驚價(jià)辰格參比薪,封受侮到伏人顫們稅的桃重愛視遭和把關(guān)穗注搭,泰應(yīng)恩用鬧很復(fù)廣近、硬發(fā)燕展雀很恥快狀。鄭單考片債機(jī)婚具頌有墾體晉積刪小席、久功毀能造多摩、罰價(jià)派格打低筐廉柿、皮使唐用誦方咐便斤、猴系窩統(tǒng)等設(shè)幸計(jì)蛙靈寸活底等續(xù)優(yōu)圾點(diǎn)片[漫2蜘]少。聲因銹此龜,戚它妥應(yīng)殃用橋廣比泛破前河景宗美脖好補(bǔ),含它燈的減實(shí)然用倘性壩大拉大遷地竄提蠶高源了男我緩對粘畢墳業(yè)仇設(shè)虹計(jì)女的斧興擾趣羨。嶼在含我腫國成,酒單閣片跨機(jī)無的跟開被發(fā)約應(yīng)援用姥已御有案1解5救年瓜左顛右憶,劫已澇經(jīng)域形腸成堪一鏈支向龐風(fēng)大毯的凡技件術(shù)桑開怎發(fā)頃隊(duì)斑伍桶,鉛為份我鳥國晴單秒片雅機(jī)肥應(yīng)躍用吐積踏累統(tǒng)了絞豐慧富咸的綿經(jīng)近驗(yàn)嚷。含隨撐著聚電膛子瓣技尿術(shù)慘、拔計(jì)物算策機(jī)徹芯憑片到技夠術(shù)糾和乳微鈴電旺子樹技昂術(shù)慰的拘飛旨速珠發(fā)益展返促打進(jìn)盈了哈單衫片躬機(jī)言技洽術(shù)不一拋日面千吸里妙的篇變臭化查[斑3傲]僻。恰隨膏著纏半賠導(dǎo)工體痛技寄術(shù)鳥的躺飛鞠速后發(fā)枝展淺,懂以翅及泰移泳動用通登信幻、富網(wǎng)虛絡(luò)債技甩術(shù)初、門多秧媒麥體子技遺術(shù)罪在沾嵌柏入鍋式叨系裝統(tǒng)遺設(shè)絲計(jì)鏈中搬的折應(yīng)冊用軍,剖單制片翠機(jī)圣從熔4珍位聯(lián)、鈴8匆位堡、鞠1洲6般位婚到躍3嗽2鋒位推,慰其陣發(fā)竹展愛歷濁程畝一親直辟受支到刺廣習(xí)大論電襪子公愛的好坡者貨的帽極扮大艇關(guān)診注莊。找單瞞片膽機(jī)演功鹿能撥越鐮來摸越至強(qiáng)列大嚼,音價(jià)近格冒卻庭不刃斷眾下任降熔的楊優(yōu)稱勢糟無絞疑唉成屠為售嵌賴入傾式秤系登統(tǒng)孔方鏈案約設(shè)更計(jì)懇的陶首拳選虛,掛同柳時(shí)至單離片蘋機(jī)惡應(yīng)晶用隸領(lǐng)提域盯的撒擴(kuò)穗大酒也凍使爹得侵更治多稠人頌加朱入涼到各基逼于百單香片是機(jī)悠系掌統(tǒng)騾的止開籠發(fā)砍行小列艇中毒,艷推章動廳著暖單講片隨機(jī)廢技韻術(shù)澇的慣創(chuàng)寧新拖進(jìn)葛步曬。價(jià)然模而榮傳獵統(tǒng)糕的搏單干片袖機(jī)擾系將統(tǒng)嗓開鏡發(fā)垂除唱了青需優(yōu)要魔購輕置嫂諸萬如梳仿卻真顧器核、誦編堡程故器瓦、鳥示家波壟器慚等尸價(jià)蹈格旗不訴菲窯的嫁電食子介設(shè)北備甩外爺,首開插發(fā)舊過敲程該也貓較屑繁徐瑣鑄。筍來主自優(yōu)英冊國拒L弄a癥b鑰c煌e業(yè)n騎t斧e斤r燭火E即l臣e從c曾t射r狂o砍n寫i搬c抵s鍋公敞司汗的妙P虎r尼o蒸t仍e昏u放s甘軟沙件巧很雨好桃地爛詮葡釋胖了闖利槽用種現(xiàn)林代統(tǒng)E身D辰A裁工竄具測方被便那快弓捷眾開墊發(fā)仿單姻片悲機(jī)會系余統(tǒng)淚的伯優(yōu)銅勢跨。欣它找包拔括洲P粱R毀O敗T憂E殃U螞S系遲V骨S岸M桃(尚V埋i嬸r佳t損u釀a趨l秤腫S禽y潮s芳t蕉e懲m曠繁M柿o吼d辨e梯l因l倚i毯n濁g擾)讓、核P箭R愛O架T妥E壓U椒S斷穗P狠C廟B偷德D搖E滅S呢I旗G壟N貫兩處大是組跨成始部讓分港,捕在倒P蟲C拌機(jī)棗上兄就遷能們實(shí)恒現(xiàn)揉原裕理醒圖頂電眾路炎設(shè)坡計(jì)肅、梳電陪路印分宏析循與黨仿裕真冒、鎮(zhèn)單新片據(jù)機(jī)際代瓶碼鳴級鋪調(diào)晌試蛾與型仿濟(jì)真民、仿系掀統(tǒng)江測選試及與棚功胡能榨驗(yàn)渡證韻以旱及執(zhí)形券成糾P麗C楊B躍文唯件巾的丟完私整缸嵌五入龜式益系閃統(tǒng)拘設(shè)嚴(yán)計(jì)頸與智研赤發(fā)泥過迷程猜。居單絕片嘴機(jī)茅系所統(tǒng)御作柄為州一荒種捎典魂型撞的璃嵌政入葡式飾系股統(tǒng)披,競其章系蹄統(tǒng)的設(shè)震計(jì)擠包疤括徑硬鞠件睛電薄路機(jī)設(shè)淋計(jì)角和躁軟新件熊編閃程似設(shè)產(chǎn)計(jì)男兩色個(gè)礎(chǔ)方制面哈,羅其千調(diào)愚試屯過抄程剛一歇般罪分我為勾軟崖件床調(diào)釣試讀、邁硬餅件翁測壤試公、除系旗統(tǒng)竭調(diào)墓試艇3察個(gè)漲過膀程希。谷如框果夢采挖用帳單添片傾機(jī)核系岡統(tǒng)乞的燃虛磁擬養(yǎng)仿末真驗(yàn)軟厭件焦—游—鴨P互r終o挪t糞e督u毛s俱,劫則燃不顧用纏制長作孫具術(shù)體盲的縮電遮路米板炸也邊能摩夠桶完捉成躺以柳上碑工另作雜。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對時(shí),分,秒,數(shù)字顯示的計(jì)時(shí)裝置,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表的報(bào)時(shí)功能。數(shù)字我鐘追已冠成歇為情人引們辣日君常射生昆活廣中男的栽必潮需懷品國,吊廣歌泛資應(yīng)素用歷于獲家再庭撫、排車?yán)U站熟、稿碼蔑頭狡、刺劇覽院榮、鋤辦悼公倘室玉等配場誤所擴(kuò),健給湯人恩們流的惹生罵活稠、拌學(xué)他習(xí)做、權(quán)工耍作住帶膊來魄極與大考的鉗方砌便初[妄4賀]貼。卻不及僅裂如猜此蕩,補(bǔ)在斧現(xiàn)龍代凍化受的譽(yù)進(jìn)竿程踩中校,別也集離團(tuán)不應(yīng)開因電亮子卷鐘商的虜相伸關(guān)問功伸能介和干原列理礙,鮮比犬如母機(jī)吐械宇手嫁的轎控愛制自、冒家特務(wù)動的碑自集動聞化遼、興定欠時(shí)老自渠動苦報(bào)劫警運(yùn)、陷按膠時(shí)怪自釀動念打昌鈴值、博時(shí)覆間訪程光序她自限動鉆控蟲制衰、憑定絡(luò)時(shí)趴廣敘播易、許自切動則起龜閉閱路恰燈路、篩定翻時(shí)若開個(gè)關(guān)西烘南箱欲、快通腔斷忘動傳力匯設(shè)談備港、喂甚網(wǎng)至刃各付種會定浙時(shí)打電榆氣圣的平自或動明啟諸用放等弊,殲所媽有宣這要些沃,暈都賞是歐以份鐘憂表顧數(shù)何字技化侮為矩基準(zhǔn)礎(chǔ)傲的槐。天而唇且霉是狐控盼制汗的露核自心寶部惑分難。朵因肅此氏,戴研泉究拘數(shù)擱字敞鐘愿及測擴(kuò)擺大備其討應(yīng)注用給,賢有浙著克非療常濱現(xiàn)驚實(shí)狡的敬意甜義乳。電子鐘在工業(yè)控制和日常生活中是很重要的,它不僅可以用于計(jì)時(shí)、提醒又可用于對機(jī)器的控制,在自動化的過程中必然有電子鐘的參與,因此電子鐘的應(yīng)用會越來越廣泛。而且向著精確、低功耗、多功能發(fā)展。基于單片機(jī)設(shè)計(jì)的數(shù)字鐘精確度較高,因?yàn)樵诔绦虻膱?zhí)行過程中,任何指令都不影響定時(shí)器的正常計(jì)數(shù),即便程序很長也不會影響中斷的時(shí)間。從而,使數(shù)字鐘的精度僅僅取決于單片機(jī)的產(chǎn)生機(jī)器周期電路和定時(shí)器硬件電路的精確度。另外,程序較為簡潔,具有可靠性和較好的可讀性。如果我們想將它應(yīng)用于實(shí)時(shí)控制之中,只要對上述程序和硬件電路稍加修改,便可以得到實(shí)時(shí)控制的實(shí)用系統(tǒng),從而應(yīng)用到實(shí)際工作與生產(chǎn)中去。數(shù)字電子鐘的設(shè)計(jì)方法有多種,例如,可用中小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘還可以利用單片機(jī)來實(shí)現(xiàn)電子鐘等等。這些方法都各有特點(diǎn),其中,利用單片機(jī)實(shí)現(xiàn)的電子鐘具有編程靈活,便于功能擴(kuò)充,精確度高等特點(diǎn)[5]?;谝陨戏治?,在此次設(shè)計(jì)中,我選擇的是利用單片機(jī)制作電子鐘。電子鐘的設(shè)計(jì)本身包括程序的設(shè)計(jì)和硬件電路的設(shè)計(jì)[6]。我的思路是,先進(jìn)行電路的整體設(shè)計(jì),再根據(jù)電路進(jìn)行編程,在編程的過程中,對電路進(jìn)行微調(diào),以更好地配合程序。在設(shè)計(jì)完成后,進(jìn)行程序調(diào)試,調(diào)試軟件選擇MedWin,調(diào)試成功后,再根據(jù)電路圖畫出仿真圖,將軟件裝入單片機(jī)芯片,利用Proteus軟件進(jìn)行仿真,仿真中的錯(cuò)誤通過改正程序中的邏輯錯(cuò)誤和電路中的設(shè)計(jì)不當(dāng)進(jìn)行排除,這個(gè)過程是很艱難的但也是很重要的。若仿真可以實(shí)現(xiàn),則硬件電路的實(shí)現(xiàn)就可以有條不紊地進(jìn)行。2整體設(shè)計(jì)思路這部分主要介紹工作安排和整體設(shè)計(jì)的思想。工作過程規(guī)劃如下:熟悉硬件了解各引腳功能熟悉硬件了解各引腳功能分塊設(shè)計(jì)各部分電路將分塊的電路組合認(rèn)真學(xué)習(xí)單片機(jī)匯編語言完成整體電路圖確定變成結(jié)構(gòu)和思路綜合各程序完成整體程序編輯各個(gè)程序模塊用Proteus畫出電路圖調(diào)試程序,進(jìn)行修改對仿真中出現(xiàn)的問題進(jìn)行改正畫出仿真圖進(jìn)行仿真準(zhǔn)備器件、搭接電路仿真成功軟硬件結(jié)合,完成任務(wù)書要求驗(yàn)證硬件電路成功進(jìn)行擴(kuò)展圖2.1整體設(shè)計(jì)思路針對要實(shí)現(xiàn)的功能,擬采用AT89C51單片機(jī)進(jìn)行設(shè)計(jì),AT89C51單片機(jī)是一款低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB在線可編程(ISP)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu)[7]。這樣,既能做到經(jīng)濟(jì)合理又能實(shí)現(xiàn)預(yù)期的功能。在程序方面,采用分塊設(shè)計(jì)的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項(xiàng)功能。程序可分為鬧鐘的聲音程序、顯示程序、鬧鐘顯示程序、調(diào)時(shí)顯示、定時(shí)程序。運(yùn)用這種方法,關(guān)鍵在于各模塊的兼容和配合,若各模塊不匹配會出現(xiàn)意想不到的錯(cuò)誤。本電子鐘設(shè)計(jì)主要是依照圖2.1中的流程做出來的,時(shí)間分配比較均勻。首先,在編程之前必須了解硬件結(jié)構(gòu)尤其是各引腳的用法,以及內(nèi)部寄存器、存儲單元的用法,否則,編程無從下手,電路也無法設(shè)計(jì)。這是前期準(zhǔn)備工作。第二部分是硬件部分:依據(jù)想要的功能分塊設(shè)計(jì)設(shè)計(jì),比如輸入需要開關(guān)電路,輸出需要顯示驅(qū)動電路和數(shù)碼管電路等。第三部分是軟件部分:先學(xué)習(xí)理解匯編語言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè)計(jì)。第四部分是軟件畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中進(jìn)行仿真,仿真無法完成時(shí)檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。第六部分是硬件實(shí)現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計(jì)的完全一樣一般能實(shí)現(xiàn)想要的功能。最后進(jìn)行功能擴(kuò)展,本設(shè)計(jì)加進(jìn)了日期顯示與調(diào)整功能。3主要元件的使用方法下面就本次設(shè)計(jì)中用到的主要元件的所有功能進(jìn)行簡單的介紹,包括AT89C51單片機(jī)、74LS07芯片、以及數(shù)碼管的特性和用法。3.1AT89C51單片機(jī)[8]:該單片機(jī)功能強(qiáng)大,不僅能滿足設(shè)計(jì)的需要,也可以在設(shè)計(jì)要求的基礎(chǔ)上進(jìn)行一些擴(kuò)展。單片機(jī)的結(jié)構(gòu)如下:圖單片機(jī)引腳圖在使用時(shí)VCC接電源電壓,GND接地。P0,P1,P2,P3可作為輸入或輸出端口,RST是復(fù)位輸入,接復(fù)位電路。XTAL1和XTAL2接復(fù)位電路。這些可以在硬件設(shè)計(jì)部分體現(xiàn)出來。3.27407驅(qū)動器[9]:7407是集電極開路六正相高壓驅(qū)動器,1入2出,3進(jìn)4出,5進(jìn)6出,9進(jìn)8出,11進(jìn)10出,13進(jìn)12出,7接地,14接高電平。7407引腳圖:圖7407引腳圖7407邏輯圖:圖7407邏輯圖gfabgfabeddpc87109612345abcdefg圖數(shù)碼管使用共陰極數(shù)碼管時(shí)將6個(gè)數(shù)碼管按相同功能連接起來,3與8相連,當(dāng)選通端所接管腳為低電平時(shí)該數(shù)碼管選通。單片機(jī)的P2口作為選通端,連接各數(shù)碼管的3、8引腳輪流顯示,連接時(shí)要加7407和上拉電阻。單片機(jī)的P1口作為功能段,通高電平的引腳會使相應(yīng)段亮起,同樣的也要與7407和電阻連接使用。4電路設(shè)計(jì)4.1整體設(shè)計(jì)此次設(shè)計(jì)主要是應(yīng)用單片機(jī)來設(shè)計(jì)電子時(shí)鐘,硬件部分主要分以下電路模塊:顯示電路用六個(gè)數(shù)碼管分別顯示小時(shí)(年份)、分鐘(月份)和秒(日),通過動態(tài)掃描進(jìn)行顯示,從而避免了譯碼器的使用,使電路更加簡單。單片機(jī)采用AT89C51系列,這種單片機(jī)應(yīng)用簡單,適合電子鐘設(shè)計(jì)。電路的總體設(shè)計(jì)框架如下:單片機(jī)單片機(jī)輸入部分晶振和復(fù)位輸出部分圖電路模塊圖4.2分塊設(shè)計(jì)這部分介紹各模塊電路的設(shè)計(jì)方法和成果,主要分為:輸入部分、輸出部分、復(fù)位和晶振電路。4.2.1輸入部分在電子鐘的輸入部分,設(shè)置相應(yīng)的置數(shù)功能,通過外部設(shè)備的輸入,如按鍵,實(shí)現(xiàn)時(shí)間的修改[10-11]。除此之外,調(diào)整鬧鈴、定時(shí)、日期時(shí)也需要按鍵進(jìn)行輸入。在選用輸入端口時(shí),將P3引腳與按鍵相連進(jìn)行輸入[12]。設(shè)計(jì)的輸入部分如下:圖輸入部分各按鍵功能在后面的部分將會介紹到4.2.2輸出部分(顯示電路)該部分電路圖如下所示:圖顯示部分在實(shí)際電路中采用單個(gè)數(shù)碼管相連進(jìn)行顯示,先把數(shù)碼管的1、2、4、5、6、7、9、10對應(yīng)相連,然后把各晶體管的3和8引腳各自相連,P1.6~P1.0分別接a~g,P2作為選通端P2.0~P2.5分別從左到右接各數(shù)碼管的3、8端。采用動態(tài)顯示,即一位一位地輪流點(diǎn)亮各位顯示器[18],因此P2.0~P2.5輪流置0。持續(xù)時(shí)間為1ms,這點(diǎn)在程序部分還會講到。4.2.3晶振與復(fù)位電路:圖晶振與復(fù)位電路5程序設(shè)計(jì)5.1程序思路初始化初始化判斷按鍵顯示按下3鍵按下1鍵按下2鍵若無按鍵調(diào)時(shí)調(diào)鬧鐘調(diào)定時(shí)顯示所調(diào)時(shí)間顯示鬧鈴時(shí)間顯示定時(shí)時(shí)間調(diào)整時(shí)限到或有其他輸入圖程序設(shè)計(jì)思路結(jié)合電路,程序的總體思路是[17]:1、點(diǎn)復(fù)位鍵后,進(jìn)行時(shí)間顯示,從0時(shí)0分0秒開始。2、按下按鍵1時(shí),進(jìn)行調(diào)時(shí),此時(shí)按下4調(diào)整時(shí),按下5調(diào)整分,若2秒鐘未按鍵,則不再等待,恢復(fù)走時(shí),持續(xù)按鍵時(shí)大約0.3秒步進(jìn)1,下同。3、按下2鍵時(shí)進(jìn)行鬧鈴調(diào)整,用4、5鍵分別調(diào)時(shí)和分,此時(shí)只有前四位進(jìn)行顯示,即鬧鈴功能精確到分,2秒鐘無按鍵則返回時(shí)間顯示,時(shí)間到達(dá)鬧鈴所定時(shí)間時(shí)P0.7輸出高電平,蜂鳴器響,按下按鍵2或3時(shí)蜂鳴器停止。4、按3鍵時(shí)進(jìn)行定時(shí)的設(shè)定,同樣,分別通過4、5調(diào)整分和秒,若兩秒未按鍵則不進(jìn)行定時(shí),設(shè)定之后再次按下3鍵則進(jìn)行倒計(jì)時(shí),倒計(jì)時(shí)時(shí)間未到時(shí)若按下1鍵則進(jìn)行時(shí)間顯示;若倒計(jì)時(shí)時(shí)間到則P0.7為高電平,蜂鳴器響。定時(shí)的最大值為59分59秒。在程序設(shè)計(jì)時(shí),盡量改進(jìn)算法,算法的改進(jìn)可以使相對誤差減小[12],或者可以使占用空間減小[14]。另外,分塊的設(shè)計(jì)思想要貫穿始終,整個(gè)程序較為繁雜,某些程序段會反復(fù)用到,因此采取的方法是寫出多個(gè)程序段,通過跳轉(zhuǎn)指令進(jìn)行調(diào)用。5.2程序設(shè)計(jì)步驟在程序設(shè)計(jì)過程中,我遇到了很多困難,這部分也是讓我學(xué)到很多東西的地方。首先,我學(xué)習(xí)了定時(shí)器的相關(guān)知識,計(jì)數(shù)器的使用是很重要的組成部分[15],在這個(gè)設(shè)計(jì)中選擇計(jì)數(shù)器T0。T0的工作方式有:方式0:不推薦方式1:16位計(jì)數(shù)器,常用方式2:自動重裝初值的8位定時(shí)/計(jì)數(shù)器方式3:T0相當(dāng)于兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器此程序采用方式1,方式1的定時(shí)時(shí)間t為t=(216-M)*12/fosc。其中M為定時(shí)器初值,fosc為12MHz,若M為0則t=65536*12/2*106=65.536ms。因此可取50ms為計(jì)時(shí)單位[16],TL0=0B0H。定時(shí)器中斷20次為一秒,這部分在中斷程序中用到。其次,我參看了文獻(xiàn)中的設(shè)計(jì)思路,做到胸有成竹后再進(jìn)行具體的程序書寫工作。認(rèn)真學(xué)習(xí)了教科書中關(guān)于匯編語言編程的問題,熟悉了匯編語言的編程方法和語法習(xí)慣。第三步就是進(jìn)行具體的程序編寫工作。5.3程序的主要模塊5.3.1延遲程序在動態(tài)掃描時(shí),必然用到延遲程序,這里使用延遲1ms的程序,此程序需要反復(fù)調(diào)用。此段程序是很簡單的,但就是在這段簡單的程序上,也會出現(xiàn)問題,若用D_1MS:MOVR7,#500DJNZR7,$RET則會出現(xiàn)警告,因?yàn)镽7是8位寄存器,所能存儲的最大值應(yīng)為255,所以應(yīng)改為:D_1MS:MOVR7,#2D_5:MOVR2,#250DJNZR2,$DJNZR7,D_5RET5.3.2中斷服務(wù)子程序:中斷服務(wù)程序中,總體思路是:由于初值是3CB0H,所以裝滿定時(shí)器需要50ms的時(shí)間,從而20次中斷為一秒,一秒之后,判斷是否到60秒,若不到則秒加一,然后返回,若到,則秒賦值為0,分加一,依次類推。包括日期顯示的功能也是如此。另外,由于要實(shí)現(xiàn)倒計(jì)時(shí)功能,因此在中斷程序中還要加入減一的寄存器,需要時(shí)將其進(jìn)行顯示。基于以上考慮,以R3為倒計(jì)時(shí)中的秒,R4為倒計(jì)時(shí)的分,當(dāng)秒加1時(shí)R3減一,減到0之后,秒賦值為59,分減一,直到分為0。再顯示走時(shí)部分。流程框圖如下:給T0賦值給T0賦值中斷20次R3賦值為60分=0,秒=0,時(shí)加一秒加一R3、R4都為0時(shí)倒計(jì)時(shí)結(jié)束,蜂鳴器響,顯示走時(shí)狀態(tài)秒=60Y秒=0時(shí)加1N時(shí)=24分=60YNYN分=0,秒=0,時(shí)=0返回R3=0YR3、R4減一N圖中斷程序思路主程序主程序主要對按鍵進(jìn)行掃描,以及判斷定時(shí)和鬧鈴時(shí)間是否已到,若到則調(diào)用聲音程序,該段程序如下:MAIN:JNBP3.0,DATETZ;按下0鍵時(shí),顯示日期并可對日期進(jìn)行調(diào)整JNBP3.1,ZSTZ1;按下1鍵時(shí),顯示時(shí)間,并可調(diào)時(shí)JNBP3.2,NLTZ1;按下2鍵進(jìn)行鬧鈴設(shè)置JNBP3.3,DSTZ;按下3鍵進(jìn)行定時(shí)設(shè)置ACALLDISP;MOVA,HOUR;SUBBA,38H;JZFEN;AJMPDSPD2;FEN:MOVA,MINUTE;SUBBA,37H;JZSHENGYIN1;DSPD2:MOVA,R4;JZS_PD;AJMPMAIN;S_PD:MOVA,R3;JZSHENGYIN1;AJMPMAIN;顯示程序6個(gè)晶體管輪流進(jìn)行顯示,分別顯示1ms,這依賴的是人們視覺的惰性,該段程序如下:DISP:;走時(shí)的顯示程序,包括調(diào)時(shí)時(shí)的顯示MOVDPTR,#LEDTABMOVA,SECONDMOVB,#10DIVAB;A存十位B存?zhèn)€位MOVCA,@A+DPTRMOVP1,ACLRSEC_SACALLD_1MS;顯示秒十位SETBSEC_SMOVA,BMOVCA,@A+DPTRMOVP1,ACLRSEC_GACALLD_1MS;顯示秒個(gè)位SETBSEC_G……以此類推,進(jìn)行時(shí)和分的顯示RET另外,調(diào)鬧鈴和定時(shí)時(shí)間、進(jìn)行日期顯示時(shí),有各自的顯示程序,但不能成為獨(dú)立子程序,分別柔和在鬧鈴、定時(shí)、和日期程序中。鬧鈴程序和定時(shí)程序這兩段程序分別包含了各自的顯示、調(diào)整程序。程序思路是對照,走時(shí)部分的程序,進(jìn)行編寫,包括顯示程序,與顯示時(shí)間的程序是相似的,鬧鈴和定時(shí)的調(diào)整程序與走時(shí)調(diào)整程序相似。5.4程序調(diào)試程序?qū)懲暌院蟊仨氝M(jìn)行調(diào)試,以驗(yàn)證程序是否正確。在程序調(diào)試時(shí),出現(xiàn)了很多問題,比如跳轉(zhuǎn)距離過長、打錯(cuò)字母、邏輯有錯(cuò)等,發(fā)現(xiàn)問題后,利用兩天時(shí)間進(jìn)行了改正,但即使編譯通過,最后也不一定能夠?qū)崿F(xiàn)功能。以為程序的調(diào)試只能檢查出語法錯(cuò)誤,而不能檢查出邏輯的錯(cuò)誤。要真正把程序?qū)憣?,要通過仿真發(fā)現(xiàn)并且改正錯(cuò)誤。6功能仿真這部分工作可能遇到的困難是很多的,程序龐大很可能出現(xiàn)各種問題。在仿真工作中,首先要對仿真軟件有足夠的了解并能夠正確熟練地運(yùn)用6.1軟件介紹在這部分工作中用到了medwin3和Proteus兩個(gè)軟件,其中Medwin3用來編譯程序并生成hex文件,裝入Proteus仿真圖的芯片中,通過仿真結(jié)果一步步進(jìn)行調(diào)整最后達(dá)到預(yù)期的功能。PROTEUSPROTEUS軟件是目前世界上最先進(jìn)、最完整的嵌入式系統(tǒng)設(shè)計(jì)與仿真平臺,可以實(shí)現(xiàn)數(shù)字電路、模擬電路及微控制器系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計(jì)等功能,是目前唯一能夠?qū)Ω鞣N處理器進(jìn)行實(shí)時(shí)仿真、調(diào)試與測試的EDA工具。微控制器系統(tǒng)相關(guān)的仿真需建立編譯和調(diào)試環(huán)境,可選擇MedWinV3軟件。該軟件支持眾多不同公司的芯片,集編輯、編譯和程序仿真等于一體,同時(shí)還支匯編和C語言的程序設(shè)計(jì)。Proteus的界面友好易學(xué),在調(diào)試程序、軟件仿真方面有很強(qiáng)大的功能。其革命性的功能是:將電路仿真和微處理器仿真進(jìn)行協(xié)同,直接在基于原理圖的虛擬原型上進(jìn)行處理器編程調(diào)試,并進(jìn)行功能驗(yàn)證,通過動態(tài)器件如電機(jī)、LED、LCD、開關(guān)等,實(shí)時(shí)看到運(yùn)行后的輸入、輸出的效果。Proteus為我們建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。MedWinMedWin可以用來編寫匯編語言程序并進(jìn)行編譯、產(chǎn)生代碼并裝入仿真器以便于仿真,在輸出文件夾中會產(chǎn)生hex文件,將該hex文件導(dǎo)入仿真圖的單片機(jī)芯片中即可進(jìn)行仿真。使用時(shí)點(diǎn)擊“項(xiàng)目管理—新建項(xiàng)目”就可以建立編程的平臺,然后選擇項(xiàng)目管理中的新建文件就可以建立asm文件,在這個(gè)文件中可以進(jìn)行程序的編寫,程序編寫完畢后可點(diǎn)擊“項(xiàng)目管理—編譯\匯編”看其是否有錯(cuò),有錯(cuò)時(shí),在下面的窗口會提示出錯(cuò)的行以及錯(cuò)誤原因。改正無誤后可產(chǎn)生代碼并裝入,將hex文件導(dǎo)入單片機(jī)中即可進(jìn)行仿真6.2仿真過程:通常在仿真過程中會遇到很大的麻煩。在程序匯編通過之后程序不一定是正確的,比如我剛開始進(jìn)行仿真時(shí)數(shù)碼管并不進(jìn)行顯示,結(jié)果發(fā)現(xiàn)應(yīng)該是置零的置一了,應(yīng)該置一的置零了。改正之后發(fā)現(xiàn)雖然走時(shí)程序正常了,但是調(diào)時(shí)中出現(xiàn)了大量的問題,更不要說鬧鈴和定時(shí)程序了。在整個(gè)畢業(yè)設(shè)計(jì)的過程中程序的修改貫穿始終,在修改的過程中一定要條理清晰,認(rèn)真細(xì)心。仿真圖的繪制在使用Proteus進(jìn)行仿真時(shí),仿真圖不用畫出數(shù)碼管驅(qū)動程序,其他部分與設(shè)計(jì)的硬件圖相仿。繪制結(jié)果如下:圖仿真圖功能的實(shí)現(xiàn)在繪制仿真圖之后,要向單片機(jī)裝入程序,從而使單片機(jī)開始工作并帶動整個(gè)電路工作,裝入過程為:點(diǎn)擊單片機(jī),選擇所編譯程序的輸出hex文件,確定即可。此時(shí)單片機(jī)會按照程序所設(shè)定的功能進(jìn)行工作,在仿真過程中會遇到各種問題,在第九章會具體講到。這里列出仿真結(jié)果:(1)走時(shí)仿真:圖走時(shí)狀態(tài)下的仿真結(jié)果(2)鬧鐘設(shè)定的仿真:圖鬧鈴仿真結(jié)果可見所定鬧鐘時(shí)間為10點(diǎn)15分。(3)定時(shí)鐘倒計(jì)時(shí)的仿真:圖倒計(jì)時(shí)仿真可見,倒計(jì)時(shí)進(jìn)行到3分3秒。7實(shí)際電路的實(shí)現(xiàn)在仿真無誤后,開始進(jìn)行實(shí)際電路的搭接。搭接時(shí)先不用芯片實(shí)物,而用仿真器替代。按照電路圖,先把數(shù)碼管按照對應(yīng)的管腳連接起來,然后接驅(qū)動電路等,接好之后把程序裝入仿真器,通電運(yùn)行,再對電路進(jìn)行調(diào)試。在根據(jù)電路圖搭接好各個(gè)器件后,一個(gè)很重要的問題就是檢查各器件是否完全工作。下面介紹檢驗(yàn)方法:導(dǎo)線看似不用太費(fèi)力氣去檢驗(yàn),但一個(gè)成功的實(shí)驗(yàn)需要前期充分的準(zhǔn)備,比如在我的實(shí)驗(yàn)過程中,由于導(dǎo)線繁多,而且使用舊導(dǎo)線進(jìn)行實(shí)際電路的連接,所以就出現(xiàn)了導(dǎo)線不通的情況,因此驗(yàn)證過程中不要放過小問題。數(shù)碼管的檢測:拆除89C51芯片,先分別給芯片P2對應(yīng)的導(dǎo)線加低電平,再分別給P1對應(yīng)的導(dǎo)線加高電平,使每個(gè)數(shù)碼管的每一筆段都能亮。若出錯(cuò),先檢查電路的連接再換一下器件試試,對于此電路問題出在7407的連接方法的問題比較大。這部分需要重點(diǎn)驗(yàn)證。隨后,按下復(fù)位鍵看9引腳是否為低電平,是則沒有錯(cuò)誤。通過以上工作,硬件仿真無誤后,可以用單片機(jī)芯片代替仿真器進(jìn)行最后的實(shí)現(xiàn)工作,用easyPRO80B編程器將程序下載到芯片中,具體步驟為:先進(jìn)行擦除,然后查空,查空無誤后打開所需的hex文件,然后進(jìn)行編程、校驗(yàn)。這時(shí)程序載入了芯片中,就可以實(shí)現(xiàn)相應(yīng)的功能了。實(shí)驗(yàn)結(jié)果如下:圖7.1走時(shí)顯示實(shí)物圖這里要說的是,軟件仿真成功和硬件電路實(shí)現(xiàn)之間是有很大差別的,在做軟件仿真時(shí),沒有驅(qū)動的問題,沒有芯片和器件質(zhì)量的問題,也沒有電線導(dǎo)電的問題,沒有工作條件的問題,但在實(shí)際電路中這些因素都要考慮。常常會出現(xiàn)這種情況:軟件仿真實(shí)現(xiàn)了,但實(shí)際電路沒有任何功能。在電子鐘硬件實(shí)現(xiàn)過程中,就出現(xiàn)了很多問題,有引腳接錯(cuò)的問題,也有插線松動或電線不通的問題,這些問題都是需要耐心和細(xì)心認(rèn)真解決的。8日歷功能的實(shí)現(xiàn)在加入其它功能時(shí),我想到了很多可能達(dá)到的功能,比如加入備用電源、夜間亮燈功能、多個(gè)鬧鈴的功能、顯示日期功能等。然后我進(jìn)行了理論上的驗(yàn)證,加入備用電源可避免因停電而造成的電路全部失靈[20,21],但受到實(shí)驗(yàn)條件的影響未選擇對這個(gè)功能進(jìn)行實(shí)現(xiàn)。夜間亮燈功能對程序要求不高,但在電路中要加入傳感器,把光的照度測出來后,低于某一值時(shí),燈亮,從而使得夜間時(shí)也能看到時(shí)間顯示,雖然程序簡單,但由于要加入傳感器,容易受到干擾,各項(xiàng)工作投入時(shí)間較長,考慮到時(shí)間有限,也沒有采納這個(gè)方案。鬧鈴的功能和日期的功能的實(shí)現(xiàn)都是比較容易的,做了權(quán)衡之后我選擇了后者,因?yàn)槿掌诠δ苤饕婕八惴ê统绦虻奶D(zhuǎn)、調(diào)用等,更能加深對單片機(jī)的認(rèn)識和理解。在設(shè)計(jì)的開始階段,我主要考慮了日期的邏輯算法[19]。首先,要考慮年份是不是閏年,閏年的判斷方法是:將年份除以100,若能整除,則將年份除以400,若還能整除,則為閏年,若不能,則為平年;若不能被100整除,則判斷是否能被4整除,若能,則為閏年,若不能則為平年。只有2月與平、閏年相關(guān),因此在閏年和平年的子程序中,要判斷是不是2月,若是則在相應(yīng)的年中進(jìn)行日期的增加,若不是則轉(zhuǎn)入平時(shí)的月份。其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月為每月30天。在電路方面有兩種方法:(1)可以增加6個(gè)數(shù)碼管用來顯示日期,但這樣顯然電路更復(fù)雜;(2)用按鍵的輸入決定6個(gè)數(shù)碼管顯示日期還是時(shí)間,這種情況下,只需加一個(gè)按鍵即可,不用增加數(shù)碼管。最終的按鍵控制為:按下1鍵時(shí),顯示日期,并且用4、5、6鍵分別調(diào)整年、月、日;按下2鍵時(shí),進(jìn)行走時(shí)和時(shí)間調(diào)整;3鍵位鬧鈴鍵;4鍵為定時(shí)鍵。這樣實(shí)現(xiàn)功能的好處是:(1)電路簡單,若同時(shí)顯示日期和時(shí)間,則需要的引腳很多,需要加入譯碼器對引腳進(jìn)行擴(kuò)展。采用按鍵決定顯示時(shí)間或日期的方法避免了這個(gè)問題;(2)節(jié)約空間,節(jié)約成本。程序思路如下:年份能否被100整除年份能否被100整除NY年份是否能被4整除年份是否能被400整除NN平年閏年YY是不是2月是不是2月Y日>=28之后返回為1NNY日>=29之后返回為1若月份為1、3、5、7、8、10、12月則調(diào)用31天的程序若月份為4、6、9、11則調(diào)用30天的程序圖8.1擴(kuò)展部分思路由于在前面的工作中積累了較多的經(jīng)驗(yàn),對匯編語言已經(jīng)相當(dāng)熟悉,因此在實(shí)現(xiàn)日歷功能時(shí),程序設(shè)計(jì)顯得相當(dāng)容易。按鍵如圖8.2所示,按鍵功能如下:按下按鍵1時(shí),顯示日期并且允許對日期進(jìn)行調(diào)整;按下按鍵2時(shí),顯示時(shí)間并且允許對時(shí)間進(jìn)行調(diào)整;按下按鍵3時(shí),顯示鬧鐘所設(shè)定的時(shí)間并允許通過5、6鍵對鬧鐘進(jìn)行設(shè)定;按下按鍵4時(shí),顯示定時(shí)功能所設(shè)定的時(shí)間并允許對其進(jìn)行設(shè)定,再次按下時(shí),開始倒計(jì)時(shí)過程,并進(jìn)行倒計(jì)時(shí)過程的顯示,在顯示日期時(shí),該鍵可對年份進(jìn)行調(diào)整;按鍵5、6可對時(shí)間顯示時(shí)的時(shí)、分或日期顯示時(shí)的月、日進(jìn)行調(diào)整。按鍵形式:圖8.2按鍵圖示實(shí)驗(yàn)成果如下:圖8.2日期顯示實(shí)物圖圖中顯示的日期為10年5月27日。9電子鐘設(shè)計(jì)中遇到的問題及其解決方法在電子鐘設(shè)計(jì)中程序比較長,遇到了各種各樣的問題,比如跳轉(zhuǎn)距離過長出現(xiàn)語法錯(cuò)誤。因此修改程序的時(shí)間很長,有語法錯(cuò)誤,也有仿真時(shí)功能無法實(shí)現(xiàn)的問題,在此不能一一說明,只能對個(gè)別問題加以闡述。由于在走時(shí)調(diào)整、鬧鈴調(diào)整及定時(shí)設(shè)定時(shí),按下鍵時(shí)每0.2秒步進(jìn)1,這就需要每0.2秒對按鍵輸入進(jìn)行一次掃描,因此開始時(shí),我用的是延遲0.2秒再返回按鍵掃描程序的方法,但是可以想到,進(jìn)行單純的延遲時(shí),不會有顯示,在仿真時(shí)功能沒有實(shí)現(xiàn)。后來我采用的是反復(fù)調(diào)用若干次顯示程序以實(shí)現(xiàn)延遲,較好地解決了這個(gè)問題。雖然現(xiàn)在回過頭來發(fā)現(xiàn)這個(gè)問題很簡單,但當(dāng)時(shí)是百思不得其解。我從中學(xué)到:任何簡單的事情都會有出錯(cuò)的可能,有些時(shí)候人的思路中的一些錯(cuò)誤是自己難以發(fā)現(xiàn)的,在工作和生活中要多對自己的想法提出質(zhì)疑。不光是這種明顯的問題很多,有些細(xì)微的問題也一樣出現(xiàn)了,但解決起來并不容易。在最后的硬件實(shí)現(xiàn)階段發(fā)現(xiàn)蜂鳴器不響,此時(shí)連接方法是蜂鳴器直接連接在了P0.7引腳??紤]到單片機(jī)的輸出電流比較小,雖然P0.7引腳的電平已經(jīng)達(dá)到2V以上,也無法驅(qū)動蜂鳴器。于是我設(shè)想加上驅(qū)動電路。作此修改之后,蜂鳴器發(fā)出響聲,但是又遇到了新的問題:蜂鳴器無法停止響聲!看上去這個(gè)問題很簡單,只要有停止鬧鈴的按鍵輸入時(shí),在程序中加一句將P0.7置零的語句就可以了。但事實(shí)并不是這么簡單。通過苦思冥想,發(fā)現(xiàn)在主程序中,對“定時(shí)時(shí)間是否已到”是不斷進(jìn)行掃描的,而倒計(jì)時(shí)是在中斷服務(wù)子程序中進(jìn)行的,當(dāng)?shù)褂?jì)時(shí)為0分0秒時(shí),主程序判斷出來后會不停地調(diào)用聲音程序:MAIN:JNBP3.0,DATETZ;按下0鍵時(shí),顯示日期并可對日期進(jìn)行調(diào)整JNBP3.1,ZSTZ1;按下1鍵時(shí),顯示時(shí)間,并可調(diào)時(shí)JNBP3.2,NLTZ1;按下2鍵進(jìn)行鬧鈴設(shè)置JNBP3.3,DSTZ;按下3鍵進(jìn)行定時(shí)設(shè)置ACALLDISP;MOVA,HOUR;SUBBA,38H;JZFEN;AJMPDSPD2;FEN:MOVA,MINUTE;SUBBA,37H;JZSHENGYIN1;DSPD2:MOVA,R4;JZS_PD;AJMPMAIN;S_PD:MOVA,R3;JZSHENGYIN1;AJMPMAIN;蜂鳴器響聲不停是不可避免的,因?yàn)镽3和R4是在中斷程序中變化的,隨著時(shí)間的推移必然都為0,在此情況下即使按下了聲音停止鍵,由于程序跳回主程序,又會不斷地調(diào)用聲音程序?;谶@個(gè)想法要達(dá)到的效果是:按下聲音停止鍵之后,不再進(jìn)行定時(shí)時(shí)間是否為0的判斷。要實(shí)現(xiàn)這個(gè)想法就要引入新的參數(shù),這里,試用3CH作為判斷的因子。當(dāng)點(diǎn)擊定時(shí)開始后,將3CH賦值為1,在主程序中判斷3CH如果不為0,就進(jìn)行倒計(jì)時(shí)是否到0的判斷。蜂鳴器響后,點(diǎn)擊3鍵時(shí),將3CH賦值為0,這樣在主程序中就不進(jìn)行這個(gè)判斷,因此蜂鳴器就不會響。當(dāng)然這個(gè)解決問題的過程不是一下子解決的在這個(gè)過程中,我進(jìn)行了相當(dāng)多的嘗試和摸索,最終找到了這個(gè)解決途徑。這個(gè)問題解決后,發(fā)現(xiàn)鬧鈴也有相同的問題,聲音會持續(xù)一分鐘,在此期間即使按下停止鍵,聲音也不會停。發(fā)現(xiàn)這個(gè)問題后,可以看出,這個(gè)問題解決起來比上個(gè)問題要簡單得多,因?yàn)轸[鐘程序沒有涉及到中斷服務(wù)子程序。因此考慮按下停止鍵時(shí),修改判斷所用的參數(shù)比如38H,即在clrP0.7的同時(shí)加一句DEC38H,當(dāng)再進(jìn)行判斷時(shí),蜂鳴器就不會再響了。結(jié)論本文介紹的是利用AT89C51單片機(jī)設(shè)計(jì)的有調(diào)時(shí)、定時(shí)、鬧鈴功能的電子鐘。并詳細(xì)說明了軟件和硬件設(shè)計(jì)方法及仿真、硬件實(shí)現(xiàn)。在設(shè)計(jì)過程中可以看出,匯編語言有著其獨(dú)特的魅力,它簡單易學(xué),語法錯(cuò)誤容易糾正;用單片機(jī)實(shí)現(xiàn)電子鐘的設(shè)計(jì)是比較方便和易于實(shí)現(xiàn)的。通過電子鐘的設(shè)計(jì)和制作,加深了對單片機(jī)的理解,能夠更熟練地應(yīng)用單片機(jī)實(shí)現(xiàn)預(yù)期的功能,對今后的工作有很大的幫助。電子鐘各項(xiàng)功能的實(shí)現(xiàn),為自動控制的實(shí)現(xiàn)打下了理論基礎(chǔ),獲得了實(shí)現(xiàn)方法。當(dāng)然,該電子鐘還有很多不足之處,比如鬧鐘不能關(guān)閉,且只能定一個(gè)鬧鐘。在今后的工作中還要對此加以研究,盡量實(shí)現(xiàn)更多的功能。在今后的其他工作中,也可以把這次設(shè)計(jì)中的收獲運(yùn)用進(jìn)去,這是我此次畢業(yè)設(shè)計(jì)得到的最大財(cái)富。參考文獻(xiàn)1H.G.Cragon.TheElementsofSingle-ChipMicrocomputerArchitecture.Computer,1980(13)27~412潘永雄.新編單片機(jī)原理與應(yīng)用.第2版.西安:西安電子科技大學(xué)出版社20063何立民.我國單片機(jī)應(yīng)用技術(shù)發(fā)展趨勢及展望.自動化與儀表,1992(1):1~54向繼文,廖立新.基于AT89S51的電子鐘系統(tǒng)設(shè)計(jì).機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2007(2):62~635張靜.基于單片機(jī)數(shù)字鐘的設(shè)計(jì).辦公自動化雜志,2006(89):4~56樊金榮,謝智文.數(shù)字倒計(jì)時(shí)秒表的設(shè)計(jì)與實(shí)現(xiàn).中南民族大學(xué)計(jì)算機(jī)科學(xué)學(xué)院院報(bào),2005(1):62~637魏立峰,王寶興.單片機(jī)原理與應(yīng)用技術(shù)[M].北京:北京大學(xué)出版社,2006.8馬立國.AD7888與AT89C51單片機(jī)接口應(yīng)用技術(shù).集成電路通訊,2007(25):33~34996/2008/200804018597.html10AndyMorell.CountdownTimer.Electronics,2003(29):32111MarkE.Buccini.Digitalcountdowntimerneverneedsbatteryreplacement.END,2005(11):79~8012周興華.一款電路極簡的單片機(jī)電子鐘設(shè)計(jì)詳解.電子制作,2003(10):3113郭長立.DDJ-Ⅱ型多功能單片機(jī)計(jì)時(shí)器的改進(jìn)設(shè)計(jì).儀表技術(shù),2004(4):29~3014何宏森.多功能智能電子鐘的設(shè)計(jì).兵工自動化,2005(4):82~8415張景元陳平.一種基于單片機(jī)的多功能數(shù)字鐘.微計(jì)算機(jī)信息(嵌入式與SOC)2005(21):13616劉盛雄,周奇,韋云隆.基于單片機(jī)的數(shù)字式電子鐘的設(shè)計(jì)與制作.重慶工學(xué)院學(xué)報(bào),2006(8):9117盧超.基于單片機(jī)的數(shù)字電子鐘的設(shè)計(jì)與制作.大慶師范學(xué)院學(xué)報(bào),2006(5):4918劉建英.基于單片機(jī)的時(shí)鐘設(shè)計(jì).內(nèi)蒙古石油化工,2005(1):1319何宏森.多功能智能電子鐘的設(shè)計(jì).兵工自動化,2005(4):8320蔡希彪,曹洪奎,芳琳.單片機(jī)電子時(shí)鐘系統(tǒng)的設(shè)計(jì)與仿真.中國科技信息,2007(4):61~6321ScottEdwards.Crystal-ControlledOscillatorIsHeartbeatof60-hourTimer.TheNutsandVoltsofBASICStamps,1996(1):95~103致謝時(shí)光荏苒,大學(xué)時(shí)光轉(zhuǎn)眼逝去,在大學(xué)的4年中我不但學(xué)到了知識,還認(rèn)識了很多值得珍惜的老師和同學(xué)。在即將離校的日子,我更加珍惜這所剩無幾的日子,認(rèn)真地完成了畢業(yè)設(shè)計(jì),在這個(gè)過程中,***老師給了我極大的幫助,不僅是知識上的,更有很多心理上的支持,他引導(dǎo)我在各種雜事比較多的情況下能踏踏實(shí)實(shí)做點(diǎn)屬于自己的工作,讓我學(xué)會了自主學(xué)習(xí)。畢業(yè)設(shè)計(jì)是大學(xué)生活中最后階段的工作,是真正考驗(yàn)我們能力的一項(xiàng)教學(xué)內(nèi)容,在這個(gè)過程中我認(rèn)真思考,不斷嘗試,收獲了很多在平時(shí)的課堂上收獲不到的東西。畢業(yè)設(shè)計(jì)即將結(jié)束,我會吸取畢業(yè)設(shè)計(jì)中的經(jīng)驗(yàn)和教訓(xùn),在今后的工作中少走彎路。夏天即將來臨,我們也即將離校,回首過去的日子,大學(xué)的確教給了我們很多東西。此刻,我十分感謝母校、感謝老師們對我的教誨。雖然有很多不舍,但我依然會昂首走向新的生活,不辜負(fù)老師的培養(yǎng)。附錄A整體電路圖圖附A附錄B完整程序HOU_SBITP2.0;第一個(gè)數(shù)碼管HOU_GBITP2.1;第二個(gè)數(shù)碼管MIN_SBITP2.2;第三個(gè)數(shù)碼管MIN_GBITP2.3;第四個(gè)數(shù)碼管SEC_SBITP2.4;第五個(gè)數(shù)碼管SEC_GBITP2.5;第六個(gè)數(shù)碼管DAYEQU39H;日期MONTHEQU3AH;月份YEAREQU3BH;年份SECONDEQU30H;秒MINUTEEQU31H;分HOUREQU32H;時(shí)TIM_1EQU33H;TIM_2EQU34H;ORG0000HLJMPCHUSHIORG000BHLJMPTIMER0ORG30HCHUSHI:;初始化MOVSECOND,#0;MOVMINUTE,#0;MOVHOUR,#0;時(shí)間的初值為000000MOVDAY,#1;MOVMONTH,#1;MOVYEAR,#1;日期的初值為000000SETBHOU_S;SETBHOU_G;SETBMIN_S;SETBMIN_G;SETBSEC_S;SETBSEC_G;初始狀態(tài)為1,都不顯示MOVR0,#0;MOVR1,#12;鬧鈴初始化MOVR3,#0;MOVR4,#1;存儲定時(shí)時(shí)間,點(diǎn)擊定時(shí)開始后,從所存時(shí)間開始倒計(jì)時(shí)MOVR5,#0;MOVR6,#0;設(shè)定定時(shí)時(shí)間所用寄存器MOV38H,#12;MOV37H,#0;存儲所定鬧鈴,以便判斷是否鬧鈴時(shí)間到CLRP0.7;MOVTIM_1,#10;執(zhí)行完后經(jīng)歷0.5秒MOVTIM_2,#2;執(zhí)行完后經(jīng)歷1秒ANLTMOD,#0F0HORLTMOD,#01H;定時(shí)器0為模式1MOVTH0,#03CHMOVTL0,#0B0H;裝入初值SETBET0;SETBTR0;SETBEA;允許中斷MAIN:JNBP3.0,DATETZ;按下0鍵時(shí),顯示日期并可對日期進(jìn)行調(diào)整JNBP3.1,ZSTZ1;按下1鍵時(shí),顯示時(shí)間,并可調(diào)時(shí)JNBP3.2,NLTZ1;按下2鍵進(jìn)行鬧鈴設(shè)置JNBP3.3,DSTZ;按下3鍵進(jìn)行定時(shí)設(shè)置ACALLDISP;調(diào)用顯示程序FMQPD:;判斷定時(shí)是否到零、鬧鈴時(shí)間是否已到MOVA,HOUR;SUBBA,38H;JZFEN;判斷時(shí)是否到鬧鈴所定時(shí)間,若到,則對分進(jìn)行判斷,若不到,則對定時(shí)進(jìn)行判斷AJMPDSPDKQFEN:MOVA,MINUTE;SUBBA,37H;JZSHENGYIN1;時(shí)和分都到鬧鈴時(shí)間則蜂鳴器響DSPDKQ:;判斷是否應(yīng)該進(jìn)行定時(shí)時(shí)間的判斷MOVA,3CH;3CH是引入的判斷因子,當(dāng)其為0時(shí)不對定時(shí)時(shí)間是否到0進(jìn)行判斷,從而不開啟蜂鳴器JNZDSPD2;當(dāng)3CH不是0時(shí),跳轉(zhuǎn)到定時(shí)判斷程序AJMPMAINDSPD2:MOVA,R4;JZS_PD;AJMPMAIN;S_PD:MOVA,R3;JZSHENGYIN1;AJMPMAIN;DSTZ:AJMPDSTZ1;DATETZ:AJMPDATETZ1;SHENGYIN1:MOV3CH,#1SETBP0.7AJMPMAINZSTZ1:MOV35H,#60;MOV36H,#10;ZSTZ2:ACALLDISP;DJNZ35H,ZSTZ2;JNBP3.0,DATETZ;按下0鍵時(shí),顯示日期并可對日期進(jìn)行調(diào)整JNBP3.1,ZSTZ1;按下1鍵時(shí),顯示時(shí)間,并可調(diào)時(shí)JNBP3.2,NLTZ1;按下2鍵進(jìn)行鬧鈴設(shè)置JNBP3.3,DSTZ;按下3鍵進(jìn)行定時(shí)設(shè)置JNBP3.4,H_T;JNBP3.5,M_T;DJNZ36H,ZSTZ2;AJMPMAIN;H_T:ACALLDISP;INCHOUR;MOVA,HOUR;CJNEA,#24,ZSTZ1;MOVHOUR,#0;AJMPZSTZ1;M_T:ACALLDISP;INCMINUTE;MOVA,MINUTE;CJNEA,#60,ZSTZ1;MOVMINUTE,#0;AJMPZSTZ1;NLTZ1:CLRP0.7;DEC38HMOV35H,#100;MOV36H,#10;NLTZ2:ACALLONE;ACALLTWO;DJNZ35H,NLTZ2;JNBP3.0,DATETZ;按下0鍵時(shí),顯示日期并可對日期進(jìn)行調(diào)整JNBP3.1,ZSTZ1;按下1鍵時(shí),顯示時(shí)間,并可調(diào)時(shí)JNBP3.2,NLTZ1;按下2鍵進(jìn)行鬧鈴設(shè)置JNBP3.3,DSTZ;按下3鍵進(jìn)行定時(shí)設(shè)置JNBP3.4,NLXS2;JNBP3.5,NLXS1;DJNZ36H,NLTZ2;AJMPMAIN;NLXS1:MOVDPTR,#LEDTAB;MOV35H,#100;MOV36H,#10;INCR0;MOV37H,R0;CJNER0,#60,NLTZ2;MOVR0,#0;MOV37H,R0;AJMPNLTZ2;ONE:MOVDPTR,#LEDTAB;MOVA,R0;MOVB,#10;DIVAB;MOVCA,@A+DPTR;MOVP1,A;CLRMIN_S;ACALLD_1MS;SETBMIN_S;MOVA,B;MOVCA,@A+DPTR;MOVP1,A;CLRMIN_G;ACALLD_1MS;SETBMIN_G;RET;NLXS2:MOVDPTR,#LEDTAB;MOV35H,#60;MOV36H,#10;INCR1;MOV38H,R1;CJNER1,#24,NLTZ2;MOVR1,#0;MOV38H,R1;AJMPNLTZ2;TWO:MOVDPTR,#LEDTAB;MOVA,R1;MOVB,#10;DIVAB;MOVCA,@A+DPTR;MOVP1,A;CLRHOU_S;ACALLD_1MS;SETBHOU_S;MOVDPTR,#LEDTAB;MOVA,B;MOVCA,@A+DPTR;MOVP1,A;CLRHOU_G;ACALLD_1MS;SETBHOU_G;RET;DSTZ1:MOV3CH,#0CLRP0.7;MOV35H,#100;MOV36H,#10;JNBP3.3,DSTZ1;DSTZ2:ACALLDS_S;ACALLDS_M;DJNZ35H,DSTZ2;JNBP3.0,DATETZ3;按下0鍵時(shí),顯示日期并可對日期進(jìn)行調(diào)整JNBP3.1,ZSTZ;按下1鍵時(shí),顯示時(shí)間,并可調(diào)時(shí)JNBP3.2,NLTZ;按下2鍵進(jìn)行鬧鈴設(shè)置JNBP3.4,DSXS1;JNBP3.5,DSXS2;JNBP3.3,DSKS1;DJNZ36H,DSTZ2;AJMPMAIN;DATETZ3:AJMPDATETZZSTZ:AJMPZSTZ1NLTZ:AJMPNLTZ1DSXS1:MOV35H,#100;MOV36H,#10;INCR6;CJNER6,#60,DSTZ2;MOVR6,#0;AJMPDSTZ2;DS_M:;MOVDPTR,#LEDTAB;MOVA,R6;MOVB,#10;DIVAB;MOVCA,@A+DPTR;MOVP1,A;CLRMIN_S;ACALLD_1MS;SETBMIN_S;MOVA,B;MOVCA,@A+DPTR;MOVP1,A;CLRMIN_G;ACALLD_1MS;SETBMIN_G;RET;DSXS2:MOV35H,#100;MOV36H,#10;INCR5;CJNER5,#60,DSTZ2;MOVR5,#0;AJMPDSTZ2;DS_S:MOVDPTR,#LEDTAB;MOVA,R5;MOVB,#10;DIVAB;MOVCA,@A+DPTR;MOVP1,A;CLRSEC_S;ACALLD_1MS;SETBSEC_S;MOVA,B;MOVCA,@A+DPTR;MOVP1,A;CLRSEC_G;ACALLD_1MS;SETBSEC_G;RET;DSKS1:MOV3CH,#1MOVA,R5;MOVR3,A;MOVA,R6;MOVR4,A;DSKS2:MOVDPTR,#LEDTAB;MOVA,R3;MOVB,#10;DIVAB;MOVCA,@A+DPTR;MOVP1,A;CLRSEC_S;ACALLD_1MS;SETBSEC_S;MOVA,B;MOVCA,@A+DPTR;MOVP1,A;CLRSEC_G;ACALLD_1MS;SETBSEC_G;MOVA,R4;MOVB,#10;DIVAB;MOVCA,@A+DPTR;MOVP1,A;CLRMIN_S;ACALLD_1MS;SETBMIN_S;MOVA,B;MOVCA,@A+DPTR;MOVP1,A;CLRMIN_G;ACALLD_1MS;SETBMIN_G;JNBP3.0,MAIN2;JNBP3.1,MAIN2;DSPD:;MOVA,R4;JZPANDUAN_S;AJMPDSKS2;PANDUAN_S:;MOVA,R3;JZSHENGYIN;AJMPDSKS2;MAIN2:LJMPMAIN;SHENGYIN:MOV3CH,#1SETBP0.7AJMPMAINRETI_11:;由于程序較長,此處加一個(gè)返回程序,避免跳轉(zhuǎn)距離過長POPPSW;POPACC;RETI;;中斷服務(wù)程序TIMER0:PUSHACC;PUSHPSW;MOVA,#0B0H;ADDA,TL0;MOVTL0,A;MOVTH0,#03CH;DJNZTIM_1,RETI_11;MOVTIM_1,#10;DJNZTIM_2,RETI_11;MOVTIM_2,#2;INCSECOND;MOVA,SECOND;CJNER3,#0,RETI_2;MOVR3,#60;DECR4;RETI_2:DECR3;CJNEA,#60,RETI_11;MOVSECOND,#0;INCMINUTE;MOVA,MINUTE;RETI_3:CJNEA,#60,RETI_11;MOVMINUTE,#0;MOVSECOND,#0;INCHOUR;MOVA,HOUR;CJNEA,#24,RETI_11;MOVHOUR,#0;MOVMINUTE,#0;MOVSECOND,#0;T_YEARPD:MOVA,YEAR;MOVB,#100;DIVAB;MOVA,B;JZT_YEARPD2;看年份是否能被100整除,若能,再進(jìn)行額外判斷MOVA,YEAR;不能被100整除,則判斷是否能被4整除MOVB,#4;DIVAB;MOVA,B;JZT_RUNYEAR;若年份能被4整除則跳轉(zhuǎn)到閏年部分T_PINGYEAR:;年份不能被4整除則為平年MOVA,MONTH;CJNEA,#2,T_PINGMONTH;若不是2月,則跳轉(zhuǎn)到平時(shí)的月份進(jìn)行判斷INCDAY;MOVA,DAY;CJNEA,#29,RETI_11;MOVDAY,#1;INCMONTH;MOVA,MONTH;CJNEA,#13,RETI_11;MOVMONTH,#1;INCYEAR;AJMPRETI_1;返回T_YEARPD2:;能被100整除的情況下,的額外判斷MOVA,YEAR;MOVB,#100;DIVAB;MOVB,#4DIVABJNZT_PINGYEAR;若不能被400整除則為平年T_RUNYEAR:;閏年的情況MOVA,MONTH;CJNEA,#2,T_PINGMONTH;看是不是2月INCDAY;MOVA,DAY;CJNEA,#30,RETI_1;MOVDAY,#1;INCMONTH;MOVA,MONTH;CJNEA,#13,RETI_1;MOVMONTH,#1;INCYEAR;AJMPRETI_1;T_PINGMONTH: MOVA,MONTHADDA,#2SUBBA,#3;判斷是不是一月JZT_DAY31;若是一月調(diào)用一個(gè)月31天的程序段MOVA,MONTH;SUBBA,#3;JZT_DAY31;MOVA,MONTH;SUBBA,#4;JZT_DAY30;調(diào)用一個(gè)月30天的程序段MOVA,MONTHSUBBA,#5JZT_DAY31MOVA,MONTHSUBBA,#6JZT_DAY30MOVA,MONTHSUBBA,#7JZT_DAY31MOVA,MONTHSUBBA,#8JZT_DAY31MOVA,MONTHSUBBA,#9JZT_DAY30MOVA,MONTHSUBBA,#10JZT_DAY31MOVA,MONTHSUBBA,#11JZT_DAY30MOVA,MONTHSUBBA,#12JZT_DAY31RETI_1:POPPSWPOPACCRETI;中斷返回T_DAY31:;當(dāng)一個(gè)月為31天時(shí)的日期計(jì)算方法INCDAYMOVA,DAYCJNEA,#32,RETI_1MOVDAY,#1INCMONTHMOVA,MONTHCJNEA,#13,RETI_1MOVMONTH,#1INCYEARAJMPRETI_1T_DAY30:;當(dāng)一個(gè)月為30天時(shí)的日期計(jì)算方法INCDAYMOVA,DAYCJNEA,#31,RETI_1MOVDAY
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024裝修合同范本版
- 個(gè)人倉庫租賃協(xié)議樣本
- 小學(xué)食堂食品供應(yīng)合同
- 2024年冷鏈車運(yùn)輸合同
- 校企合作框架協(xié)議書范例
- 2024售樓處物業(yè)服務(wù)合同(物業(yè))
- 2024英文股份合同范本英文股份合同
- 2024個(gè)人裝修房屋合同范本
- 2024《鋁合金門窗合同》
- 機(jī)動車輛交易協(xié)議文本
- 優(yōu)秀團(tuán)員競選主題班會課件
- 用戶運(yùn)營專員工作職責(zé)與任職要求(7篇)
- 杜甫生平介紹最終版課件
- 專題七馬克思主義剩余的價(jià)值理論課件
- 超星爾雅學(xué)習(xí)通《改革開放史(王向明)》章節(jié)測試答案
- 手術(shù)患者輸血反應(yīng)的應(yīng)急預(yù)案流程圖
- 三級數(shù)學(xué)下冊 面積1 滬教
- 圓面積公式的推導(dǎo)優(yōu)秀課件
- 科學(xué)實(shí)驗(yàn):磁懸浮課件
- 六病區(qū)護(hù)理創(chuàng)新 改良冰敷袋課件
- 海康威視-視頻監(jiān)控原理培訓(xùn)教材課件
評論
0/150
提交評論