📄 pcf8563.txt
字号:
unsigned char pcf8563_init(void);
unsigned char pcf8563_receive(unsigned char pcf8563_address);
void pcf8563_set_alarm(void);
void pcf8563_set_clockout(void);
void pcf8563_settime(void);
unsigned char pcf8563_init(void) //PCF8563初始化函数程序,用于检测系统的初始状态
{
unsigned char pcf8563_cor;
pcf8563_cor=pcf8563_receive(0x00);
return (pcf8563_cor);
}
void pcf8563_settime(void)//PCF8563设定时间函数程序
{
i2c_start ();
i2c_send_data (0xa2);
i2c_wait_ack ();
i2c_send_data (0x00);
i2c_wait_ack ();
i2c_send_data (0x00);//c1
i2c_wait_ack ();
i2c_send_data (0x12);//c2
i2c_wait_ack ();
i2c_send_data (0x00);//s
i2c_wait_ack ();
i2c_send_data (0x38);//m
i2c_wait_ack ();
i2c_send_data (0x07);//h
i2c_wait_ack ();
i2c_send_data (0x14);//d
i2c_wait_ack ();
i2c_send_data (0x03);//w
i2c_wait_ack ();
i2c_send_data (0x05);//moon
i2c_wait_ack ();
i2c_send_data (0x08);//year
i2c_wait_ack ();
i2c_stop();
}
void pcf8563_set_alarm(void) //PCF8563设定报警时间函数程序
{
i2c_start ();///restar
i2c_send_data (0xa2);
i2c_wait_ack ();
i2c_send_data (0x09);
i2c_wait_ack ();
i2c_send_data (0x32);//mb
i2c_wait_ack ();
i2c_send_data (0x08);//hb
i2c_wait_ack ();
i2c_send_data (0x08);//db
i2c_wait_ack ();
i2c_send_data (0x03);//wb
i2c_wait_ack ();
i2c_stop();
}
void pcf8563_set_clockout(void) //PCF8563设定clock引脚输出频率函数程序
{
i2c_start ();///restar
i2c_send_data (0xa2);
i2c_wait_ack ();
i2c_send_data (0x0d);
i2c_wait_ack ();
i2c_send_data (0x83);//0d clock
i2c_wait_ack();
i2c_stop();
}
unsigned char pcf8563_receive(unsigned char pcf8563_address) //从PCF8563接收数据函数程序
{
unsigned char pcf8563_data;
i2c_start ();
i2c_send_data (0xa2);
i2c_wait_ack ();
i2c_send_data (pcf8563_address);
i2c_wait_ack ();
i2c_start ();
i2c_send_data (0xa3);
i2c_wait_ack ();
pcf8563_data=i2c_receive_data();
i2c_send_ack ();
i2c_stop();
return (pcf8563_data);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -