关键词: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的数字时钟设计
6854
1.设计一个篮球24秒倒计时系统。
100s可变模置数倒计时
PCF8563 RTC时间在使用3个月后损坏了的原因?怎么解决?
PCF8563(RTC)读取时间有误是什么原因导致的?
PCF8563怎么使用
PCF8563时钟模块的资料分享
倒计时器,绿灯闪烁的时候倒计时也要继续计时,这块程序怎么写?
倒计时显示的问题
倒计时的vi资料下载
STC12单片机I2C程序机驱动PCF8563程序
STC51驱动PCF8563
nanopi neo怎么使用外部rtc时钟pcf8563?
【问题】4412开发板配置pcf8563时钟芯片驱动后,无法使用,是什么问题呢?
一种可变信息倒九秒半程倒计时器
为什么PCF8563运行一段时间后就停止了?
低功耗CMOS实时时钟/日历芯片PCF8563
关于PCF8563时钟模块的介绍
基于PCF8563时钟芯片的万年历制作资料分享
基于STM32的正倒计时器程序设计
基于labview的倒计时和定时器
基于labview的定时和倒计时功能小程序
如何去实现一种基于单片机的倒计时牌控制系统设计
如何让seg倒计时的同时点亮点阵?
完成倒计时时钟的设计资料分享
带暂停功能的倒计时程序
怎样去设计一种基于51单片机的倒计时系统
数码管倒计时问题求助
毕设做的万年历PCF8563的闹钟报警怎么用
求助基于PCF8563芯片的电子时钟综合系统
求基于STC89C52的倒计时的设计
秒表倒计时
篮球倒计时 案例
请问PCF8563中的定时器定时功能一般用来干什么?
请问pcf8563这个时钟芯片在altium designer哪个库里面啊?
请问怎么才能用PCF8563产生秒输出中断?
采用PCF8563的万年历
PCF8563 pdf datasheet
217外围器件PCF8563 I2C实时时钟日历芯片在8051系统
198AN070219 PCF8563中断输出功能
58PCF8563实时时钟高精度调整方法
110PCF8563汇编程序
89PCF8563在电子时钟设计中的应用
0现场总线型交通倒计时器的设计
5728
篮球倒计时牌[优质文档]
13pcf8563芯片功能_工作原理和引脚图及应用介绍
66713PCF8563时钟芯片驱动程序分享
13713如何调整pcf8563精度_PCF8563高精度调整方法介绍
22171
基于PCF8563时钟芯片的万年历制作
18869pcf8563和ds1302有什么区别_哪个比较好
31423
微雪电子RTC时钟模块PCF8563 PCF8563T介绍
6636
单片机课设-60秒倒计时器
100课程设计题九: 倒计时时钟设计
3819-基于51单片机的倒计时系统
49PIC16F877A单片机 (IIC总线+PCF8563芯片)
17STM32模拟IIC读取PCF8563
74【DIY】STM8的实时时钟PCF8563与红外进出门提醒器
11ESP32使用PCF8563时钟模块进行网络校时
13
电子发烧友App




评论