基于PCF8563户外型倒计时系统的设计

发布者:程序界的行者最新更新时间:2007-03-09 手机看文章 扫描二维码
随时随地手机看文章
摘要:介绍基于PCF8563设计户外侄计时系统的硬件接口电路及PCF8563软件编程。该系统在强日光下显示屏的字符清晰可见,能够长时间连续稳定地工作。 关键词:PCF8563 I2C 倒计时系统 引言 倒计时系统的任务,就是对某一设定日期进行倒数,在显示屏显示当前距离设定日期的时间;广泛应用于重大的节日或活动,以增强人们的关切程度和紧迫感。户外型倒计时系统,首先要求在强日光下显示屏的字符依然清晰可见,而且要求系统能够长时间连续稳定地工作。本文介绍的系统正是针对这样的要求而开发出来的。 1 总体设计方案 整个系统由时钟芯片、中央处理单元、译码、驱动、显示、键盘几部分构成,系统框图如图1所示。 2 硬件电路设计 2.1 时钟芯片 PCF8563是Philips公司推出的一款带I2C总线具有极低功耗的多功能时钟/日历芯片,具有四种报警功能和定时功能;内部时钟电路、内部振荡电路、内部低电压检测以两线制I2C总线通信方式,不但使用外围电路简洁,而且增加了芯片的可靠性。 PCF8563的SCL为时钟输入端,数据随时钟信号同步输入器件或从器件输出;SDA为双向引脚,用于串行数据的输入输出;INT是中断信号输出端,可通过设置报警寄存器按指定时间在该脚产生报警信号,低电平有效;SDA、SCL、INT均为漏极开路,必须上拉电阻;X1、X2分别为反相放大器的输入、输出端;可在X1端接入32.768kHz的石英晶振,配置成片内振荡器。本系统PCF8563与89C51接口采用图2所示接口方案。 图2中,在X1、X2端接入32.768kHz的石英晶振,将时钟源配置为片内振荡器。VDD与地之间国入1个1μF的大电容供电维持时钟芯片,锂电池(3.6V)同时开始工作,给时钟芯片供电,使时钟芯片工作不受影响。PCF8563与89C51接口采用3根口线,PCF8563的INT脚产生周期为1s的脉冲中断信号给89C51的INT0引脚,89C51产生中断后,通过I2C总线读取PCF8563的基准时间。 2.2 显示和键盘电路 译码、显示、驱动、键盘电路如图3所示、单片机将读入的PCF8563时间信息,经过程序处理,输出显示信号到P1口(数据4位,选择信号4位)。显示信息包括倒计时信息(当前距离设定时间的天数)和当前时间的星期、时、分、秒信息。4位数据信号送入MC14513(BCD-锁存/7段译/码驱动器),共有10个MC14513:倒计时占用3个,时间时、分、秒各占用2个,星期占用1个。4位选择信号送到74LS145译码器(4位锁存/4-10线译码),选择接收数据的MC14513芯片。 被选择的MC14513译码驱动对应共阴数码管字段(a、b、c、d、e、f、g)。 户外显示要求在强日光下依然清楚可见,所以我们采用超高度φ5 LED管组成LED点阵字符。其中每个字段由4块LED点阵埠并联组成,而每个LED点阵块先由5个LED串联1组,再将4个串联组并联而成。先用的超高亮度LED工作电流约为20mA,工作电压约为2V,每字段的总电流约为320mA,工作电压为10V;字段的驱动,采用大电流反相驱动器ULN2003(由7组NPN达林顿驱动器组成);倒计时信号经MC14153输入到ULN2003,ULN2003输出接字段的阴极,字段阳极接电源正极;电源采用10A、5V的两个开关电源串联供电。 键盘接口有4个链:1个设定/确认键、1个修改+1键、1个修改-1键、1个移位键。对应秒、分、时、倒计时、星期,有5个LED。LED亮,表示对应的秒或分或星期或倒计时数据可按修改键修改。设定/确认键,有两种状态:设定和确认。首先按下为设定时间状态,再按下为确认状态。将设定时间数据处理后写入PCF8563,两种状态互为循环。在设定时间状态,首先次移位为秒位,对应秒移位LED亮,按下移位键,移位LED灯接秒→分→时→倒计时→星期逐次循环;按下修改+1键或修改-1键可对相应位的数据进行+1或-1操作。 3 软件设计 PCF8563中共有16个寄存器,其中00~01H为控制寄存器,09~0CH为报警寄存器,0DH为时钟输出寄存器,0E~0FH为定时器功能寄存器,02~08H为秒~年时间寄存器。表1、表2列出了各寄存器概况及对应的内存地址和功能。 表1 寄存器概况 地 址 寄存器名称 位7 位6 位5 位4 位3 位2 位1 位0 00H 控制/状态寄存器1 TFST 0 STOP 0 TESTC 0 0 0 01H 控制/状态寄存器2 0 0 0 TT/TP AF TF AIE TIE 0DH CLKOU 输出寄存器 FE - - - - - FD1 FD0 0EH 定时器控制寄存器 TE - - - - - TD1 TD0 0FH 定时器倒计数数值寄存器 定时器倒计数数值(二制) 表2 BCD格式寄存器概况 地址 寄存器名称 位7 位6 位5 位4 位3 位2 位1 位0 02h 秒 VL 00~59BCD码格式数 03h 分 - 00~59BCD码格式数 04h 时 - - 00~23BCD码格式数 05h 日 - - 00~59BCD码格式数 06h 星期 - - - - - 0~6 07h 月/世纪 C - - 01~12BCD码格式数 08h 年 00~99BCD码格式数 09h 分钟报警 AE 00~59BCD码格式数 0Ah 小时报警 AE - 00~23BCD码格式数 0BH 日报警 AE - 01~31BCD码格式数 0CH 星期报警 AE - - - - 0~6 按I2C总线规约,PCF8563的从地址:读地址SLAR为A3H、写地址SLAW为A2H,PCF8563I2C通信实现有字节写/读两种状态。适用80C51的虚拟I2C总线软件包。本系统直接调用该I2C总线软件包的数据读写子程序(其中WRNBYT为N字节的子程序,RDNBYT为读取N字节的字节),来实现PCF8563的I2C总线操作。 根据硬件电路及资源分配,将I2C软件包中符号单元赋值如下: SDA EQA P0.0 ;数据传送 SCL EQU P0.1 ;时钟控制状态 MIN DATA 30H ;秒寄存器 SEC DATA 31H ;分寄存器 HOUR DATA 32H ;时寄存器 DAY DATA 33H ;日寄存器 WEEK DATA 34H ;周寄存器 MONTH DATA 35H ;月寄存器 YEAR DATA 36H ;年寄存器 SLA DATA 37H ;37H为被控器的地址 NUMBYT DATA 38H ;38H为数据字节计数器 MRT DATA 40H ;接收数据缓冲区首地址 MTD DATA 50H ;发送数据缓冲区首地址 ①PCF8563定时器工作模式 MOV 51H ,#81H ;设置PCF8563的0EH为81H,启动定时器,定时器频率64Hz MOV 52H ,#64 ;设置PCF8563的0FH为64,定时器倒计数值为64 MOV MTD ,#0EH ;定时器控制寄存器字节首地址 MOV NUMBYT,#3 ;写字节 MOV SLA ,#0A2H;取写器件地址 LCALL WRNBYT ;写8563 以上配置完成后,PCF8563的INT脚产生周期为1s,脉冲宽度(低电平)约为15ms的脉冲中断信号。 ②PCF8563当前时间设定子程序如下: MOV 51H,#00H ;启动时钟 MOV 52H,#11H ;定时器为中断模式,脉冲形式 MOV 53H,MIN ;将秒至年的时间写入发送缓冲区 MOV 54H,SEC MOV 55H,HOUR MOV 56H,DAY MOV 57H,WEEK MOV 58H,MON MOV 59H,YEAR MOV SLA,#0A2H ;取写器件地址 MOV NUMBYT,#10;写字节数 MOV MTD,#00H ;写入8563寄存器首地址为00H LCALL WRNBYT ;写入8563 RET ③读出时钟芯片当前值子程序设计 MOV MTD,#02H ;读时钟寄存器首字节地址02H MOV SLA,#0A2H ;取写器件地址 MOV NUMBYT,#1 ;写字节数 LCALL WRNBYT ;写8563 MOV SLA,#0A3H ;取读器件地址 MOV NUMBYT,#7 ;读七个时钟信息 LCALL RDNBYT ;读取时间并放入缓冲区 MOV A,40H ;取滗字节 ANL A,#7FH ;屏蔽无效位 MOV MIN,A ;送秒寄存器 MOV A,41H ;取分字节 ANL A,#7EH ;屏蔽无效位 MOV MIN,A ;送分寄存器 MOV A,42H ;取小时字节 ANL A,#3FH ;屏蔽无效位 MOV HOUR,A ;送时寄存器 MOV A,43H ;取天字节 ANL A,#3FH ;屏蔽无效位 MOV DAY,A ;送天寄存器 MOV A,44H ;取星期字节 ANL A,#07H ;屏蔽无效位 MOV WEEK,A ;送星期寄存器 MOV A,45H ;取月字节 ANL A,#1FH ;屏蔽无效位 MOV MOTH,A ;送月寄存器 RET 系统程序流程如图4所示,中断服务程序如5所示。 结语 此倒计时系统于广东省六届大运会中标,在整个运行过程正常稳定工作,达到了大会提出的要求。
引用地址:基于PCF8563户外型倒计时系统的设计

上一篇:单片机在波特率变换器中的应用
下一篇:能防止多次试探密码的单片机密码锁

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved