📄 pcf8563.h
字号:
#include"General.h"
#define CLKSDA_IN (P6DIR &= ~BIT6) //数据线口为输入
#define CLKSDA_OUT (P6DIR |= BIT6) //数据线口为输出
#define CLKSDA_1 (P6OUT |= BIT6) //SDA = 1
#define CLKSDA_0 (P6OUT &= ~BIT6) //SDA = 0
#define CLKSDA_VAL (P6IN & BIT6) //Read SDA
#define CLKSCL_IN (P6DIR &= ~BIT5) //时钟线口为输入
#define CLKSCL_OUT (P6DIR |= BIT5) //时钟线口为输出
#define CLKSCL_1 (P6OUT |= BIT5) //SCL = 1
#define CLKSCL_0 (P6OUT &= ~BIT5) //SCL = 0
#define PCF_CONTROL0 0X00
#define PCF_CONTROL1 0X01
#define MIN_ALARM 0x09
#define HOUR_ALARM 0x0a
#define YEAR_ALARM 0x0b
#define WEEK_ALARM 0x0c
#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_();};
/**
typedef struct tgTime
{
uchar Year;//2000年为0,BCD格式
uchar Month;
uchar Date;
uchar Hour;
uchar Minute;
uchar Second;
} Time;
extern Time SysTime;
*****/
extern uchar g8563_store[7]; /*时间交换区,全局变量声明*/
/*写入时间初值:星期一 07:59:00*/
void P8563_init(void);
void iic_start(void);
void iic_stop(void);
void slave_ACK(void);
void slave_NOACK(void);
void check_ACK(void);
void IICSendByte(uchar ch);
uchar IICreceiveByte(void);
void write_CFGbyte(uchar CFG_add,uchar CFG_data);
uchar receive_CFGbyte(uchar CFG_add);
void receive_CFGNbyte(uchar CFG_add, uchar n,uchar * buff);
void P8563_Readtime(void);
void P8563_settime(void);
void Write_buffclk(uchar addr, uchar len,uchar * buff);
void Read_buffclk(uchar addr, uchar len,uchar * buff);
void ReadTimeDate(uchar *str);
void Init_Clk(void);
void iic_NoAcknowledge(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -