基于DS12C887的单片机实时时钟设计

更新时间:2024-05-20 06:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于DS12C887的单片机实时时钟设计

物理与电子工程学院 电子信息科学与技术(职教师资) 2011级 罗德攀

指导老师 倪向东

摘要:

实时时钟在现代工业及生活中应用广泛,本文简要介绍了DS12C887的原理及管脚,比较系统的介绍了基于AT89S52单片机和DS12C887的实时时钟设计:单片机在扫描外部键盘的同时,实时读DS12C887内部寄存器,并输出给1602LCD显示,同时系统增加了设置时间及闹钟功能,最终实现系统对时间的精确控制。

关键词:单片机实时时钟AT89S52 DS12C887 1602LCD

The RTC application of the DS12C887 in mcu system(School of Information and Electronic Engineering, Shandong Institute of Business and Technology, Yantai, 264005,China) Abstract:

RTC(Real-time clock)

is widely used in the modern industry and life, this article briefly describes the principles and pins of the DS12C887, systematicly introduced the real

time clock design based in DS12C887 and microcontroller AT89S52: while scanning the external keyboards, Microcontroller reads the internal registers in DS12C887, then outputs the dates to 1602LCD, meanwhile, the system added the time-set and alarm functions, finally made the precise time-control possible. Key words: MCU RTC AT89S52 DS12887 1602LCD

1. 前言

第1页(共8页)

实时时钟在现代工业生产及生活中应用很普遍,设计一个好的实时时钟方法有很多,主要分别在于其时钟源的选择,可以普遍分为以下两种:一种是用CPU内部的定时器来产生时钟源,一种是用外围时钟芯片RTC(REAL TIME CLOCK)来产生精准的时钟源;前者性价比高,只需要显示模块,用软件就可以实现对时间的控制及显示,但是由于晶振的不稳定性,也可能由于CPU与显示模块通信方式的不一样,其时间精度控制无法掌握,而且一掉电,系统停止工作,即系统无记忆性,易用性也不好;后者外围接口相对复杂,但是其精度控制高,而且有掉电保护的特点,使用灵活,误差小;本系统使用DS12C887做为时钟源,用AT89S52来控制时钟及显示。

2. 实时时钟芯片介绍

目前的实时时钟芯片,根据芯片与单片机通信方式的不同,可以将其分为两大类型:

(1)串行通信方式的实时时钟芯片,这种芯片大多数是将地址线、数据线、控制线合为一根串行传输数据的信号线,如:DS1302、PCF8583等。这种方式的优点是:信号线少、电路连接简单、节省系统资源和电路板面积等。但是它的缺点是:程序编写复杂、工作量比较大、CPU占用资源很大,操作速度较慢等。

(2)并行通信方式的实时时钟芯片,这种芯片与单片机的连接是将地址线、数据线、控制线并行与单片机连接,如:DS12C887、MC146818等。这种方式由于数据和地址的并行传送,所以它具有操作方便、快速、编程简单等优点,但是硬件电路相对复杂。

各种实时时钟芯片具有不同的功能,现在大多数时钟芯片具有时钟日历,闹钟两种功能,如PCF8583。但是在现在的测控应用系统中,

第2页(共8页)

只是具有这两种功能已远远不能满足用户的需求,所以现在许多芯片增加了方波输出功能,使实时时钟芯片的应用更有适应性。

3. DS12C887介绍

3.1 芯片介绍

DS12C887是美国达拉斯半导体公司(Dallas)最新推出的并行接口实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBM 计算机常用的时钟芯片MC146818B和DS12887管脚兼容,可直接替换,其能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题,自带的锂电池,在外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。在12小时制模式中,用AM和PM 区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节RAM,其中有1字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节通用 RAM供用户使用;此外用户还可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。采用DS12887芯片设计的时钟电路无需任何外围电路和器件,并具有良好的微机接口。DS12C887芯片具有微功耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟系统中。

3.2 主要功能及引脚介绍

DS12C887的引脚排列如图1所示,各管脚的功能说明如下:

第3页(共8页)

图3-1 DS12C887的引脚分配图

GND、VCC:直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时,DS12C887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。

1 MOT:模式选择脚,DS12C887有两种工作模式,即Motorola模式和Intel模式,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式,本文主要讨论Intel模式。

23 SQW:方波输出脚,当供电电压VCC大于4.25V 时,SQW脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号的输出。

AD0~AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0~AD7上的是地址信息,可用以选通

第4页(共8页)

DS12C887内的RAM,总线周期的后半部分出现在AD0~AD7上的数据信息。

14 AS:地址选通输入脚,在进行读写操作时,AS的上升沿将AD0~AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0~AD7上的地址信息,不论是否有效, DS12C887都将执行该操作。

17 DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC 时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通,在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0~AD7上,以供外部读取,在写操作中,DS的下降沿将使总线AD0~AD7上的数据锁 存在DS12C887中;当MOT接GND 时,选用Intel 工作模式,在该模式中,该引脚是读允许输入脚,即Read Enable。

15 R/W:读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式,此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intel模式,此时该作为写允许输入,即Write Enable。

13 C——S—— :片选输入,低电平有效。

19 I——R——Q——:中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET 可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。

18 RESET(复位输出):当该脚保持低电平时间大于200ms,保证DS12887有效复位。

第5页(共8页)

4. 实时时钟设计 本系统由硬件和软件两部分组成: (1)硬件电路 图4-1 硬件连接图 本系统采用的单片机是AT89S52单片机,它是一种带8K字节内嵌可编程闪存的低功耗高性能的八位微控制器,具有看门狗定时器、双数据指针、3个16位定时计数器、6个两级中断源结构以及掉电模式下的自动保存功能,而且价格便宜。显示模块用 1602LCD,通过它实时显示DS12C887内部时间,DS12C887与单片机的典型连接如图2所示,DS12887的ADO~AD7引脚分别与AT89S52单片机的AD0~AD7相连, DS12887采用地址总线与数据总线复用方式,LCD1602接AT89S52单片机的DB0~DB7;MOT引脚第6页(共8页)

接地,即DS12887选择INTEL时序。DS12887的片选引脚CS单片机AT89S52的12脚,DS1288的I——R——Q—— 引脚连于AT89S52的外部中断INT0即33引脚上,所以我们可通过编程利用中断源向CPU申请中断,每当符合中源中断条件时,I——R——Q—— 输出低电平,引起AT89S52的INTO中断。如果我们设置好内部闹钟寄存器的初值,则当当前时间与我们设置的闹铃时间匹配时,中断申请标志位IRQF置为1,由I——R——Q——向AT89S52提出中断,系统响应中断,以达到闹钟定时的目的。

(2)软件设计

在此应用系统中,采用键盘中断的方法来调用时钟子程序,程序流图如下:

图4-2 程序流图

第7页(共8页)

5. 结束语

总之,在与其它实时时钟芯片相比,DS12C887具有编程简单,性

能稳定,性价比较高的一种芯片。实践证明,在目前的应用系统中,该芯片具有广泛的应用前景。

参考文献

[1] 张鑫, 单片机原理及应用电子工业出版社

[2] 张毅刚, 单片机原理及应用设计.北京:电子工业出版社 [3] 胡汉才,单片机原理与应用设计.清华大学出版社

第8页(共8页)

本文来源:https://www.bwwdw.com/article/zoi7.html

Top