单片机课程设计(论文)_数字钟设计.docVIP

单片机课程设计(论文)_数字钟设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计(论文)_数字钟设计

一、数字钟设计  ●巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解 决实际问题的能力; ●培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力; ●通过对课题设计方案的分析、选择、比较,熟悉单片机应用系统的开发。研制的过程,掌握软件设计的方法、内容及步骤; ●通过对单片机程序的设计,基本掌握51单片机开发系统的操作、编程技巧,完成数字钟的控制功能掌握寄存器/定时器的使用实现对单片机的了解从感性认识上升为理性认识按键转移 数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。标准的频率时间信号必须做到准确稳定,通常使用石英晶体振荡电路构成数字钟。本次课程设计的内容是设计一个多功能的数字钟,要综合实现等功能多功能数字钟就是基于单片机的特性来实现其功能的。本系统采用的单片机是AT89S5型号。主要实现可调整时间的24小时。个数码管个按键开关,本系统需实现个功能,所以需要通过按键进行切换。数字钟是一种精确计算时间的仪器,需要较高的精度,并要削去人为的抖动,防止因此产生的延时误差。所以开始设置初时置为00,等待按键按下,有键按下,就开始计时按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本次课程设计采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。 图1 总电路图 状态2:k0=2,数字钟调整时钟状态。 状态3:k0=3,数字钟正常日期显示状态。 状态4:k0=4,数字钟调整日期状态。 按键k1 状态1:k1=1,调整数字钟的时/年值。 状态2:k1=2,调整数字钟的分/月值。 状态3:k1=3,调整数字钟的秒/日值。 状态4:k1=4,数字钟复位。 按键k2: 状态1:k2=1,调整数字钟的值,完成加一操作。 按键k3: 状态1:k3=1,调整数字钟的值,完成减一操作。 说明:状态N次表示该键按下N次。 1.5课程设计的参考流程图 设计过程流程图: 在本次课程设计中,首先我们在电脑上,进行程序的编程和编译使用绘制好原理图程序调试完毕,编译没问题后,我们通过在绘制好原理图,调入已编译好的目标代码文件:*.HEX,可以在的原理图中看到模拟的实物运行状态和过程并进行测试,并分析程序,直到完成要求为止。 时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器T0打开后,进入计时,满50毫秒后,重装定时。中断一次,定时器中断时是先检测1秒是否到,1秒如果到,,秒单位进位,满60秒后即为1分钟,分钟单元进位,60分到了后,时单元进位。日期的显示与时间显示方法相同,日期部分,24小时满后,日单元进位,日满后月单位进位,12月满后,年单位进位。这样然后根据进率,得到时、分、秒、年、月、日存储单元的值,并经译码后,通过扫描程序送LED数码管显示出来,实现时钟计时功能。 1.6课程设计的参考程序 #include reg51.h #define uchar unsigned char #define uint unsigned int uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //0,1,2,3,4,5,6,7,8,9,- uchar table1[]={31,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年 uchar table2[]={31,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年 uchar n; uchar hh,mm,ss,nn,yy,rr; uchar hhs,hhg,mms,mmg,sss,ssg; uchar year; uchar day,mon; uchar days,dayg,mons,mong,years,yearg; uchar set1=0,set2=0; sbit P3_0=P3^0; sbit P3_1=P3^1; sbit P3_2=P3^2; sbit P3_3=P3^3; sbit P3_4=P3^4; sbit P3_5=P3^5; sbit P3_6=P3^6; sbit P3_7=P3^7; sbit k0=P1^0; sb

文档评论(0)

yaoyaoba + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档