单片机电脑时钟设计.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文档。上传文档
查看更多
目 录 第1章 系统计设 1 1.1 计时方案 1 1.2 LED显示方案 1 1.3 键盘输入方案 1 第2章 硬件电路设计 2 2.1电路原理 2 2.2系统工作流程 2 第3章 软件设计 4 3.1系统资源分配 4 3.2软件模块设计 4 第4章 总结 11 参考文献 12 附录1硬件电路图 13 附录2软件代码 14 第1章 系统设计 1.1 计时方案 方案一:采用实时时钟芯片。 现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等。这些实时时钟芯片具备年、月、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干涉。因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。 方案二:使用单片机内部可编程定时器。 利用单片机内部的定时/计数器进行中断定时,配合软件延时是现时、分、秒的计时。该方案节省硬件成本,但程序设计较复杂。 1.2 LED显示方案 对于实时时钟而言,显示显然是另一个重要的环节。通常LED显示有两种方式:动态显示和静态显示。 静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但占用I/O口线多,每一个LED都要占用一个I/O口,硬件开销大,电路复杂。需要几个LED就必须占用几个并行I/O口,比较适用于LED数量较少的场合。当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较复杂。 LED动态显示硬件连接简单,但动态显示扫描方式需要占用CPU较多的时间,在单片机没有太多实时测试任务的情况下可以采用。 本系统需要采用6位LED数码管来分别显示小时、分、秒,因数码管各数较多,故本系统选择动态显示方案。 1.3 键盘输入方案 单片机的键盘结构可以采用独立式按键和矩阵式键盘两种。独立式按键指直接用I/O口线构成单个按键电路。可在系统中键较少时使用。在按键比较多的时候可采用矩阵式键盘。本系统要设置12键,其中10个键用于输入0~.1电路原理 图2-1时本电脑时钟的硬件电路。本硬件的核心是MCS-51单片机,我们选用89C51。因无需扩展外部RAM。系统采用6位共阴极数码管从左到右依次显示时、分、秒,采用24小时计时。 系统采用3*4键盘共12个键用于更改时钟和设置启闹时间时输入数据,其中0~~~PORTA; B口:8002H,定义为PORTB; C口:8003H,定义为PORTC。 2.2系统工作流程 按设计要求,我们规划了电脑时钟的工作流程如下: 时间显示:上电后或手动复位后,系统自动从00:00:00开始计时,并利用LED动态显示当前时间。 时间调整:在正常计时状态下,可以设定当前时间。按下C/R键,系统停止计时,进入时间设定状态,系统保持原有显示,等待键入当前时间。按下0~~.1系统资源分配 为方便编写程序,将软件设置中用到的片内RAM各单元即标志位以及符号表示,并在程序中定义。 软件片内RAM及标志位分配如表3-1所示: 表3-1软件片内RAM及标志位分配表 地址 功能 名称 初始化值 30H~~~~~ 图3.1主程序流程图 3.2.2计时模块 定时器0中断服务子程序,完成刷新计时缓冲区的功能。 本实验系统采用定时器与软件相结合的定时方式,设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间为1s,上述过程重复60次为1分,分计时60次为一小时,小时计时24次则时间重新回到00:00:00。 计时模块流程图如图3.2所示 。 图3.2计时模块流程图 3.2.3时间设置与闹钟设置模块 该模块由键盘输入相应的数据来设置当前时间与定时启闹时间。程序通过用一个键盘设置子程序通过键盘扫描将键入的6位时间值送入显示缓冲区。 该程序同时要检测输入时间值的合法性,如键盘输入的小时值大于23,分、秒值大于59,则不合法,将取消本次设置,清零重新开始计时。 时间设置与闹钟时间设置流程图如图3.3所示,键盘子程序的流程图如图3.4所示。 图3.3时间设置与闹钟时间设置流程图 图3.4键盘设置子程序流程图 3.2.4显示模块 该模块完成小时、分钟、秒6位LED的动态显示。显示程序流程图如图3.5所示。 图3.5显示程序流程图 3.2.5键盘扫描 键盘扫描流程图如图3.6所示。 图3.6键盘扫描程序流程图 3.2.6 定时比较模块 该模块用来将当前时间与预设的启闹时间比较,二者完全相同时点亮发光二极管,并置位闹钟标志位。重新按下ALM键停闹,熄灭发光二极管。 定时比较程序流程图如图3.7所示。 图3.7 定时比较程序流程图 第4章 总结 通过此次设计使我对应用系统设计思路有了一定的掌握,对硬件和软件

文档评论(0)

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

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

1亿VIP精品文档

相关文档