1 STC单片机控制DS1302程序 (C程序)-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STC单片机控制DS1302程序 (C程序)

算法&编程学院 来源:网络整理 2018-02-03 03:14 次阅读

#include"REG51.H"

#include"INTRINS.H"

typedefunsignedcharBYTE;

sbitSCLK=P1^0;//DS1302时钟口P1.0

sbitIO=P1^1;//DS1302数据口P1.1
sbitRST=P1^2;//DS1302片选口P1.2

//秒分时日月星期年
BYTEcodeinit[]={0x00,0x00,0x20,0x01,0x01,0x05,0x10};
BYTEdatanow[7];

voidDS1302_Initial();
voidDS1302_SetTime(BYTE*p);
voidDS1302_GetTime(BYTE*p);

voidmain()
{
DS1302_Initial();//初始化DS1302
DS1302_SetTime(init);//设置初始时间

DS1302_GetTime(now);//读取当前时间
while(1);
}

/**************************************
延时X微秒(STC12C5A60S2@12M)
不同的工作环境,需要调整此函数
此延时函数是使用1T的指令周期进行计算,与传统的12T的MCU不同
**************************************/
voidDelay()
{
_nop_();
_nop_();
}

/**************************************
从DS1302读1字节数据
**************************************/
BYTEDS1302_ReadByte()
{
BYTEi;
BYTEdat=0;

for(i=0;i>=1;//数据右移一位
if(IO)dat|=0x80;//读取数据
SCLK=1;//时钟线拉高
Delay();//延时等待
}

returndat;
}

/**************************************
向DS1302写1字节数据
**************************************/
voidDS1302_WriteByte(BYTEdat)
{
chari;

for(i=0;i>=1;//移出数据
IO=CY;//送出到端口
SCLK=1;//时钟线拉高
Delay();//延时等待
}
}

/**************************************
读DS1302某地址的的数据
**************************************/
BYTEDS1302_ReadData(BYTEaddr)
{
BYTEdat;

RST=0;
Delay();
SCLK=0;
Delay();
RST=1;
Delay();
DS1302_WriteByte(addr);//写地址
dat=DS1302_ReadByte();//读数据
SCLK=1;
RST=0;

returndat;
}

/**************************************
往DS1302的某个地址写入数据
**************************************/
voidDS1302_WritEDAta(BYTEaddr,BYTEdat)
{
RST=0;
Delay();
SCLK=0;
Delay();
RST=1;
Delay();
DS1302_WriteByte(addr);//写地址
DS1302_WriteByte(dat);//写数据
SCLK=1;
RST=0;
}

/**************************************
写入初始时间
**************************************/
voidDS1302_SetTime(BYTE*p)
{
BYTEaddr=0x80;
BYTEn=7;

DS1302_WriteData(0x8e,0x00);//允许写操作
while(n--)
{
DS1302_WriteData(addr,*p++);
addr+=2;
}
DS1302_WriteData(0x8e,0x80);//写保护
}

/**************************************
读取当前时间
**************************************/
voidDS1302_GetTime(BYTE*p)
{
BYTEaddr=0x81;
BYTEn=7;

while(n--)
{
*p++=DS1302_ReadData(addr);
addr+=2;
}
}

/**************************************
初始化DS1302
**************************************/
voidDS1302_Initial()
{
RST=0;
SCLK=0;
DS1302_WriteData(0x8e,0x00);//允许写操作
DS1302_WriteData(0x80,0x00);//时钟启动
DS1302_WriteData(0x90,0xa6);//一个二极管+4K电阻充电
DS1302_WriteData(0x8e,0x80);//写保护
}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634580
收藏 人收藏

    评论

    相关推荐

    PIC单片机控制时钟芯片DS1302汇编程序

    PIC单片机控制时钟芯片DS1302汇编程序
    发表于 05-24 09:56 1759次阅读

    单片机制作RTC实时时钟(DS1302)程序C语言版】

    单片机制作RTC实时时钟(DS1302)程序C语言版】,感兴趣的可以看看。
    发表于 12-30 13:48 0次下载

    基于单片机的综合应用程序ds1302送1602【C语言】

    基于单片机的综合应用程序ds1302送1602【C语言】
    发表于 01-06 14:22 6次下载

    基于单片机的综合应用程序ds1302送1602【C语言】显示时

    基于单片机的综合应用程序ds1302送1602【C语言】 显示时间
    发表于 01-06 14:21 4次下载

    基于单片机的综合应用程序ds1302送1602_C语言_显示日期

    基于单片机的综合应用程序ds1302送1602【C语言】 显示日期和时间
    发表于 01-06 14:20 7次下载

    51单片机DS1302实时时钟驱动程序

    本文首先阐述了ds1302引脚及功能,其次介绍了DS1302控制字节及电路图,最后详细介绍了51单片机DS1302实时时钟驱动
    发表于 05-15 08:45 9522次阅读
    51<b class='flag-5'>单片机</b><b class='flag-5'>DS1302</b>实时时钟驱动<b class='flag-5'>程序</b>

    使用单片机应用DS1302的时钟程序免费下载

    本文档的主要内容详细介绍的是使用单片机应用DS1302的时钟程序免费下载。
    发表于 08-20 17:31 7次下载
    使用<b class='flag-5'>单片机</b>应用<b class='flag-5'>DS1302</b>的时钟<b class='flag-5'>程序</b>免费下载

    51单片机DS1302时钟驱动程序免费下载

    本文档的主要内容详细介绍的是51单片机DS1302时钟驱动程序免费下载。
    发表于 07-10 17:40 14次下载
    51<b class='flag-5'>单片机</b>的<b class='flag-5'>DS1302</b>时钟驱动<b class='flag-5'>程序</b>免费下载

    使用51单片机DS1302芯片设计的LED时钟的C语言程序和工程文件

    本文档的主要内容详细介绍的是使用51单片机DS1302芯片设计的LED时钟的C语言程序和工程文件免费下载。
    发表于 09-03 08:00 7次下载
    使用51<b class='flag-5'>单片机</b>和<b class='flag-5'>DS1302</b>芯片设计的LED时钟的<b class='flag-5'>C</b>语言<b class='flag-5'>程序</b>和工程文件

    基于51单片机多功能时钟DS1302仿真设计(包含源程序及仿真)

    基于51单片机多功能时钟DS1302仿真设计,资料包含源程序及仿真文件
    发表于 04-20 16:28 23次下载

    基于单片机控制DS1302时钟带VB上位包含proteus仿真

    基于单片机控制DS1302时钟带VB上位包含proteus仿真源程序
    发表于 04-20 15:40 2次下载

    基于89C51单片机的1602液晶显示DS1302时钟源程序

    基于89C51单片机的1602液晶显示DS1302时钟源程序
    发表于 05-16 10:27 7次下载

    基于89C51单片机DS1302时钟原理源程序

    基于89C51单片机DS1302 时钟原理源程序
    发表于 05-16 10:05 10次下载

    基于89C51单片机DS1302可调时钟源程序

    基于89C51单片机DS1302可调时钟源程序
    发表于 05-16 10:05 3次下载

    基于89C51单片机DS1302时钟串口自动更新时间源程序

    基于89C51单片机DS1302时钟串口自动更新时间源程序
    发表于 05-16 10:04 1次下载