• 大小: 139KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: DS1302  

资源简介

STC15F2K48S2单片机,DS1302获取当前时间,并且将时间通过串口2发出去

资源截图

代码片段和文件信息

#include“ds1302.h“

//---DS1302写入和读取时分秒的地址命令---//
//---秒分时日月周年 最低位读写位;-------//
uchar code READ_RTC_ADDR[7] = {0x81 0x83 0x85 0x87 0x89 0x8b 0x8d};
uchar code WRITE_RTC_ADDR[7] = {0x80 0x82 0x84 0x86 0x88 0x8a 0x8c};
extern uchar xdata TIMES[7];
/*******************************************************************************
* 函 数 名         : Ds1302Write
* 函数功能      : 向DS1302写时间
* 输    入         : addrdat
* 输    出         : 无
*******************************************************************************/
void Ds1302Write_time(uchar addr uchar dat)
{
Ds1302Write(0x8E0x00);  //禁止写保护,就是关闭写保护功能
Ds1302Write(addrdat);
  Ds1302Write(0x8E0x80);  //打开写保护功能
}

/*******************************************************************************
* 函 数 名         : Ds1302Write
* 函数功能      : 向DS1302命令(地址+数据)
* 输    入         : addrdat
* 输    出         : 无
*******************************************************************************/

void Ds1302Write(uchar addr uchar dat)
{
    uchar n;
    RST = 0;
    _nop_();

    SCLK = 0;//先将SCLK置低电平。
    _nop_();
    RST = 1; //然后将RST(CE)置高电平。
    _nop_();

    for (n=0; n<8; n++)//开始传送八位地址命令
    {
        DSIO = addr & 0x01;//数据从低位开始传送
        addr >>= 1;
        SCLK = 1;//数据在上升沿时,DS1302读取数据
        _nop_();
        SCLK = 0;
        _nop_();
    }
    for (n=0; n<8; n++)//写入8位数据
    {
        DSIO = dat & 0x01;
        dat >>= 1;
        SCLK = 1;//数据在上升沿时,DS1302读取数据
        _nop_();
        SCLK = 0;
        _nop_();
    }

    RST = 0;//传送数据结束
    _nop_();
}

/*******************************************************************************
* 函 数 名         : Ds1302Read
* 函数功能      : 读取一个地址的数据
* 输    入         : addr
* 输    出         : dat
*******************************************************************************/

uchar Ds1302Read(uchar addr)
{
    uchar ndatdat1;
    RST = 0;
    _nop_();

    SCLK = 0;//先将SCLK置低电平。
    _nop_();
    RST = 1;//然后将RST(CE)置高电平。
    _nop_();

    for(n=0; n<8; n++)//开始传送八位地址命令
    {
        DSIO = addr & 0x01;//数据从低位开始传送
        addr >>= 1;
        SCLK = 1;//数据在上升沿时,DS1302读取数据
        _nop_();
        SCLK = 0;//DS1302下降沿时,放置数据
        _nop_();
    }
    _nop_();
    for(n=0; n<8; n++)//读取8位数据
    {
        dat1 = DSIO;//从最低位开始接收
        dat = (dat>>1) | (dat1<<7);
        SCLK = 1;
        _nop_();
        SCLK = 0;//DS1302下降沿时,放置数据
        _nop_();
    }

    RST = 0;
    _nop_(); //以下为DS1302复位的稳定时间必须的。
    SCLK = 1;
    _nop_();
    DSIO = 0;
    _nop_();
    DSIO = 1;
    _nop_();
    return dat;
}

/*******************************************************************************
* 函 数 名         : Ds1302Init
* 函数功能       : 初始化DS1302.
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/

void Ds1302Init()
{
    uchar n;
    Ds1302Write(0x8E0X00);  //禁止写保护,就是关闭写保护功能

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1239  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302

     文件       5090  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.ASM

     文件        550  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.hex

     文件         44  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.lnp

     文件      12544  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.LST

     文件       5957  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.M51

     文件       1310  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.OBJ

     文件        847  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.Opt

     文件        172  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.plg

     文件       1705  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302.Uv2

     文件        851  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302_Opt.Bak

     文件       1706  2018-06-04 20:10  ds1302+uart2\12T\ASM\DS1302_Uv2.Bak

     文件       6883  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302

     文件       4341  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.C

     文件       1061  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.hex

     文件         44  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.lnp

     文件       7813  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.LST

     文件      11426  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.M51

     文件       7922  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.OBJ

     文件        843  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.Opt

     文件        170  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.plg

     文件       1701  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302.Uv2

     文件        856  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302_Opt.Bak

     文件       1702  2018-06-04 20:10  ds1302+uart2\12T\C\DS1302_Uv2.Bak

     文件       1189  2018-06-04 20:10  ds1302+uart2\1T\ASM\DS1302

     文件       5002  2018-06-04 20:10  ds1302+uart2\1T\ASM\DS1302.ASM

     文件        550  2018-06-04 20:10  ds1302+uart2\1T\ASM\DS1302.hex

     文件         44  2018-06-04 20:10  ds1302+uart2\1T\ASM\DS1302.lnp

     文件      12041  2018-06-04 20:10  ds1302+uart2\1T\ASM\DS1302.LST

     文件       5587  2018-06-04 20:10  ds1302+uart2\1T\ASM\DS1302.M51

............此处省略52个文件信息

评论

共有 条评论