基于AT89C51单片机的数字时钟设计

时间:2022-09-28 01:32:48

基于AT89C51单片机的数字时钟设计

摘 要 本文介绍一款由AT89C51单片机、DS1302时钟芯片、LCD1602字符液晶显示器构成的数字时钟的设计。通过单片机对DS1302的读写操作,具有LCD1602液晶显示年月日、星期和时分秒的功能,并且具有调节年月日、星期和时分秒的功能。

关键词 数字时钟;AT89C51单片机;DS1302时钟芯片

中图分类号TP368.1 文献标识码A 文章编号 1674-6708(2013)95-0220-02

0 引言

数字时钟是一种利用集成电路技术实现对时、分、秒等进行数字显示的计时装置,广泛用于各种计时场合。钟表的数字化给人们的生产生活带来了极大的便利,已成为人们日常生活不可或缺的必需品。与传统钟表相比数字时钟具有良好的实时性和方便的扩展性。经过一定的软硬件扩展可以实现诸如定时自动报警、市政路灯自动起闭控制、定时打铃等的功能。因此,研究数字时钟的设计及其应用的扩展,有着非常现实的意义。

1 系统总体设计方案

本文所设计的数字时钟由主控芯片、时钟模块、显示模块和键盘控制模块共4个功能模块组成,如图1所示。

主控芯片选用Atmel公司生产的AT89C51单片机,完成对其他三个功能模块的协调与控制,是系统的核心部分。时钟模块采用美国DALLAS公司推出的高性能低功耗的实时时钟芯片DS1302,可以提供秒、分、时、日、月和年等信息,具有月末日期自动调节和闰年校正功能;提供主电源和备用电源双电源引脚,可以对后备电源进行涓流充电。显示模块选用液晶显示器LCD1602,型号为OCM2X16A,为字符点阵式液晶模块,可以显示两行,每行十六个字符。键盘控制模块由三个按键组成,用于时间的设定与调整。

2 硬件电路设计

整个系统的组成如图2所示。

2.1时钟与复位电路

单片机AT89C51和相关的元件组成时钟复位电路,其中18、19间外接12M晶振构成时钟电路,提供整机工作的时间基准;9脚为复位脚,具有上电复位及手动复位功能。

2.2 时钟模块

时钟模块电路采用DS1302,可以提供数字时钟中的秒、分、时、日、月和年等信息。X1和X2引脚之间连接一个32.768kHz的晶振,提供实时时钟的工作基准。BT为3.6V的充电电池,编程DS1302充电控制寄存器可对电池的慢速充电,用于时钟/日历数据和静态RAM掉电保护,实现时间信息的长期保存与临时断电情况下时钟的正常工作。对小时寄存器进行编程可以在12/24小时显示模式间进行切换。

2.3 显示模块

显示采用小型的液晶显示器LCD1602,分两行显示年月日、时分秒和星期。由于LCD1602不能显示汉字,对于日期的显示可以采用数字显示的方法,星期一至星期日分别显示为“1~7”的数字。LCD驱动电压VL端接可调电阻,可以调节液晶显示的对比度。BLA端接可调电阻,可以实现液晶显示亮度的调节。

2.4 键盘控制模块

键盘控制模块共有三个按键组成。

S1功能键:在24小时显示模式下,该键第一次按下后进入秒调整状态,液晶显示器上的时间停止走动,等待S2键被按下后秒显示部分加“1”。再次按下后进入调分模式,跟着依次是调时、调年、调月、调日和调周模式,当该键第八次被按下后退出时间调整模式。

S2调整键:在调整模式下,该键每按一次,相应被调对象加1。

S3 确定键:在调整模式下,该键被按下后,退出调整模式,并将调整后的时间、日期写入DS1302。

3软件设计

本系统的软件设计主要包括时钟芯片DS1302、液晶显示芯片LCD1602和定时器T0的初始化;时钟的时间设定与读取、液晶的显示与键盘处理等。

系统主程序框图如图3所示。系统首先对LCD1602、DS1302和定时器T0初始化,之后循环地调用按键处理子程序,检测是否需要调节时间。程序在定时器T0中断服务程序中,定时读取DS1302的日期和时间送到液晶显示器进行显示,实现刷新时间。

3.1 LCD1602显示程序部分

本部分主要是液晶显示所需的子程序、显示时间信息等。具体有:初始化LCD子程序;写命令子程序;写数据子程序;显示第一行数据程序;显示第二行数据程序;显示星期。

3.2 DS1302程序部分

本部分主要是实时时钟的字节读、字节写、读对应地址数据、向对应地址写数据和初始化等。具体有:DS1302初始化子程序;写一个字节;读一个字节;写数据;读数据。

3.3 按键处理子程序

按键处理子程序主要是检测S1是不是被按下,检测S1被按下后再检测S2,从而实现对时间信息的调整,并在检测到S3被按下后将设置的结果写入DS1302。程序流程图如图4所示。

3.4 定时器T0程序部分

本部分包括T0的初始化子程序和T0的中断服务子程序。初始化子程序完成对T0工作方式的设置、初值的设置、中断使能和启动的处理。中断服务子程序则完成对DS1302实时时钟数据的读取,并送LCD1602进行显示。

4结论

本文介绍了一款应用单片机控制的数字时钟的设计,该数字时钟通过液晶LCD1602显示时、分、秒的同时还可以显示年、月、日和星期,还可以实现对时间和日期的调整。该数字时钟具有较高的实用价值和可扩展性,在本文的设计思路下通过程序改变和硬件增加可以扩充它的功能和应用场合,比如实现实时温度湿度的获取与显示;带定时和倒计时功能的闹钟设计等等。

参考文献

[1]王守中编著.51单片机开发入门与典型实例.人民邮电出版社,2007,8.

[2]戴佳,戴卫恒,刘博文编著.51单片机C语言应用程序设计实例精讲.2版.电子工业出版社,2008,12.

[3]何业军,李超.基于单片机控制的高精度定时打铃器的设计,电子技术,2001,7.

[4]邹显圣.基于AT89C51单片机数字时钟的研究,机电产品开发与创新,2009,5.

上一篇:PLC在工程机械上的应用 下一篇:网络安全技术及其在校园网中的应用探析