为LCD液晶显示的数据口与控制口,以实现良好的人机交换。P3口的P3.0、P3.1、P3.2作为DS1302时钟芯片的数据交换口,而P3口的另外三个口P3.5、P3.6、P3.7作为输出控制口,控制模拟打铃与灯的开关。
图3-2 系统电路图
3.2时钟模块设计
3.2.1 DS1302时钟芯片
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容(>1F)来替代。需要强调的是,DS1302需要使用32.768KHz的晶振。
1、DS1302引脚图
DS1302引脚如图3-3所示。
图3-3 DS1302芯片引脚图
其引脚功能参照表3-2。
表3-2 DS1302引脚功能说明
引脚号 1 2 3 4 5 6 7 8 名称 VX1 X2 GND RST I/O SCLK VCC2 功能 备份电源输入 32.768KHz晶振输入32.768KHz晶振输出 地 控制移位寄存器/复位 数据输入/输出 串行时钟 主电源输入 2、DS1302 的控制字节说明 DS1302 的控制字如表3-3所示。
表3-3 DS1302控制字(即地址及命令字节)
BIT7 1 BIT6 RAM BIT5 A4 BIT4 A3 BIT 3 A2 BIT 2 A1 BIT 1 A0 BIT 0 RD 控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中位6如果为0,则表示存取日历时钟数据,为1表示存取RAM 数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
3、数据输入输出
在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7,数据读写时序如图3-4所示。
图3-4 DS1302数据读写时序
4、DS1302 的寄存器
DS1302 共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字如表3-4所示。
表3-4 DS1302有关日历、时间的寄存器
读寄 存器 81H 83H 85H 87H 89H 8BH 8DH 8FH 写寄 存器 80H 82H 84H 86H 88H 8AH 8CH 8EH WP 0 BIT7 CH 0 0 0 0 0 0 0 10年 0 0 0 0 0 BIT6 BIT5 10秒 10分 10 AM/PM 10日 10月 0 0 年 0 0 时 BIT4 BIT3 BIT2 BIT1 BIT0 范围 00-59 00-59 1-12 0-23 1-31 1-12 周日 1-7 00-99 — 秒 分 时 日 月 此外DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 3.2.2电路设计
系统时钟应用实时时钟日历芯片DS1302,其连接如图3-5所示。该硬件电路设计简单,抗干扰能力强。同时DS1302芯片计时精确,不受系统电源影响;外接锂电池,提供断电保护。
图3-5 时钟电路
如图3-5所示,STC89C52单片机P3.2直接接DS1302的RST端,上电后,STC89C52的P3.2脚自动输出高电平。P3.1作为串行时钟接口,P3.0作为时钟数据的I/O。DS1302采用双电源供电,平时由+5V电源供电,当+5V掉电之后,由图3-5中B1(+3V备用锂电池)供电。
特别需要注意X1和X2两端连接的晶振Y1,该晶振频率为32.768KHz。
3.3 键盘接口电路设计
根据功能需要,本时钟需要设置以下功能键:时间设置键,手动自动模式设计键,打铃设置键,路灯与教学楼灯点亮设置键,路灯与教学楼灯手动点亮键,手动打铃键,加1操作键,减1操作键。
按照键盘与CPU的连接方式可分为独立式键盘和矩阵式键盘。独立式键盘是各个按键相互独立,每个按键占用一个I/O口线,每根I/O口线上的按键不会影响其他I/O口上按键工作状态。独立式键盘电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口,在按键数量较多时,I/O口线浪费较大,且电路结构复杂。矩阵式键盘适合按键较多时使用。由于本设计的电子钟最多需要7个按键,若采用矩阵式键盘时会有按键浪费,故采用的是独立式键盘。并且对于内置了上拉电阻的I/O引脚来说,外接上拉电阻没有意义。键盘电路如图3-6所示。
图3-6键盘接口原理图
3.4 显示模块设计
3.4.1 LCD1602液晶显示模块
液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶显示器通常可分为两大类:一类是点阵型,另一类是字符型。点阵型液晶通常面积较大,可以显示图形;而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单易控制且成本低。目前市面上的字符型液晶绝大多数是LCD1602。LCD1602液晶是一款很常用,也很易用的字符液晶,可以显示2行每行16个即32个字符,对比度可调,黄绿色背光。其具体引脚图如图3-7所示。
图3-7 LCD1602管脚图
1、管脚功能
字符型 LCD 通常有 14 条引脚线,市面上也有很多 16 条引脚线的 LCD,多出来的2 条线是电源线VCC(15 脚)和地线GND(16 脚),其控制原理与 14 脚的LCD 完全一样,定义如表3-5所示。
表3-5 LCD1602的引脚定义
编号 1 2 3 4 5 6 7 8 符号 VSS VDD VL RS R/W E D0 D1 引脚说明 电源地 电源正极 液晶显示偏压信号 数据/命令选择端(H/L) 读/写选择端(H/L) 使能信号 Data I/O Data I/O 编号 9 10 11 12 13 14 15 16 符号 D2 D3 D4 D5 D6 D7 BLA BLK 引脚说明 Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O 背光源正极 背光源负极 2、1602LCD 控制命令表
1602LCD寄存器选择控制表如表3-6所示。
表3-6寄存器选择控制表
序号 1 2 3 4 5 6 7 8 9 10 指令 清显示 光标返回 置输入模式 显示开/关控制 光标或字符移位 置功能 置字符发生存贮器地址 置数据存贮器地址 读忙标志或地址 写数到CGRAM或DDRAM) RS R/W D7 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 BF D6 0 0 0 0 0 0 1 D5 0 0 0 0 0 1 D4 0 0 0 0 1 DL D3 0 0 0 1 D2 0 0 D1 0 1 D0 1 * S B * * 1 I/D D C * * S/C R/L N F 字符发生存贮器地址 显示数据存贮器地址 计数器地址 要写的数据内容