作息时间系统设计__毕业设计(编辑修改稿)内容摘要:
Vcc1 为可编程后备涓细电流充电电源,附加七个字节存储器。 它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。 下面将主要的性能指标作一综合: (1)实时时钟具有能计算 2100 年之前的秒、分、时、星期、日、月、年的能力,还有闰年调整的能力 (2)31*8 位暂存数据存储 RAM (3)串行 I/O 口方式使得管脚数量最少 (4)宽范围工作电压 ~ (5)工作电流:在低压 时,小于 300nA (6)读 /写时钟或 RAM 数据时,有两种传送方式:单字节传送和多字节传送 (字符组方式 ) (7)8 引脚 DIP 封装或可选的 8 脚 SOIC 封装 (根据表面装配 ) (8)简单串行 SPI 三线接口方式 (9)与 TTL 兼容 (Vcc=5V) (10)可选工业级温度范围 40 oC~+85 oC (11)与 DS1202 兼容 (12)在 DS1202 基础上增加的特性 : ① 对 Vcc1 有可选的涓流充电能力 ② 双电源管 脚 用于主电源和备份电源供应 ③ 备份电源管脚可由电池或大容量电容输入 ④ 附加的 7 字节暂存存储器 [3] 石家庄铁道学院毕业设计 7 DS1302引脚功能与内部结构 DS1302 的引脚排列如图 23 所示,其中 Vcc1 为后备电源, VCC2 为主电源。 在主电源关闭的情况下,也能保持时钟的连续运行。 DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。 当 Vcc2 大于 Vcc1+ 时, Vcc2 给 DS1302 供电 ; 当 Vcc2 小于 Vcc1时, DS1302 由 Vcc1 供电。 X1 和 X2 是振荡源,外接 晶振。 RST 是复位 /片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。 RST 输入有两种功能:首先 , RST 接通控制逻辑,允许地址 /命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。 如果在传送过程中 RST 置为低电平,则会终止此次数据传送, I/O 引脚变为高阻态。 上电运行时,在 Vcc≥ 之前, RST 必须保持低电平。 只有在 SCLK 为低电平时,才能将 RST 置为高电平。 I/O 为串行数据输入 /输出端 (双向 )。 SCLK 始终是输入端。 管脚描述如下 所示: 管脚描述 (1)X1, X2 晶振引脚 (2 脚, 3 脚 ) (2)GND 地 (4 脚 ) (3)RST 复位引脚 (5 脚 ) (4)I/O 数据输入 /输出引脚 (6 脚 ) (5)SCLK 串行时钟 (7 脚 ) (6)Vcc1, Vcc2 电源供电引脚, Vcc1 可接后备电池 (8 脚、 1 脚 ) (7)DS1302 串行时钟芯片, 8 脚 DIP (8)DS1302S 串行时钟芯片, 8 脚 SOIC (200mil) (9)DS1302Z 串行时钟芯片, 8 脚 SOIC (150mil) 石家庄铁道学院毕业设计 8 管脚配置 图 23 DS1302 时钟芯片引脚图 DS1302的控制字 DS1302 的控制字如图 24 所示。 控制字节的最高有效位 (位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中 ; 位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据 ; 位 5 至位 1 指示操作单元的地址 ; 最低有效位 (位 0)如为 0表示要进行写操作,为 1 表示 要 进行读操作 , 控制字节总是从最低位开始输出。 DS1302的数据输入输出 (I/O) 在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0 开始。 同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 到高位 7。 DS1302内部寄存器 DS1302 由控制寄存器和年、月、日、星期、时、分、秒工作寄存器等共 12 个寄1 RAM A4 A3 A2 A1 A0 RAM /CK /K 图 24 DS1302 的控制字 石家庄铁道学院毕业设计 9 存器组成 , 其中有 7 个寄存器与日历、时钟相关,存放的数据 为 BCD 码形式。 其日历、时间寄存器及其控制字见表 22。 表 22 日历、时间寄存器及其控制字 寄存器名称 命令字 取值范围 各位内容 写操作 读操作 7 6 5 4 3 2 1 0 秒寄存器 80H 81H 00~59 CH 10SEC SEC 分寄存器 82H 83H 00~59 0 10MIN MIN 时寄存器 84H 85H 01~12 或 00~23 12/24 0 10 HR HR A/P 日寄存器 86H 87H 01~2 2 31 0 0 10DATE DATE 月寄存器 88H 89H 01~12 0 0 0 10M MONTH 周寄存器 8AH 88H 01~07 0 0 0 0 0 DAY 年 寄存器 8CH 8DH 00~99 10YEAR YEAR 各寄存器的最后一位指明数据的读 /写方式 : 为 “ 0” 时是读状态;为 “ 1” 时是写状态。 各寄存器的地址如图 25 所示。 石家庄铁道学院毕业设计 10 图 25 各寄存器的地址 CH: 时钟停止位 标志 CH=0 振荡器工作允许 CH=1 振荡器停止 WP: 写保护位 WP=0 寄存器数据能够写入 WP=1 寄存器数据不能写入 TCS: 涓流充电选择 TCS=1010 使能涓流充电 石家庄铁道学院毕业设计 11 TCS=其它 禁止涓流充电 寄存器 2 的第 7 位 : 12/24 小时 bit7=1, 12 小时模式 bit7=0, 24 小时模式 寄存器 2 的第 5 位: AM/PM 定义 AP=0 上午模式 AP=1 下午模式 DS:二极管选择位 DS=01 选择一个二极管 DS=10 选择两个二极管 DS=00 或 11,即使 TCS=1010,充电功能也被禁止 此外, DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。 时钟突 发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0H~ FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写 )、 FFH(读 )[4]。 DS1302 实时显示时间的软硬件 DS1302与 CPU的连接 DS1302 与 CPU 的连接仅需要三条线,即 SCLK、 I/O、 RST。 图 26 示出 DS1302与 AT89C2051 的连接图。 石家庄铁道学院毕业设计 12 图 26 DS1302 与 CPU 连接的电路 图 DS1302与单片机的接口软件设计及功能应用举例 单片机对时钟的读 /写过程,实质上就是对 DS1302 各个寄存器的读 /写过程。 在数据传送之前,首先置 /RST 端为高,接着发送一个带有地址和命令信息的 8 位命令字到寄存器,命令字节确定所寻的寄存器是读操作还是写操作。 在一个时钟周期内,在 SCLK 的上升沿时数据输入有效,输出则在 SCLK 的下降沿有效。 如果 /RST 复位端输入为 低电平,则所有数据传送终止, I/O 脚处于高阻状态。 DS1302 的读 /写数据时序如图 27 所示。 简单说明如下: (1)数据输入 : 在输入写命令字节的 8 个 SCLK 周期之后,数据字节在后 8 个 SCLKVcc2 Vcc1 X1 SCLK X2 I/O GND /RST +5V RST 18PF 18PF KHZ SCLK /RST R//W A0 A1 A2 A3 A4 R//C 1 I/O 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 命令字 数据 图 27 DS1302 的读 /写数据时序图 石家庄铁道学院毕业设计 13 周期的上升沿输入,从低位开始输入数据。 (2)数据输出:在输入读命令字节的 8 个 SCLK 周期之后,数据字节在后 8 个 SCLK周期的下降沿输入。 第一个数据位在写命令字节最后一位的第一个下降沿输出。 只要/RST 保持为高,在持续的 SCLK 周期内就继续输出数据,从低位开始输出数据。 下面首先给出基本的接口软件,然 后举例说明各种功能的应用 [5]。 (1)写保护寄存器操作 当写保护寄存器的最高位为 0 时,允许数据写入寄存器,写保护寄存器可以通过命令字节 8EH、 8FH 来规定禁止写入 /读出。 写保护位不能在多字节传送模式下写入。 Write_Enable: MOV Command, 8Eh ;命令字节为 8Eh MOV ByteCnt, 1 ;单字节传送模式 MOV R0, XmtDat ;数据地址覆给 R0 MOV XmtDat, 00h ;数据内容为 0(写入允许 ) ACALL Send_Byte ;调用写入数据子程序 RET ;返回调用本子程序处 当写保护寄存器的最高位为 1 时,禁止数据写入寄存器, Write_Disable: MOV Command, 8Eh ;命令字节为 8E MOV ByteCnt, 1 ;单字节传送模式 MOV R0, XmtDat ;数据地址覆给 R0 MOV XmtDat, 80h ;数据内容为 80h(禁止写入 ) ACALL Send_Byte ;调用写入数据子程序 RET ;返回调用本子程序处 以上程序调用了基本数据发送 (Send_Byte)模块及一些内存单元定义。 其源程序清单在附录中给出。 下面的程序亦使用了这个模块。 (2)时钟停止位操作 当把秒寄存器的第 7 位 (时钟停止位 )设置为 0 时,起动时钟开始。 Osc_Enable: MOV Command, 80h ;命令字节为 80 MOV ByteCnt, 1 ;单字节传送模式 MOV R0, XmtDat ;数据地址覆给 R0 MOV XmtDat, 00h ;数据内容为 0(振荡器工作允许 ) ACALL Send_Byte ;调用写入数据子程序 石家庄铁道学院毕业设计 14 RET ;返回调用本子程序处 当把秒寄存器的第 7 位 (时钟停止位 )设置为 1 时,时钟振荡器停止, DS1302 进入低功耗方式。 Osc_Disable: MOV Command, 80h ;命令字节 为 80 MOV ByteCnt, 1 ;单字节传送模式 MOV R0, XmtDat ;数据地址覆给 R0 MOV XmtDat, 80h ;数据内容为 80h(振荡器停止 ) ACALL Send_Byte ;调用写入数据子程序 RET ;返回调用本子程序处 (3)单字节传送方式 例如:写入 8 时 (12 小时模式 ),程序设置如下: Write_Singlebyte: MOV Command, 84h ;命令字节为 84h MOV ByteCnt, 1 ;单字节传送模式 MOV R0, XmtDat ;数据地址覆给 R0 MOV XmtDat, 88h ;。作息时间系统设计__毕业设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。