📄 ds12c887.h
字号:
/*************************************************************
文件名称:ds12c887.c适用范围:时钟芯片ds12c887的驱动程序
***************************************************/
#define CMD_START_DS12C887 0x20 /* 开启时钟芯片 */
#define CMD_START_OSCILLATOR 0x70 /* 开启振荡器,处于抑制状态 */
#define CMD_CLOSE_DS12C887 0x30 /* 关掉时钟芯片 *//* 所有的置位使用或操作,清除使用与操作 */
#define MASK_SETB_SET 0x80 /* 禁止刷新 */
#define MASK_CLR_SET 0x7f /* 使能刷新 */
#define MASK_SETB_DM 0x04 /* 使用HEX格式 */
#define MASK_CLR_DM 0xfb /* 使用BCD码格式 */
#define MASK_SETB_2412 0x02 /* 使用24小时模式 */
#define MASK_CLR_2412 0xfd /* 使用12小时模式 */
#define MASK_SETB_DSE 0x01 /* 使用夏令时 */
#define MASK_CLR_DSE 0xfe /* 不使用夏令时 */
/*************************************************************
函数功能:该函数用来启动时钟芯片工作应用范围:仅在时钟芯片首次使用时用到一次入口参数:出口参数:
*************************************************************/
void StartDs12c887()
{
ds_reg_A = CMD_START_DS12C887;
ds_started=168;
}
void InitDs12c887()
{
StartDs12c887();
ds_reg_B = ds_reg_B | MASK_SETB_SET; /* 禁止刷新 */
ds_reg_B = ds_reg_B | MASK_SETB_DM | MASK_SETB_2412& MASK_CLR_DSE; /* 使用BCD码格式、24小时模式、不使用夏令时 */
// chCenturyChannel = 0x21; /* 设置为21世纪 */
ds_reg_B = ds_reg_B & MASK_CLR_SET; /* 使能刷新 */
}
//void SetTime_Second(unsigned char dat)
//{
// ds_reg_B = ds_reg_B | MASK_SETB_SET; /* 禁止刷新 */
// ds_second=dat;
// ds_reg_B = ds_reg_B & MASK_CLR_SET; /* 使能刷新 */
//}
//#endif
void SetTime_Minute(unsigned char dat)
{
ds_reg_B = ds_reg_B | MASK_SETB_SET; /* 禁止刷新 */
ds_minute=dat;
ds_reg_B = ds_reg_B & MASK_CLR_SET; /* 使能刷新 */
}
void SetTime_Hour(unsigned char dat)
{
ds_reg_B = ds_reg_B | MASK_SETB_SET; /* 禁止刷新 */
ds_hour=dat;
ds_reg_B = ds_reg_B & MASK_CLR_SET; /* 使能刷新 */
}
void SetTime_Day(unsigned char dat)
{
ds_reg_B = ds_reg_B | MASK_SETB_SET; /* 禁止刷新 */
ds_day=dat;
ds_reg_B = ds_reg_B & MASK_CLR_SET; /* 使能刷新 */
}
void SetTime_Month(unsigned char dat)
{
ds_reg_B = ds_reg_B | MASK_SETB_SET; /* 禁止刷新 */
ds_month=dat;
ds_reg_B = ds_reg_B & MASK_CLR_SET; /* 使能刷新 */
}
void SetTime_Year(unsigned char dat)
{
ds_reg_B = ds_reg_B | MASK_SETB_SET; /* 禁止刷新 */
ds_year=dat;
ds_reg_B = ds_reg_B & MASK_CLR_SET; /* 使能刷新 */
}
void get_time()
{
year=ds_year;
month=ds_month;
day=ds_day;
hour=ds_hour;
minute=ds_minute;
//second=ds_second;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -