PCF8563时钟芯片.docVIP

  • 21
  • 0
  • 约5.4千字
  • 约 7页
  • 2018-02-06 发布于河南
  • 举报
PCF8563时钟芯片

PCF8563时钟芯片(C语言单片机编写) 收藏 #i nclude reg51.h #i nclude intrins.h sbit SDA=P1^0; // 将p1.0口模拟数据口 sbit SCL=P1^1; // 将p1.1口模拟时钟口 #define MIN 0x02 //秒寄存器 #define SEC 0x03 //分寄存器 #define HOUR 0x04 //时寄存器 #define DAY 0x05 //日寄存器 #define WEEK 0x06 //周寄存器 #define MONTH 0x07 //月寄存器 #define YEAR 0x08 //年寄存器 #define read_ADD 0xA3 //写器件地址 #define write_ADD 0xA2 //读器件地址 #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; unsigned char g8563_Store[4]; /*时间交换区,全局变量声明*/ unsigned char code c8563_Store[4]={0x00,0x59,0x07,0x01}; /*写入时间初值:星期一 07:59:00*/ bit bdata SystemError; // 从机错误标志位 //-------------------------------------------------------------------------------------------------- // 函数名称: iic_start() // 函数功能: 启动I2C总线子程序 //-------------------------------------------------------------------------------------------------- void iic_start(void) { EA=0; //时钟保持高,数据线从高到低一次跳变,I2C通信开始 SDA = 1; SCL = 1; delayNOP(); // 延时5us SDA = 0; delayNOP(); SCL = 0; } //-------------------------------------------------------------------------------------------------- // 函数名称: iic_stop() // 函数功能: 停止I2C总线数据传送子程序 //-------------------------------------------------------------------------------------------------- void iic_stop(void) { SDA = 0; //时钟保持高,数据线从低到高一次跳变,I2C通信停止 SCL = 1; delayNOP(); SDA = 1; delayNOP(); SCL = 0; } //-------------------------------------------------------------------------------------------------- // 函数名称: slave_ACK // 函数功能: 从机发送应答位子程序 //-------------------------------------------------------------------------------------------------- void slave_ACK(void) { SDA = 0; SCL = 1; delayNOP(); SDA = 1; SCL = 0; } //-------------------------------------------------------------------------------------------------- // 函数名称: slave_NOACK // 函数功能: 从机发送非应答位子程序,迫使数据传输过程结束 //-------------------------------------------------------------------------------------

文档评论(0)

1亿VIP精品文档

相关文档