PCF8563的C51程序设计_第1页
PCF8563的C51程序设计_第2页
PCF8563的C51程序设计_第3页
PCF8563的C51程序设计_第4页
PCF8563的C51程序设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. PCF8563 的 C51 程序 设计 -CAL-FENGHAI-(2020YEAR-YICAI)INGBIAN PCF8563的C51程序设计 作者:來源于:发布时间:2007-3-30 21:45:00 PCF8563是一款低功耗的CMOS实时时钟/日历芯片.它提供一个可编程时钟输出,一个中断输出和掉 电检测器.所有的地址和数据通过I2C总线接口串行传递。报大总线速度为400Kbits/s,每次读写数据 后,内嵌的字地址寄存器会自动増加。 特性 低丄作电流:典型值为pA(VDD=, Tamb=25 T时): 世纪标志: 大工作电压范鬧: 低休眠电流:典型值为pA (VDD=Tamb=2

2、5C): 400KHZ的I2C总线接口(VDD二时八 可编程时钟输出频率为:,1024Hz. 32Hz. 1HZ: 报警和定时器: 掉电检测器; 内部集成的振荡湍电容: 片内电源复位功能: I2C总线从地址:读:0A3H:写:0A2H: 开漏中断引脚。 应用 移动电话: 便携仪湍: 传真机; 电池供电产品。 /* K说明I2C总线驱动程序(用两个普通10模拟I2C总线) 包括100Khz(T=10us)的标准模式(慢速模式)选择, 和400Khz(T=的快速模式选择, 默认的晶振。 / #ifndefSDA define SDA P0_0 fidefine SCL P0_l ffendif e

3、xtern uchar SystemError; define uchar unsigned char ffdefine uint unsigned int ffdefine Byte unsigned char define Word unsigned int define bool bit ffdefine true 1 ffdefine false 0 define SomeNOP();op_();_nop_();_nop_();_nop_(); /“ 调用方式:void l2CStart(void)函数说明:私有函数,I2C专用 void l2CStart(void) EA=0; SD

4、A=1; SCL=1; SomeNOP();/INI SDA=0; SomeNOP(); /START SCL=O; / * 调用方式:void l2CStop(void) 2001/07/0 4 函数说明:私有函数 I2C专用 / void l2CStop(void) SCL=O; SDA=O; SomeNOP();/INI SCL=1; SomeNOP(); SDA=1; /STOP EA=1; /* 调用方式:bit l2CAck(void) 2001/07/0 4 函数说明:私有函数,I2C专用.等待从器件接收方的应答 I bool WaitAck(void) ucharerrtime

5、=255;/W故障接收方无ACK.超时值为255。 SDA=l;SomeNOP(); SCL=l;SomeNOP(); while(SDA) errtime-; if (Serrtime) l2CStop(); SystemError=Oxll; return false; SCL=O; return true; 调用方式:void SendAck(void) 2001/07/0 4 函数说明:私有函数,I2C专用.主器件为接收方.从器件为发送方时应答信号。 / void SendAck(void) SDA=0; SomeNOP(); SCL=1; SomeNOP(); SCL=O; /* 调

6、用方式:void SendAck(void) e 2001/07/0 4 函数说明:私有函数,I2C专用.主器件为接收方, 从器件为发送方时,非应答信号 / void SendNotAck(void) SDA=1; SomeNOP(); SCL=1; SomeNOPf); SCL=O; / * * * / 调用方式:void l2CSend(uchar ch) 2001/07/0 5 函数说明:私有函数,I2C专用 / void l2CSendByte(Byte ch) uchar i=8; while (i-) SCL=0;_nop_(); SDA=(bit)(ch ch=l; SomeNO

7、P(); SCL=1; SomeNOP(); SCL=O; 调川方式:uchar l2CReceive(void) 2001/07/0 5 函数说明:私有函数,I2C专用 / Byte l2CReceiveByte(void) uchar i=8; Byte ddata=O; SDA=1; while (i-) ddata=l; SCL=0;SomeNOP(); SCL=l;SomeNOP(); ddata|=SDA; SCL=O; return ddata; 开始PCF8563T驱动程序 / 调用方式:void GetPCF8563(uchar firsttype uchar count u

8、char *buff) e 2001/08/0 7 函数说明:读取时钟芯片PCF8563的时间,设宜要读的第一个时间类型firsttype,并设宜读取的字节数. 则会一次把时间读取到buff中。顺序是: 0 x02/0 x03/0 x04:小时/0 x05:0/0 x06:星期/0 x07jj(世纪)/0 x0 WaitAck(); l2CSendByte(firsttype); WaitAck(); l2CStart(); l2CSendByte(0 xA3); WaitAckf); for (i=0;i 调用方式:void SetAlarmHourfuchar count) 2001/08

9、/0 7 函数说明:设宜报警闹钟在一天的第count点报警。例如:count=23,则在晚上11点报警。 / # void SetAlarm(uchar alarmtype uchar count) SetPCF8563(0 x010 count); 调用方式:void CleanAlarm(void) e 2001/08/0 7 函数说明:清除所有报警设宜c / void CleanAlarm(void) SetPCF8563(0 x0100000 SetPCF8563(0 x0D0 SetPCF8563(0 x0E 0 readl380(uchar command ) 函数说明:readl

10、380()返回”i前时间command抬要返回的时间类型。 秒:81H分钟:83H小时:85H日期:87H星期:89H星期几:8BH年:8D H / uchar readl380 (uchar command) uchar time; GetPCF8563(command 1 return time; /* 调用方式:void writel380(uchar command uchartime) 函数说明:writel380()往HT1380写命令和数据,command是命令字time是后写入的数据 void writel380(uchar command uchar time) SetPCF8563(command time); / 调用方式:void time_display(uchar xO uchar yO ) 函数说明:time_display()在抬定的xOyO坐标.以00:00:00格式显示、”1前时间。 */ /uchar timGQ=”00:U:l:T; void time_display(uchar xO uchar yO bit type) /液晶时间显示 uchar tim 皀=00:00:00; uchar con3; uchar time_type; GetPCF8563(0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论