简易时钟电路的设计与实现

2022-09-12 版权声明 我要投稿

随着社会的进步及科技的发展, 如今的社会已经是智能化的社会。单片机作为自动化的重要元素, 它的功能得到了不断的完善。现在单片机已经在许多领域占有一席之地, 电子电器、工业设备、航空航天、军事通信等领域都可看到它的身影。

1 时钟总体设计方案

LED数码管采用24h计时、显示模块由六位数码管组成, 分别显示时十位、时个位、分十位、分个位、秒十位、秒个位;输入模块由四个按键组成, 分别控制设置/启动、时/分、上调、下降;控制模块由AT89S52单片机作为核心控制, 采用11.059MHz晶振。

2 硬件设计

时钟电路原理如图1所示。

2.1 控制模块

控制模块由单片机、复位电路和时钟电路组成最小系统。

A T 8 9 S 5 2是一种低功耗、高性能CMOS8位微控制器, 8k字节Flash, 256字节RAM, 32位I/O口线, 看门狗定时器, 2个数据指针, 三个16位定时/计数器, 一个6向量2级中断结构, 全双工串行口, 片内晶振及时钟电路。

2.2 显示模块

显示模块采用8个共阳极动态显示LED数码管, LED数码的段码信号和片选信号由单片机的P0、P2口加上NPN放大后进行驱动。

2.3 输入模块

输入模块由四个按键组成。按键直接接在四条I/O线上, 另一端接地。在按键没有按下时, 输入为高电平。

3 软件设计

软件的设计采用模块化的方式, 根据各个功能, 将程序分成几个模块, 通过主程序将各个模块衔接起来。

3.1 计时模块

A T89S 52单片机有3个定时器/计数器, 这里只需用到定时器T0。定时器T0工作在16位定时器状态, 在方式1的工作模式下。为了便于一个定时器多用途, 将其初值设为1ms, 则晶振为11.0592时, 定时器TH0为:0XFC, TL0为:0X66。利用定时器中断, 每当T0溢出1000次, 则时钟增加1秒。按此方法, 具体程序如下:

3.2 显示模块

显示采用动态显示的方式, 利用P2口高电平依次选中8个LED数码管, 每选中一片后, P0口传出相应的段码。定义数组M7G[11], 用于存放0~9个数字以及“-”、灭的段码。定义数组str[8], 用于存放每个相应的LED数码管需要显示的数值。

3.3 输入模块

用于调整时间。当第一次按下“设置/启动”键时, 默认设定分的模式;按下“分/时”键在设定时的模式, 再按一次“分/时”键则回到设定分的模式, 以此来选择分、时模式;按“+”、“-”键可以上下调整选定的模式的值;第二次按下“设置/启动”键, 时钟在设定的值的基础上正常运行。使用变量rea d_tmp来进行键盘抖动处理。

4 结语

将程序编译生成hex文件烧录到单片机中, 进行电路的调试。电子时钟可以正常进行。该电子时钟设计简单、成本低廉。但是也存在的以下几个问题需要后续改进: (1) 电子时钟采用的是单片机内部的晶振进行时间控制, 但是这样的时间不是很精确。 (2) 时钟的时、分、秒之间采用来的“-”来进行隔离, 不是很美观, 应该采用“:”进行分隔; (3) 存在按键防抖问题, 可以在中断中添加延时5~10ms解决该问题。

摘要:本文介绍了一种基于AT89S52单片机的简易数码管时钟的电路设计方案, 包括了硬软件的设计细节。设计中主要由控制模块、显示模块和输入模块组成。由单片机的I/O口直接驱动这显示和输入模块。该设计简单易操作, 对于初步单片机开发有一定的意义。

关键词:单片机,数码管,时钟

参考文献

[1] 王静霞.单片机应用技术 (C语言版) [M].北京:电子工艺出版社, 2009.

[2] 彭伟.单片机C语言程序设计实训100例:基于8051+Proteus仿真[M].北京:电子工艺出版社, 2009.

[3] 梁建华.基于AT89S51单片机的数码管时钟电路的设计与实现[J].吉林广播电视大学学报, 2012 (4) :26-27.

上一篇:探索渔业科技入户对渔业推广的影响下一篇:企业财务管理内控体制的建设与风险防范

热门文章
    相关推荐