DS1302是一种三线制的串行时钟芯片,即CE(片选),SCLK(时钟),I/O(双向数据)。从严格意义上来说,它不是SPI总线类型的,因为SPI的数据线的输入输出是分开的,但是我们操作的时候可以用带SPI的硬件接口的MCU,比如PIC16F877的MSSP模块。
命令字节的基本格式
存储器结构
需要注意的地方:
1.在上电时,RST 必须为逻辑0直至Vcc>2.0V。同时SCLK 在RST 驱动至逻辑1 状态时必须为逻辑0。
2.数据输入是在SCLK的上升沿,数据输出是在SCLK的下降沿。
3.传输方式:低位先传输。
4.时钟运行:秒寄存器的最高位(BIT7)是作为时钟控制位,当为逻辑1时,时钟停止,为0时钟运行。所以如果要时钟运行的话就必须将秒寄存器的最高位清0
5.12/24小时模式:小时寄存器的第7位(最高位)是选择12小时制还是24小时制。当为逻辑1时选择12小时,逻辑0选择24小时。当为12小时制时,小时寄存器的第5位用来表示上午AM和下午PM,逻辑1的时候表示PM,逻辑0的时候表示AM。
6.在企图对DS1302操作之前,必须将WP位清零。
7.读写模式:有两种模式,可以单字节读写,以及连续多字节读写(burst mode)。在连续多字节读写时,即burst mode,地址是必须从地址0的0位开始的。如果对时钟操作,即CLOCK操作,则必须连续写满8个字节,若是对RAM操作,则可以不必须写满31个字节。
8.DS1302包含了实时时钟日历和31个字节的RAM,这里需要注意的是实时时钟日历的8个寄存器和31个字节的RAM是独立的,没有任何关系,不要混淆。31个RAM字节可以做其他用途,如闹钟等。因为DS1302有电池供电,所以RAM的内容不会丢失,相当于EEPROM了。用户可以用来实现特别的要求。
9.时序必须严格按照其数据手册上来。
10.DS1302具有可编程的涓流充电功能,这对于经常断电的场合,意义重大。
对于涓流充电电流的大小,可以根据以下公式计算:
IMAX = (5.0V–diodedrop)/R1;
其中,diodedrop为二极管压降,R1为选择的电阻大小。
关键字:实时时钟芯片 DS1302
引用地址:
实时时钟芯片DS1302
推荐阅读最新更新时间:2024-03-16 14:40
51单片机DS1302时钟芯片简单程序
#include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int data_7seg ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; uchar hour,min,sec; sbit shi=P1^0; sbit fen=P1^1; sbit miao=P1^2; sbit rst=P1^4; sbit sck=P1^5; sbit io=P1^6; sbit fm=P1^7; /*函数声明:*/ void write_ds1302_byte(ucha
[单片机]
时钟芯片DS1302可靠起振的方法
概述 DS1302是Dallas公司生产的一种实时时钟芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还能提供31字节的用于高速数据暂存的RAM。鉴于上述特点,DS1302已在许多单片机系统中得到应用,为系统提供所需的实时时钟信息。 一、 DS1302的主要特性 1. 引脚排列 图1 DS1302引脚排列图 DS1302的引脚排列如图1所示,各引脚的功能如下: X1,X2——32768Hz晶振引脚端; RST——
[单片机]
AVR DS1302 程序源代码
发现网上一些程序在16M晶振下不能工作,自己写了个,按照2V的时序写的,但只在5V和3.3V下测试过. 以下是两个主要的文件 DS1302.h: /************ AVR DS1302程序 ************ * 目标.........: ATmega128 * 文件名.......: DS1302.h * 编译器.......: IAR for AVR V5.5 ****************************************/ #ifndef __DS1302_H__ #define __DS1302_H__ #include DS1302.c: /*********
[单片机]
DS1302读写驱动程序
/************************** 文件所用资源 1.端口:P0.4,P0.5,P0.6 2.调用delay_ms函数 **************************/ /*********************** 1302引脚定义 ***********************/ sbit T_RST = P0^4; sbit T_DAT = P0^5; sbit T_CLK = P0^6; /******************************** 1302子程序区 ********************************/ /***************************
[单片机]
PIC16F877A例程---DS1302程序
#include pic.h //调用头文件 //#include pic1687x.h __CONFIG(0x3F32); //芯片配置字 //__CONFIG(HS&UNPROTECT&PWRTEN&BORDIS&WDTDIS);//芯片配置字 //__CONFIG(0x3FFD&0x3FFF&0x3FF7&0x3FBF&0x3FFB);//芯片配置字 #define uchar unsigned char #define uint unsigned int //联接DS1302的端口定义 #define ds1302_rst RC2 //定义13
[单片机]
DS1302时钟芯片的MSP430程序
//MSP430 Advanced Developping Components - ////DS1302 Trickle Charge Timekeeping Chip //MSP430高级实验开发组件 - DS1302时钟芯片 //时钟设置: ////ACLK=N/A,MCLK=SMCLK=default(DCO~800k) //硬件连接: //// MSP430 MCU DS1302 //// ------------------ ------------------ //// | P20 | ------ | SCLK
[单片机]