基于ds1302的多功能实时数字钟控制内容摘要:

晶振输入 3 X2 晶振输出 4 GND 地 5 RST 控制移位寄存器 /复位 6 I/O 数据输入 /输出 7 SCLK 串行时钟 8 VCC2 主电源输入 DS1302 读写和控制说明 DS1302 的数据读写方式有两种,一种是单字节操作方式,一种是多字节操作方式。 每次仅写入或读出一个字节数据称为单字节操作,每次对时钟 /日历的 8字节或 31 字节 RAM 进行全体写入或读出的操作,称其为多字节操作方式。 当以多字节方式写时钟寄存器时,必须按数据传送的次序依次写入 8 个寄存器。 但基于 DS1302 的多功能实时数字钟控制 第 5 页 是,当以多字节方式写 RAM 时,不必写所有 31 字节。 不管是否写了全部 31 字节,所写的每一个字节都将传送至 RAM。 为了启动数据的传输, CE 引脚信号应由低变高,当把 CE 驱动至逻辑 1 的状态时, SCLK 必须为逻辑 0,数据在 SCLK 的上升沿串行输入。 无论是读周期还是写周期,也无论送方式是单字节传送还是多字节传送,都要通过控制字指定 40字节中的哪个将被访问。 在开始 8 个时钟周期把命令字(具有地址和控制信息的8 位数据)装入移位寄存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据,所有的数据在时钟的下降沿变化。 所有写入或读出操作都是先向芯片发送一个命令字节。 对于单字节操作,包括命令字节在内,每次为 2 个字节,需要 16 个时钟 ;对于时钟 /日历多字节模式操作,每次为 7 个字节,需要 72 个时钟;而对于 RAM 多字节模式操作,每次则为 32 字节,需要多达 256 个时钟 [3]。 显示模块的选择和说明 本实验中要显示的信息比较多,选择数码管显示的话需要的数码管数量将会很多,将是线路复杂, PCB 布线混乱,因此选择 LCD1602 作为显示模块。 LCD1602 引脚定义 表 2 LCD1602 引脚功能 引脚编号 引脚符号 功能规格 1 VSS(输入 ) 接地, 0V 2 Vdd(输入 ) 接电源, 5V177。 5% 3 V0(输入 ) 反视度调整,使用可变电阻调节,可改变对比度 4 RS(输入 ) 寄存器选择。 1:选择资料寄存器, 0:选择指令寄存器 5 WR/ (输入 ) 读写选择 ,1:读; 0:写 6 E(输入 ) 使能选择。 1: LCD 可读写。 0: LCD 不可读写 7 DB0 数据端口的第 0 位 8 DB1 数据端口的第 1 位 9 DB2 数据端口的第 2 位 10 DB3 数据端口的第 3 位 11 DB4 数据端口的第 4 位 12 DB5 数据端口的第 5 位 13 DB6 数据端口的第 6 位 14 DB7 数据端口的第 7 位 15 Vdd(输入 ) 背光电源正极, 5V177。 5% 16 VSS(输入 ) 背光电源负极, 0V 指令表 表 3 LCD1602 指令表 基于 DS1302 的多功能实时数字钟控制 第 6 页 指令 RS RW D7 D6 D5 D4 D3 D2 D1 D0 1 清屏 0 0 0 0 0 0 0 0 0 1 2 光标返回 0 0 0 0 0 0 0 0 1 * 3 输入模式 0 0 0 0 0 0 0 1 I/D S 4 显示控制 0 0 0 0 0 0 1 D C B 5 光标 /字符移位 0 0 0 0 0 1 S/C R/L * * 6 功能 0 0 0 0 1 DL N F * * 7 置字符发生器地址 0 0 0 1 字符发生存贮器地址 8 置数据存贮器地址 0 0 1 显示数据存贮器地址 9 读忙标志和地址 0 1 BF 计数器地址 10 写数据到指令 所设地址 1 0 要写的数据 11 从指令 所设的地址读数据 1 1 读出的数据 指令 1:清显示,光标复位到地址 00H 位置。 指令 2:光标复位,光标返回到地址 00H。 指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效。 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 R/L, 高向左 , 低向右。 指令 6:功能设置命令 DL:高电平时为 8 位总线,低电平时为 4 位总线 N:低电平时为单行显示,高电 平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电 平时显示 5x10 的点阵字符。 (有些模块是 DL:高电平时为 8 位总线,低电平时为 4 位总线) 指令 7:字符发生器 RAM 地址设置,地址:字符地址 *8+字符行数。 (将一个字符分成 5*8 点阵,一次写入一行, 8 行就组成一个字符 ) 指令 8:置显示地址,第一行为: 80H—— 8FH,第二行为: C0H—— CFH。 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令 10:写数据。 基于 DS1302 的多功能实时数字钟控制 第 7 页 指令 11:读数据。 [4] 最终选择方案 经过方案比较和论证,选择 STC89C52 作为主控芯片,时钟芯片选择 DS1302,显示模块用 LCD1602,用四个独立式键盘。 最后选择的方案如下图所示: 图 3 系统框图 3 系统硬件设计及实现 该设计的硬件电路由主控部分 (单片机 STC89C52)、计时部分(实时时钟芯片 DS1302)、显示部分( LCE1602)、按键部分(独立式键盘)、音响部分(直流蜂鸣器) 5 个部分组成。 各部分之间相互协作,构成一个统一的有机整体,实现数字时钟的功能。 各部分的硬件电路设计如下: 单片机外围电路设计 单片机 STC89C52 作为主控芯片,控制整 个电路的运行。 单片机外围需要一个复位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。 为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分 合过程中引起的抖动而影响复位。 该设计采用含有二极管的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。 复位电路的设计图如图 4 示: 基于 DS1302 的多功能实时数字钟控制 第 8 页 图 4 复位电路设计图 DS1302 与单片机的接口设计 时钟芯片 DS1302 与单片机 STC89C52 的接口是由 3 条线来完。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。