⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds12c887.h

📁 时针芯片DS12C887a的C51底层程序
💻 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 + -