数字电子时钟设计
- 格式:docx
- 大小:302.11 KB
- 文档页数:6
基于STC12C5A60S2的数字时钟设计
(辽宁工程技术大学电子与信息工程学院,辽宁葫芦岛 125105)
摘要:在如今的高速生活节奏中,把握准确的时间,对生活在都市的人群中有
着举足轻重的作用,如果在公共场合的LED屏幕中适时的显示当前时间,将对我们把握时机有着巨大的作用。
本文设计了一种以STC12C5A60S2为主控制器,采用DS1302作为时钟芯片,以32*8点阵屏来显示的数字时钟系统。
本文以C语言编写各个模块程序,使用Keil uVision5对程序进行仿真,并在硬件电路上完成验证。
该系统时间显示清晰准确,主控系统和时钟系统工作稳定,适合在公共场合LED点阵屏幕上显示。
关键词:时钟DS1302;时间显示;LED点阵;STC12C5A60S2单片机Abstract:In today's high-speed rhythm of life, to grasp the exact time of the population living in the city plays an important role, if timely display the current time in public, LED screen, will we seize the opportunity to have a huge effect. This paper presents a main controller to STC12C5A60S2 using DS1302 clock chip, a digital clock system to 32 * 8 dot matrix screen to be displayed. In this paper, the various modules written in C language program, using Keil uVision5 simulation program and complete the verification in the hardware circuit. The system displays clear, the main control system and clock system is stable, suitable for display on a public LED dot matrix screen.
引言
进入21世纪后,我们的生活节奏逐渐加快,实时的掌握时间,对于我们的工作和出行都有着重要的作用。
但是,在某些场合,例如车站,机场,公交车等公共场合,如果能有LED屏幕显示时间,将极大的方便我们的生活。
为了解决上述问题,我们设计了一种基于单片机的数字时钟系统,该系统,控制电路体积小,功耗低,结构简单,使用维护方便。
本系统选用DS1302作为时钟芯片,该时钟芯片有两种供电方式,当备份电源电压高于主电源电压0.2V后,时钟工作电源自动切换到备份电源,有效的防止因为断电导致数字时钟初始化。
1.系统总体设计
在系统的总体设计中,我们采用STC12C5A60S2单片机作为控制器,该单片机是宏晶公司生产的增强版单片机,具有1T的时钟周期,8路10位的数模转换器。
采用美国DALLAS公司生产的DS1302时钟芯片,采用4片8*8共阳极点阵组成32*8点阵来显示时间。
为了减少单片机的I/O口使用,为以后的升级预留出足够的硬件资源,我们可以采用74LS138译码器来扩展I/O口(本系统在硬件电路实现中并未使用74LS138译码器,而是直接使用单片机I/O口),同时采用74LS595移位寄存器来控制LED点阵。
系统的总体结构如图1所示。
图1 系统结构图
2.硬件系统设计
2.1电源模块
供电模块我们采用LM7805稳压芯片,LM7805是一种三端口,线性稳压芯片,它内部具有过压,过流,过热保护,外部可根据电流大小加装散热片。
电源模块除了需要向主控系统供电,还需要向LED点阵供电。
一个普通发光二极管工作电流大约在5mA到15mA,整个点阵屏幕全部点亮需要电流大概在1500mA,虽然LM7805的输出最大电流为1A,但是考虑到我们是对LED点阵进行扫描点亮,以及时间显示时,同时点亮的LED的数量并不会超过整个LED数量的一半,所以我们只需要选择LM7805稳压芯片,就可以满足该系统的正常供电要求。
在设计LM7805稳压芯片供电电路,我们需要让稳压芯片输出稳定的线性电压,这时,我们要在稳压芯片的电压输入端和输出端各添加两个滤波电容,来组成高频和低频组合滤波器,去除电路中的高频和低频噪声。
为了防止电源正负极接反烧毁稳压芯片,我们在电源输入端加入了一个二极管。
整个电源模块如图2所示。
图2 电源模块
2.2时钟模块
时钟模块是本系统的一个核心模块,我们采用美国DALLAS公司生产的DS1302作为时钟芯片。
DS1302是一款涓流充电的计时芯片,它包括了一个实时时钟和一个31字节的RAM,这个实时时钟提供年月日,时分秒的信息,对于少于31天的月份在月末会做出自动调整,同时还具有闰年校正功能和12/24小时格式切换功能。
与DS1302中的时钟/RAM通信,只需要RST线,I/O(数据)线和SCLK(时钟)线。
需要注意的是,在一个时钟脉冲下,只能传输1bit的数据,因此我们在与单片机的通信协议中,我们一次让单片机产生8个时钟脉冲,这样就可以一次发送一个字节的数据,具体实现,我们将在软件系统设计中描述。
为了保证时钟的持续运行,我们在时钟模块中加入备用电源,DS1302中,当备用电源电压大于主电源电压0.2V后,会自动切换到备用电源上来。
在使用主电源时,电源会向备用电源进行涓流充电,保证备用电源有效工作,防止因为断电导致时间被初始化,保证时钟稳定持续运行。
同时DS1302还可以在低至1uW 下保存时钟信息和数据信息。
其时钟模块电路如图3所示。
图3 时钟模块
2.3I/O口扩展模块
2.3.1译码器模块
现代电子系统更新很快,预留出足够的硬件资源可以很方便的进行产品升级,因此,我们在设计数字电子时钟系统时,使用74LS138译码器来节约单片机的
I/O口资源。
74LS138译码器,具有3端输入8端输出,同时还有3个使能端,其中两个低电平有效,另一个高电平有效,使用译码器时,需要将这3个使能端使能。
这时将3个地址输入端任意编码,可以得到8种不同结的结果,这样就可以选定任
意一个的输出端。
为了保护下一级的三极管,在译码器的输出端分别接入 3.3K 的限流电阻。
其中译码器模块如图4所示。
图4 译码器模块
2.3.2移位寄存器模块
点阵控制时,需要实时刷新,需要的I/O口数量较多,在32*8的点阵中,我们需要32个端口来控制点阵的列,因此,我们选用4片74LS595移位寄存器进行级联,扩展出32个端口。
74LS595是一种串行输入并行输出的移位寄存器,它具有数据存储器,在数据的移位过程中,可以保持输出端口数据不变。
在使用74LS595中,我们通常将移位寄存器数据清零端接入高电平,只需要使用单片机控制SI(串行数据输入端),SCK(移位寄存器时钟),RCK(存储器时钟)和OE(高电平输出高阻态)端,就可以实现74LS595输出端口的输出了。
在组成级联电路时,只需要将上一级的QH´(级联输出端)接入到下一级的SI就可以实现。
其电路图如图5所示。
图5移位寄存器模块
2.4显示模块
显示模块使用4片8*8点阵来构成32*8点阵屏幕,通过译码器输出端来控制点阵的行,使用移位寄存器来控制点阵的列,我们通过动态扫描,来实时刷新LED点阵显示。
点阵可以选择共阳极或者共阴极,只是控制方式相反。
电路图如图6所示。
图6 显示模块
3.软件系统设计
软件系统设计,我们采用Keil uVision5软件,使用C语言编程。
采用模块化设计的思想,将程序划分为4大模块,分别为时钟模块,移位寄存器模块,显示模块和主程序模块。
先将各个模块程序调试完毕,然后在主程序中直接调用功能模块。
主程序流程图如图7所示。
图7主程序流程图
4.结束语
本文设计了一种以STC12C5A60S2为主控制器的数字时钟系统,完成了硬件和软件的设计与调试。
系统运行稳定,可以抵抗主电源断电意外情况,但控制电
路需要在防水条件下使用。
该系统在车站以及公交车等公共场合可以方便的为行人提供准确的时间,方便人们对时间的实时把握,有一定的应用前景。
参考文献
[1].DS1302Trickle Charge Timekeeping Chip[R],2010.6
[2].STC12C5A60S2系列单片机器件手册[R],2012.9
[3].MC78XX/LM78XX/MC78XXA3-Terminal 1A Positive Voltage Regulator[R],2008
[4]74HC/HCT1383-to-8 line decoder/demultiplexerinverting[R],2006
[5]王晶晶,刘彬.基于ATmega16 单片机的时钟温度测量系统[J],中国科技论文在线.2010.8。