基于DS12C887时钟芯片的高精度时钟的设计
新型时钟日历芯片DS12C887的应用设计
收 稿 日期 :0 0 0 — 2 2 1- 7 0
W Wed.n 2 1.2 电 子 元 嚣 件 焘 硐 2 W . ac 0 01 c 1
第 1卷 2
第 l 期 2
电 手 元 器 件 主 用
Elcr ni mp ne t& De ie App iai n e to cCo o n vc lc to s
杨 伟 强 张振 东 ,张 朋 ’ , ,刘 炳翔
(. 海理 工 大学 汽车 工程研 究所 ,上 海 2 0 9 ; 1上 0 0 3
2 上 海 由 乐电子 有 限公 司 ,上海 2 10 ) . 0 19
摘 要 : 介 绍 了 时 钟 日 历 芯 片 D 1 C 8 S 2 8 7的 主 要 功 能 、特 点 和 内部 地 址 分 布 . 给 出 了
◇ 可 用 二 进 制 或 B D码 表 示 日历 和 闹 钟 信 C 息:
MO 引 脚接 地 ,以选 用MO O O A 线 时序 。本 T TR L总
设 计 把 D 1 C 8 的 R M作 为 C 0 1 0 0 t 存 储 S2 87 A 85 F 2 # 部 ,
器 进 行 读 写 , 因而 程 序 简单 ,指 令 执 行 时 间 短 。
◇ 可 编程 方波 输 出 :
◇ 总线 兼 容 中断 f Q ; I ) R
◇ 具有 三 种可 编程 中断 。 D 1 C 8 实 时 时 钟 日历 芯 片 的地 址 分 布 如 S 2 87
图 1 示 , 芯 片 内 部 的 所 有 地 址 都 包 括 1 3 节 的 所 1字
芯 片 ,该 芯 片功 能 多 、可 靠性 高 ,使 用 简单 。通 过D 1 C 8 的 寄存 器 读 写 ,可 以很 容 易 的 获 取 S287 时间 信息 。因此 ,此 芯 片 在各 种设 备 、家 电 、仪
基于DS12C887的高精度语音闹钟万年历
1 设计方案与论证随着电子技术的发展,计算机在现代科学技术的发展中起着重要的作用。
多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。
本课程设计是基单片机原理与接口技术的简单应用。
运用所学的单片机原理和接口技术知识完成数字电子表的设计。
电子表已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使电子表具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的电子表集成电路芯片出售,价格便宜、使用也方便,但鉴于电子表电路的基本组成包含了数字电路的主要组成部分,因此进行电子表的设计是必要的,用汇编设计电子表显示程序,要求根据输入程序显示电子表画面。
研究电子表及扩大其应用,有着非常现实的意义。
方案一:主控芯片用MSP430,时钟芯片用DS1302,显示器用12864,语音芯片用ISD4001。
方案二:主控芯片用STC89C52,时钟芯片用DS12C887,显示器用1602,语音芯片用1420。
STC89C52单片机,这款单片机成本低廉,操作方便,而且足以满足控制要求。
实时时钟芯片有12C887和DS1302可供选择,DS1302是串口操作,用外部晶振,功能比较单一,而且精确程度有外部晶振影响。
12C887有内置晶振元和锂电池,并口操作,功能很多。
综上,我们选择12C887作为实时时钟芯片。
语音芯片种类很多,考虑到只用于那种功能,我们选择了1420语音芯片,录音简单,时长20秒,很符合系统要求。
显示模块有1602,1332,12864,数码管等可供选用,因为是万年历,而且只显示数字或英文字母,最终我们选用了1602作为显示器。
综上,我们选择方案二。
最后完全可以实现四个按钮可以设置时间和闹钟时间、有录放音功能、每次上电都能显示当时的时间、用液晶显示器显示实时时间以及闹钟时间这些功能。
DS12887时钟芯片_中文资料_
DS12887时钟芯⽚_中⽂资料_DS12887时钟芯⽚(中⽂资料⼀)特点·可作为IBM AT 计算机的时钟和⽇历·与MC14681B 和DS1287的管脚兼容·在没有外部电源的情况下可⼯作10年·⾃带晶体振荡器及电池·可计算到2100年前的秒、分、⼩时、星期、⽇期、⽉、年七种⽇历信息并带闰年补偿·⽤⼆进制码或BCD 码代表⽇历和闹钟信息·有12和24⼩时两种制式,12⼩时制时有AM 和PM提⽰·可选⽤夏令时模式·可以应⽤于MOTOROLA 和INTEL 两种总线·数据/地址总线复⽤·内建128字节RAM14字节时钟控制寄存器114字节通⽤RAM·可编程⽅波输出·总线兼容中断(/IRQ )·三种可编程中断时间性中断可产⽣每秒⼀次直到每天⼀次中断周期性中断122ms 到500ms时钟更新结束中断管脚名称AD0-AD7-地址/数据复⽤总线 NC -空脚MOT -总线类型选择(MOTOROLA/INTEL ) CS -⽚选 AS -ALER/W -在INTEL 总线下作为/WR DS -在INTEL 总线下作为/RD RESET -复位信号 IRQ -中断请求输出 SQW -⽅波输出VCC -+5电源 GND -电源地上电/掉电当VCC ⾼于4.25V200ms 后,芯⽚可以被外部程序操作;当VCC 低于4.25V 时,芯⽚处于写保护状态(所有的输⼊均⽆效),同时所有输出呈⾼阻状态;当VCC 低于3V 时,芯⽚将⾃动把供电⽅式切换为由内部电池供电。
管脚功能MOT (总线模式选择)当此脚接到VCC 时,选⽤的是MOTOROLA 总线时序;当它接到地或不接时,选⽤的是INTEL 总线时序。
SQW(⽅波输出)-当VCC低于4.25V时没有作⽤。
周期性中断率和⽅波中断频率表寄存器A中的控制位RS3 RS2 RS1 RS0 P1周期中断周期SQW输出频率0 0 0 0 ⽆⽆0 0 0 1 3.90625ms 256Hz0 0 1 0 7.8125ms 128Hz0 0 1 1 122.070µs 8.192kHz0 1 0 0 244.141µs 4.096 kHz0 1 0 1 488.281µs 2.048 kHz0 1 1 0 976.5625µs 1.024 kHz0 1 1 1 1.953125ms 512 Hz1 0 0 0 3.90625 ms 256 Hz1 0 0 1 7.8125 ms 128 Hz1 0 1 0 15.625 ms 64 Hz1 0 1 1 31.25 ms 32 Hz1 1 0 0 62.5 ms 16 Hz1 1 0 1 125 ms 8 Hz1 1 1 0 250 ms 4 Hz1 1 1 1 500 ms2 HzAD0-AD7(双向数据/地址复⽤总线)AS(地址锁存)ALEDS(Data Strobe or Read Input) RD当系统选择的是INTEL总线模式时,DS被称作RD。
基于单片机的电子万年历的设计与制作
郑州航空工业管理学院毕业论文(设计)题目基于单片机的电子万年历的设计与制作二О一三年五月二十三日摘要单片机应用技术飞速发展,从导弹的导航装置到飞机上各种仪表的控制,从计算机的网络通讯与数据传输到工业自动化过程的实时控制和数据处理,以及生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
单片机是集CPU、RAM、ROM 、定时、计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,系统由主控制器STC89C52为控制中心,DS12C887产生时钟,DS18B20产生温度,12864液晶显示对日期、时间等进行显示,按键可以设置时间、闹钟等。
能实现时钟、日历、时间和温度显示的功能。
今后万年历将会朝着精准度更高,外观更加美丽,价格更加实惠的方向发展,并且将会出现更多的辅助功能。
关键词:单片机,农历查询,万年历,温度显示ABSTRACTAs the rapid development of Single-chip Microcomputer Application technology, from the navigation device of missile to the various instruments on the aircraft control and from computer communication network and data transmission to industrial real-time automation process control and data processing, as well as the extensive use of the smart card and electronic pets in live, All of this is inseparable from the microcontroller. SCM is set to CPU, RAM, ROM, timing, counting and multiple interfaces in one microcontroller. It has the advantages of small volume, low cost, strong function, widely used in smart industries, and industrial automation.This paper designed a electronic clock which can achieve calendar function based on microcontroller, the system consists of main controller STC89C52, clock circuit, display circuit, DS12C887circuit, and a reset circuit components,the main control system as the control center, DS12C887 generates a clock, DS18B20 generates temperature, a 12864 LCD display the date and time, the key can set the time, alarm clock, achieved the clock calendar and time display function.In the future, the calendar will be more accurate, look more beautiful; more affordable prices of the direction of development, and will appear more auxiliary function.Keywords: Monolithic single-chip,lunar calendar demand, perpetual calendars display temperature目录摘要 (I)ABSTRACT (II)第1章绪论 (1)1.1 课题的背景 (1)1.2 电子万年历的发展 (1)1.3 电子万年历设计 (1)第2章设计要求与方案论证 (3)2.1 设计要求 (3)2.2 方案论证 (3)2.2.1 控制部分方案设计 .......................................... .32.2.2 显示部分的设计 ........................................... ..42.2.3 单片机芯片的选择方案和论证 (4)2.2.4 时钟芯片的选择方案和论证 (4)2.2.5 温度传感器的选择方案和论证 (5)2.2.6 电源的选择方案 (5)第3章硬件设计 (6)3.1 电路的设计框图 (6)3.2 主要单元电路的设计 (6)3.2.1 单片机主控电路设计 (6)3.2.2 时钟振荡电路设计 (8)3.2.3 复位电路设计 (9)3.2.4 温度传感器电路设计 (9)3.2.5 时钟电路设计 (12)3.2.6 显示电路设计 (13)3.2.7 按键电路设计 (16)3.2.8 报警电路设计 (16)第4章软件设计 (17)4.1 程序流程图 (17)4.1.1 主程序流程 (17)4.1.2 时间调整程序流程图 (18)4.1.3 时钟芯片读写程序流程 (20)4.1.4 温度测量元件控制程序流程 (20)4.1.4 公历转换成农历的基本原理 (21)4.2 操作与调试 (22)4.2.1 软件调试 (22)4.2.2 万年历实物 (23)总结与展望 (26)致谢 (27)参考文献 (28)附录一:系统硬件原理图 (29)附录二:元器件清单 (30)附录三:设计程序 (31)第1章绪论1.1 课题的背景随着社会的发展和科技水平的提高,人类获得和计算时间的方法,历经观天阳、摆钟到现在电子钟,经过不断发展和创新,计时的精度越来越准确。
单片机课程设计--电子秒表与闹钟的设计
目录摘要 (Ⅰ)1 电子秒表与闹钟系统概述 (1)1.1 课程设计基本要求 (1)1.2 系统实现功能 (1)1.3 系统应用价值展望 (2)2 仿真软件Proteus和Keil简介 (3)2.1 Proteus简介 (3)2.2 Keil简介 (3)3 系统工作原理分析 (4)3.1AT89C2051模块 (4)3.2 显示驱动模块 (6)3.3 数码管显示模块 (8)4 程序流程图设计 (9)5 Proteus仿真原理图 (12)6 课程设计体会 (14)参考文献 (15)附:源程序代码 (16)摘要随着科学技术的不断发展 , 人们对时间计量的要求越来越高。
在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。
本作品是以STC89C51单片机作为主控芯片,使用12MHZ的晶振,使用专用时钟日历芯片DS12C887产生时间信息,时间精确。
软件部分以C语言为主体,用1602LCD 液晶屏显示输出信息,输出信息量多,更直观、人性化。
该时钟可实现人机交互,可通过提供的键盘对其进行调整。
系统具有以下功能:年、月、日、时、分、秒显示;12小时/24小时模式切换,在12小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且闹钟可设置多组。
本次设计的电子时钟系统由单片机最小系统,1602LCD液晶屏,时钟芯片,调整按键,蜂鸣器,电源五大部分组成。
关键词:定时器中断闹钟电子时钟1 电子秒表与闹钟系统概述1.1 课程设计基本要求(1) 用并行口设计一个具有显示功能的秒表,显示准确的北京时间(时、分、秒),可用24小时制式;(2) 有时间校准功能;(3) 允许通过转换功能键转换显示时间,用定时器实现一个电子闹钟,能设定和修改定时的时间,并能到时响铃通知;(4) 所有按键需要通过串口自发自收来调校各种功能。
1.2 系统实现功能本系统是基于单片机AT89S52制作的数字电子钟。
根据实验要求,在完成实验所要求的基本功能外,扩展了几个功能。
在智能化仪器仪表中ds12c887
在智能化仪器仪表中,往往需要走时准确的实时时钟为多通道数据采集、定时及实时控制提供精确的时间基准和同步信号。
目前,实现实时时钟的方法主要有软件时钟(由软件计时实现)、硬件时钟(由硬件时钟芯片实现)、GPS时钟(由全球卫星定位系统提供)等。
软件时钟具有硬件开销小、成本低、外围电路简单等优点。
但由于时钟是靠软件延时实现的,运行过程中不仅要占用大量的CPU时间,而且计时精度低、走时误差较大,在智能化仪器仪表中很少采用。
GPS (全球卫星定位系统)提供的实时时钟信号虽然具有相当高的精度,但由于GPS产品成本高,在普通智能化仪器仪表中很少采用。
本文介绍一种较新的实时时钟芯片DS12C887及其与AT89C51单片机的软硬件接口。
1 DS12C887的特点及引脚描述DS12C887是由美国达拉斯半导体公司推出的CMOS并行实时时钟芯片,它与目前微型计算机主机板中普遍采用的MC146818、DS12887时钟芯片引脚完全兼容,可以直接替换。
DS12C887将时钟电路、晶振及其外围电路、锂电池及其相关电路等嵌装成一体,并具有与微处理器的并行接口,可方便地用于对时钟精度要求较高的智能化仪器仪表中。
DS12C887的主要功能特点有:(1)内含锂电池。
当外电源电压降到3 V以下时,时钟自动将电源切换到由芯片内部锂电池供电,在外电源断电的收稿日期:2002—05~20作者简介:宋雨潭(1972一),女,吉林长春人,工程师。
情况下,时钟可以连续运行10 a而不丢失数据。
(2)具有秒、分、时、日、月、年、世纪、星期计时及闰年自动校正功能。
(3)可根据用户需要选择24/12 h运行方式和夏令时运行方式。
(4)由硬件选择MOTOROLA和INTEL总线时序,便于和不同的微处理器相连接。
(5)内含128字节掉电保持RAM单元,其中10字节用于存储时钟日历和报警信息,4字节用于状态控制寄存器,其余I14字节供用户存储需要掉电保持的信息和数据。
用实时时钟芯片DS12C887设计高精度时钟
32系 统 整 体 方 案 设 计 图 .
— — — — — — —
竺 tBiblioteka / lS C81 D 2 7J r '  ̄
功 设键 I 能置 ・
单机 片
基于单片机的DS12C887时钟芯片应用研究
品 。 S 2 8 与D 1 8 的 形 式 、 置 和 功 能 相 同 , 是D 1 8 7 D 18 7 S 2 7 配 只 S 2 8 增 加 了6 字 节 的通 用 R M。 访 问 附 加 的6 字 节R M取 决 于访 4 A 4 A 问 周 期 地 址 输 出 阶 段 A 6 逻 辑 电 平 , 4 脚 双 排 直 列 封 装 D 的 2管 内包 含 有 一 个 锂 电 池 、 英 晶振 和写 保 护 电路 。 因 此D 1 8 7 石 S28 是 一 个 完 整 的 子 系 统 , 取 代 在 典 型 应 用 中 的 l 个 组 件 , 的 可 6 它 功能 包 括 非 易 失 时 钟 、 报 器 、 年历 、 编程 中 断 、 波 发 生 警 百 可 方 器 和 l 4 节 . 易 失 静 态 R M. 时 时 钟 在 断 电情 况 下 仍 能 1字 非 A 实 保 持 时 间 与 内 存 是 其 与众 不 同 的 特 点 。 MO ( 式 选 择 ) T 脚 为 两种 总线 类 型 的选 择 提 供 了 T模 : MO 管 方便 , 当联 接 到 V C , 择 MO O L C 时 选 T R A时 序 , 联 接 到 G D 当 N 时. 选择 I T L N E 时序 , 管 脚 有 一 约2 K 部 下 拉 电 阻 。 此 0内
基 于 单 片 机 的 DS1 C8 7 钟 芯 片 应 用 研 究 2 8 时
王 啸 东
( 京 铁 道 职 业 技 术 学 院 ( 州 校 区 ) 江 苏 苏州 南 苏 , 253 ) 1 1 7
摘 要 :新 型 时钟 芯 片 D IC 8 具 有 计 时 精 确 、 电情 S 2 87 断 况 下 运 行 十年 以 上 不 丢 失 资 料 等 优 点 ,在 单 片 机 计 时 系统 中 有 着 广 泛 应 用 。 本 文 分 析 了D 1 C 8 的 功 能 特 性 .介 绍 了 S 2 87 D 1 C 8 与 A 8 C l 片机 系统 的硬 件 电路 图 . 同时 介 绍 了 S 2 87 T 9 5 单
基于DS18B20&DS12C887的热水器智能控制器的设计
1 3 DS 2 8 7实 时 时 钟 接 口 电路 的设 计 [ . 1C 8 。
第 2期 ( 第 1 9 ) 总 5期
21 0 0年 4 月
机 械 工 程 与 自 动 化
M ECHANI AL ENGI C NEERI NG & AUTOM AT1 0N
No .2
A pr .
文章 编 号 : 6 2 6 1 ( O 0 O 一 1 1O 1 7 — 4 3 2 1 ) 2O 9 一 2
1 系统 硬 件 设 计 方 案
温 度 输 出可进 行 9位 ~ l 的编 程 。通 过对 便 笺 式 2位 RAM 中 C ONF G 寄存器 的可 编程 温度分 辨力位 R0 I 、 R1 进行 编程 , 可设定 不 同的温 度分辨力 及最 大转换 时 间 ,详 见表 1 。
表 1 利 用 R 、R1 来 设 定 分 辨力 和 最 大 转 换 时 间 0 位
基 于 DS B2  ̄DS 1 0 8 1 C8 2 8 7的热水器 智 能控 制器 的设 计
赵 振 虎 , 吴 金 强
( 疆 大 学 机 械 工 程 学 院 ,新 疆 乌 鲁 木 齐 新 800) 30 8
摘 要 :该 系 统 是 在 现 有 太 阳 能 热水 器 的基 础 上 开 发 的 。以 AT 9 5 8 C 2单 片机 为 控 制 核 心 , 用 智 能温 度 传 感 器 采
1 2 D 1 B O的 工 作 原 理 和 电路 . S 8 2
基于DS12C887的高精度时钟设计
基于DS12C887的高精度时钟设计摘要:设计以ATM89C52单片机为核心的,采用LCD1602液晶和专门时钟芯片DS12C887的高精度时钟,该时钟具有电路结构简单合理、显示精度高和实时更新显示等特点。
介绍了DS12C887芯片和LCD1602液晶的特点、功能和实现方法,给出了ATM89C52单片机的外部接口电路和相关程序的设计方法。
关键词:单片机;时钟芯片;实时时钟;接口电路0引言随着人们生活水平的提高和智能化电子集成的发展,许多电子设备,通常要进行与时间有关的控制,并需要记录实时的时间信息。
许多重要的信息不仅需要记录其内容,还需要记录发生的准确时间。
有些设备需要长时间运行并且保证掉电数据不丢失。
通常的单片机并没有这样的实时时钟功能,单片机掉电或者时钟晶振的误差会导致时间错乱。
如果完全用程序设计时钟,又会占用单片机大量的系统资源,影响到其他功能的实现。
美国Dallas公司的DS12C887实时时钟芯片,将晶振、写保护电路、可充电锂电池等集成,可保证时钟精确、掉电时时钟数据不丢失,可靠性高,使用简单。
1系统原理本系统利用DS12C887芯片设计的高精度时钟,与52单片机相连,通过1602液晶显示,实现在1602液晶上精确显示年、月、日、时、分、秒,并且在掉电的情况下仍能记录时间数据,通电后更新实时显示,与矩阵键盘相连接,能够使用按键调节时间,设定闹钟。
2核心芯片AT89C52单片机本系统核心芯片采用ATMEL公司生产的AT89C52单片机。
AT89C52是51系列单片机的其中一种型号,是一种低电压、高性能的8位单片机。
其片内含有8K bytes的可反复擦写Flash只读程序存储器和256 bytes的随机存取数据存储器。
AT89C52有40个引脚,其中32个为外部双向输入/输出(I/O)引脚,同时内含2个外部中断口,51单片机内部共有定时器T0和定时器T1两个16位可编程定时/计数器,AT89C52单片机内部比51单片机多一个T2定时/计数器,它们可以按照常规方法进行编程,并兼容标准MCS-51指令系统。
DS12C887时钟日历芯片
更新周期的基本功能主要是:
1、刷新各个时标寄存器中的内容,同时秒时标寄存器内容加1,并检查其他时标寄存器内容是否有溢出,如果有溢出则相应进位分、时、日、月、年。2、检查3个——时、分、秒闹钟时标寄存器的内容是否与对应时标寄存器的内容相符。如果相符,则寄存器C中的AF位置1;如果闹钟时标寄存器的内容为C0H~FFH之间数据,则为不关心状态。
在中断申请中,要读一次寄存器C,目的就是使寄存器C中的内容自动清0。IRQF为0,则不再引起中断申请。目的就是使下一次闹钟时间与当前时间符合时,可以再次申请中断。
另一个理解:如果在中断服务程序中不读寄存器C,即,不使寄存器C中的各位清0的话,那么就会不断的申请中断。因为IRQF值为1。——我这个理解未做测试,以后将测试结果放上。
DS/RD:数据选择或读输入引脚该引脚有两种工作模式:Motorola工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0~AD7上,以供外部读取。在写操作中,DS的下降沿将使总线 AD0~AD7上的数据锁存在DS12C887中;Intel工作模式中,DS被称作RD。该引脚是读允许输入脚,即Read Enable。是读(RD)信号输入端。当他有效时表示DS12C887正往总线输出数据。RD信号线在存储器芯片上被称作OE信号线。
下面在讲ห้องสมุดไป่ตู้关于DS12C887的初始化
DS12C887采用连续工作制,一般无需每次都初始化,即使是系统复位时也是如此。一般是新产品买回来,第一次使用的时候初始化;或者你想要初始化的时候。那么如何初始化DS12C887呢?
DS12C887电子时钟详细教程
本人呕心沥血制作的一个基于ds12c887的电子钟的详细教程,程序已经在protues中仿真,仿真图在下方!!花了血本制作的,我花了将近一个月时间探索出来的电子钟(其间断断续续编),在这里给同学们一个好的案例,这个程序由用51,1602,ds12c887,4个按键,一个喇叭。
下面还介绍了总线的画法,以及实际中连接编程时的重要注意事项,附上了时序图,对程序的解释很是详细,看了好的帮我顶下,谢谢大家!------------------------血顶猎鹰D7D6D5D4D3D2D1DERWRSVSSVDDVEEs2,s3可以调整闹铃时间。
仿真时有一个小bug,当按下闹铃后再按s1,再退出时得再重新按一遍闹铃才可以正常运行,估计是软件的原因。
我用的是7.7的,所以有这个芯片,这是我从论坛上找的版本低的解决办法,大家可以看下仿真软件如果版本低可以这样将库文件和dll文件复制到7.5SP3的library和models,仿真时,每次一定要给寄存器初始化,否则时钟不能正常运行.正式硬件运行时仅初次化时使用一下,将以下内容屏蔽后重新编译,再下载程序到89C51.//初始化DS12C887工作方式write_ds(0x0A,0x20);//打开振荡器write_ds(0x0B,0x26);//设置24小时模式,数据二进制格式,开启闹铃中断set_time();//设置上电默认时间,调试的时候用对这三个进行屏蔽,还有把set time()这个子函数屏蔽掉仿真软件中bus总线画法如下,拖出总线,点lbl给总线标上AD[0..7],再标细线时有没发现框里多了这些标号相同的电气连接相同,好了,去连吧。
下面是程序,主要参照郭天祥那本书的,关键地方加了很详细的注释#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit lcdrs=P2^4;sbit lcden=P2^6;sbit s1=P3^0; //功能键sbit s2=P3^1; //增大键sbit s3=P3^2; //减小键sbit s4=P3^6; //闹铃查看键sbit beep=P2^3;//蜂鸣器sbit dscs=P1^4;sbit dsas=P1^5;sbit dsrw=P1^6;sbit dsds=P1^7;sbit dsirq=P3^3; //中断bit flag1,flag_ri;//定义标志位flag1设置闹铃uchar count,s1num,flag,t0_num;char miao,shi,fen,year,month,day,week,amiao,afen,ashi;char code table[]=" 20 - - "; // 20 - -uchar code table1[]=" : : "; // : :void write_ds(uchar,uchar); uchar read_ds(uchar);void set_time();void read_alarm();void set_alarm(uchar,uchar,uchar);void delayms(uint z) //延时毫秒的程序{uint x,y;for(x=z;x>0;x--)for(y=112;y>0;y--);}void di(){beep=0;delayms(100);beep=1;}void write_cmd(uchar cmd){lcden=0;lcdrs=0;P0=cmd;_nop_();lcden=1;delayms(1);lcden=0;_nop_();}void write_dat(uchar dat){lcden=0;lcdrs=1;P0=dat;_nop_();lcden=1;delayms(1);lcden=0;_nop_();}void lcdint(){lcden=0;write_cmd(0x38); // 显示模式设置write_cmd(0x0c); //开显示,不显示光标,不闪烁write_cmd(0x06); //写一个字符后地址加1,屏幕不移write_cmd(0x01); //清屏delayms(1);}void init(){uchar num;EA=1;//开总中断EX1=1;//开外部中断1IT1=1;//外部中断下降沿触发flag1=0; t0_num=0;s1num=0;week=1;write_ds(0x0A,0x20);//打开振荡器write_ds(0x0B,0x26);//设置24小时模式,数据二进制格式,开启闹铃中断set_time();//设置上电默认时间,调试的时候用lcdint();write_cmd(0x80);for(num=0;num<15;num++){write_dat(table[num]);}write_cmd(0xc0);for(num=0;num<11;num++){write_dat(table1[num]);}}void write_sfm(uchar add,char date) //写时间,2位一起写{char shi,ge;shi=date/10;ge=date%10;write_cmd(0xc0+add);write_dat(0x30+shi);write_dat(0x30+ge);}void write_nyr(uchar add,char date)//年月日{char shi,ge;shi=date/10;ge=date%10;write_cmd(0x80+add);write_dat(0x30+shi);write_dat(0x30+ge);}void write_week(char we)//星期{write_cmd(0x80+12);switch(we){case 1: write_dat('M');write_dat('O');write_dat('N');break;case 2: write_dat('T');write_dat('U');write_dat('E');break;case 3: write_dat('W');write_dat('E');write_dat('D');break;case 4: write_dat('T');write_dat('H');write_dat('U');break;case 5: write_dat('F');write_dat('R');write_dat('I');break;case 6: write_dat('S');write_dat('A');write_dat('T');break;case 7: write_dat('S');write_dat('U');write_dat('N');break;}}void keyscan(){if(flag_ri==1){if((s1==0)||(s2==0)||(s3==0)||(s4==0))//按任意键取消闹钟报警{delayms(5);if((s1==0)||(s2==0)||(s3==0)||(s4==0)){while(!(s1&&s2&&s3&&s4));di();flag_ri=0;}}}if(s1==0) //如果功能按键1按下{delayms(5); //去抖动if(s1==0){while(!s1); //等待松手s1num++; //记下次数di(); //蜂鸣器响if(flag1==1) //设置闹铃为1时才对s1num调整,只调秒,分,时{if(s1num>3){s1num=1;}}flag=1; //在调整时间时标志位flag为1,不进行正常操作switch(s1num){case 1:write_cmd(0xc0+10); write_cmd(0x0f); break; //按一下秒钟指针显示闪烁case 2:write_cmd(0xc0+7); break;case 3:write_cmd(0xc0+4); break;case 4:write_cmd(0x80+12); break;case 5:write_cmd(0x80+9); break;case 6:write_cmd(0x80+6); break;case 7:write_cmd(0x80+3); break;default: //用default可以解决s1num跑飞s1num=0;write_cmd(0x0c); //按了8次关闪烁,flag=0,退出调整,显示时间flag=0;write_ds(0,miao); //将调整后的时间写入ds12c887write_ds(2,fen);write_ds(4,shi);write_ds(6,week);write_ds(7,day);write_ds(8,month);write_ds(9,year);break;}}}if(s1num!=0) //S1有按下过,检测S2,S3{if(s2==0) //如果按键2按下执行加{delayms(5);if(s2==0){while(!s2);di();switch(s1num){case 1:miao++;if(miao>59){miao=0;}write_sfm(10,miao);write_cmd(0x80+0x40+10);break;case 2:fen++;if(fen>59){fen=0;}write_sfm(7,fen);write_cmd(0x80+0x40+7);break;case 3:shi++;if(shi>23){shi=0;}write_sfm(4,shi);write_cmd(0x80+0x40+4);break;case 4:week++;if(week>7){week=1;}write_week(week);write_cmd(0x80+12);break;case 5:day++;if(day>31){day=1;}write_nyr(9,day);write_cmd(0x80+9);break;case 6:month++;if(month>12){month=1;}write_nyr(6,month);write_cmd(0x80+6);break;case 7:year++;if(year>99){year=0;}write_nyr(3,year);write_cmd(0x80+3);break;}}}if(s3==0){delayms(5);if(s3==0){while(!s3);di();switch(s1num){case 1:miao--;if(miao<0){miao=59;}write_sfm(10,miao);write_cmd(0x80+0x40+10);break;case 2:fen--;if(fen<0){fen=59;}write_sfm(7,fen);write_cmd(0x80+0x40+7);break;case 3:shi--;if(shi<0){shi=23;}write_sfm(4,shi);write_cmd(0x80+0x40+4);break;case 4:week--;if(week<1){week=7;}write_week(week);write_cmd(0x80+12);break;case 5:day--;if(day<1){day=31;}write_nyr(9,day);write_cmd(0x80+9);break;case 6:month--;if(month<1){month=12;}write_nyr(6,month);write_cmd(0x80+6);break;case 7:year--;if(year<0){year=99;}write_nyr(3,year);write_cmd(0x80+3);break;}}}}if(s4==0){delayms(5);if(s4==0){while(!s4);di(); flag1=~flag1; //闹铃调好后再按一次键返回if(flag1==0) //退出闹钟设置保存数值{flag=0; //启动时间显示write_cmd(0x80+0x40);write_dat(' ');write_dat(' ');write_cmd(0x0c); //清屏下,否则光标乱跳(闹铃调时间时)write_ds(1,miao);write_ds(3,fen);write_ds(5,shi);}else //设置闹钟{read_alarm(); //读原始数据miao=amiao;fen=afen;shi=ashi;write_cmd(0xc0);write_dat('R');write_dat('i');write_cmd(0x80+0x40);write_sfm(4,ashi);write_sfm(7,afen);write_sfm(10,amiao);}}}}void write_ds(uchar add,uchar date)//写12c887函数{dscs=0;dsas=1;dsds=1;dsrw=1;P0=add; //写地址dsas=0;dsrw=0;P0=date; //写数据dsrw=1;dsas=1;dscs=1;}uchar read_ds(uchar add) //读12c887{uchar ds_date;dsas=1;dsds=1;dsrw=1;dscs=0;P0=add;dsas=0;dsds=0;P0=0xff;ds_date=P0;dsds=1;dsas=1;dscs=1;return ds_date;}void set_time() //初始化{write_ds(0,0); //秒write_ds(1,10); //秒闹铃write_ds(2,34); //分钟write_ds(3,34); //分钟闹铃write_ds(4,15); //小时write_ds(5,15); //小时闹铃write_ds(6,5); //星期write_ds(7,20); //日write_ds(8,5); //月write_ds(9,11); //年}void read_alarm(){amiao=read_ds(1);afen=read_ds(3);ashi=read_ds(5);}void main(){init();while(1){keyscan(); //键盘不断扫描if(flag_ri==1) //如果闹铃时间到{di();delayms(100);di();delayms(500);}if(flag==0&&flag1==0){keyscan();year=read_ds(9);month=read_ds(8);day=read_ds(7);week=read_ds(6);shi=read_ds(4);fen=read_ds(2);miao=read_ds(0);write_sfm(10,miao);write_sfm(7,fen);write_sfm(4,shi);write_week(week);write_nyr(3,year);write_nyr(6,month);write_nyr(9,day);}}}void exter()interrupt 2 //闹铃外部中断1{uchar c; //闹铃时间到flag_ri=1;c=read_ds(0x0c); //读C寄存器表示响应中断}下面是管脚和时序图寄存器的定义如下我爱帮帮,啵!嘻嘻。
51单片机万年历 DS12887
1 绪论需要该设计的实物请联系:QQ:702176842时间在我们的生活中有着不可取代的作用,它可以为我们清晰地记录下制作从开始到结束所需要的时间。
时间对人们来说总是宝贵的,工作的忙碌性和繁杂性容易使人忘记当前时间,忘记了要做的事情。
当事情不重要的时候,这种遗忘无伤大雅,但是,一旦事情重要,一时的耽误可能酿成大祸。
例如,许多火灾都是由于人们遗忘而发生的,而时间的重要性在医院、冶金、化工、食品、机械、石油等工业中,更是举足重轻,而现在钟表的数字化给人们的生活带来了极大地方便。
成为人们必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
1.1 课题背景及意义如今我们只需看一下钟就能说出时间,我们把这看成是很自然的事。
但在过去长达几千年的时间里,根本就没有任何测定时间的精确方法。
人们通过太阳在天空中的位置,或者通过像沙漏这样的装置来判断时间,在沙漏中,是通过沙子从一个双头玻璃容器中漏落下来来指示时间的。
改变上述情况的人是一位叫做一行的中国杰出天文学家,他生活于公元8世纪。
他与另外一位中国发明家梁令瓒一起设计了“擒纵器”装置,即所有机械钟中心部位的那套齿轮嵌齿结构。
机械钟在中世纪时来到欧洲。
到14世纪时,欧洲建造了既大又不灵巧的机械钟,它们用钟锤驱动,其精确度每天大约误差在1小时以内。
这样的钟在人们眼中通常没什么信任度。
它们连着一个报时的铃,但既然它们这样不精确,在机械装置中也就谈不上显示分与秒了。
15世纪时开发出了由弹簧驱动的钟,接着在17世纪时制造出了带有钟摆的更精确的钟。
而到中世纪时,钟表制造者造出了可展示太阳运动和月亮、行星的相位,以及能显示时间的钟。
拟人机构不时地打铃,以声音报出每小时和每刻钟。
而在现在这一个知识爆炸的新时代,新产品、新技术层出不穷,电子技术的发展更是日新月异。
可以毫不夸张地说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。
新型多功能电子闹钟设计毕业设计论文
本科生毕业设计(论文)毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:2009届本科毕业设计(论文)资料第一部分毕业论文(2009届)本科毕业设计(论文) 新型多功能电子闹钟设计2009年6月摘要本文提出了一种基于AT89C51单片机的新型多功能电子闹钟。
通过对设计方案的比较与论证,选择了适合本设计的时钟模块、闹铃模块、温度检测模块、键盘及显示模块、电源模块设计方案。
其中实时时钟采用DS12C887实现年月日时分秒等时间信息的采集和闹钟功能;温度检测模块由DS18B20集成温度传感器对现场环境温度进行实时检测;键盘和数码管与ZLG7289连接,通过键盘数码管可方便地校对时钟和设置闹钟时间;用蜂鸣器进行声音指示;采用7805 三端稳压集成芯片稳定输出5V直流电压。
通过对AT89C51单片机最小系统的原理分析,结合论文的设计要求,完成了系统流程图及系统程序的设计。
本设计可实现时间显示、闹钟设置、环境温度测量、交直流供电电源等功能。
关键词:单片机,电子闹钟多功能设计,温度检测,交直流供电ABSTRACTIn this article a new type of multi-functional electronic alarm clock, is based on AT89C51 single-chip controller is designed. Through the comparison of design and feasibility studies, choosing a design of the clock module, alarm module, the temperature detection module, a keyboard and display module, and power module design. Real time clock uses DS12C887 to achieve accurate date and alarm function such as the collection of time information; Temperature detection detects the on-site real-time by the integrated temperature sensor DS12B20 ambient temperature; keyboard and digital tube are connected with ZLG7289, can be easy to proof-reading alarm clock and set up time; It use buzzer for voice instructions; Using 7805 three-terminal regulators chip output DC voltage of 5V. By analysis the minimum system’ principium of singlechip AT89C51, combine the request of this character, I finished the design of system flow chart and system program.The design can achieve the goal of time display, the alarm settings, the ambient temperature measurement, AC-DC power supply functions.Key word: AT89C51, the temperature sensor DS18B20, keyboard and demonstrates the ZLG7289, buzzer7805目录第1章绪论 (1)1.1 电子闹钟研究的背景 (1)1.2 本课题研究的意义 (1)1.3 本课题研究的主要内容 (2)第2章电子闹钟硬件电路设计 (4)2.1 电子闹钟总体设计方案的比较与论证 (4)2.1.1 设计要求 (4)2.1.2 设计方案的比较和论证 (4)2.2 电子闹钟主机电路设计及原理 (5)2.2.1 AT89C51芯片概述 (5)2.2.2 系统时钟电路设计 (8)2.2.3 系统复位电路设计 (8)2.3 时钟模块的设计及原理 (9)2.3.1 时钟模块设计方案比较比较与论证 (9)2.3.2 DS12C887芯片概述 (9)2.3.3 DS12C887与单片机的连接图 (14)2.4 温度检测模块的设计及原理 (14)2.4.1 温度检测模块设计方案比较与论证 (14)2.4.2 DS18B20芯片概述 (14)2.4.3 DS18B20的内部结构 (15)2.4.4 DS18B20在设计中的连接图 (17)2.5 闹铃声光指示电路设计 (17)2.6 键盘及显示电路设计 (18)2.6.1 ZLG7289芯片概述 (18)2.6.2 ZLG7289在设计中与键盘及数码管的连接图 (20)2.7 电源电路的设计 (20)第3章系统原理分析及软件部分 (22)3.1 原理分析 (22)3.2 单片机最小系统 (22)3.3 系统软件部分 (23)3.3.1 软件总体设计 (23)3.3.2 系统流程图及程序 (23)结论 (26)参考文献 (27)致谢 (28)附录1 (29)附录2 (31)湖南工业大学本科毕业设计(论文)第1章绪论1.1 本课题研究的背景随着科学技术的进步,现在的闹钟也不再是过去的老样子。
DS12C887资料
DS12C887时钟日历芯片,是由美国DALLAS公司生产的新型时钟日历芯片,采用CMOS技术制成。
芯片采用24引脚双列直插式封装,内部集成晶振、振荡电路、充电电路和可充电锂电池,组成一个加厚的集成电路模块,在没有外部电源的情况下可工作10年。
具有良好的微机接口、精度高、外围接口简单、工作稳定可靠等优点,可广泛使用于各种需要较高精度的实时场合。
一、器件特性·可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿;·自带晶体振荡器和锂电池。
在没有外部电源的情况下可工作10年;·对于一天内的时间记录,有12小时制和24小时制两种模式。
在12小时制模式中,用AM和PM区分上午和下午;·可选用夏令时模式·时间表示方法有两种:一种用二进制数表示,一种用BCD码表示;·DS12C887中带有128字节RAM,其中11字节用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节RAM供用户使用;·数据/地址总线复用·用户可编程以实现多种方波输出·可应用于MOTOROLA和INTEL两种种线。
——我这里只阐述INTEL总线实现方法·三种可编程中断:定闹中断、时钟更新结束中断、周期性中断DS12C887各引脚的功能说明GND、VCC:直流电源,其中VCC接+5V输入,GND接地。
当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC输入小于+3V时,DS12C887会自动将电源切换到内部自带的锂电池上,以保证内部的电路能够正常工作。
MOT:模式选择引脚DS12C887有两种工作模式,即Motorola模式和Intel模式。
实时时钟DS12C887_C实例程序
DS12C887实例程序#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar nian,yue,ri,day,shi,fen,miao,ashi,afen,sshi,sfen;uchar s1num,flag,flag1,flag2,flag3,flag4,settime,setalarm;/********************************************************************引脚配置定义 GND VCC VL RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 BLA BLK*********************************************************************/#define LCDIO P1sbit LCD1602_RS=P3^5;sbit LCD1602_RW=P3^4;sbit LCD1602_EN=P3^3;sbit s1=P2^1;sbit s2=P2^2;sbit s3=P2^0;sbit s4=P2^3;/********************************************************************/ void LCD_delay(void);void delay_ms(unsigned int n);uchar change_bcd(uchar a);void LCD_en_command(unsigned char command);void LCD_en_dat(unsigned char temp);void LCD_set_xy( unsigned char x, unsigned char y );void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s); void LCD_init(void);void write_sfm(uchar,uchar);void setup_time();void setup_alarm();/******************** LCD PART *************************************/void LCD_delay(void){_nop_();_nop_();_nop_();}void delay_ms(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/********************************* *********************************/ uchar change_bcd(uchar a) //D0~D7转换程序{char temp,i;for(i=0;i<8;i++){temp<<=1;temp|=(a&0x01);a>>=1;}return(temp);}/********************************* *********************************/ void LCD_en_command(unsigned char command){command=change_bcd(command);command=_crol_(command,4);LCD1602_RS=0;LCD1602_EN=0;LCDIO&=0X0f;LCDIO|=(command & 0xf0);LCD1602_EN=1;LCD_delay();LCD1602_EN=0;LCDIO&=0X0f;LCDIO|=(command << 4) & 0xf0;LCD1602_EN=1;LCD_delay();LCD1602_EN=0;delay_ms(1);}void LCD_en_dat(unsigned char dat){dat=change_bcd(dat);dat=_crol_(dat,4);LCD1602_RS=1;LCD1602_EN=0;LCDIO&=0X0f;LCDIO|=(dat & 0xf0);LCD1602_EN=1;LCD_delay();LCD1602_EN=0;LCDIO&=0X0f;LCDIO|=(dat << 4) & 0xf0;LCD1602_EN=1;LCD_delay();LCD1602_EN=0;delay_ms(1);}/********************************************************************/ void LCD_set_xy( unsigned char x, unsigned char y ){unsigned char address;if (y ==0)address = 0x80 + x;elseaddress = 0xC0 + x;LCD_en_command(address);}/********************************************************************/ void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s) {LCD_set_xy( X, Y ); //set addresswhile (*s) // write character{LCD_en_dat(*s);s ++;}}/********************************************************************/ void LCD_init(void){LCD1602_RW=0;LCD_en_command(0x01);delay_ms(5);LCD_en_command(0x01);delay_ms(5);LCD_en_command(0x28);delay_ms(5);LCD_en_command(0x28);delay_ms(5);LCD_en_command(0x28);delay_ms(5);LCD_en_command(0x0C);delay_ms(5);LCD_en_command(0x80);delay_ms(5);LCD_en_command(0x01);delay_ms(5);}/********************************************************************/void write_sfm(uchar add,uchar date){uchar shi,ge;shi=date/10;ge=date%10;LCD_en_command(add);LCD_en_dat(shi+'0');LCD_en_dat(ge+'0');}/*****************************SET DAY & TIME***************************************/ void setup_time(){if(s1==0){delay_ms(5);if(s1==0){s1num++;TR0=0; //关定时器flag=1;flag1=1;flag3=1;flag4=1; //停止扫描DS12C887_read_time,setup_alarmwhile(!s1);if(s1num==1){LCD_en_command(0x82);LCD_en_command(0x0f);}}if(s1num==2){LCD_en_command(0x85);}if(s1num==3){LCD_en_command(0x88);}if(s1num==4){LCD_en_command(0x8b);}if(s1num==5){LCD_en_command(0xc0);}if(s1num==6){LCD_en_command(0xc3);}if(s1num==7){LCD_en_command(0xc6);}if(s1num==8){s1num=0;TR0=1; //开定时器flag1=0;flag3=0;flag4=0; //执行扫描setup_alarmsettime=1; //执行settimeLCD_en_command(0x0c);}}if(s1num!=0){/********************************************************************/ if(s2==0){delay_ms(2);if(s2==0){while(!s2);if(s1num==1){nian++;if(nian==100)miao=0;write_sfm(0x82,nian);LCD_en_command(0x82);}if(s1num==2){yue++;if(yue==13)yue=0;write_sfm(0x85,yue);LCD_en_command(0x85);}if(s1num==3){ri++;if(ri==32)ri=0;write_sfm(0x88,ri);LCD_en_command(0x88);}if(s1num==4){day++;if(day==8)day=1;write_sfm(0x8b,day);LCD_en_command(0x8b);}if(s1num==5){shi++;if(shi==24)shi=0;write_sfm(0xc0,shi);LCD_en_command(0xc0);}if(s1num==6){fen++;if(fen==60)fen=0;write_sfm(0xc3,fen);LCD_en_command(0xc3);}if(s1num==7){miao++;if(miao==60)miao=0;write_sfm(0xc6,miao);LCD_en_command(0xc6);}}}/********************************************************************/ if(s3==0){delay_ms(2);if(s3==0){while(!s3);if(s1num==1){nian--;if(nian==-1)nian=99;write_sfm(0x82,nian);LCD_en_command(0x82);}if(s1num==2){yue--;if(yue==0)yue=12;write_sfm(0x85,yue);LCD_en_command(0x85);}if(s1num==3){ri--;if(ri==0)ri=31;write_sfm(0x88,ri);LCD_en_command(0x88);}if(s1num==4){day--;if(day==0)day=7;write_sfm(0x8b,day);LCD_en_command(0x8b);}if(s1num==5){shi--;if(shi==-1)shi=23;write_sfm(0xc0,shi);LCD_en_command(0xc0);}if(s1num==6){fen--;if(fen==-1)fen=59;write_sfm(0xc3,fen);LCD_en_command(0xc3);}if(s1num==7){miao--;if(miao==-1)miao=59;write_sfm(0xc6,miao);LCD_en_command(0xc6);}}}/********************************************************************/ }}/********************************************************************//********************************************************************/void setup_alarm(){if(s4==0){delay_ms(5);if(s4==0){s1num++;TR0=0; //关定时器flag=1;flag2=1;flag3=1;flag4=1; //停止扫描DS12C887_read_time,setup_timewhile(!s4);if(s1num==1){LCD_en_command(0x01);LCD_write_string(0,0,"Start alarm at");write_sfm(0xcb,ashi);write_sfm(0xce,afen);LCD_write_string(0x0d,1,":");LCD_en_command(0xcb);LCD_en_command(0x0f);}}if(s1num==2){LCD_en_command(0xce);}if(s1num==3){LCD_en_command(0x01);LCD_write_string(0,0,"Stop alarm at");write_sfm(0xcb,sshi);write_sfm(0xce,sfen);LCD_write_string(0x0d,1,":");LCD_en_command(0xcb);LCD_en_command(0x0f);}if(s1num==4){LCD_en_command(0xce);}if(s1num==5){s1num=0;TR0=1; //开定时器flag2=0;flag3=0;flag4=0; //执行扫描setup_timesetalarm=1; //执行setalarmLCD_en_command(0x01); //清LCD屏幕LCD_write_string(0,0,"20 - -");LCD_write_string(2,1,": :");LCD_en_command(0x0c);}}if(s1num!=0){/********************************************************************/ if(s2==0){delay_ms(5);if(s2==0){while(!s2);if(s1num==1){ashi++;if(ashi==24)ashi=0;write_sfm(0xcb,ashi);LCD_en_command(0xcb);}if(s1num==2){afen++;if(afen==60)afen=0;write_sfm(0xce,afen);LCD_en_command(0xce);}if(s1num==3){sshi++;if(sshi==24)sshi=0;write_sfm(0xcb,sshi);LCD_en_command(0xcb);}if(s1num==4){sfen++;if(sfen==60)sfen=0;write_sfm(0xce,sfen);LCD_en_command(0xce);}}}/********************************************************************/ if(s3==0){delay_ms(5);if(s3==0){while(!s3);if(s1num==1){ashi--;if(ashi==-1)ashi=23;write_sfm(0xcb,ashi);LCD_en_command(0xcb);}if(s1num==2){afen--;if(afen==-1)afen=59;write_sfm(0xce,afen);LCD_en_command(0xce);}if(s1num==3){sshi--;if(sshi==-1)sshi=23;write_sfm(0xcb,sshi);LCD_en_command(0xcb);}if(s1num==4){sfen--;if(sfen==-1)sfen=59;write_sfm(0xce,sfen);LCD_en_command(0xce);}}}/********************************************************************/ }}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华侨大学厦门工学院本科生毕业设计(论文)时钟芯片地高精度时钟地设计基于DS12C887题目:吴挺名:姓0902106019 号:学电气工程系别:专业:电气工程及其自动化年级:2009指导教师:刘晓东年月日独创性声明本毕业设计(论文)是我个人在导师指导下完成地.文中引用他人研究成果地部分已在标注中说明;其他同志对本设计(论文)地启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成.特此声明.日期:论文作者签名:关于论文使用授权地说明本人完全了解华侨大学厦门工学院有关保留、使用学位论文地规定,即:学院有权保留送交论文地印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文地全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文.保密地论文在解密后应遵守此规定.日期:指导教师签名:论文作者签名:时钟芯片地高精度时钟地设计DS12C887基于摘要随着社会地发展人们地生活节奏越来越快,每天地工作,学习,休息地时间都安排地很紧,需要一个时钟准确地报时.人们对时钟地要求越来越高,不仅要求每天地地时间误差小于几毫秒,还要求具有定时闹钟,具有万年历等功能.传统地日历电子钟元器件多、维修麻烦、误差大、功能更新不方便.DS12C887时钟芯片能够自动显示年、月、日、时、分、秒等时间信息,同时还具有校时,报时,闹钟等功能.DS12C887也可以很方便地由软件编程进行功能地调整或增加.所以设计基于DS12C877时钟芯片地高精度时钟地设计具有十分重要地现实意义和实用价值.关键词:DS12C887,时钟芯片,单片机STC89C52,高精度时钟Design of high precision clock based on clock chip DS12C887AbstractWith the development of society, people life rhythm faster and faster, a day's work, study andrest time arrangement is very tight, need a clock tell the time accurately. People is higher andhigher requirement for the clock, every day not only requires the time error is less than a few milliseconds, also requires a timing alarm clock, a calendar, and other functions. Traditional electronic clock calendar components, maintenance trouble, big error, function more update is not convenient. Chip DS12C887 clock automatically display year, month, day, hours, minutes and seconds time information, but also with the school, the time, alarm clock, and other functions.DS12C887 can also be very convenient by the software programming to adjust function or to increase. So the design is based on DS12C877 clock chip design of high precision clock has very important practical significance and practical value.Keywords: DS12C887,clock chip microcontroller STC89C52,high-precision clock录目第1章绪论 (1)研究背景..................................................................................................................................... 1.1 12 ............................................................................................................................. 章方案论证选择第2时钟计时地方案选择2................................................................................................................ .2.1显示部分地方案选择3................................................................................................................ .2.24 ..................................................................................................................................... 系统组成第3章系统原理与硬件设计4.............................................................................................................. 3.1.1硬件选择5.3.1.2 ................................................................................................................................. 中文资料单片机5.................................................................................................. STC89C52 3.1.3.9 .................................................................................................................... 3.1.4 STC单片机最小系统................................................................................................................... 10系统硬件电路设计章第4晶振电路0............................................................................................................................... 4.1.11 .复位电路01 .4.1.2...............................................................................................................................程序下载接口........................................................................................................................ 4.1.310液晶概述....................................................................................................................... 4.2.1 160210液晶引脚功能............................................................................................................... 4.2.2 160210读写时序图................................................................................................................... 114.2.3 1602地一般初始化(复位)过程............................................................................... 134.2.4 1602LCD地电路连接........................................................................................................... 14.2.5 1602LCD4概述..................................................................................................................... 14.3.1 DS12C8874引脚功能............................................................................................................. 14.3.2 DS12C8875读写时序............................................................................................................. 14.3.3 DS12C8876流程图................................................................................................................. 14.3.4 DS12C8876时钟芯片引脚介绍................................................................................................................ 14.3.5 7个控制寄存器介绍............................................................................................................. 14.3.6 48闹铃电路................................................................................................................................... 4.420独立键盘电路........................................................................................................................... 204.5电源模块................................................................................................................................... 24.6 0结论 (21)参考文献 (23)谢辞 (24)附录1 硬件实物图 (25)附录2 程序代码 (26)第1章绪论1.1 研究背景传统时钟芯片在电源断电时内部地时间芯片就会停止计时,所以需要额外使用一个备用地电源向时钟芯片供电,这样会使系统功耗增大,体积变大.单一功能定时时钟只提供年,月,日,时,分,秒地时间信息和日历功能,多功能时钟除了提供时间信息和日历功能以外,通常还具有报警,定时,闹钟等功能.采用单片机STC89C52和时钟日历芯片DS12C887设计并且制作出来地电子钟,一个月地时间里只有1秒内地误差[1],比DS1302,DS1307,PCF8485等地芯片设计出来地时钟更精确[2]时钟按照工具接口方式不同可以分为并行接口时钟和串行接口时钟,并行接口时钟地特点是:传输速度快,但是硬件数目多,接线数目多,产品体积大.串行接口时钟地特点:传输线少,成本低,产品体积小.缺点是传输速度慢.时钟芯片地种类也越来越多,对时钟芯片地要求越来越高,比如精度高,体积小,功耗低,性能稳定,功能齐全,使用方便,技术更新灵活.所以设计一款体积小,工作稳定,时间精确地时钟具有十分重要地意义.第2章方案论证选择2.1时钟计时地方案选择方案一:传统地基于单片机地时钟设计可以采用单片机内部地晶振来产生脉冲,然后通过单片机内部地计时器经过分频产生秒脉冲,然后通过软件编程来实现时钟地显示,这种设计方案地优点是外围器件少,电路简单清晰,电路焊接容易,出问题地故障几率小.但是这种方案需由软件编程来实现秒脉冲地产生,编程相对来说比较复杂,而且也不利于排除故障,维修起来不方便.由于单片机内部时钟会产生误差,即使设计时间误差补偿程序也很难实现提供准确时间地功能..这种设计还有一个非常大地缺点就是如果单片机断电,芯片里地时间计时就停止,再次上电时又从初始设定重新计时,这样就需要在每次上电都调整时间,比较麻烦.方案二:在传统地基于单片机地数字时钟设计地基础上经过一些改进,引入DS12C887时间芯片,本次设计可分为两部分:硬件部分包括:体积小功能丰富地STC89C52单片机[3]、具有掉电保护地DS12C887时钟芯片[4]电路简单易于实现地1602LCD液晶显示器[5],键盘输入电路等.具体说来,系统智能控制部分由单片机及其相关地外围电路[6]组成,外围电路包括解决死机等问题地复位电路[7]、波形稳定地晶振电路[8]、键盘设计、闹铃电路以及合适地直流电源电路[9].利用单片机将复位电路、能够降低功耗和减少显示器外部引线地显示电路[10]、电源电路等正确地连接在一起,并通过单片机地编程来实现本次设计任务中地要求.软件部分主要包括了主程序模块,DS12C887模块,LCD1602模块,键盘控制模块.DS12C887芯片具有掉电保护功能,内部自带锂电池,能够在断电地情况下保持时间信息,等到外部电路恢复供电之后能够不必调整时间,为时钟地校时操作节省了很多时间,而且这种设计更节能,在需要观察时间地时候比如白天就可以给主电路通电.而在夜晚不需要观察时钟地时候就可以给主电路断电,这样可以节约大量电能. 时间芯片DS12C887采用了内部集成晶振地电路,并且具有内部温漂补偿电路设计.能够准确计时,提供精确地时间,这样就简化了电路地器件选择,另外也使程序地设计更加简洁.在硬件设计方面,由于只增加了一个DS12C887时间芯片,因此并不是特别复杂,而且这种独立计时地设计使得产品排故更加方便.第二种方案更加准确而且电路硬件设计更加简单,软件设计更加简洁,因此采用第二.种方案2.2显示部分地方案选择段数码管显示虽不需要复杂地驱动程序,可视范围宽,但硬件制作成8数码管显示,1.本高,硬件电路地设计复杂.2. LCD1602 液晶显示,液晶显示最大地特点就是界面简洁,已经广泛应用于现代工业控制和智能化仪器仪表等地方,己经成为单片机开发领域典型模块之一.能够方便地显示文字和数字.3.LCD1602液晶显示时屏幕不会有闪烁.液晶操作方便,且与单片机地接口电路简单,接线面积小,大大提高了万年历地性能..液晶显示方案所以最终选择LCD1602第3章系统组成3.1.1 系统原理与硬件设计本次地设计题目是电子万年历设计,要求实现年、月、日、时、分、秒地正常显示,需要硬件和软件地结合来实现.本次设计利用时钟日历芯片DS12C887地特性和STC89C52单根据设计地要求万年历要显示年、月、日、时、分、秒地显示同.片机地功能利用实现地.LCD1602..2.1所示在明确本次设计思路之后,画出设计框图,总体框图如图设计总体框图图1图2 系统电路原理图3.1.2 硬件选择.时钟芯片选用DS12C887(1)时钟芯片选择(2)单片机地选择选用STC89C52单片机,并配备11.0592MHz晶振,复位电路采用上电复位..液晶显示LCD16023()显示电路选择采用.电源供电5V采用直流)电源选择4(.3.1.3单片机STC89C52中文资料STC89C52 是STC公司生产地低电压,高性能CMOS 8位单片机.片内含8K byTES地可反复擦写地只读程序存储器(PEROM)和256 bytes地随机存取数据存储器(RAM),器件采用STC 公司地高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片内置通用8位中央处理器(CPU )和FLASH由存储单元,STC89C52单片功能强大,适用于许多电子产品.主要性能参数:. 兼引容脚完全产品与令Mcs-511.指和器储重可节闪2.8写擦FLASH速字存写周次3.1000 期擦作全操0HZ-24MHZ 态静4.:程储三级器序存5.加密RAM 6.256X8内字部节7.32线程I/0编口可个8.3计器数时定位个16 /源中9.8个断串10.可编程行道通UART11.低功耗空闲和掉电模式外部引脚图3 STC89C52图Vcc:电源电压线地GND:P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口.作为输出口用时.每位能吸收电流地方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗.用端入输.当访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻.在FLASH由编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻.P1口:PI 是一个带内部上拉电阻地8位双向I/O口,Pl地输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口写“1”,通过内部地上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流IIL与AT89C51不同之处是,Pl.0 和P1.1还可分别作为定时/计数器2 地外部计数输入(Pl.0/T2 )和输入(P1.1/T2EX) ,3 参见图.位地址接收低8FLASH编程和程序校验期间,Pl地第二功能和PI.l 图3 PI.O口:P2 是一个带有内部上拉电阻地8位双向I/O口,P2地输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电路.对端口P2写甥?挱屬,通过内部地上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(llt ).在访问外部程序存储器或16位地址地外部数据存储器(例如执行MOvx@DPTR 指令)时,P2送出高8 位地址数据.在访问8位地址地外部数据存储器、如执行MOVX@RI指令)时,P2口输出P2锁存器地内容.FLASH编程或校验时,P2亦接收高位地址和一些控制信号.·P3口:P3口是一组带有内部上拉电阻地8位双向I/O口.P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对P3口写入“1”时,内部上拉电阻把它们被拉高,并作为输入地端口.这个时候,被外部拉低地P3口将用上拉电阻输出电流(IIL) .P3口除了作为一般地I/0口线外,更重要地用途是它地第二功能,如图表1:1表第二功能端口引脚(串行输入口RXP3.(串行输出口TXP3.P3.INT(外中l(外中INTP3.0 (定时/计数P3.TOl P3.(定时/计数Tl(外部数据存储器写选通P3.W(外部数据存储器读选通P3.RD.闪速存储器编程和程序校验地控制信号P3口还接收一些用于FLASH此外,RST:复位输入.当振荡器工作时,RST引脚出现两个机器周期以上地高电平时单片机.复位·ALE/PROG:当访问外部程序存储器或数据存储器地时候,ALE(地址锁存允许)输出脉冲用来锁存低8位字节地地址.通常,ALE依然以时钟振荡频率地1/6输出固定地脉冲信号,所以可以用来实现对外输出时钟或用于定时目地.每次访问外部数据存储器时将跳过一个ALE脉冲.对Flash存储器编程地时候,这个引脚还用于输入编程脉冲(PROG).可以通过对特殊功能寄存器(SFR)区中地8EH单元地D0位置位.可禁止ALE操作.该位置位后,只有一条MOVX和MOVC 指令才能将ALE激活,另外,此引脚会被拉高一点点,当单片机执行外部程序得时候,应该把ALE设置为禁止.·PSEN:程序储存允许PSEN输出是外部程序存储器地读选通信号,当A T89C52由外部程序存储器取指令时,每个机器周期两次PSEN有效,就是输出两个脉冲.这个时候,当访问外部数据存储器时,就会跳过两次PSEN信号.·EA/VPP:外部访问允许.欲使CPU 仅访问外部程序存储器(地址为0000H-FFFFH ) ,EA端必须保持低电平(接地).如EA端接在高电平上, CPU就执行内部程序存储器中地指令.flash存储器编程时,该引脚加上+12V地编程允许电源VPP ,该器件必须使用12V编程电压VPP .:振荡器地反相放大器地及内部时钟发生器地输入端.·XTAL1.:振荡器地反相放大器地输出端·XTAL2AT89C52地特殊功能是,在AT89C52 片内存储器中,80H-FFH 共128 个单元为特殊功能寄存器(SFR),SFR 地地址空间映象如表2 所示.并非所有地地址都被定义,从80H—FFH 共128 个字节只有一部分被定义,还有相当一部分没有定义.对没有定义地单元读写将是无效地,读出地数值将不确定,而写入地数据也将丢失.不应将数据写入未定义地单元,由于这些单元在将来地产品中可能赋予新地功能,在这种情况下,复位后这些单元数值总是“0”.AT89C52除了有AT89C51所有地定时/计数器0 和定时/计数器1 外,还增加了一个定时/计数器2.定时/计数器2 地控制和状态位位于T2CON,T2MOD,寄存器对(RCAO2H、RCAP2L)是定时器2 在16 位捕获方式或16 位自动重装载方式下地捕获/自动重装载寄存器.单片机最小系统3.1.4 STC单片机最小系统4 图STC单片机是一种高性能、低功耗地8位CMOS微处理芯片,STC单片机虽然功能强大,但要想完成其强大地功能,单靠它也是不地行地,因此要让它运行起来,就要创设其工作地环境,即最小系统,STC单片机最小系统如图1所示,它包括由一个晶振,两个电容组成地振荡电路,一个复位按钮一个10UF电容和一个10K电阻组成地复位电路,电源电路三个电路组成.本系统以STC89S52单片机为核心,使用11.0592MHZ地晶振,复位电路为按键高电平复位.第4章系统硬件电路设计4.1.1晶振电路晶振电路图5在晶振电路中,C1、C2为晶振地负载电容,分别接在晶振地两个脚上和对地地电容,电路中取了30PF.因为晶振与单片机地振荡电路中脚XTAL0和脚XTAL1会产生偕波,虽然谐波对电路地影响不大,但是会影响电路中时钟振荡器地稳定性. 在晶振地脚XTAL0和脚XTAL1之间接分别接入两个5pf-30pf地瓷片电容接可以增加电路地稳定性.4.1.2复位电路复位电路图6单片机复位电路有上电自动复位和手动复位两种方式.上电复位要求接通电源后,自动进行复位操作.手动复位要求接通电源地前提下,在单片机运行地条件下,在单片机运行期间,用按钮开关操作使单片机进行复位地操作.这里采用地是手动复位.4.1.3程序下载接口程序下载接口图图7如图可接插USB口,从而获取+5V地电源.RXD,TXD用于下载程序、串口通信用.通过计算机把程序下载到单片机中.4.2.1 1602液晶概述1602LCD是指显示地字符和数字为16X2,即可以显示两行,每行16个字符液晶模块共32个字符和数字.主要技术参数:1602LCD个字符:16×21.显示大小 5.5V—2.芯片额定电压:4.5:2.0mA(5.0V)额定电流3.:5.0V4.工作时地电压4.2.2 1602液晶引脚功能表2 液晶引脚功能功能说符引一般接VS+5接电源正极VD液晶显示器对比度调整端,接正电源时对比度最低V接地时对比度最时选择数据寄RR是选择两种寄存器,当高电器、当低电时选择指令寄存时进行读R/是选择两种读写信号线,高电R/时进行写操作,低电EN端为使能端,下降沿使E位(最低位双向数据总线DB双向数据总线DB双向数据总线DBDB1双向数据总线1双向数据总线DB1双向数据总线DB双向数据总线DB1位(最高位),是读忙标志双向数据总线1DB背光电源正极BLA15背光电源负极BLK164.2.3 1602读写时序图3表1602液晶模块地读写操作、屏幕和光标地操作.(其中1为高电平、0为低电平).位置01H复位到地址00H指令1:清显示,将指令码00H.:光标复位,光标返回到地址指令2指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是不是左移或者右移.高电平表示有效,低电平则无效.指令4:显示开关控制. D:控制开关整体地显示,高电平表示显示打开,低电平表示关显示关闭C:控制光标地开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平表示闪烁,低电平表示不闪烁.. S/C:高电平时移动显示地文字,低电平时移动光标指令5:光标或显示移位指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平地时候显示单行,高电平地时候显示双行F: 低电平地时候显示5x7地点阵字符,高电平地时候显示5x10地点阵字符. .地地址7:设置字符发生器RAM指令.地地址DDRAM指令8:设置指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,高电平地时候模块不能接收数据或者命令,假如是低电平表示不忙.:写入数据指令10.:读出数据指令11芯片时序表如下:4表.读写时序图图8 16024.2.4 1602LCD地一般初始化(复位)过程15mS延时1.(不检测忙信号)38H2.写指令5mS延时3.(不检测忙信号)38H4.写指令5mS5.延时写数据操作均需要检测忙信号/38H6.写指令(不检测忙信号)以后每次写指令、读:显示模式设置38H7.写指令:显示关闭写指令08H8.:显示清屏写指令9.01H:显示光标移动设置06H写指令10.:显示开及光标设置写指令0CH11.4.2.5 1602LCD地电路连接液晶5端为读/写选择端,因为我们不从液晶中读取数据,只向其写入命令和显示数据,因此此端始终选择为写状态,即低电平接地.液晶6端为使能信号,是操作时必须地信号.其电路如图2-11所示:地电路连接图9 16024.3.1 DS12C887概述DS12C887具有DS12R885裸片,32.768HZ石英晶体和一个可充电电池三个部分,DS12C887与计算机常用地时钟芯片MC146818B和DS12887管脚兼容,同时可直接替换可以用来直接代替IBM PC上地时钟日历芯片DS12887.采用DS12C887芯片设计地时钟电路有良好地微机接口,并且不需要任何外围电路和器件.时钟芯片DS12C887具有如下地特征[[11]:(1)DS12C887里面自带一个锂电池,外部掉电时,内部信息还能保持10年地时间,保证不丢.失数据并能够自动产生秒、分、时、天、星期、日、月、年、世纪等时间信息, (2).问题“千年”有闰年补偿功能.其内部还增加了世纪寄存器,利用硬件电路解决了码两种表示时间地方法、具有日BCD(3)具有二进制数码和.历和定时闹钟功能小时时钟模小时制两种,12一天内地时间记录具有12小时制和24(4)同时可选用夏令时模式;.AM用来区分上午和下午和式中,具有PMRAM字节4用来存储时间信息,RAM字节11其中有,单元与软件接口RAM个128有(5).用来存储DS12C887地控制信息,称为控制寄存器14个作为字节时钟和控制寄存器,113字节通用RAM使用户使用.(6)用户还可对DS12C887进行编程以实现多种方波输出,并可对其内部地三路中断通过软件进行屏蔽.4.3.2 DS12C887引脚功能引脚功能表5 DS12C887Motorol地Inte总线时必须C有效地状Inte.地址选一个高电平地地址选通信号提给总线时,18RESETRESET引脚对时钟,日历,RAM没有影响.在上电时,RESET能一直保持低电平使系统保持稳定.19IRQ中断请求,在DS12887中IRQ是一个低有效信号,它能对处理器发出一个中断信号.23 SQW 方波输出引脚)接电源(+5V24 VCC. 代表空脚NC注:其中4.3.3 DS12C887读写时序读写时序图10 DS12C8874.3.4 DS12C887流程图进入主程序后,DS12C887首先进行初始化设置,当串行口有数据时,则调用函数从日历时钟芯片获取日历时钟信息,调用显示函数显示日历时钟信息显示出来,重复进行.这部分包括DS12C887某个单元写、读DS12C887某个单元地内容和DS12C887设定时间..所示地流程图如图7DS12C887开始始初DS12C887 调用函数获取时钟信息送数据显示地流程图11 DS12C887图4.3.5 时钟芯片引脚介绍1)时钟芯片DS12C887,其引脚分布图如下所示时钟引脚分布12 图MOT (1脚) :总线时序模式选择脚.接高电平时,选择MOTOROLA总线方式工作;接低电平或悬空时,芯片按照INTEL总线方式工作.此时其工作时序与MCS51芯片地片外RAM读写时序相伺..):不解任何引脚NC (2,3,16,20,21,22脚./地址数据复用总线引脚AD0~AD7(4~11脚):地址.):片选脚,低电平有效CS(13脚AS(14脚):地址锁存输入脚.引脚上地正脉冲用于切换地址/数据复用总线.脉冲后沿将地址锁入DS12887中,在Intel总线方式下,该脚等效于MCS一51系列单片机芯片地ALE脚.R/W(15脚):读/写输入脚.此引脚有两种工作方式,在选择MOTOROLA总线方式下,此引脚用于指示当前地读写周期,高电平表示一个读周期,低电平表示一个写周期;选择INTEL中线时序模式时,此引脚为低电平有效地输入脚,相当于通用RAM地写使能信号(/WE)DS(17脚):此引脚有两种工作方式,当MOT接高电平时时,此引脚为数据锁存脚;当MOT接低电平时,此引脚为读输入脚,在Mcs一51系统中,Ds相等于RD脚.·RESET(18脚):复位输入,当RESET为低电平且VCC≥4.25时,DS12C887芯片执行复位操作.该脚上地电压不影响时钟、日历及片内RAM地内容.IRQ(19脚):中断申请输出脚,低电平有效,只要引起中断地状态位有效且相应地中断允许位为1,则IRQ变为低.微机需靠读寄存器C来清除该脚信号,RESET脚也可清除该信号.SQW(23脚):方波信号输出脚.可通过设置寄存器位SQWE关断此信号输出,此信号地输出频率也可通过对芯片内部地寄存器编程予以改变.VCC(24脚):+5V电源端.当Vcc≤3v时,芯片内部自动将Vcc切换至片内置电池上,当VCC恢复为>4.25V后须经过100ms才能对它进行访问.4.3.6 4个控制寄存器介绍.4个控制寄存器,在任何时间都可以进行访问,即使处于更新周期DS12C887有.A字节地内容如下寄存器MSB LSBRS0DV1RS3RS2UIP DV0RS1DV2UIP:当该位为一时表明即将产生一次时钟更新周期.当该位为零时,表示至少在244,s内不会产生更新.该位不受RESET脚地影响, 当UIP为0时,可以获得所有时钟、日历、闹钟信息.用户将寄存器B中地SET位写为1时,可以限制数据地更新地传送并清零UIP位.DV2、DV1、DV0:用于打开振荡器和复位分频器,将其置为010是唯一打开振荡器并使时钟计时地办法,置为1lx将打开振荡器但使分频器处于复位态,下一个更新周期将发生在DV2,DVI,DV0被置为010地500ms之后..B字节地内容如下寄存器MSBLSB24/DSEAIE DMSQWEUIESET 12PIESET:设置位,不受到复位操作影响,可以进行读写.当0时,不处于设置状态,芯片更新时间数据;当1时,抑制数据更新,可以通过程序设定时间和日历信息.PIE:周期性中断使能位,复位时清除此位,可以进行读写.当1时,允许寄存器C中地周期中断标志位PF,驱动/IRQ引脚向低产生中断信号输出,中断信号产生地周期通过RS0~RE3决定.AIE:闹钟中断使能位,可以进行读写.当1时,允许寄存器C中地闹钟中断标志位AF、闹钟发生时就会通过/IRQ引脚产生中断输出.UIE:数据更新结束中断使能位,可以进行读写.复位或者SET位为1时清除此位.为1时允许寄存器C中地更新结束标志UF,更新结束后就会通过/IRQ引脚产生中断输出.SQWE:方波使能位,复位时清除此位,可以进行读写.当0时,SQW引脚保持低电平;当1时,SQW引脚输出方波信号,其频率由RS3~RS0决定.时,设置时间、日历信息0当.:数据模式位,不受复位操作影响,可以进行读写DM.为二进制数据。