基于ds12c887时钟芯片的高精度时钟的设计(编辑修改稿)内容摘要:

9 读忙标志或地址 0 1 BF 计数器地址 10 写数到 CGRAM 或 DDRAM) 1 0 要写的数据内容 11 从 CGRAM 或 DDRAM 读数 1 1 读出的数据内容 表 3 字符控制命令说明: 通过指令编程来实现 1602 液晶模块的读写操作、屏幕和光标的操作。 (其中 1 为高电平、 0 为低电平) 指令 1:清显示,将指令码 01H 复位到地址 00H 位置。 指令 2:光标复位,光标返回到地址 00H。 指令 3: 光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是不是左移或者右移。 高电平表示有效,低电平则无效。 指令 4:显示开关控制。 D:控制开关整体的显示,高电平表示显示打开,低电平表示关显示关闭 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平表示闪烁,低电平表示不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平的时候显示单行, 高电平的时候显示双行 F: 低电平的时候显示 5x7 的点阵字符,高电平的时候显示 5x10 的点阵字符。 指令 7:设置字符发生器 RAM 的地址。 指令 8:设置 DDRAM 的地址。 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,高电平的时候模块不能接收数据或者命令,假如是低电平表示不忙。 指令 10:写入数据。 指令 11:读出数据。 华侨大学厦门工学院 毕业设计 (论文 ) 14 芯片时序表如下: 表 4 读状态 输入 RS=L, R/W=H, E=H 输出 D0— D7=状态字 写指令 输入 RS=L, R/W=L, D0— D7=指令码, E=高脉冲 输出 无 读 数据 输入 RS=H, R/W=H, E=H 输出 D0— D7=数据 写数据 输入 RS=H, R/W=L, D0— D7=数据, E=高脉冲 输出 无 图 8 1602 读写时序图 1602LCD 的一般初始化(复位)过程 15mS 38H(不检测忙信号) 5mS 38H(不检测忙信号) 5mS 38H(不检测忙信号)以后每次写指令、读 /写数据操作均需要检测忙信号 38H:显示模式设置 08H:显示关闭 01H:显示 清屏 06H:显示光标移动设置 基于 DS12C887时钟芯片的高精度时钟的设计 15 0CH:显示开及光标设置 1602LCD 的电路连接 液晶 5端为读 /写选择端,因为我们不从液晶中读取数据,只向其写入命令和显示数据,因此此端始终选择为写状态,即低电平接地。 液晶 6端为使能信号,是操作时必须的信号。 其电路如图 211所示: 图 9 1602 的电路连接 DS12C887 概述 DS12C887 具有 DS12R885 裸片, 石英晶体和一个可充电电池三个部分, DS12C887 与计算机常用的时钟芯片 MC146818B 和 DS12887 管脚兼容,同时可直接替换 可以用来直接代替 IBM PC 上的时钟日历芯片 DS12887。 采用DS12C887 芯片设计的时钟电路有良好的微机接口,并且不需要任何外围电路和器件。 时钟芯片 DS12C887 具有如下的特征 [[11]: (1)DS12C887里面自带一个 锂 电池 ,外部掉电时,内部信息还能保持 10年的时间,保证不丢失数据。 (2)能够自动产生秒、分、时、天、星期、日、月、年、世纪等时间信息 , 并 有闰年补偿功能。 其内部还增加了世纪寄存器,利用硬件电路解决了“千年”问题。 (3)具有二进制 数码和 BCD 码两种表示时间的方法、具有日 历和定时闹钟功能。 (4)一天内的时间记录具有 12 小时制和 24小时制两种 ,12 小时时钟模 式中,具有 PM 和 AM 用来区分上午和下午。 同时可选用夏令时模式; 华侨大学厦门工学院 毕业设计 (论文 ) 16 (5)有 128 个 RAM 单元与软件接口 ,其中有 11 字节 RAM 用来存储时间信息, 4 字节 RAM 用来存储 DS12C887 的控制信息,称为 控制寄存器 14 个作为字节时钟和控制寄存器 , 113 字节 通用 RAM 使用户使用。 (6)用户还可对 DS12C887 进行 编程 以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。 DS12C887 引脚功能 表 5 DS12C887 引脚功能 引脚 符号 功能说明 1 MOT 模式选择引脚 , 接 Vcc时,选择的是 Motorola的总线时序;当接地或悬空,选择的是 Intel总线时序 411 AD0AD7 双向地址 /数据总 线 12 GND 接地 13 CS DS12887 的芯片选 选 通信号 ,必须在 CS 有效的状态下, Motorola 时序中数据或地址才可以选通或 Intel 时序中读写信号才可以有效。 14 AS 地址选通 ,一个高电平的地址选通信号提给总线时,在 AS脉冲的下降沿, DS12887 选通地址。 15 R/W 读写信号,有两种操作模式。 当 MOT 引脚接 Vcc选择 Motorola 时序 ,当 MOT 接地选择的是Intel 时序。 17 DS 数据选通或读出 ,根据模式选择的不同, DS 引脚有两种不同的操作模式。 18 RESET RESET 引脚对时钟,日历, RAM 没有影响。 在上电时, RESET 能一直保持低电平使系统保持稳定。 19 IRQ 中断请求 ,在 DS12887 中 IRQ 是一个低有效信号,它能对处理器发出一个中断信号。 23 SQW 方波输出引脚 24 VCC 接电源( +5V) 注:其中 NC 代表空脚。 基于 DS12C887时钟芯片的高精度时钟的设计 17 DS12C887 读写时序 图 10 DS12C887 读写时序 DS12C887 流程图 进入主程序后, DS12C887 首先进行初始化设置,当串行口有数据时,则调用函数从日历时钟芯片获取日历 时钟信息,调用显示函数显示日历时钟信息显示出来,重复进行。 这部分包括 DS12C887 某个单元写、读 DS12C887 某个单元的内容和 DS12C887 设定时间。 DS12C887 的流程图如图 7所示。 图 11 DS12C887 的流程图 开始 DS12C887 初始化 调用函数获取时钟信息 送数据显示 华侨大学厦门工学院 毕业设计 (论文 ) 18 时钟芯片引脚介绍 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≥ 时, DS12C887 芯片执行复位操作。 该脚上的电压不影响时钟、日历及片内 RAM的内容。 IRQ(19 脚 ):中断申 请输出脚,低电平有效,只要引起中断的状态位有效且相应的中断允许位为 1,则 IRQ 变为低。 微机需靠读寄存器 C 来清除该脚信基于 DS12C887时钟芯片的高精度时钟的设计 19 号 ,RESET 脚也可清除该信号。 SQW( 23 脚):方波信号输出脚。 可通过设置寄存器位 SQWE 关断此信号输出,此信号的输出频率也可通过对芯片内部的寄存器编程予以改变。 VCC( 24脚): +5V电源端。 当 Vcc≤ 3v 时 ,芯片内部自动将 Vcc 切换至片内置电池上 ,当 VCC 恢复为 后须经过 100ms 才能对它进行访问。 4 个控制寄存器介绍 DS12C887 有 4 个控制寄存器,在任何时 间都可以进行访问,即使处于更新周期。 寄存器 A 字节的内容如下。 MSB LSB UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 UIP:当该位为一时表明即将产生一次时钟更新周期。 当该位为零时 ,表示至少在 244,s 内不会产生更新。 该位不受 RESET 脚的影响 , 当 UIP 为 0 时,可以获得所有时钟、日历、闹钟信息。 用户将寄存器 B中的 SET位写为 1时 ,可以限制数据的更新的传送并清零 UIP 位。 DV DV DV0:用于打开振荡器和复位分频器 ,将其置为 010 是唯一打开振荡器并使时钟计时的办法 ,置为 1lx 将打开振荡器但使分频器处于复位态 ,下一个更新周期将发生在 DV2,DVI,DV0 被置为 010 的 500ms 之后。 寄存器 B 字节的内容如下。 MSB LSB SET PIE AIE UIE SQWE DM 24/12 DSE SET:设置位,不受到复位操作影响,可以进行读写。 当 0 时,不处于设置状态,芯片更新时间数据;当 1时,抑制数据更新,可以通过程序设定时间和日历信息。 PIE:周期性中断使能位,复位时清除此位,可以进行读写。 当 1时,允许寄存器 C 中的周期中断标志位 PF,驱动 /IRQ 引脚向低产生中断信号输出,中断信号产生的周期通过 RS0~RE3 决定。 AIE:闹钟中断使能位,可以进行读写。 当 1时,允许寄存器 C 中的闹钟中断标志位 AF、闹钟发生时就会通过 /IRQ 引脚产生中断输出。 华侨大学厦门工学院 毕业设计 (论文 ) 20 UIE:数据更新结束中 断使能位,可以进行读写。 复位或者 SET 位为 1时清除此位。 为 1 时允许寄存器 C 中的更新结束标志 UF,更新结束后就会通过 /IRQ引脚产生中断输出。 SQWE:方波使能位,复位时清除此位,可以进行读写。 当 0 时, SQW 引脚保持低电平;当 1时, SQW 引脚输出方波信号,其频率由 RS3~RS0 决定。 DM:数据模式位,不受复位操作影响,可以进行读写。 当 0时,设置时间、日历信息为二进制数据。 当 1 时,设置为 BCD 码数据。 24/12:时间模式设置为,不受复位操作影响,可以进行读写。 当 0 时,设置为 12 小时模式;当 1 时,设置为 24 小时模式。 DSE:当 1 时,会进行两次特殊时间的更新; 4 月的第一个星期日凌晨 1:59: 59 会直接更新到 3: 00: 00, 10 月的最后一个星期日凌晨 1: 59: 59 会直接更新到 1: 00: 00;为 0时,时间信息正常更新,不受复位操作影响,可以进行读写。 寄存器 C 字节内容如下。 MSB LSB IRQF PF AF UF 0 0 0 0 IQRF:中断申请标志位。 当 1 时, /IRQ 引脚为低,产生中断申请。 当 PF、PIE为 1 时或者 AF、 ATE 为 1 或者 UF、 UIE 为 1时,此位为 1,否则置 0. PF:中期中断标志位。 当 1 时,是只读位,与 PIE 位状态无关,由寄存器C操作或者复位操作清除。 AF:闹钟中断标志位。 当 1时,表示当前时间和闹钟设定时间一至,由复位操作或读寄存器 C操作清。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。