




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、pcf8563 驱动 C51 源程序及应用网站首页网址导行芯片手册技术文章下载中心收藏本站 34器件型号查寻 :检索超过百万 Datasheet!您现在的位置: 搜电子网 >> 文章中心 >> IC 技术 >> IC 资料 >> 正 文pcf8563 驱动 C51 源程序及应用作者:佚名 文章来源: net 点击数: 310 更新时间: 2008-7-1摘要:介绍基于PCF8563设计户外侄计时系统的硬件接口电路及PCF8563软件编程。该系统在强日光下显示屏的字符清晰可见,能够长时间连续稳定地工作。关键词: PCF8563 I2C 倒计时系统
2、引言 倒计时系统的任务,就是对某一设定日期进行倒数,在显示屏显示当前 距离设定日期的时间;广泛应用于重大的节日或活动,以增强人们的关切程度和紧迫感。户 外型倒计时系统,首先要求在强日光下显示屏的字符依然清晰可见,而且要求系统能够长时 间连续稳定地工作。本文介绍的系统正是针对这样的要求而开发出来的。 1 总体设计方 案整个系统由时钟芯片、中央处理单元、译码、驱动、显示、键盘几部分 构成,系统框图如图 1 所示。 2 硬件电路设计 2.1时钟芯片PCF8563是 Philips 公司推出的一款带 I2C 总线具有极低功耗的多功能时钟 /日历芯片, 具有四种报警功能和定时功能; 内部时钟电路、 内部
3、振荡电路、 内部低电压 检测以两线制 I2C 总线通信方式,不但使用外围电路简洁,而且增加了芯片的可靠性。PCF8563的SCL为时钟输入端,数据随时钟信号同步输入器件或从器件输出;SDA为双向引脚,用于串行数据的输入输出;INT是中断信号输出端, 可通过设置报警 寄存器按指定时间在该脚产生报警信号,低电平有效;SDA、SCL、INT 均为漏极开路,必须上拉电阻;XI、X2分别为反相放大器的输入、输出端;可在 X1端接入32.768kHz的石英晶 振,配置成片内振荡器。本系统PCF8563与89C51接口采用图2所示接口方案。图2中,在XI、X2端接入32.768kHz的石英晶振,将时钟源配置
4、为片内振荡器。VDD与地之间国入1个1卩F的大电容供电维持时钟芯片,锂电池(3.6V)同时开始工作,给时钟芯片供电,使时钟芯片工作不受影响。PCF8563与89C51接口采用3根口线,PCF8563的INT脚产生周期为1s的脉冲中断信号给 89C51的INTO引脚,89C51产生中断后, 通过I2C总线读取PCF8563的基准时间。2.2显示和键盘电路译码、显示、驱动、键盘电路如图3所示、单片机将读入的 PCF8563时间信息,经过程序处理,输出显示信号到P1 口(数据4位,选择信号4位)。显示信息包括倒计时信息(当前距离设定时间的天数)和当前时间的星期、时、分、秒信息。4位数据信号送入 MC
5、14513( BCD锁存/7段译/码驱动器),共有10个MC14513倒计时占用3个,时间时、分、秒各占用2个,星期占用1个。4位选择信号送到74LS145译码器(4位锁存/4-10线译码),选择接收数据的 MC14513芯片。被选择的MC14513译码驱动对应共阴数码管字段(a、b、c、d、e、f、g)。户外显示要求在强日光下依然清楚可见,所以我们采用超高度05LED管组成LED点阵字符。其中每个字段由4块LED点阵埠并联组成,而每个LED点阵块先由5个LED串联1组,再将4个串联组并联而成。先用的超高亮度LED工作电流约为20mA工作电压约为2V,每字段的总电流约为 320mA工作电压为1
6、0V;字段的 驱动,采用大电流反相驱动器 ULN2003由7组NPt达林顿驱动器组成);倒计时信号经 MC14153 输入到ULN2003 ULN2003输出接字段的阴极, 字段阳极接电源正极;电源采用10A、5V的两个开关电源串联供电。键盘接口有 4个链: 1 个设定/确认键、 1 个修改+1 键、 1 个修改-1 键、 1个移位键。对应秒、分、时、倒计时、星期,有5个LEDb LED亮,表示对应的秒或分或星期或倒计时数据可按修改键修改。设定/确认键, 有两种状态: 设定和确认。 首先按下为设定时间状态,再按下为确认状态。将设定时间数据处理后写入PCF8563两种状态互为循环。在设定时间状态
7、,首先次移位为秒位,对应秒移位LED亮,按下移位键,移位 LED灯接秒t分t时t倒计时t星期逐次循环;按下修改+1键或修改-1键可对相应位的数据进行 +1或-1操作。3软件设计PCF8563中共有16个寄存器,其中 0001H为控制寄存器,090CH为报警寄存器,0DH为时钟输出寄存器,0E0FH为定时器功能寄存器,0208H为秒年时间 寄存器。表 1 、表 2 列出了各寄存器概况及对应的内存地址和功能。表 1 寄存器概况 地 址寄存器名称位 7 位 6 位 5 位 4 位 3 位 2 位 1 位 0 00H 控制 /状态寄存器 1 TFST 0STOP0 TESTC0 0 0 01H 控制/
8、状态寄存器 2 0 0 0 TT/TP AF TF AIE TIE0DHCLKOU输出寄存器 FE FD1 FD0 0EH 定时器控制寄存器 TE - - - - TD1TD0 0FH定时器倒计数数值寄存器定时器倒计数数值(二制)表2 BCD格式寄存器概况 地址寄存器名称位 7 位 6 位 5位4位3位2位1位0 02h秒VL 0059BCD码格式数 03h 分-00 59BCC码格式数04h时-0023BCD码格式数05h日-0059BCC码格式数06h星期0 607h09h 分钟报警 AE00警 AE -01bPCF8563月/世纪C - - 0112BCD码格式数08h年0099BCD码
9、格式数59BCD码格式数OAh小时报警AE - 0023BCD码格式数OBH日报31BCD码格式数0CH星期报警AE 06按I2C总线规约,的从地址:读地址SLAR为A3H写地址 SLAW为A2H PCF8563I2C通信实现有字节写 / 读两种状态。 适用 80C51 的虚拟 I2C 总线软件包。 本系统直接调用该 I2C总线软件包的数据读写子程序(其中WRNBY为N字节的子程序,RDNBY为读取N字节的字节),来实现PCF8563的I2C总线操作。根据硬件电路及资源分配, 将 I2C 软件包中符号单元赋值如下: SDA EQAP0.0 ;数据传送 SCL EQU P0.1;时钟控制状态 M
10、IN DATA30H ;秒寄存器 SEC DATA31H ;分寄存器 HOURDATA 32H;时寄存器 DAY DATA33H ;日寄存器 WEEKDATA34H ;周寄存器 MONTHDATA 35H;月寄存器 YEAR DATA 36H ;年寄存器 SLA DATA 37H ; 37H为被控器 的地址 NUMBYT DATA38H; 38H 为数据字节计数器 MRT DATA 40H ;接收数据缓冲区首地址MTD DATA 50H;发送数据缓冲区首地址PCF8563定时器工作模式 MOV 51H,#81H;设置PCF8563的0EH为81H,启动定时器,定时器频率64Hz MOV52H,
11、#64;设置PCF8563的OFH为64,定时器倒计数值为 64 MOV MTD, #0EH ;定时器控制寄存器字节首地址 MOVNUMBYT,#3 ;写字节 MOVSLA,#0A2H;取写器件地址 LCALL WRNBYT写 8563以上配置完成后,PCF8563的INT脚产生周期为1s,脉冲宽度(低电平) 约为15ms的脉冲中断信号。PCF8563当前时间设定子程序如下:MOV51H, #00H ;启动时钟 MOV52H, #11H;定时器为中断模式,脉冲形式 MOV 53H, MIN ;将秒至年的时间写入发送缓冲区 MOV 54H, SEC MOV55H, HOUR MOV 56,HDA
12、Y MOV 57H, WEEK MOV 58,HMON MOV 59,HYEARMOVSLA,#0A2H ;取写器件地址 MOVNUMBYT#10;写字节数 MOVMTD #00H;写入8563寄存器首地址为 OOH LCALL WRNBYT;写入8563 RET读出时钟芯片当前值子程序设计 MOVMTD, #02H ;读时钟寄存器首字节地址 02H MOV SLA, #0A2H ;取写器件地址 MOV NUMBY,T#1;写字节数 LCALL WRNBYT; 写 8563 MOV SLA #0A3H ;取读器件地址MOV NUMBYT#7;读七个时钟信息 LCALL RDNBYT;读取时间并
13、放入缓冲区 MOVA, 40H ; 取滗字节 ANL A ,#7FH;屏蔽无效位 MOVMIN,A ;送秒寄存器 MOVA,41H ;取分字节 ANL A, #7EH ;屏蔽无效位MOVMIN, A ;送分寄存器 MOVA,42H ;取小时字节 ANL A,#3FH ;屏蔽无效位 MOVHOUR,A ;送时寄存器 MOVA,43H ;取天字节 ANL A,#3FH ;屏蔽无效位 MOV DAY,A;送天寄存器 MOVA,44H ;取星期字节 ANL A,#07H ;屏蔽无效位 MOV WEE,K A ;送星期寄存器MOVA,45H ;取月字节 ANL A, #1FH ;屏蔽无效位 MOV MO
14、T,H A ;送月寄存器 RET系统程序流程如图 4 所示,中断服务程序如 5 所示。 结语 此倒计时系统于广东省六届大运会中标, 在整个运行过程正常稳定工作, 达到了大会提出的要求。i nclude <reg52.h>i nclude <intrins.h>#define uchar unsigned charsbit SDA=P3A4;sbit SCL=P3A5;sbit P10=P1A0;uchar g8563_Store4; /*时间交换区 , 全局变量声明 */uchar code c8563_Store4=0x00,0x59,0x07,0x01; /*写入时
15、间初值:星期一07:59:00*/*内部函数,延时 1*/void Delay()/ P10=1;_nop_();P10=0;_nop_();_nop_(); /* 根据晶振频率制定延时时间 */*内部函数, I2C 开始*/void Start() EA=0;SDA=1;SCL=1;Delay();SDA=0;Delay();SCL=0;/*内部函数, I2C 结束*/ void Stop()SDA=0;SCL=0;Delay();SCL=1;Delay();SDA=1;Delay();EA=1;/*内部函数,输出 ACK, 每个字节传输完成, 输出 ack=0, 结束读书据, ack=1;
16、*/ void WriteACK(uchar ack)SDA=ack;Delay();SCL=1;Delay();SCL=0;/*内部函数,等待 ACK*/ void WaitACK() uchar errtime=20;读 ACK*/SDA=1;Delay(); /*SCL=1;Delay(); while(SDA) errtime-;if(!errtime) Stop();SCL=0;Delay();/* 内部函数 . 输出数据字节 入口 :B= 数据*/void writebyte(uchar wdata)uchar i; for(i=0;i<8;i+) if(wdata&
17、0x80) SDA=1; else SDA=0; wdata<<=1;SCL=1;Delay();SCL=0;I2C 通讯WaitACK(); /I2C 器件或通讯出错,将会退出 /* 内部函数 . 输入数据 出口 :B*/ uchar Readbyte()uchar i,bytedata;SDA=1;for(i=0;i<8;i+)SCL=1;bytedata<<=1;bytedata|=SDA;SCL=0;Delay();return(bytedata);/*输出数据 ->pcf8563*/ void writeData(uchar address,uch
18、ar mdata) Start();writebyte(0xa2); /* 写命令 */writebyte(address); /* writebyte(mdata); /* Stop();*输入数据 <-pcf8563*uchar ReadData(uchar address) /* uchar rdata;Start(); writebyte(0xa2); /* writebyte(address); /*Start(); writebyte(0xa3); /* rdata=Readbyte();WriteACK(1);Stop();写地址 */写数据 */单字节 */写命令 */写
19、地址 */读命令 */return(rdata);多字节void ReadData1(uchar address,uchar count,uchar * buff) /*/ uchar i;Start();writebyte(0xa2); /*写命令 */writebyte(address); /* 写地址 */ Start();writebyte(0xa3); /*读命令 */for(i=0;i<count;i+)buffi=Readbyte(); if(i<count-1) WriteACK(0);WriteACK(1);Stop(); /* 内部函数 , 读入时间到内部缓冲区
20、*/void P8563_Read() uchar time7;ReadData1(0x02,0x07,time);g8563_Store0=time0&0x7f; /*秒 */g8563_Store1=time1&0x7f; /*分 */g8563_Store2=time2&0x3f; /*小时 */星期 */g8563_Store3=time4&0x07; /*读入时间到内部缓冲区 外部调用*void P8563_gettime() P8563_Read(); if(g8563_Store0=0)P8563_Read(); /* 如果为秒 =0 ,为防止时间
21、变化,再读一次 */ /*写时间修改值*/ void P8563_settime()uchar i;for(i=2;i<=4;i+) writeData(i,g8563_Storei-2); writeData(6,g8563_Store3);/*P8563的初始化 外部调用*/ void P8563_init()uchar i;if(ReadData(0xa)&0x3f)!=0x8) /* 检查是否第一次启动,是则初 始化时间 */ for(i=0;i<=3;i+) g8563_Storei=c8563_Storei;/* 初始化时间 */P8563_settime(); writeData(0x0,0x00);writeData(0xa,0x8); /*8:00 报警 */ write
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古工业职业学院《公共关系与商务礼仪》2023-2024学年第一学期期末试卷
- 陕西省商南县2024-2025学年下学期初三生物试题期中测试卷含解析
- 开封市鼓楼区2025届数学五下期末达标测试试题含答案
- 宁夏大学《心理统计学(上)》2023-2024学年第二学期期末试卷
- 上海市虹口区复兴高级中学2025届高三3月摸底考试数学试题理试题含解析
- 辽宁对外经贸学院《住宅建筑设计原理》2023-2024学年第二学期期末试卷
- 宁夏师范学院《形势与政策(七)》2023-2024学年第一学期期末试卷
- 江苏省泰州市泰兴一中2024-2025学年高三调研考试(物理试题)试卷含解析
- 石家庄学院《植物造景B》2023-2024学年第二学期期末试卷
- 辽东学院《钢琴名作赏析》2023-2024学年第二学期期末试卷
- 【构建企业级好数据】Dataphin智能数据建设与治理产品白皮书
- 国开(内蒙古)2024年《经济学与生活》形考1-3答案
- 2024年电信智能云服务工程师技能竞赛理论考试题库(含答案)
- 七年级道德与法治下册 第四单元 走进法治天地 第九课 法律在我们身边 第二框《法律保障生活》教学设计 新人教版
- 循证医学考试题库及答案
- 新疆维吾尔自治区2025届高考压轴卷生物试卷含解析
- 2024年湖南学业水平考试地理真题及答案
- 建筑中级职称《建筑工程管理》历年考试真题题库(含答案)
- DL∕T 1623-2016 智能变电站预制光缆技术规范
- 2023-2024学年上海市普陀区八年级(下)期中数学试卷(含答案)
- 意识与计算的理论模型
评论
0/150
提交评论