电子时钟数字电子钟单片机课程设计 下载本文

一、课程设计要求

二、方案印证 2.1数字时钟方案

数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。

方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器和软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。

2.2数码管显示方案

方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。

方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既和导通电流有关,也于点亮时间和间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。

从节省I/O口和降低能耗出发,本设计采用方案二。

方案一:使用并行接口时钟芯片DS12887设计时钟电路。该设计方案用AT89S51主控,利用并行时钟芯片DS12887为核心计时芯片,组成数字时钟电路。该电路能够准确计时,还附加许多其它功能,在掉电时能保存用户设置参数和故障状态参数等重要参数。设计电路图5如下:

图5 DS12887和CPU接口电路

该设计虽然能完成所要求的任务,综合性能也较好,但其并行接口方式占用大量接口资源,给其它设计带来诸多不便。 方案二:使用串行接口时钟芯片DS1302设计时钟电路。该设计方案以单片机AT89S51为主控芯片,以串行时钟芯片DS1302为核心计时芯片,组成数字时钟电路。该电路不但能准确地计时、附加其它功能,而且,其三线接口可以节省接口资源,在断电后不丢失时间和数据信息。该设计

方案的接口电路如图6所示:

图6 DS1302和CPU接口

通过以上两种设计方案的比较,我们可以看到,设计方案二接口简单,计时可靠,综合性能良好。所以选用第二种设计方案。

三、硬件电路设计 (一)、芯片介绍

3.1.1、DS1302简介

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。时钟可工作在24小时格式或12小时(AM/PM)格式。 DS1302和单片机的接口使用同步串行通信,仅用3条线和之相连接。可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,和DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 3.1.2 DS1302引脚功能和内部结构

DS1302的引脚功能如表1所示,外形及内部结构如图1所示:

引脚号 1 2、3 4 5 6 7 8 引脚名称 VCC2 X1、X2 GND RST I/O SCLK VCC1 功能 主电源 振荡源,外接32768Hz晶振 地线 复位/片选线 串行数据输入/输出端(双向) 串行时钟输入端 后备电源 [2]

表1 DS1302引脚功能表

图1 DS1302管脚图及内部结构图

2.1.2 DS1302的控制字

DS1302的控制字节如图2所示:

7 6 5 4 3 2 1 0

RAM RAM A4 A3 A2 A1 A0 K 1 CK 图2 DS1302控制字节的含义

控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 2.1.3 DS1302的复位引脚

通过把RST输入驱动置高电平来启动所有的数据传送。 RST输入有两种功能:首先,

RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供了终止单字节