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

📄 ds12887.c

📁 一个分选系统的软件:用SmallRtos操作系统
💻 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 + -