STC单片机 DS1302

这篇博客介绍了DS1302,一款由DALLAS公司推出的高性能、低功耗实时时钟电路,支持年月日时分秒计时并具备闰年补偿功能。DS1302通过三线接口与CPU通信,并包含一个31×8的RAM。文章还分享了一段经过作者修改并长期使用的STC单片机控制DS1302的代码,旨在帮助新手入门。
摘要由CSDN通过智能技术生成

简介:

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

下面记录下代码,这个器件相对来说比较简单,我这份代码,我已经使用很久,个人感觉很好用.代码的来源也是网上获取,我适当做了一些修改.希望给新人一些适当的指导吧.我也是这么过来的...

ds1302.h

#ifndef _REAL_TIMER_DS1302_2003_7_21_
#define _REAL_TIMER_DS1302_2003_7_21_


//定义使用1t或者12t芯片
//#define	USE_1T	1
#define	USE_12T	1


#ifdef	USE_1T 
	#include <STC_NEW_8051.H>
#endif


#ifdef	USE_12T 
	#include <reg52.h>
#endif


#include "INTRINS.H"




sbit DS1302_CLK = P1^1;              //实时时钟时钟线引脚 
sbit DS1302_IO  = P1^0;              //实时时钟数据线引脚 
sbit DS1302_RST = P1^2;              //实时时钟复位线引脚
sbit ACC0 = ACC^0;
sbit ACC7 = ACC^7;


typedef struct __SYSTEMTIME__
{
unsigned char Second;
unsigned char Minute;
unsigned char Hour;
unsigned char Week;
unsigned char Day;
unsigned char Month;
unsigned char Year;
//unsigned char DateString[9];
//unsigned char TimeString[9];
}SYSTEMTIME; //定义的时间类型


#define AM(X)  X
#define PM(X) (X+12)               					// 转成24小时制
#define DS1302_SECOND 0x80
#define DS1302_MINUTE 0x82
#define DS1302_HOUR   0x84 
#define DS1302_WEEK   0x8A
#define DS1302_DAY   0x86
#define DS1302_M
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值