文中是以Versa 8051系列MCU的典型器件VRS51L3074和时钟日历芯片DSl2887为核心制作的可多定点电子日历时钟。该系统功能齐全,可存储多个闹点,采用液晶显示器件LCD以清晰完美的视觉效果显示出时间、日历等各种信息,有操作简单、工作稳定、功耗低、使用方便等特点。
1 方案论述
VRS51L307是美国Ramtron公司最新推出的8 kBFRAM铁电存储器的8051单片机。该单片机将外围功能模块和40 MI/s(兆指令/秒)单周期8051内核集成在一起,工作电压3.0~3.6 V,有精确的内部振荡器。
本系统采用VRS51L3074单片机作为控制核心,使用单片集成的即时时钟芯片DSl2887来实现时钟功能,显示系统采用液晶模块LCD显示时间、日历及闹铃等提示信息,有着智能化的人机界面。用此方案设计的电路图简单,不需要驱动电路,用并行口的数据线便可以实现时间、日历以及闹钟的显示。 VRS51L3074有成熟的闪存技术,本身自带有看门狗定时器电路,这样在单片机死机或遇到程序故障时系统能够自动复位,看门狗定时器由一个14位预分频器构成,以系统时钟或者是系统时钟的分频信号作为其计数源,当看门狗溢出时将使系统复位。系统时钟频率可动态调节,有集成省电、上电复位/掉电检测等功能。
2 系统基本原理
用VRS51L3074控制功能将即时时钟DSl2887的年、月、日、星期、时、分、秒等信息并行输入LCD液晶显示器上,时间和日历还有闹钟的调整则通过键盘的控制功能将各种调整信息反映到单片机中,并通过单片机的并口将各种时间、日历和闹钟信息输入给LCD液晶显示器,从而实现整个设计的控制功能。
本系统对外围器件的访问都是通过I/O方式,其中单片机的P1口与键盘连接,P0口的8个端口用作单片机的数据线分别与显示器和即时时钟相连,P60和 P27分别用作控制端,用来控制单片机与LCD显示器以及单片机与即时时钟之间的数据传输;本系统中,由于采用LCD显示屏作为显示系统,因而用键盘作为控制系统对于便携式的日历钟来说,有利于操作和控制。在本设计中,各功能键的控制通过软件编程的方法来实现,这样利用键盘的不同功能键就可以实现对闹钟、时钟和日历的调整控制。整个设计的系统图,如图1所示。
3 系统硬件设计
硬件系统由单片机及其键盘电路、时钟系统、闹点报警功能和LCD显示部分组成。整个系统的电路设计以单片机VRS51L3074和时钟芯片DSl2887的设计为核心,外加液晶显示器OCM160128-I(内置T6963C控制器),蜂鸣器以及键盘。
采用VRS51L3074单片机作为控制核心对时钟芯片DSl2887进行控制,读取时间,提取数据,对输入信号进行处理,最后通过LCD显示各种时间、日历及闹钟信息,从而实现整个设计的控制功能。系统主控电路如图2所示。VRS51L3074片内自带40 MHz振荡器,可无需外部晶振为系统提供时钟信号。通过对时钟主电路之间预分频器的配置可灵活设置系统时钟以满足不同应用的需要。系统时钟源选择及分频比设置由特殊功能寄存器DEVCLKCFGl和DEVCLKCFG2控制。
3.1 单片机与DSl2887时钟芯片的接口设计界面
单片机与DSl2887时钟芯片的接口界面如图3所示。两者之间要实现同步通信,就需要用到6个口线:(1)复位/RESET。(2)I/O数据线。(3)片选信号线/CS。(4)数据激发或读取线DS。(5)读取/写入,输入线R/W。(6)地址激发输入线AS。
在以上6个口线中,DS、R/W都有两种操作模式。本设计采用Intel总线时序,故MOT脚接地。在这种模式下,DS(数据激发或读取)脚称为/RD 脚。AD0~AD7是多工双向的地址/数据总线。在总线周期的第一段时间呈现的是地址,同样的IC脚和信号路径,在第二段时间当成数据使用。因总线从地址到数据的改变是发生在内部SRAM的存取时间,所以地址/数据作成多工形态并不会使DSl2887的存取时间变慢。片选信号线/CS选择输入为LOW时,即可对DSl2887进行存取,在总线周期即使没有使能/CS脚,也同样会锁存住地址但没有存取的动作发生。当Vcc< 4.25 V时,DSl2887会除能/CS脚,禁止存取动作,此功能会保护在电源消失期间的即时时钟和SRAM里的数据。地址激发输入AS送一个正向地址激发脉冲到输入脚,然后在AS/ALE的下降边缘使得地址栓在DSl2887内。在下一个时钟下降沿,地址激发输入将清除,而不管片选端/ CS是否置位。接入命令必须成对发送。/RESET脚的信号对于时钟、日历或SRAM都没有影响。在电源上升时,RESET脚应该维持在LOW一段时间,以便允许电源电压稳定下来,/RESET脚维持在LOW的时间视应用而定。
3.2 单片机与LCD显示屏的接口电路
此电路中,液晶显示器数据口D0~D7与单片机的P00~P07并行相连。如图4所示。/RD、/WR读、写选通端与单片机的/RD、/WR相连,低电平有效,为输入信号。/CE为T6963C的片选信号,低电平有效。C/D通道选择信号,1为指令通道,O为数据通道。
3.3 闹点报警功能设计
蜂鸣器报警电路如图5所示。当时钟到指定闹点时,DSl2887控制/状态寄存器2中的AF被置1,同时ALE引脚产生一个中断(低电平有效),由于 ALE接至单片机的ALE脚,所以引发中断程序。DSl2887的SQW输出1Hz的脉冲,由于数据信息接至单片机的P00~P07脚,所以P20脚输出 1 Hz的脉冲,使得蜂鸣器间断性地发出鸣声。当复位脚为低并且Vcc>4.25 V时,闹钟中断允许ALE被置为O,闹钟中断标志AF置0,信号通过AS位传送到VRS51L3074的37脚,通过P20脚输出脉冲到蜂鸣器,停止闹响。到达预定时间响铃1 min,1 min后自动停止,也可以按下已设定的键实现手动停止。
3.4 单片机与键盘的连接
系统采用行列式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。因此,在按键数量较多时,可以节省I/O口线。键盘的列线分别与单片机的P1.0~P1.2相连,行线分别与单片机的P1.3~P1.5相连。
4 软件系统的设计
系统软件设计包括单片机计算机两部分的编程。计算机软件编程主要实现参数设置、串行口数据接收、指令发送以及数据的显示和存储。单片机软件编程主要实现键盘、液晶显示、闹钟等各模块的功能,采用C语言编程。该系统通过串行口与键盘通信,键盘给单片机发指令实现数据采集及系统控制,并将数据实时传回液晶显示器显示结果。整个软件系统采用模块化的程序设计方法,共分为时间日期设定、闹铃
设定、LCD显示模块和键盘扫描模块4个部分。其中主要是闹点的设定与提取。软件系统的主要特点是整个过程完全在键盘的控制之下,实现了友好的人机交互功能。主程序通过判断键盘的输入情况调用不同的子程序,子程序的功能实现也是在键盘的配合之下完成的。主程序流程图,如图6所示。
首先对单片机的串行口及定时器进行初始化,然后进行键盘扫描,如果有键按下,则根据扫描到的键值跳转到相应的入口并执行相应的程序,并根据外部的输入进行相应的操作。如果没有键按下,则回到初始化状态。在并行运行的程序中,本设计将调用另外两位合作者编写的日历时钟和温度程序,送入液晶显示器中进行显示。
4.1 多点定闹模块
闹钟的的起闹止闹基本步骤:(1)电子设备的中央处理器CPU从硬件时钟芯片中读取当前时间,从闹钟信息中提取一个与当前时间最接近的然后启动闹钟,将该闹钟的启动时间设置到硬件时钟芯片中。(2)硬件时钟芯片在当前时间与该需启动闹钟的启动时间进行比较,一致时通知CPU闹钟启动时间已经到达,蜂鸣器控制标志为“1”,闹钟打开,开始起闹,并显示在显示器上,要止闹只需按下启停键便可止闹,没有按键的情况下系统根据预设的闹响时间1 min后停止闹铃,闹时功能关停。硬件时钟芯片在当前时间与该需启动闹钟的启动时间进行比较不同时指向下一时间。(3)通过不停的进行比较,第一个闹点响停后,时钟正常行走,系统又再返回步骤(1)。
4.2 OSl2887时钟芯片与VRS51L3074的接口程序
系统通过中断和软件计数器可产生秒信号。每到1 s,系统将会调整时间存储单元的内容,从而实现计时功能。下面为DSl2887时钟芯片和VRS51L3074单片机的接口软件,假定采用每天24 h制,时间数据格式为BCD码,初始化时间为2000年1月1日9时00分00秒,1 kHz方波输出。时钟芯片每1 s向单片机申请中断一次,一方面让单片机修改一次时钟显示,另一方面也给单片微机系统提供时间基准。
5 结束语
系统利用VRS51L3074作为控制核心,外加专用的时钟芯片DSl2887的应用,实现时间、日历及闹钟信息显示功能。该电子钟操作方便,通过键盘和汉显液晶提示可方便地校对时钟和对闹钟进行设置。