APP下载

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

2013-08-24陶忠耀

科技传播 2013年14期
关键词:子程序液晶按键

陶忠耀

广东省佛山市三水区工业中专技工学校,广东佛山 528100

0 引言

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

1 系统总体设计方案

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

图1 系统整体框图

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

2 硬件电路设计

整个系统的组成如图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 主程序流程图

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 显示时、分、秒的同时还可以显示年、月、日和星期,还可以实现对时间和日期的调整。该数字时钟具有较高的实用价值和可扩展性,在本文的设计思路下通过程序改变和硬件增加可以扩充它的功能和应用场合,比如实现实时温度湿度的获取与显示;带定时和倒计时功能的闹钟设计等等。

图4 按键处理子程序图

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

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

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

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

猜你喜欢

子程序液晶按键
不可压液晶方程组的Serrin解
基于有限状态机的按键检测程序设计
《液晶与显示》征稿简则
一种多方向导光按键结构设计
液晶与显示2015年第30卷第1期 目录
子程序在数控车加工槽中的应用探索
液晶与显示2014年第29卷第2期 目录
按键的多种状态检测及消抖处理方法
解析某型号手机按键检测程序的缺陷