




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计说明书作者:学号:学院:系(专业):题目:基于单片机设计LED显示电子钟指导者:评阅者:蛋2辆0罗1险0缓冈称年妹捆讲6糠玩月受7协日策毕县业啦设秧计秒中不文咸摘落要虫基舌于妨单腐片现机适设确计黄L耕E浴D糟显融示川电消子溉钟腔摘私要锋:未本怖设叮计怨使椅用播1假2友M革H搂Z咸晶辫振材与度单彩片呢机钱A哥T棚8斩9捐C污5醋1泄相央连肯接流,蜂以逐A恼T外8翼9费C裂5套1疼芯顿片五为翠核耕心良,旧采境用爽动佳态犯扫酒描身方赵式敬显很示抓,考通路过剪使涌用凤该预单恢片彩机独,己加礼之岩在盼显焰示叹电辞路棒部合分毕使出用铺7嫌4报0责7谣驱丈动由电躬路占,行实廉现雪在滚6起个腊L症E陷D侧数锅码盗管死上渗显省示庭日饱期屠、匙时故间停、够定线时板、蚂闹河铃硬,慧通饺过宝6互个墓按治键能实冒现澡设派置信日式期壮、汪进锋行积调扰时很、倡设迹定烈闹摄铃盖、猛倒跳计榆时段等即功陡能吸,姓在妈实王现深各讯功垫能汽时样数纺码昆管润进枣行抵相体应扩显留示盏,蕉闹丰铃冷或耽定款时描时妹间染到为时靠蜂雀鸣倘器肌响提,苗按傲下妙闹敞铃舰键惯或淹定豆时童键解时辈,肝声迟音撒停机止障。袭软驻件复部冈分佛用胶汇垂编故实坊现馋,裁分矩为奇显条示次、质延框迟涨、晌调省时克、蝴闹怠铃朽、哨定址时浙、烤调瓦整瞧日食期妇等五部放分极。锦通躁过窑软孤硬膏件沃结染合惨达问到罩最垄终荐目蚂的宣。怠关灭键摘词杨:话果电董子慧钟律领单液片艘机门迟动铃态耕扫汗描膝刑汇臣编拌语橡言净毕摇业轮设辽计每外书文灭摘羽要葬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战流C夫l健o扣c恨k垃捎B匪a跃s传e耕d代垃o剃n络坏扔读浮显后仰德烈岩不档胞贷泰亦趋腔情硬规宫今鼓竞幼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德时t贤o府洲c促o逆n填n胖e利c拐t糖翻w妻i也t疗h杜咐t省h壮e战室m沈a司c负h旧i舅n母e碗成A与T倒8侍9栽C疼5竭1精,亩功t摇a蒸k径e臣s存返A含T份8阴9斥C禁5甲1闷认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远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规o夸奋s愈h蓄o乞w筋容d劣a耻t绘e哲,猜握t虽i话m域e病,衔主f飘i惭x帖灯t纱h场e复败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谨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养o葛w仆n课尤t肃i居m朗e堆r紫.润酿W葱h禁e守n恳善t糊h高e等琴e青l抖e拾c伐t端r走i杂c拘盗c勾a姿r为r带y高i宝n鼠g恼通o险u表t胸勉e灶a没c汇h搅羡f柄u合n摊c氧t匹i闭o以n件,访貌t麦h睁e嘴率f良i设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风o婆c亦k惹峰a种n颜d患广t舱h盼e现件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队s特e案m胜b勇l江e隆r煤名l桌a边n滔g英u纺a辩g梁e学.蜡邻I拣t点斤w闲a泊s畜窑d时i驻v仰i剃d伐e留d蜘迟i刷n挺t瓣o量宗t箩o醒袋s樱h括o肉w堡,锦建d予e丈l事a影y级,纺峰a哈d方j悔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贴e咳脾e狭n谷d染窑p中u挨r桃p尽o行s暗e显赌c瓣o雹m泉b池i作n井i肺n扬g枕祥t寄h闲e妙取s膨o宅f螺t阅w流a萍r捕e罢料a脱n慰d每冰t看h目e栏忍h宋a著r伤d监w适a叛r庙e吵.绪K薄e脚y静w秤o堪r捞d钓s民:烫妖E镜l孩e触c裙t信r谨i得c允限c铜l岛o深c布k蛇枕百M须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另仿漫真车过伸程调:托1兆6HYPERLINK\l"_Toc263756026"狭仿寒真朱图铜的膀绘敞制誉1万6HYPERLINK\l"_Toc263756027"球功孟能娇的训实药现絮1税7HYPERLINK\l"_Toc263756028"柳7雾史换实莫际口电玻路奔的贯实全现男1烦8HYPERLINK\l"_Toc263756029"耕8月计确日渔历部功水能税的紫实纸现裁2罚0HYPERLINK\l"_Toc263756030"梦9裙疏赤电拘子魔钟女设俘计愿中酿遇萝到金的获问县题顽及予其笋解末决朱方都法岁2挥3HYPERLINK\l"_Toc263756031"计结信论商2果5HYPERLINK\l"_Toc263756032"套参腰考理文誓献丙2旁6HYPERLINK\l"_Toc263756033"那致瞧谢恩2防8HYPERLINK\l"_Toc263756034"愚附候录狐A谨抄整张体天电靠路将图填2想9HYPERLINK\l"_Toc263756035"最附宿录售B羽慨完耐整淡程般序洋3腾0学1甚抱轿引羽言林单嚼片许机慢因伸将绿其教主奸要袍组泊成圈部损分烛集淹成值在赌一晕个丑芯拐片灰上榆而绑得铸名砖,疾就逆是苏把邻中杆央估处答理芝器迟、慧随么机喉存济储姑器绢、济只威读习存刻储侍器岩、简中质断劈系缸统角、盗定港时狭器急/揉计妻数蛙器脖以牧及熔I层/曲O扮接正口落电平路栏等太部梨件写集卡成构在腰一粪个烛芯病片殿上唉[字1小]耍。烂震单味片沸机夫自扛2今0帜世央纪升7蛛0扎年钥代泼问书世龟以蝴来嗽,远以号其米极葬高孝的猎性绪能惊价辰格参比薪,封受侮到伏人颤们税的桃重爱视遭和把关穗注搭,泰应恩用闹很复广近、硬发燕展雀很耻快状。郑单考片债机婚具颂有垦体晋积删小席、久功毁能造多摩、罚价派格打低筐廉柿、皮使唐用诵方咐便斤、猴系窝统等设幸计蛙灵寸活底等续优圾点片[漫2蜘]少。声因锈此龟,戚它妥应殃用桥广比泛破前河景宗美脖好补,含它灯的减实然用倘性坝大拉大迁地窜提蚕高源了男我缓对粘毕坟业仇设虹计女的斧兴扰趣羡。屿在含我肿国成,酒单阁片跨机无的跟开被发约应援用姥已御有案1解5救年瓜左颠右忆,劫已涝经域形肠成堪一链支向庞风大毯的凡技件术桑开怎发顷队斑伍桶,铅为份我鸟国晴单秒片雅机肥应跃用吐积踏累统了绞丰慧富咸的绵经近验嚷。含随撑着聚电膛子瓣技尿术惨、拔计物算策机彻芯凭片到技够术纠和乳微铃电旺子树技昂术慰的拘飞旨速珠发益展返促打进盈了哈单衫片躬机言技洽术不一抛日面千吸里妙的篇变臭化查[斑3傲]僻。恰随膏着缠半赔导工体痛技寄术鸟的躺飞鞠速后发枝展浅,懂以翅及泰移泳动用通登信幻、富网虚络债技甩术初、门多秧媒麦体子技遗术罪在沾嵌柏入锅式叨系装统遗设丝计链中搬的折应册用军,剖单制片翠机圣从熔4珍位联、铃8匆位堡、鞠1洲6般位婚到跃3嗽2锋位推,慰其阵发竹展爱历浊程亩一亲直辟受支到刺广习大论电袜子公爱的好坡者货的帽极扮大艇关诊注庄。找单瞒片胆机演功鹿能拨越镰来摸越至强列大嚼,音价近格冒却庭不刃断众下任降熔的杨优称势糟无绞疑唉成屠为售嵌赖入倾式秤系登统孔方链案约设更计恳的陶首拳选虚,挂同柳时至单离片苹机恶应晶用隶领提域盯的撒扩穗大酒也冻使爹得侵更治多稠人颂加朱入凉到各基逼于百单香片是机悠系掌统骡的止开笼发砍行小列艇中毒,艳推章动厅着暖单讲片随机废技韵术涝的惯创宁新拖进葛步晒。价然模而荣传猎统糕的搏单干片袖机扰系将统嗓开镜发垂除唱了青需优要魔购轻置嫂诸万如梳仿却真顾器核、诵编堡程故器瓦、鸟示家波垄器惭等尸价蹈格旗不诉菲窑的嫁电食子介设北备甩外爷,首开插发旧过敲程该也猫较屑繁徐琐铸。笋来主自优英册国拒L弄a症b钥c煌e业n骑t斧e斤r烛火E即l臣e从c曾t射r狂o砍n写i搬c抵s锅公敞司汗的妙P虎r尼o蒸t仍e昏u放s甘软沙件巧很雨好桃地烂诠葡释胖了闯利槽用种现林代统E身D辰A裁工窜具测方被便那快弓捷众开垫发仿单姻片悲机会系余统泪的伯优铜势跨。欣它找包拔括洲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拌机枣上兄就迁能们实恒现揉原裕理醒图顶电众路炎设坡计肃、梳电陪路印分宏析循与党仿裕真冒、镇单新片据机际代瓶码鸣级铺调晌试蛾与型仿济真民、仿系掀统江测选试及与棚功胡能榨验渡证韵以旱及执形券成纠P丽C杨B跃文唯件巾的丢完私整缸嵌五入龟式益系闪统拘设严计颈与智研赤发泥过迷程猜。居单绝片嘴机茅系所统御作柄为州一荒种捎典魂型撞的璃嵌政入葡式饰系股统披,竞其章系蹄统的设震计挤包疤括径硬鞠件睛电薄路机设淋计角和躁软新件熊编闪程似设产计男两色个础方制面哈,罗其千调愚试屯过抄程刚一歇般罪分我为勾软崖件床调钓试读、迈硬饼件翁测壤试公、除系旗统竭调墓试艇3察个涨过膀程希。谷如框果梦采挖用帐单添片倾机核系冈统乞的燃虚磁拟养仿末真验软厌件焦—游—鸭P互r终o挪t粪e督u毛s俱,劫则燃不顾用缠制长作孙具术体盲的缩电遮路米板炸也边能摩够桶完捉成躺以柳上碑工另作杂。数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字我钟追已冠成歇为情人引们辣日君常射生昆活广中男的栽必潮需怀品国,吊广歌泛资应素用历于获家再庭抚、排车缴站熟、稿码蔑头狡、刺剧览院荣、锄办悼公倘室玉等配场误所扩,健给汤人恩们流的惹生骂活稠、拌学他习做、权工耍作住带膊来魄极与大考的钳方砌便初[妄4贺]贴。却不及仅裂如猜此荡,补在斧现龙代冻化受的誉进竿程踩中校,别也集离团不应开因电亮子卷钟商的虏相伸关问功伸能介和干原列理碍,鲜比犬如母机吐械宇手嫁的轿控爱制自、冒家特务动的碑自集动闻化辽、兴定欠时老自渠动苦报劫警运、陷按胶时怪自酿动念打昌铃值、博时覆间访程光序她自限动钻控虫制衰、凭定络时趴广叙播易、许自切动则起龟闭阅路恰灯路、筛定翻时若开个关西烘南箱欲、快通腔断忘动传力汇设谈备港、喂甚网至刃各付种会定浙时打电榆气圣的平自或动明启诸用放等弊,歼所妈有宣这要些沃,晕都赏是欧以份钟忧表顾数何字技化侮为矩基准础傲的槐。天而唇且霉是狐控盼制汗的露核自心宝部惑分难。朵因肃此氏,戴研泉究拘数搁字敞钟愿及测扩摆大备其讨应注用给,贤有浙着克非疗常滨现惊实狡的敬意甜义乳。电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与,因此电子钟的应用会越来越广泛。而且向着精确、低功耗、多功能发展。基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。另外,程序较为简洁,具有可靠性和较好的可读性。如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点[5]。基于以上分析,在此次设计中,我选择的是利用单片机制作电子钟。电子钟的设计本身包括程序的设计和硬件电路的设计[6]。我的思路是,先进行电路的整体设计,再根据电路进行编程,在编程的过程中,对电路进行微调,以更好地配合程序。在设计完成后,进行程序调试,调试软件选择MedWin,调试成功后,再根据电路图画出仿真图,将软件装入单片机芯片,利用Proteus软件进行仿真,仿真中的错误通过改正程序中的逻辑错误和电路中的设计不当进行排除,这个过程是很艰难的但也是很重要的。若仿真可以实现,则硬件电路的实现就可以有条不紊地进行。2整体设计思路这部分主要介绍工作安排和整体设计的思想。工作过程规划如下:熟悉硬件了解各引脚功能熟悉硬件了解各引脚功能分块设计各部分电路将分块的电路组合认真学习单片机汇编语言完成整体电路图确定变成结构和思路综合各程序完成整体程序编辑各个程序模块用Proteus画出电路图调试程序,进行修改对仿真中出现的问题进行改正画出仿真图进行仿真准备器件、搭接电路仿真成功软硬件结合,完成任务书要求验证硬件电路成功进行扩展图2.1整体设计思路针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构[7]。这样,既能做到经济合理又能实现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。本电子钟设计主要是依照图2.1中的流程做出来的,时间分配比较均匀。首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,本设计加进了日期显示与调整功能。3主要元件的使用方法下面就本次设计中用到的主要元件的所有功能进行简单的介绍,包括AT89C51单片机、74LS07芯片、以及数码管的特性和用法。3.1AT89C51单片机[8]:该单片机功能强大,不仅能满足设计的需要,也可以在设计要求的基础上进行一些扩展。单片机的结构如下:图单片机引脚图在使用时VCC接电源电压,GND接地。P0,P1,P2,P3可作为输入或输出端口,RST是复位输入,接复位电路。XTAL1和XTAL2接复位电路。这些可以在硬件设计部分体现出来。3.27407驱动器[9]:7407是集电极开路六正相高压驱动器,1入2出,3进4出,5进6出,9进8出,11进10出,13进12出,7接地,14接高电平。7407引脚图:图7407引脚图7407逻辑图:图7407逻辑图gfabgfabeddpc87109612345abcdefg图数码管使用共阴极数码管时将6个数码管按相同功能连接起来,3与8相连,当选通端所接管脚为低电平时该数码管选通。单片机的P2口作为选通端,连接各数码管的3、8引脚轮流显示,连接时要加7407和上拉电阻。单片机的P1口作为功能段,通高电平的引脚会使相应段亮起,同样的也要与7407和电阻连接使用。4电路设计4.1整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用六个数码管分别显示小时(年份)、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,使电路更加简单。单片机采用AT89C51系列,这种单片机应用简单,适合电子钟设计。电路的总体设计框架如下:单片机单片机输入部分晶振和复位输出部分图电路模块图4.2分块设计这部分介绍各模块电路的设计方法和成果,主要分为:输入部分、输出部分、复位和晶振电路。4.2.1输入部分在电子钟的输入部分,设置相应的置数功能,通过外部设备的输入,如按键,实现时间的修改[10-11]。除此之外,调整闹铃、定时、日期时也需要按键进行输入。在选用输入端口时,将P3引脚与按键相连进行输入[12]。设计的输入部分如下:图输入部分各按键功能在后面的部分将会介绍到4.2.2输出部分(显示电路)该部分电路图如下所示:图显示部分在实际电路中采用单个数码管相连进行显示,先把数码管的1、2、4、5、6、7、9、10对应相连,然后把各晶体管的3和8引脚各自相连,P1.6~P1.0分别接a~g,P2作为选通端P2.0~P2.5分别从左到右接各数码管的3、8端。采用动态显示,即一位一位地轮流点亮各位显示器[18],因此P2.0~P2.5轮流置0。持续时间为1ms,这点在程序部分还会讲到。4.2.3晶振与复位电路:图晶振与复位电路5程序设计5.1程序思路初始化初始化判断按键显示按下3键按下1键按下2键若无按键调时调闹钟调定时显示所调时间显示闹铃时间显示定时时间调整时限到或有其他输入图程序设计思路结合电路,程序的总体思路是[17]:1、点复位键后,进行时间显示,从0时0分0秒开始。2、按下按键1时,进行调时,此时按下4调整时,按下5调整分,若2秒钟未按键,则不再等待,恢复走时,持续按键时大约0.3秒步进1,下同。3、按下2键时进行闹铃调整,用4、5键分别调时和分,此时只有前四位进行显示,即闹铃功能精确到分,2秒钟无按键则返回时间显示,时间到达闹铃所定时间时P0.7输出高电平,蜂鸣器响,按下按键2或3时蜂鸣器停止。4、按3键时进行定时的设定,同样,分别通过4、5调整分和秒,若两秒未按键则不进行定时,设定之后再次按下3键则进行倒计时,倒计时时间未到时若按下1键则进行时间显示;若倒计时时间到则P0.7为高电平,蜂鸣器响。定时的最大值为59分59秒。在程序设计时,尽量改进算法,算法的改进可以使相对误差减小[12],或者可以使占用空间减小[14]。另外,分块的设计思想要贯穿始终,整个程序较为繁杂,某些程序段会反复用到,因此采取的方法是写出多个程序段,通过跳转指令进行调用。5.2程序设计步骤在程序设计过程中,我遇到了很多困难,这部分也是让我学到很多东西的地方。首先,我学习了定时器的相关知识,计数器的使用是很重要的组成部分[15],在这个设计中选择计数器T0。T0的工作方式有:方式0:不推荐方式1:16位计数器,常用方式2:自动重装初值的8位定时/计数器方式3:T0相当于两个独立的8位定时/计数器此程序采用方式1,方式1的定时时间t为t=(216-M)*12/fosc。其中M为定时器初值,fosc为12MHz,若M为0则t=65536*12/2*106=65.536ms。因此可取50ms为计时单位[16],TL0=0B0H。定时器中断20次为一秒,这部分在中断程序中用到。其次,我参看了文献中的设计思路,做到胸有成竹后再进行具体的程序书写工作。认真学习了教科书中关于汇编语言编程的问题,熟悉了汇编语言的编程方法和语法习惯。第三步就是进行具体的程序编写工作。5.3程序的主要模块5.3.1延迟程序在动态扫描时,必然用到延迟程序,这里使用延迟1ms的程序,此程序需要反复调用。此段程序是很简单的,但就是在这段简单的程序上,也会出现问题,若用D_1MS:MOVR7,#500DJNZR7,$RET则会出现警告,因为R7是8位寄存器,所能存储的最大值应为255,所以应改为:D_1MS:MOVR7,#2D_5:MOVR2,#250DJNZR2,$DJNZR7,D_5RET5.3.2中断服务子程序:中断服务程序中,总体思路是:由于初值是3CB0H,所以装满定时器需要50ms的时间,从而20次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。包括日期显示的功能也是如此。另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。再显示走时部分。流程框图如下:给T0赋值给T0赋值中断20次R3赋值为60分=0,秒=0,时加一秒加一R3、R4都为0时倒计时结束,蜂鸣器响,显示走时状态秒=60Y秒=0时加1N时=24分=60YNYN分=0,秒=0,时=0返回R3=0YR3、R4减一N图中断程序思路主程序主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用声音程序,该段程序如下:MAIN:JNBP3.0,DATETZ;按下0键时,显示日期并可对日期进行调整JNBP3.1,ZSTZ1;按下1键时,显示时间,并可调时JNBP3.2,NLTZ1;按下2键进行闹铃设置JNBP3.3,DSTZ;按下3键进行定时设置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个晶体管轮流进行显示,分别显示1ms,这依赖的是人们视觉的惰性,该段程序如下:DISP:;走时的显示程序,包括调时时的显示MOVDPTR,#LEDTABMOVA,SECONDMOVB,#10DIVAB;A存十位B存个位MOVCA,@A+DPTRMOVP1,ACLRSEC_SACALLD_1MS;显示秒十位SETBSEC_SMOVA,BMOVCA,@A+DPTRMOVP1,ACLRSEC_GACALLD_1MS;显示秒个位SETBSEC_G……以此类推,进行时和分的显示RET另外,调闹铃和定时时间、进行日期显示时,有各自的显示程序,但不能成为独立子程序,分别柔和在闹铃、定时、和日期程序中。闹铃程序和定时程序这两段程序分别包含了各自的显示、调整程序。程序思路是对照,走时部分的程序,进行编写,包括显示程序,与显示时间的程序是相似的,闹铃和定时的调整程序与走时调整程序相似。5.4程序调试程序写完以后必须进行调试,以验证程序是否正确。在程序调试时,出现了很多问题,比如跳转距离过长、打错字母、逻辑有错等,发现问题后,利用两天时间进行了改正,但即使编译通过,最后也不一定能够实现功能。以为程序的调试只能检查出语法错误,而不能检查出逻辑的错误。要真正把程序写对,要通过仿真发现并且改正错误。6功能仿真这部分工作可能遇到的困难是很多的,程序庞大很可能出现各种问题。在仿真工作中,首先要对仿真软件有足够的了解并能够正确熟练地运用6.1软件介绍在这部分工作中用到了medwin3和Proteus两个软件,其中Medwin3用来编译程序并生成hex文件,装入Proteus仿真图的芯片中,通过仿真结果一步步进行调整最后达到预期的功能。PROTEUSPROTEUS软件是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择MedWinV3软件。该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同时还支汇编和C语言的程序设计。Proteus的界面友好易学,在调试程序、软件仿真方面有很强大的功能。其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果。Proteus为我们建立了完备的电子设计开发环境。MedWinMedWin可以用来编写汇编语言程序并进行编译、产生代码并装入仿真器以便于仿真,在输出文件夹中会产生hex文件,将该hex文件导入仿真图的单片机芯片中即可进行仿真。使用时点击“项目管理—新建项目”就可以建立编程的平台,然后选择项目管理中的新建文件就可以建立asm文件,在这个文件中可以进行程序的编写,程序编写完毕后可点击“项目管理—编译\汇编”看其是否有错,有错时,在下面的窗口会提示出错的行以及错误原因。改正无误后可产生代码并装入,将hex文件导入单片机中即可进行仿真6.2仿真过程:通常在仿真过程中会遇到很大的麻烦。在程序汇编通过之后程序不一定是正确的,比如我刚开始进行仿真时数码管并不进行显示,结果发现应该是置零的置一了,应该置一的置零了。改正之后发现虽然走时程序正常了,但是调时中出现了大量的问题,更不要说闹铃和定时程序了。在整个毕业设计的过程中程序的修改贯穿始终,在修改的过程中一定要条理清晰,认真细心。仿真图的绘制在使用Proteus进行仿真时,仿真图不用画出数码管驱动程序,其他部分与设计的硬件图相仿。绘制结果如下:图仿真图功能的实现在绘制仿真图之后,要向单片机装入程序,从而使单片机开始工作并带动整个电路工作,装入过程为:点击单片机,选择所编译程序的输出hex文件,确定即可。此时单片机会按照程序所设定的功能进行工作,在仿真过程中会遇到各种问题,在第九章会具体讲到。这里列出仿真结果:(1)走时仿真:图走时状态下的仿真结果(2)闹钟设定的仿真:图闹铃仿真结果可见所定闹钟时间为10点15分。(3)定时钟倒计时的仿真:图倒计时仿真可见,倒计时进行到3分3秒。7实际电路的实现在仿真无误后,开始进行实际电路的搭接。搭接时先不用芯片实物,而用仿真器替代。按照电路图,先把数码管按照对应的管脚连接起来,然后接驱动电路等,接好之后把程序装入仿真器,通电运行,再对电路进行调试。在根据电路图搭接好各个器件后,一个很重要的问题就是检查各器件是否完全工作。下面介绍检验方法:导线看似不用太费力气去检验,但一个成功的实验需要前期充分的准备,比如在我的实验过程中,由于导线繁多,而且使用旧导线进行实际电路的连接,所以就出现了导线不通的情况,因此验证过程中不要放过小问题。数码管的检测:拆除89C51芯片,先分别给芯片P2对应的导线加低电平,再分别给P1对应的导线加高电平,使每个数码管的每一笔段都能亮。若出错,先检查电路的连接再换一下器件试试,对于此电路问题出在7407的连接方法的问题比较大。这部分需要重点验证。随后,按下复位键看9引脚是否为低电平,是则没有错误。通过以上工作,硬件仿真无误后,可以用单片机芯片代替仿真器进行最后的实现工作,用easyPRO80B编程器将程序下载到芯片中,具体步骤为:先进行擦除,然后查空,查空无误后打开所需的hex文件,然后进行编程、校验。这时程序载入了芯片中,就可以实现相应的功能了。实验结果如下:图7.1走时显示实物图这里要说的是,软件仿真成功和硬件电路实现之间是有很大差别的,在做软件仿真时,没有驱动的问题,没有芯片和器件质量的问题,也没有电线导电的问题,没有工作条件的问题,但在实际电路中这些因素都要考虑。常常会出现这种情况:软件仿真实现了,但实际电路没有任何功能。在电子钟硬件实现过程中,就出现了很多问题,有引脚接错的问题,也有插线松动或电线不通的问题,这些问题都是需要耐心和细心认真解决的。8日历功能的实现在加入其它功能时,我想到了很多可能达到的功能,比如加入备用电源、夜间亮灯功能、多个闹铃的功能、显示日期功能等。然后我进行了理论上的验证,加入备用电源可避免因停电而造成的电路全部失灵[20,21],但受到实验条件的影响未选择对这个功能进行实现。夜间亮灯功能对程序要求不高,但在电路中要加入传感器,把光的照度测出来后,低于某一值时,灯亮,从而使得夜间时也能看到时间显示,虽然程序简单,但由于要加入传感器,容易受到干扰,各项工作投入时间较长,考虑到时间有限,也没有采纳这个方案。闹铃的功能和日期的功能的实现都是比较容易的,做了权衡之后我选择了后者,因为日期功能主要涉及算法和程序的跳转、调用等,更能加深对单片机的认识和理解。在设计的开始阶段,我主要考虑了日期的逻辑算法[19]。首先,要考虑年份是不是闰年,闰年的判断方法是:将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。在电路方面有两种方法:(1)可以增加6个数码管用来显示日期,但这样显然电路更复杂;(2)用按键的输入决定6个数码管显示日期还是时间,这种情况下,只需加一个按键即可,不用增加数码管。最终的按键控制为:按下1键时,显示日期,并且用4、5、6键分别调整年、月、日;按下2键时,进行走时和时间调整;3键位闹铃键;4键为定时键。这样实现功能的好处是:(1)电路简单,若同时显示日期和时间,则需要的引脚很多,需要加入译码器对引脚进行扩展。采用按键决定显示时间或日期的方法避免了这个问题;(2)节约空间,节约成本。程序思路如下:年份能否被100整除年份能否被100整除NY年份是否能被4整除年份是否能被400整除NN平年闰年YY是不是2月是不是2月Y日>=28之后返回为1NNY日>=29之后返回为1若月份为1、3、5、7、8、10、12月则调用31天的程序若月份为4、6、9、11则调用30天的程序图8.1扩展部分思路由于在前面的工作中积累了较多的经验,对汇编语言已经相当熟悉,因此在实现日历功能时,程序设计显得相当容易。按键如图8.2所示,按键功能如下:按下按键1时,显示日期并且允许对日期进行调整;按下按键2时,显示时间并且允许对时间进行调整;按下按键3时,显示闹钟所设定的时间并允许通过5、6键对闹钟进行设定;按下按键4时,显示定时功能所设定的时间并允许对其进行设定,再次按下时,开始倒计时过程,并进行倒计时过程的显示,在显示日期时,该键可对年份进行调整;按键5、6可对时间显示时的时、分或日期显示时的月、日进行调整。按键形式:图8.2按键图示实验成果如下:图8.2日期显示实物图图中显示的日期为10年5月27日。9电子钟设计中遇到的问题及其解决方法在电子钟设计中程序比较长,遇到了各种各样的问题,比如跳转距离过长出现语法错误。因此修改程序的时间很长,有语法错误,也有仿真时功能无法实现的问题,在此不能一一说明,只能对个别问题加以阐述。由于在走时调整、闹铃调整及定时设定时,按下键时每0.2秒步进1,这就需要每0.2秒对按键输入进行一次扫描,因此开始时,我用的是延迟0.2秒再返回按键扫描程序的方法,但是可以想到,进行单纯的延迟时,不会有显示,在仿真时功能没有实现。后来我采用的是反复调用若干次显示程序以实现延迟,较好地解决了这个问题。虽然现在回过头来发现这个问题很简单,但当时是百思不得其解。我从中学到:任何简单的事情都会有出错的可能,有些时候人的思路中的一些错误是自己难以发现的,在工作和生活中要多对自己的想法提出质疑。不光是这种明显的问题很多,有些细微的问题也一样出现了,但解决起来并不容易。在最后的硬件实现阶段发现蜂鸣器不响,此时连接方法是蜂鸣器直接连接在了P0.7引脚。考虑到单片机的输出电流比较小,虽然P0.7引脚的电平已经达到2V以上,也无法驱动蜂鸣器。于是我设想加上驱动电路。作此修改之后,蜂鸣器发出响声,但是又遇到了新的问题:蜂鸣器无法停止响声!看上去这个问题很简单,只要有停止闹铃的按键输入时,在程序中加一句将P0.7置零的语句就可以了。但事实并不是这么简单。通过苦思冥想,发现在主程序中,对“定时时间是否已到”是不断进行扫描的,而倒计时是在中断服务子程序中进行的,当倒计时为0分0秒时,主程序判断出来后会不停地调用声音程序:MAIN:JNBP3.0,DATETZ;按下0键时,显示日期并可对日期进行调整JNBP3.1,ZSTZ1;按下1键时,显示时间,并可调时JNBP3.2,NLTZ1;按下2键进行闹铃设置JNBP3.3,DSTZ;按下3键进行定时设置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;蜂鸣器响声不停是不可避免的,因为R3和R4是在中断程序中变化的,随着时间的推移必然都为0,在此情况下即使按下了声音停止键,由于程序跳回主程序,又会不断地调用声音程序。基于这个想法要达到的效果是:按下声音停止键之后,不再进行定时时间是否为0的判断。要实现这个想法就要引入新的参数,这里,试用3CH作为判断的因子。当点击定时开始后,将3CH赋值为1,在主程序中判断3CH如果不为0,就进行倒计时是否到0的判断。蜂鸣器响后,点击3键时,将3CH赋值为0,这样在主程序中就不进行这个判断,因此蜂鸣器就不会响。当然这个解决问题的过程不是一下子解决的在这个过程中,我进行了相当多的尝试和摸索,最终找到了这个解决途径。这个问题解决后,发现闹铃也有相同的问题,声音会持续一分钟,在此期间即使按下停止键,声音也不会停。发现这个问题后,可以看出,这个问题解决起来比上个问题要简单得多,因为闹钟程序没有涉及到中断服务子程序。因此考虑按下停止键时,修改判断所用的参数比如38H,即在clrP0.7的同时加一句DEC38H,当再进行判断时,蜂鸣器就不会再响了。结论本文介绍的是利用AT89C51单片机设计的有调时、定时、闹铃功能的电子钟。并详细说明了软件和硬件设计方法及仿真、硬件实现。在设计过程中可以看出,汇编语言有着其独特的魅力,它简单易学,语法错误容易纠正;用单片机实现电子钟的设计是比较方便和易于实现的。通过电子钟的设计和制作,加深了对单片机的理解,能够更熟练地应用单片机实现预期的功能,对今后的工作有很大的帮助。电子钟各项功能的实现,为自动控制的实现打下了理论基础,获得了实现方法。当然,该电子钟还有很多不足之处,比如闹钟不能关闭,且只能定一个闹钟。在今后的工作中还要对此加以研究,尽量实现更多的功能。在今后的其他工作中,也可以把这次设计中的收获运用进去,这是我此次毕业设计得到的最大财富。参考文献1H.G.Cragon.TheElementsofSingle-ChipMicrocomputerArchitecture.Computer,1980(13)27~412潘永雄.新编单片机原理与应用.第2版.西安:西安电子科技大学出版社20063何立民.我国单片机应用技术发展趋势及展望.自动化与仪表,1992(1):1~54向继文,廖立新.基于AT89S51的电子钟系统设计.机电产品开发与创新,2007(2):62~635张静.基于单片机数字钟的设计.办公自动化杂志,2006(89):4~56樊金荣,谢智文.数字倒计时秒表的设计与实现.中南民族大学计算机科学学院院报,2005(1):62~637魏立峰,王宝兴.单片机原理与应用技术[M].北京:北京大学出版社,2006.8马立国.AD7888与AT89C51单片机接口应用技术.集成电路通讯,2007(25):33~34996/2008/200804018597.html10AndyMorell.CountdownTimer.Electronics,2003(29):32111MarkE.Buccini.Digitalcountdowntimerneverneedsbatteryreplacement.END,2005(11):79~8012周兴华.一款电路极简的单片机电子钟设计详解.电子制作,2003(10):3113郭长立.DDJ-Ⅱ型多功能单片机计时器的改进设计.仪表技术,2004(4):29~3014何宏森.多功能智能电子钟的设计.兵工自动化,2005(4):82~8415张景元陈平.一种基于单片机的多功能数字钟.微计算机信息(嵌入式与SOC)2005(21):13616刘盛雄,周奇,韦云隆.基于单片机的数字式电子钟的设计与制作.重庆工学院学报,2006(8):9117卢超.基于单片机的数字电子钟的设计与制作.大庆师范学院学报,2006(5):4918刘建英.基于单片机的时钟设计.内蒙古石油化工,2005(1):1319何宏森.多功能智能电子钟的设计.兵工自动化,2005(4):8320蔡希彪,曹洪奎,芳琳.单片机电子时钟系统的设计与仿真.中国科技信息,2007(4):61~6321ScottEdwards.Crystal-ControlledOscillatorIsHeartbeatof60-hourTimer.TheNutsandVoltsofBASICStamps,1996(1):95~103致谢时光荏苒,大学时光转眼逝去,在大学的4年中我不但学到了知识,还认识了很多值得珍惜的老师和同学。在即将离校的日子,我更加珍惜这所剩无几的日子,认真地完成了毕业设计,在这个过程中,***老师给了我极大的帮助,不仅是知识上的,更有很多心理上的支持,他引导我在各种杂事比较多的情况下能踏踏实实做点属于自己的工作,让我学会了自主学习。毕业设计是大学生活中最后阶段的工作,是真正考验我们能力的一项教学内容,在这个过程中我认真思考,不断尝试,收获了很多在平时的课堂上收获不到的东西。毕业设计即将结束,我会吸取毕业设计中的经验和教训,在今后的工作中少走弯路。夏天即将来临,我们也即将离校,回首过去的日子,大学的确教给了我们很多东西。此刻,我十分感谢母校、感谢老师们对我的教诲。虽然有很多不舍,但我依然会昂首走向新的生活,不辜负老师的培养。附录A整体电路图图附A附录B完整程序HOU_SBITP2.0;第一个数码管HOU_GBITP2.1;第二个数码管MIN_SBITP2.2;第三个数码管MIN_GBITP2.3;第四个数码管SEC_SBITP2.4;第五个数码管SEC_GBITP2.5;第六个数码管DAYEQU39H;日期MONTHEQU3AH;月份YEAREQU3BH;年份SECONDEQU30H;秒MINUTEEQU31H;分HOUREQU32H;时TIM_1EQU33H;TIM_2EQU34H;ORG0000HLJMPCHUSHIORG000BHLJMPTIMER0ORG30HCHUSHI:;初始化MOVSECOND,#0;MOVMINUTE,#0;MOVHOUR,#0;时间的初值为000000MOVDAY,#1;MOVMONTH,#1;MOVYEAR,#1;日期的初值为000000SETBHOU_S;SETBHOU_G;SETBMIN_S;SETBMIN_G;SETBSEC_S;SETBSEC_G;初始状态为1,都不显示MOVR0,#0;MOVR1,#12;闹铃初始化MOVR3,#0;MOVR4,#1;存储定时时间,点击定时开始后,从所存时间开始倒计时MOVR5,#0;MOVR6,#0;设定定时时间所用寄存器MOV38H,#12;MOV37H,#0;存储所定闹铃,以便判断是否闹铃时间到CLRP0.7;MOVTIM_1,#10;执行完后经历0.5秒MOVTIM_2,#2;执行完后经历1秒ANLTMOD,#0F0HORLTMOD,#01H;定时器0为模式1MOVTH0,#03CHMOVTL0,#0B0H;装入初值SETBET0;SETBTR0;SETBEA;允许中断MAIN:JNBP3.0,DATETZ;按下0键时,显示日期并可对日期进行调整JNBP3.1,ZSTZ1;按下1键时,显示时间,并可调时JNBP3.2,NLTZ1;按下2键进行闹铃设置JNBP3.3,DSTZ;按下3键进行定时设置ACALLDISP;调用显示程序FMQPD:;判断定时是否到零、闹铃时间是否已到MOVA,HOUR;SUBBA,38H;JZFEN;判断时是否到闹铃所定时间,若到,则对分进行判断,若不到,则对定时进行判断AJMPDSPDKQFEN:MOVA,MINUTE;SUBBA,37H;JZSHENGYIN1;时和分都到闹铃时间则蜂鸣器响DSPDKQ:;判断是否应该进行定时时间的判断MOVA,3CH;3CH是引入的判断因子,当其为0时不对定时时间是否到0进行判断,从而不开启蜂鸣器JNZDSPD2;当3CH不是0时,跳转到定时判断程序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键时,显示日期并可对日期进行调整JNBP3.1,ZSTZ1;按下1键时,显示时间,并可调时JNBP3.2,NLTZ1;按下2键进行闹铃设置JNBP3.3,DSTZ;按下3键进行定时设置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键时,显示日期并可对日期进行调整JNBP3.1,ZSTZ1;按下1键时,显示时间,并可调时JNBP3.2,NLTZ1;按下2键进行闹铃设置JNBP3.3,DSTZ;按下3键进行定时设置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键时,显示日期并可对日期进行调整JNBP3.1,ZSTZ;按下1键时,显示时间,并可调时JNBP3.2,NLTZ;按下2键进行闹铃设置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:;由于程序较长,此处加一个返回程序,避免跳转距离过长POPPSW;POPACC;RETI;;中断服务程序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整除,若能,再进行额外判断MOVA,YEAR;不能被100整除,则判断是否能被4整除MOVB,#4;DIVAB;MOVA,B;JZT_RUNYEAR;若年份能被4整除则跳转到闰年部分T_PINGYEAR:;年份不能被4整除则为平年MOVA,MONTH;CJNEA,#2,T_PINGMONTH;若不是2月,则跳转到平时的月份进行判断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;若是一月调用一个月31天的程序段MOVA,MONTH;SUBBA,#3;JZT_DAY31;MOVA,MONTH;SUBBA,#4;JZT_DAY30;调用一个月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:;当一个月为31天时的日期计算方法INCDAYMOVA,DAYCJNEA,#32,RETI_1MOVDAY,#1INCMONTHMOVA,MONTHCJNEA,#13,RETI_1MOVMONTH,#1INCYEARAJMPRETI_1T_DAY30:;当一个月为30天时的日期计算方法INCDAYMOVA,DAYCJNEA,#31,RETI_1MOVDAY
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学语文经典作品分析试题及答案2024
- 2024年无线网络安全试题及答案
- 2024年预算员面临的技术变革挑战试题及答案
- 黑龙江林业职业技术学院《英汉翻译实务》2023-2024学年第二学期期末试卷
- 黑龙江省五校联考2024-2025学年高三下学期月考(五)物理试题试卷含解析
- 黑龙江省佳木斯市重点中学2025届高三二诊模拟考试历史试题含解析
- 黑龙江省哈尔滨名校2025届高三高考物理试题系列模拟卷(9)含解析
- 黑龙江省哈尔滨市木兰县2025年小升初数学检测卷含解析
- 黑龙江省哈尔滨阿城区六校联考2025届第二学期初三摸底考试化学试题试卷含解析
- 黑龙江省庆安县第三中学2024-2025学年高考复习全程精练模拟卷(全国I卷)历史试题含解析
- 如何处理压力和焦虑
- 依法治企知识讲座课件
- 《我和书的故事》作文指导课件
- 2024年中铁十二局集团有限公司招聘笔试参考题库含答案解析
- 《中药直肠滴入治疗》课件
- 扣款通知单 采购部
- 中医内科学(全套课件)课件
- 沟槽式连接管道工程技术规程
- 2023年事业单位考试题库及答案(170题)
- 儿童心理发展特点及行为特征
- 巡察谈话回答(通用7篇)
评论
0/150
提交评论