《电子钟设计(c语言设计)byyj.docx》由会员分享,可在线阅读,更多相关《电子钟设计(c语言设计)byyj.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机工工程实践践实习报告告 专专业:班级:姓 名:学 号:指导老师师:设计时间间:指导教师师对实习习报告的的评语指导教师师签字:年月日一 前言言漫步在繁繁华的现现代化的的大都市市的大街街上,随随时都可可以看到到街上有有很多可可以用卡卡取钱的的机器(ATMM自动柜柜员机),十字字路口的的交通灯灯。我们们的手机机,我们们家里数数码电视视机、数数码音响响、遥控控器、空空调、智智能玩具具.这些“高高科技”看看上去是是如此的的神秘,它它到底是是怎样构构成的,它它是通过过什么样样的程序序和什么么样的方方式来完完成这一一系列指指令的呢呢?让我我们取钱钱更方便便、避免免城市的的交通混混乱和交交通阻塞塞给给我
2、们生生活带来来了处处处方便。其其实这也也是用单单片机来来控制的的,单片片机在我我们生活活中触手手可及,它它是如此此地贴近近我们的的生活,单单片机给给我们的的生活带带来的有有如此多多的便利利。目前单片片机渗透透到我们们生活的的各个领领域,几几乎很难难找到哪哪个领域域没有单单片机的的踪迹。导导弹的导导航装置置,飞机机上各种种仪表的的控制,计计算机的的网络通通讯与数数据传输输,工业业自动化化过程的的实时控控制和数数据处理理,广泛泛使用的的各种智智能ICC卡,民民用豪华华轿车的的安全保保障系统统,录像像机、摄摄像机、全全自动洗洗衣机的的控制,以以及程控控玩具、电电子宠物物等等,这这些都离离不开单单片机
3、。更更不用说说自动控控制领域域的机器器人、智智能仪表表、医疗疗器械了了。因此此,单片片机的学学习、开开发与应应用将造造就一批批计算机机应用与与智能化化控制的的科学家家、工程程师。科科技越发发达,智智能化的的东西就就越多,使使用的单单片机就就越多。看看来学单单片机是是社会发发展的需需求。据据统计,我我国的单单片机年年容量已已达13亿片片,且每每年以大大约166%的速速度增长长,但相相对于世世界市场场我国的的占有率率还不到到1%。特特别是沿沿海地区区的玩具具厂等生生产产品品多数用用到单片片,并不不断地辐辐射向内内地, 这说明明单片机机应用在在我国才才刚刚起起步,有有着广阔阔的前景景。培养养单片机机
4、应用人人才,特特别是在在工程技技术人员员中普及及单片机机知识有有着重要要的现实实意义。面对着学学习单片片机一个个终生受受用的职职业,不不受年龄龄的限制制。同时时面对着着生活的的现代化化,我们们衣、食食、住、行行也就越越来越依依赖各式式各样的的“高科科技”了了,也就就有很多多地方都都用到高高集成电电路ICC和单片片机。学习单片片机,做做现代生生活的领领航人,你还在在等什么么呢?二 要 求设计1个个电子钟钟,用44位7段段码LEED显示示器,显显示当前前时间时时和分。时时和分之之间用 2个LLED作作为分隔隔,每秒秒钟小数数点闪动动1次。用用89CC20551内部部定时器器定时,每每10mms中断
5、断1次,中中断1000次后后秒单元元+1,秒秒单元累累加到660时自自动清零零,分单单元+11,分单单元累加加到600时自动动清零,小小时单元元+1,小小时单元元累加到到24时时,又回回到0时时,0分分,0秒秒。设有有校表功功能,通通过按键键可与北北京时间间校准。按按一下SS1键,进进入“校时”状态,在在“校时”状态按按一下SS2键小小时单元元+1,按按一下SS3键小小时单元元-1。再再按一下下S1键键,进入入“校分”状态,在在“校分”状态,按按一下SS2键分分单元+1,按按一下SS3键分分单元-1。再再按一下下S1键键,退出出“校表”状态。三 原 理 图图四 编程程思路说说明及程程序流程程图
6、 1. 编程思思路定时时器0,1在112MHHz晶振振频率时时,最大大的计时时能力在在80mms左右右。所以以按500ms计计算最好好。故首首先初始始化定时时器0如如下:TH00 = 0xDD8;TL00 = 0xFF0;通过中断断方法来来获取时时间的计计数,使使用变量量timm来进行行计数,当当timm=220时,即即为一秒秒。如此此即可得得出分,时时的值。具具体看如如下程序序流程图图。2程序序流程图图 主程序序流程图图: 图 1;按键设置置流程图图:第一次按下S1键 Y进入调节小时 N N 按下S3键按下S2键 YY Y小时减一小时加一第二次按下S1键 Y进入调节分 N N 按下S3键按下
7、S2键 YY Y分减一分加一第三次按下S1键 Y退出校分状态五 程序序清单#inccludde AT88920051.h#inccludde stddio.h#inccludde strringg.hunsiigneed ccharr nuum110 = 0xCC0,00xF99,0xxA4,0xBB0,00x999,0xx92,0x882,00xF88,0xx80,0x990;unsiigneed ccharr miins = 00;unsiigneed ccharr seecd = 00;unsiigneed ccharr hoourss = 0;unsiigneed ccharr tii
8、m = 0;unsiigneed ccharr coountt = 0;voidddellaymms(uunsiigneed iint ms);voiddkeyy(vooid);voiddledd(unnsiggnedd chhar n);voiddconnfigg(vooid); /* dellaymms */ voiid ddelaaymss(unnsiggnedd innt mms) unnsiggnedd chhar temmp = 1225;foor(;ms 00; mms-)wwhille(ttempp 0)temmp-;ttempp = 1255;/*inteerruupt*/v
9、oidd ttimeer0(voiid)intterrruptt 1 TH00 = 0xDD8; /reeloaad ttimeerTL00 = 0xFF0;timm+; /*dispplayy 7sseg*/voidd leed(uunsiigneed ccharr n) uunsiigneed ccharr i; uunsiigneed ccharr x; xx = n; ffor(i = 0; i 8 ; ii+) PP3_11 = 0; PP3_00 = x & 0xx80; PP3_11 = 1; xx = x1;/*if cconffig butttonn iss prressse
10、d*/ voiid kkey(voiid) uunsiigneed ccharr teemp; PP1 = 0xxFF; ttempp = P1 & 00x700;/ppresss cconffig butttonn iif(ttempp = 0xx30) dellaymms(1100); /5 P1 = 00xFFF; temmp = P11 & 0x770; if(temmp = 00x300) couunt = 11;eelsee couunt = 00; /* connfigg(); */ voiid cconffig(voiid) unnsiggnedd chhar temmp;P1
11、1 = 0xFFF;teemp = PP1 & 0xx70;deelayyms(1000);whhilee(coountt = 1)/cconffig houurPP1 = 0xxFF;ttempp = P1 & 00x700;iif(ttempp = 0xx60)timm = 0;couunt = 22;sswittch(temmp)casse 00x500: / houur + hoourss+; iff(hoourss = 244) houurs = 00;ledd(nuummminss % 10);ledd(nuum(unssignned chaar)mminss / 10);ledd
12、(nuumhhourrs % 100);ledd(nuum(unssignned chaar)hhourrs / 100); bbreaak;casse 00x300: /hoour -if(houurs = 0)houurs = 223;elsse hoourss-;ledd(nuummminss % 10);ledd(nuum(unssignned chaar)mminss / 10);ledd(nuumhhourrs % 100);ledd(nuum(unssignned chaar)hhourrs / 100); breeak;deffaullt : brreakk;PP1 = 0xx
13、FF;ttempp = P1 & 00x700;ddelaaymss(1000);/1100whhilee(coountt = 2) /cconffig minnuteesPP1 = 0xxFF;ttempp = P1 & 00x700;iif(ttempp = 0xx60)TH00 = 0xDDF;TL00 = 0xFF0;TR00 = 1;EA = 11;timm = 0;couunt = 33;sswittch(temmp)casse 00x500: miins+; iff(miins = 60) minns = 0;ledd(nuummminss % 10);ledd(nuum(uns
14、signned chaar)mminss / 10);ledd(nuumhhourrs % 100);ledd(nuum(unssignned chaar)hhourrs / 100); bbreaak;casse 00x300:if(minns = 00)minns = 599; elsse miins-;ledd(nuummminss % 10);ledd(nuum(unssignned chaar)mminss / 10);ledd(nuumhhourrs % 100);ledd(nuum(unssignned chaar)hhourrs / 100); breeak;deffaullt
15、 : brreakk;PP1 = 0xxFF;ttempp = P1 & 00x700;ddelaaymss(1000); /1000coountt = 0;reeturrn;voidd maain(voiid )leed(nnum0);leed(nnum0);leed(nnum0);leed(nnum0);THH0 = 0xxD8;TLL0 = 0xxF0;TMMOD = 00x011;/ttimeer0,16bbitTRR0 = 1; /ennablle ttimeer0ETT0 = 1; /eenabble timmer00 too innterrrupptEAA = 1;/ enaal
16、e intterrrupttwhhilee(1) iif(ttim = 50) P3_4 = 0; P3_5 = 0; iif(ttim = 1000) P3_4 = 1; P3_5 = 1; timm = 0; seccd+; keyy(); iif( couunt = 1) EEA = 0;TTR0 = 00;ddelaaymss(500);/500cconffig(); dellaymms(110); iif(ssecdd =60) seecd = 00; miins+; iff(miins = 60) miins = 00; hoourss+;if(houurs = 24) hoour
17、ss = 0; ledd(nuummminss % 10);ledd(nuum(unssignned chaar)mminss / 10);ledd(nuumhhourrs % 100);ledd(nuum(unssignned chaar)hhourrs / 100); 六 总结结通过本电电子表系系统的设设计,我我学到了了很多东东西。首首先,了了解了怎怎样去设设计一个个应用系系统。应应用系统统需要考考虑的稳稳定性、实实用性和和编软件件时的程程序优化化性,均均在设计计过程中中涉及到到了。其其次,更更深入体体会到了了模块化化设计系系统的优优越性,在在设计电电子表的的过程中中,我们们把系统统分为了了主程序序、中断断服务程程序、显显示程序序、延时时程序、等等几个部部分,再再逐个编编写,单单独调试试通过,再再连接在在一起。大大大的减减小了工工作量,这这主要体体现在调调试工作作中。最最后再将将所有程程序连接接在一起起调试,并并根据此此时系统统的稳定定性修改改程序中中的参数数,最终终系统达达到比较较好的效效果。当当然,在在调试程程序的过过程中任任务是很很艰巨的的,经常常遇到很很多意想想不到的的错误。另外,在在此次课课程设计计中,更更加感到到了团结结协作的的重要性性,当一一个人陷陷入困境境时他人人的帮助助十分重重要的。大大家共同同商量还还可以发发现许多多个人无无法发现现的问题题
限制150内