单片机课程数字时钟设计报告.docVIP

  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文档。上传文档
查看更多
单片机课程设计说明书 级 电子信息工程 专业 班级 题 目 基于单片机的数字时钟设计 学 号 姓 名 指导教师 二О一六 年 十二 月 十三 日 电子时钟的基本原理 电子钟是一个将“ 时”,“分”,“秒”显示于人的 视觉器官的计时装置,根据单片机内部的定时计时器实现定时计时,通过设定计数初值,由单片机晶振产生一定频率的脉冲,可以实现定时计时寄存器的计数,设定计数初值,在完成一次计数时自动请求中断清零,再进行下一步的计数,例如在本题中计数初值为55536,每完成一次计数,就可以实现十毫秒的累加,设置中间参量,累加100次,实现每一秒计数累加,从而完成时钟秒计时,对分钟,小时的设计,进行秒的累加,60秒一分,60分一小时,进行一定的条件控制从而实现了电子时钟计时功能. 通过单片机的数据输出端,将秒数,分数,时数(sec,min,hour),时——分——秒,动态扫描显示,通过控制段码和位码,完成对每个数码管的控制,一般的数字时钟中都要有对时分的控制,一般是通过键控,在本次课题中,通过按键K1,K2,K3,K4,分别实现对时钟的暂停,对分钟的调节,对小时的调节和开始计时,由单片机P3口进行数据控制,实现功能,设定初值在复位键按下后显示12—00—00,直接对hour,min,sec,进行初值设定就可实现本次设计时钟电路。 在本次实验中,我们使用了STC89C52单片机控制电路,使用定时器0工作方式1来实现定时功能,单片机控制电路简单且省去了很多复杂的路线,使得电路简单易懂,使用键盘上的按键来调整时钟的时,分,秒,同时用C语言程序来控制整个时钟的显示,使得编程变的更容易,这样通过三个模块:按键,芯片,显示屏即可满足设计要求。 电子时钟的硬件设计 此设计原理框图如图1-1所示,电路图如图1-2所示,此电路包括以下三个部分:单片机,按键和显示电路。 独立按键 独立按键 单片机 数码管显示 图1-1设计原理框图 图1-2电路图 经过我们小组讨论决定采用单片机和共阳极数码管等来实现对单片机电子时钟的控制,以下是对实现原理的描述: 本设计采用C语言程序设计,使单片机控制数码管显示时,分,秒,当秒计数计满60就向分进位,分计数器计数满60后向时计数器进位,时计数器从12开始,满24后从新计数,时,分,秒结果经过数据处理后可直接送显示器显示,数码管显示采用共阳极,低电平有效,仿真开始运行后,时钟从12:00:00开始运行,当按下KEY1键时时钟暂停,当按下KEY2键时对分进行调整,当按下KEY3键时对时进行调整,当按下KEY4键时,从当前数据开始进行运行,而当按下复位键后程序从头开始执行,即从12:00:00开始从新计数。 原件清单: 序号 原件名称 数量 参数 1 USB座 1 2 USB线 1 3 104电容0.1uF 7 0.1UF 4 LED灯 1 5 电阻2K 1 2K 6 40针座 1 7 STC89C52 1 8 晶振12MHz 1 12MHZ 9 电容20pF 2 20PF 10 复位键 1 11 电阻10K 1 10K 12 三极管9015 9 13 电阻330 1 330 14 16针座 1 15 MAX232 1 16 按键 4 17 4位LED 2 18 电阻4.7K 8 4.7K 19 电阻330 8 330 控制电路的C语言源程序 #includereg52.h typedef unsigned int u16; typedef unsigned char u8; sbit k1=P3^0;//按键端口 sbit k2=P3^1; sbit k3=P3^2; sbit k4=P3^3; u8 code smgduan[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xc6,0xc0,0x86,0x8e};//显示0~F的值共阳极 #define KEY1 1 #define KEY2 2 #define KEY3 3 #define KEY4 4 u8 hour,sec,min,ssec;//hour表示时min表示分sec表示秒secc表示中间变量 u8 hour = 12,min = 00,sec = 00;//计数初值 u8 DisplayData[8]; /******************************************************************************* * 函 数 名

文档评论(0)

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

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

1亿VIP精品文档

相关文档