📄 ds12887.c
字号:
/*********************************************************************************************************
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: DS12887.C
**创 建 人: 刘宝贵
**最后修改日期: 2004年4月20日
**描 述: 时钟驱动
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 刘宝贵
** 版 本: V1.00
** 日 期: 2004年4月20日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版 本:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 刘宝贵
** 日 期: 2004年4月20日
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
/*********************************************************************************************************
** 函数名称: ConfigMe
** 功能描述: 系统配置如果是第一次使用将所有参数初始化,DA置为0
** 输 入: 无
** 输 出: 无
** 全局变量:
** 调用模块: OSSemPend OSSemPost
**
** 作 者: 刘宝贵
** 日 期: 2004年5月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
***************************************************************************************************/
/****************************************************************************/
/****************************************************************************/
/*********************************************************************
* 函数原型: uint read_ds12887_char(uchar adress) *
* 功能: 从ds12887指定地址读取数据 *
*********************************************************************/
/******************************************************************************/
/******************************************************************************/
void time_set(void)
{
uint8 idata tempc,tempd ;
tempd = read_ds12887_char(13);
write_ds12887_char(10,0x70);
write_ds12887_char(11,0x8E);
write_ds12887_char(0,0);//second
write_ds12887_char(2,0);//minute
write_ds12887_char(4,9);//hour
write_ds12887_char(7,1);//date
write_ds12887_char(8,8);//month
write_ds12887_char(9,04);//year
write_ds12887_char(10,0x26);//A
write_ds12887_char(11,0x1E);//B
tempc = read_ds12887_char(11);
}
/******************************************************************************/
/******************************************************************************/
uint8 read_ds12887_char(uint8 address)
{
uint8 dsdata;
// DSDS P60 1:|0x1 0:&0xFE
// DSRW P61 1:|0x2 0:&0xFD
// DSAS P62 1:|0x4 0:&0xFB
// DSCS P63 1:|0x8 0:&0xF7
// DSAS=0;
P6 = P6 & 0xFB;
// DSDS=1;
P6 = P6 | 0x1;
// DSRW=0;
P6 = P6 & 0xFD;
// DSCS=1;
P6 = P6 | 0x8;
// DSDS=0;
P6 = P6 & 0xFE;
// DSAS=1;
P6 = P6 | 0x4;
P5=address;
// DSCS=0;
P6 = P6 & 0xF7;
// DSAS=0;
P6 = P6 & 0xFB;
// DSRW=1;
P6 = P6 | 0x2;
// DSDS=1;
P6 = P6 | 0x1;
P5=0xFF;_nop_();_nop_();
dsdata=P5;
// DSDS=0;
P6 = P6 & 0xFE ;
// DSRW=1;
P6 = P6 | 0x2;
// DSAS=1;
P6 = P6 | 0x4;
// DSCS=1;
P6 = P6 | 0x8;
return (dsdata);
}
/*********************************************************************
* 函数原型:write_ds12887_char(unsigned char adress,unsigned char temp) *
* 功能: 在ds12887指定地址写一个char的数据 *
*********************************************************************/
/**************************************************************/
void write_ds12887_char(uint8 address,uint8 dsdata)
{
// DSDS P60 1:|0x1 0:&0xFE
// DSRW P61 1:|0x2 0:&0xFD
// DSAS P62 1:|0x4 0:&0xFB
// DSCS P63 1:|0x8 0:&0xF7
// DSAS=0;
P6 = P6 & 0xFB;
// DSDS=1;
P6 = P6 | 0x1;
// DSRW=1;
P6 = P6 | 0x2;
// DSCS=1;
P6 = P6 | 0x8;
// DSDS=0;
P6 = P6 & 0xFE;
// DSAS=1;
P6 = P6 | 0x4;
P5=address;
// DSCS=0;
P6 = P6 & 0xF7;
// DSAS=0;
P6 = P6 & 0xFB;
// DSRW=0;
P6 = P6 & 0xFD;
// DSDS=1;
P6 = P6 | 0x1;
P5=dsdata;
// DSDS=0;
P6 = P6 & 0xFE;
// DSRW=1;
P6 = P6 | 0x2;
// DSAS=1;
P6 = P6 | 0x4;
// DSCS=1;
P6 = P6 | 0x8;
}
/**************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -