#i nclude <>
#i nclude <>
sbit SDA=P1^0; //
sbit SCL=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通信停止
PCF8563时钟芯片程序 来自淘豆网m.daumloan.com转载请标明出处.