(完整版)DS1302时钟芯片

合集下载

时钟芯片DS1302资料

时钟芯片DS1302资料

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用SPI三线接口与单片机进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力,保证备用电力永久供电。

图3.4 DS1302的外部引脚分配图3.5 DS1302内部结构各引脚的功能为:(1)Vcc2:主电源;Vcc1:备份电源。

当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<Vcc1时,由Vcc1向DS1302供电。

(2)SCLK:串行时钟输入,控制数据的输入与输出。

(3)I/O:三线接口时的双向数据线。

(4)RST:输入信号,在读、写数据期间,必须为高。

DS1302有下列几组寄存器:(1)DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如表3.1所示。

小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。

秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。

当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。

控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。

在任何的对时钟和RAM的写操作之前,WP位必须为0。

当WP位为1时,写保护位防止对任一寄存器的写操作。

(2)DS1302有关RAM的地址。

DS1302中附加31字节静态RAM的地址如表3.2所示。

(3)DS1302的工作模式寄存器。

DS1302万年历芯片

DS1302万年历芯片

DS1302时钟时间芯片#include<reg52.h>#include<INTRINS.H>/************************************************************/#define uchar unsigned char#define uint unsigned int#define write_second 0x80 //秒开始数存储,修改用(下同)#define write_minute 0x82 //分开始数存储#define write_hour 0x84 //时开始数存储,12小时计时,从0开始要写入0x80(12小时要判断上下午)。

#define read_second 0x81 //秒,显示要读这个存储器#define read_minute 0x83 //分,显示要读这个存储器#define read_hour 0x85 //时,显示要读这个存储器#define write_day 0x86#define read_day 0x87#define write_month 0x88#define read_month 0x89#define write_week 0x8A#define read_week 0x8B#define write_year 0x8C#define read_year 0x8D#define write_protect 0x8E/************************************************************/ sbit ACC_7=ACC^7;sbit SCLK =P1^2;sbit DIO =P1^3;sbit CE =P1^4; //protus软件中的RES脚/********************************/uchar dd[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(char us){char m,n;while(us--){for(m=0;m<40;m++)for(n=0;n<50;n++);}}/**********/void write1302(unsigned char addr,dat){unsigned char i,temp; CE=0;SCLK=0;CE=1;for(i=0;i<8;i++){SCLK=0;temp=addr;if(temp&0x01==0x01) DIO=1;elseDIO=0;addr>>=1;SCLK=1;}for(i=0;i<8;i++){SCLK=0;temp=dat;if(temp&0x01==0x01) DIO=1;elsedat>>=1;SCLK=1;}}unsigned char read1302(unsigned char addr) {unsigned char i,temp,dat1,dat2;CE=0;SCLK=0;CE=1;for(i=8;i>0;i--)//дÈë¶ÁÊý¾ÝµØÖ·{SCLK =0;temp =addr;if(temp&0x01==0x01)DIO=1;elseDIO=0;addr>>=1;SCLK=1;for(i=8;i>0;i--)//¶ÁÊý¾Ý{ACC_7=DIO;SCLK=1;ACC>>=1;SCLK=0; //下降沿读出数据 }CE=0;dat1=ACC;dat2=dat1/16;dat1=dat1%16;dat1=dat1+dat2*10;return(ACC);}///////////////////////////////////// void Initial(void){write1302(write_protect,0x00); write1302(write_second,0x56); write1302(write_minute,0x34);write1302(write_hour,0x12);write1302(write_protect,0x80);}/////////////////////void main(void){unsigned char tt1,tt2,hour;Initial();write1302(write_second,0x55); //秒从55开始write1302(write_minute,0x59); //分从59开始write1302(write_hour,0x8B); //赋值0x80,为12小时计时,但低五位为计时为,所以,显示只显示低五位,小时从11开始write1302(write_year,0x0f); //15年write1302(write_week,0x03);//周三write1302(write_month,0x0a);//10月while(1){tt1=read1302(read_second);tt2=read1302(read_hour) & 0x1f; //取出低五位if(read1302(read_hour) & 0x20==0x20) //12小时计时判断上下午hour="pm "; // afternoonelsehour="am ";//morningP0=dd[tt1/10];P2=0xfe;delay(2);P2=0xff;P0=dd[tt1%10];P2=0xfd;delay(2);P2=0xff;P0=dd[tt2/10];P2=0xf7;delay(2);P2=0xff;P0=dd[tt2%10];P2=0xfb;delay(2);P2=0xff;}}。

ds1302数字时钟芯片

ds1302数字时钟芯片

《DS1302数字时钟芯片》1. 内置电池备份功能,确保时间信息在断电情况下依然准确无误;2. 精度高,每月误差不超过±30秒;3. 支持秒、分、时、日、月、周、年的计时,满足日常生活和工作需求;4. 通过串行通信接口与单片机或其他设备进行数据交换,操作简单;5. 超低功耗设计,节能环保。

下面,让我们详细了解DS1302数字时钟芯片的内部结构、工作原理及实际应用。

《DS1302数字时钟芯片》二、内部结构与关键特性1. 时钟模块:包含了时钟振荡器、分频器以及时钟计数器。

振荡器采用32.768kHz的晶振,保证了时间的精确度。

分频器将振荡器输出的频率分频至1Hz,供时钟计数器使用。

2. RAM存储器:DS1302内置31字节静态RAM,可用于存储临时数据或用户自定义信息,方便在不干扰时钟运行的情况下进行数据保存。

3. 电源管理模块:DS1302具备掉电保护功能,当外部电源断电时,内置的锂电池可以自动为芯片供电,确保时钟正常运行。

4. 串行接口:采用三线接口(时钟线、数据线、复位线),简化了与外部设备的连接,便于实现数据的同步传输。

三、工作原理1. 初始化:通过复位线将DS1302复位,使其进入待命状态,准备接收命令。

2. 命令发送:单片机或其他控制器通过串行接口向DS1302发送命令,包括读/写时钟数据、RAM数据等。

3. 数据交换:在命令发送后,DS1302根据命令类型进行数据读出或写入操作。

数据传输过程中,时钟线控制数据同步,数据线传输数据位。

4. 数据处理:单片机接收到DS1302的数据后,可进行时间显示、闹钟设置等操作。

四、实际应用1. 智能家居:作为时间基准,用于家庭安防、照明、温控等系统的定时控制。

2. 儿童手表:为孩子提供准确的时间显示,便于家长监控和管理孩子的作息。

3. 工业自动化:在生产线控制、设备维护等领域,实现精确的时间记录和任务调度。

4. 环境监测:结合其他传感器,实现对环境数据的实时采集和记录,为环境保护提供数据支持。

ds1302芯片

ds1302芯片

ds1302芯片DS1302芯片是一种实时时钟(RTC)芯片,由Maxim集成电路公司生产。

它是一款非常强大和广泛应用的芯片,具有可靠的性能和低功耗。

本文将对DS1302芯片进行详细介绍。

首先,DS1302芯片主要用于系统中对时间进行实时监控和记录。

它可以精确地记录年、月、日、小时、分钟和秒,并且可以显示星期几。

可以使用8位的数据总线进行通信,方便地与其他设备进行连接。

其次,DS1302芯片具有非常低的功耗。

在正常工作模式下,它只需要2.0V至5.5V的供电电压,并且可以使用电池备份供电,以防止停电时数据丢失。

在备份供电模式下,芯片的功耗非常低,仅为0.2μA。

此外,DS1302芯片具有时钟校正功能。

它可以通过外部的32.768kHz晶体振荡器来校准内部时钟,以确保精准的时间记录。

这样可以减少时间误差,使得芯片的性能更加可靠。

同时,DS1302芯片还具有多种功能。

它支持两种不同的数据格式:BCD(二进制编码十进制)和二进制。

可以根据系统的需求选择不同的格式。

此外,芯片还具有写保护功能,可以防止未经授权的数据修改。

此外,DS1302芯片还具有温度传感器。

它可以测量环境温度,并将结果以数字形式传回主控制器。

这对于需要监控环境温度的应用非常有用。

最后,DS1302芯片可广泛应用于各种电子设备中。

例如,它可以用于电子钟、计时器、温控系统、数据记录器等。

其性能可靠,并具有广泛的兼容性。

总之,DS1302芯片是一款非常强大和广泛应用的实时时钟芯片。

它具有高度精确的时间记录功能、低功耗、时钟校正功能、多种数据格式支持、写保护功能和温度传感器等特点。

通过DS1302芯片,可以为各种电子设备提供准确、可靠的时间显示和记录功能。

DS1302芯片资料

DS1302芯片资料

DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM,通过简单的串行接口与单片机进行通信实时时钟/日历电路.提供秒分时日日期.月年的信息,每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式.DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1 RES 复位,2 I/O 数据线,3 SCLK串行时钟.时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信.DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW.DS1302 是由DS1202 改进而来,增加了以下的特性.双电源管脚用于主电源和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器.它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域.下面将主要的性能指标作一综合:实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力;31 8 位暂存数据存储RAM;串行I/O 口方式使得管脚数量最少;宽范围工作电压2.0 5.5V;工作电流2.0V 时,小于300nA;读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式;8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配;简单3 线接口;与TTL 兼容Vcc=5V;可选工业级温度范围-40 +85;与DS1202 兼容;在DS1202 基础上增加的特性;对Vcc1 有可选的涓流充电能力;双电源管用于主电源和备份电源供应;备份电源管脚可由电池或大容量电容输入;附加的7 字节暂存存储器;1 DS1302 的基本组成和工作原理DS1302 的引脚功能排列及描述如下图所示.ds1302引脚图管脚描述X1 X2 32.768KHz 晶振管脚GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚DS1302 串行时钟芯片8 脚DIPDS1302S 串行时钟芯片8 脚SOIC 200milDS1302Z 串行时钟芯片8 脚SOIC 150mil2. DS1302 内部寄存器CH: 时钟停止位存器2 的第7 位12/24 小时标志CH=0 振荡器工作允许bit7=1,12 小时模式CH=1 振荡器停止 bit7=0,24 小时模式WP: 写保护位寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能够写入 AP=1 下午模式WP=1 寄存器数据不能写入AP=0 上午模式TCS: 涓流充电选择 DS: 二极管选择位TCS=1010 使能涓流充电 DS=01 选择一个二极管TCS=其它禁止涓流充电DS=10 选择两个二极管时钟:DS1302 与微控制器的接口软件及功能应用举例下面首先给出基本的接口软件然后举例说明各种功能的应用1 写保护寄存器操作当写保护寄存器的最高位为0 时允许数据写入寄存器写保护寄存器可以通过命令字节8E,8F 来规定禁止写入/读出写保护位不能在多字节传送模式下写入Write_Enable:MOV Command,#8Eh ;命令字节为8EMOV ByteCnt,#1 ;单字节传送模式MOV R0,#XmtDat 数据地址覆给R0MOV XmtDat,#00h 数据内容为0 写入允许ACALL Send_Byte 用写入数据子程序RET 返回调用本子程序处当写保护寄存器的最高位为1 时禁止数据写入寄存器Write_Disable:MOV Command,#8Eh ;命令字节为8EMOV ByteCnt,#1 ;单字节传送模式MOV R0,#XmtDat 数据地址覆给R0MOV XmtDat,#80h 数据内容为80h 禁止写入ACALL Send_Byte 调用写入数据子程序RET返回调用本子程序处以上程序调用了基本数据发送(Send_Byte)模块及一些内存单元定义, 其源程序清单在附录中给出下面的程序亦使用了这个模块2 时钟停止位操作当把秒寄存器的第7 位时钟停止位设置为0 时起动时钟开始Osc_Enable:MOV Command,#80h ; 命令字节为80MOV ByteCnt,#1 ; 单字节传送模式MOV 0,#XmtDat 数据地址覆给R0 MOV XmtDat,#00h 数据内容为0 振荡器工作允许ACALL Send_Byte 调用写入数据子程序RET返回调用本子程序处当把秒寄存器的第7 位时钟停止位设置为1 时时钟振荡器停止HT1380 进入低功耗方式Osc_Disable:MOV Command,#80h ;命令字节为80MOV ByteCnt,#1 ;单字节传送模式MOV R0,#XmtDat 数据地址覆给R0MOV XmtDat,#80h 数据内容为80h 振荡器停止ACALL Send_Byte 调用写入数据子程序RET返回调用本子程序处3. 多字节传送方式当命令字节为BE 或BF 时DS1302 工作在多字节传送模式8 个时钟/日历寄存器从寄存器0 地址开始连续读写从0 位开始的数据当命令字节为FE 或FF 时DS1302 工作在多字节RAM 传送模式31 个RAM 寄存器从0 地址开始连续读写从0 位开始的数据例如写入00 年6 月21 日星期三13 时59 分59 秒程序设置如下Write_Multiplebyte:MOV Command,#0BEh ;命令字节为BEhMOV ByteCnt,#8 ;多字节写入模式此模块为8 个MOV R0,#XmtDat 数据地址覆给R0MOV XmtDat,#59h 秒单元内容为59hMOV XmtDat+1,#59h 分单元内容为59hMOV XmtDat+2,#13h 时单元内容为13hMOV XmtDat+3,#21h 日期单元内容为21hMOV XmtDat+4,#06h 月单元内容为06hMOV XmtDat+5,#03h 星期单元内容为03hMOV XmtDat+6,#0 年单元内容为00h MOV XmtDat+7,#0 写保护单元内容为00hACALL Send_Byte 调用写入数据子程序RET返回调用本子程序处读出寄存器0-7 的内容程序设置如下Read_Multiplebyte:MOV Command,#0BFh 命令字节为BFhMOV ByteCnt,#8 ; 多字节读出模式此模块为8 个MOV R1,#RcvDat 数据地址覆给R1ACALL Receive_Byte 调用读出数据子程序RET返回调用本子程序处以上程序调用了基本数据接收(Receive_Byte)模块及一些内存单元定义, 其源程序清单在附录中给出下面的程序亦使用了这个模块4. 单字节传送方式例如写入8 时12 小时模式程序设置如下Write_Singlebyte:MOV Command,#84h ; 命令字节为84hMOV ByteCnt,#1 ; 单字节传送模式MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#88h 数据内容为88h ACALL Send_Byte 调用写入数据子程序RET返回调用本子程序处上面所列出的程序模块Write_Enable Write_Disable Osc_Enable Osc_Disable 与单字节写入模块Write_Singlebyte 的程序架构完全相同仅只是几个入口参数不同本文是为了强调功能使用的不同才将其分为不同模块另外,与涓流充电相关的设定也是单字节操作方式,这里就不再单独列出,用户在使用中可灵活简略.下面模块举例说明如何单字节读出小时单元的内容.Read_Singlebyte:MOV Command,#85h ; 命令字节为85h MOV ByteCnt,#1 ; 单字节传送模式MOV R1,#RcvDat 数据地址覆给R1ACALL Receive_Byte 调用读出数据子程序RET返回调用本子程序处DS1302 应用电路原理图P87LPC764 单片机选取内部振荡及内部复位电路附录数据发送与接收模块源程序清单; CPU 工作频率最大不超过20MHz;; P87LPC762/4 主控器发送接受数据程序; 说明本程序是利用Philips 公司的P87LPC764 单片机任何具有51 内核或其它合适的单片机都可在此作为主控器的普通I/O 口(如P1.2/P1.3/P1.4)实现总线的功能对总线上的器件本程序采用DS1302进行读写操作命令字节在Command 传送字节数在ByteCnt 中所发送的数据在XmtDat 中所接收的数据在RcvDat 中;;P87LPC762/4 主控器总线发送接受数据程序头文件;内存数据定义BitCnt data 30h ; 数据位计数器ByteCnt data 31h ; 数据字节计数器Command data 32h ; 命令字节地址RcvDat DATA 40H ; 接收数据缓冲区XmtDat DATA 50H ; 发送数据缓冲区;端口位定义IO_DATA bit P1.3 ; 数据传送总线SCLK bit P1.4 ; 时钟控制总线RST bit P1.2 ; 复位总线;;发送数据程序;名称:Send_Byte;描述:发送ByteCnt 个字节给被控器DS1302;命令字节地址在Command 中;所发送数据的字节数在ByteCnt 中发送的数据在XmtDat 缓冲区中;Send_Byte:CLR RST ;复位引脚为低电平所有数据传送终止NOPCLR SCLK 清时钟总线NOPSETB RST ;复位引脚为高电平逻辑控制有效NOPMOV A,Command 准备发送命令字节MOV BitCnt,#08h 传送位数为8S_Byte0:RRC A 将最低位传送给进位位CMOV IO_DATA,C 位传送至数据总线NOPSETB SCLK 时钟上升沿发送数据有效NOPCLR SCLK 清时钟总线DJNZ BitCnt,S_Byte0 位传送未完毕则继续NOPS_Byte1:准备发送数据MOV A,@R0 传送数据过程与传送命令相同MOV BitCnt,#08hS_Byte2:RRC AMOV IO_DATA,CNOPSETB SCLKNOPCLR SCLKDJNZ BitCnt,S_Byte2INC R0发送数据的内存地址加1DJNZ ByteCnt,S_Byte1 字节传送未完毕则继续NOPCLR RST逻辑操作完毕清RSTRET;接收数据程序;;名称:Receive_Byte;描述:从被控器DS1302 接收ByteCnt 个字节数据;命令字节地址在Command 中;所接收数据的字节数在ByteCnt 中接收的数据在RcvDat 缓冲区中Receive_Byte:CLR RST;复位引脚为低电平所有数据传送终止NOPCLR SCLK 清时钟总线NOPSETB RST ;复位引脚为高电平逻辑控制有效MOV A,Command 准备发送命令字节MOV BitCnt,#08h 传送位数为8R_Byte0:RRC A将最低位传送给进位位CMOV IO_DATA,C 位传送至数据总线NOPSETB SCLK 时钟上升沿发送数据有效NOPCLR SCLK 清时钟总线DJNZ BitCnt,R_Byte0 位传送未完毕则继续NOPR_Byte1: 准备接收数据CLR A清类加器CLR C清进位位CMOV BitCnt,#08h 接收位数为8R_Byte2:NOPMOV C,IO_DATA 数据总线上的数据传送给C RRC A从最低位接收数据SETB SCLK 时钟总线置高NOPCLR SCLK 时钟下降沿接收数据有效DJNZ BitCnt,R_Byte2 位接收未完毕则继续MOV @R1,A 接收到的完整数据字节放入接收内存缓冲区INC R1 接收数据的内存地址加1DJNZ ByteCnt,R_Byte1 字节接收未完毕则继续NOPCLR RST 逻辑操作完毕清RSTRETEND直流参数表:主要电参数表:交流参数表:电容配置表:。

DS1302概述

DS1302概述

DS1302有关RAM的地址 DS1302中附加31字节静态RAM的地址
DS1302的工作模式寄存器 所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。 突发模式寄存器
DS1302充电寄存器
寄存器地址是08H 读操作是91H 写操作是90H

2-3位:
0-1位:
DS=01 为一个二极管 DS=10 为二个二极管 DS=00 无二极管,不能充电 DS=11 无二极管,不能充电 RS=00 无电阻,不能充电 RS=01 2K RS=10 4K RS=11 8K
DS1302读写时序 DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字, 还需要读取相应寄存器的数据。 要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如图
控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。 位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据; 位5至位1(A4~A0):指示操作单元的地址; 位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。 读数据: 读数据时在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据, 读出的数据是从最低位到最高位。 写数据: 控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时, 数据被写入DS1302,数据输入也是从最低位(0位)开始。
DS1302时钟芯片
DS1302时钟芯片
DS1302是美国DALLAS公司推出的一种高性能、 低功耗的实时时钟芯片,附加31字节静态RAM, 采用SPI三线接口与CPU进行通信,并可采用突发 方式一次传送多个字节的时钟信号和RAM数据。 实时时钟可提供秒、分、时、日、星期、月和年, 一个月小与31天时可以自动调整,且具有闰年补 偿功能。工作电压宽达2.5~5.5V。采用双电源供 电(主电源和备用电源),可设置备用电源充电 方式,提供了对后备电源进行涓细电流充电的能 力。

ds1302数字时钟芯片

ds1302数字时钟芯片

《DS1302数字时钟芯片》1. 内置电池备份系统,确保时间信息在断电情况下依然准确无误;2. 采用串行通信接口,简化了与微处理器的连接;3. 超低功耗设计,延长电池使用寿命;4. 宽工作电压范围,适应不同电压环境;5. 小巧的封装尺寸,便于电路板布局。

《DS1302数字时钟芯片》灵活的时钟调整DS1302芯片允许用户通过简单的指令对时钟进行校准,无论是调整小时、分钟、秒,还是日期、月份、年份,都能轻松实现。

这种灵活性使得DS1302能够适应不同地区的时区变化,甚至可以应对夏令时的调整。

完善的日历功能除了基本的时钟功能,DS1302还内置了日历功能。

它能够自动处理月份的天数,包括闰年的特殊情况,大大减轻了开发者处理日期计算的负担。

这一特性使得DS1302在需要记录事件发生日期的应用中显得尤为宝贵。

数据保护与隐私DS1302具备128字节随机存取的静态RAM,可用于存储用户数据。

这些数据在芯片内部得到保护,避免了外部干扰导致的数据丢失。

DS1302还提供了写保护功能,确保数据在特定情况下的安全性。

易于集成与维护DS1302的串行接口设计使其与微控制器的连接变得异常简单。

只需几根线就能完成通信,大大降低了硬件设计的复杂度。

同时,由于接口的标准化,未来若需升级或更换芯片,也能快速完成。

实际应用指南1. 电源连接:将VCC1接至主电源,VCC2接至备用电池,GND接地。

2. 串行接口:将SCLK(时钟线)、I/O(数据线)和RST(复位线)分别连接至微控制器的对应引脚。

3. RAM数据存储:通过编写简单的程序,将需要存储的数据写入RAM中,实现数据的持久化。

通过这些步骤,DS1302数字时钟芯片便能顺利地融入各种电子设备,为它们提供精准的时间管理和数据存储服务。

无论是在智能家居、工业自动化还是个人穿戴设备中,DS1302都能展现出其稳定可靠的性能。

《DS1302数字时钟芯片》节能环保的设计理念DS1302数字时钟芯片在设计之初就充分考虑了节能环保的重要性。

DS1302涓流充电时钟芯片--毕业论文外文文献翻译毕业论文

DS1302涓流充电时钟芯片--毕业论文外文文献翻译毕业论文

DS1302涓流充电时钟芯片一、特性1、实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数,有效期2100年;2、用于高速数据暂存的31×8 RAM;3、最少引脚数的串行I/O;4、2.0-5.5V满度工作范围;5、2.5V时耗电小于300nA;6、用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送;7、8引脚DIP或可选的用于表面安装的8引脚SOIC封装;8、简单的3线接口;9、TTL兼容(VCC=5V);10、可选的工业温度范围-40℃至+85℃;11、与DS1202兼容。

二、引脚排列DS1302引脚封装图如下图1所示图1 DS1302引脚封装图三、引脚说明①X1,X2:32.768kHz晶振引脚;②GND:接地;③RST:复位;④I/O:数据输入/输出;⑤SCLK:串行时钟;⑥VCC1,VCC2:电源引脚。

四、说明DS1302慢速充电时钟芯片包括实时时钟/日历和31字节的静态RAM。

它经过一个简单的串行接口与微处理器通信。

实时时钟/日历提供秒、分、时、日、周、月和年等信息。

对于小于31天的月,月末的日期自动进行调整,还包括了闰年校正的功能。

时钟的运行可以采用24小时或带AM(上午)/PM(下午)的12小时格式。

使用同步串行通信,简化了DS1302与微处理器的通信。

与时钟/RAM通信仅需三根线:(1)RST(复位)、(2)I/O(数据线)、和(3)SCLK (串行时钟)。

数据可以以每次一个字节或多达31字节的多字节形式传送至时钟/RAM或从其中送出。

DS1302设计成能在非常低的功耗下工作,消耗小于1微瓦的功率便能保存数据和时钟信息。

DS1302是DS1202的升级产品,除了DS1202基本的慢速充电功能外,DS1302具有的其它特点包括:用于主电源和备份电源的双电源引脚,可编程的VCC1慢速充电器以及7个附加字节的高速暂存存储器(scratchpad memory)。

DS1302时钟芯片读写详解

DS1302时钟芯片读写详解

DS1302时钟芯片读写详解DS1302时钟芯片读写详解2008-09-26 13:07/*DS1302读写程序(C51)*/sbit DS13CLK =P1^5; /*DS1302的SCLK脚脉冲*/ sbit DS13IO =P1^6; /*DS1302的IO脚数据*/ sbit DS13CS =P1^7; /*DS1302的RST脚片选*/ /*向DS1302写一个字节*/void _wds13byte(uchar _code){uchar i;DS13CLK =0;DS13CLK =0;for(i=0;i<8;i++){if(_code&0x01) DS13IO =1;else DS13IO =0;DS13CLK =1;DS13CLK =1;DS13CLK =0;DS13CLK =0;_code =_code >> 1;}}/*从DS1302读一个字节*/uchar _rds13byte(void){uchar i,_code;_code=0;DS13CLK =0;DS13CLK =0;DS13IO =1;for(i=0;i<8;i++){_code =_code >>1;if(DS13IO) _code =_code|0x80;DS13CLK =1;DS13CLK =1;DS13CLK =0;DS13CLK =0;}return _code;}/*读功能 _code读功能命令 */uchar readds1302(uchar _code){DS13CS =0; /*关闭DS1302*/DS13CLK =0;DS13CLK =0;DS13CS =1; /*使能DS1302*/_wds13byte(_code); /*读代码*/_code=_rds13byte(); /*返回读取数字*/ DS13CLK =1;DS13CS =0; /*关闭DS1302*/ return _code;}/*写功能 fp写的地址,_code写的内容*/ void writeds1302(uchar fp,uchar _code) {DS13CS =0; /*关闭DS1302*/DS13CLK =0;DS13CLK =0;DS13CS =1; /*使能DS1302*/_wds13byte(fp); /*写控制命令*/_wds13byte(_code); /*写入数据*/DS13CLK=1;DS13CS =0; /*关闭DS1302*/}/*******DS1302设置快速充电***************/void ds13_charg(void){writeds1302(0x8e,0x00); /*解除写保护*/writeds1302(0x90,0xa5); /*单二极管2K电阻充电*/writeds1302(0x8e,0x80); /*置位写保护*/};;;DS1302读写程序(汇编);;;;************************************************************** *******/T_CLK Bit P1.5 ;实时时钟时钟线引脚T_IO Bit P1.6 ;实时时钟数据线引脚T_RST Bit P1.7 ;实时时钟复位线引脚;**********************************************************;子程序名:Set1302;功能:设置DS1302 初始时间,并启动计时。

DS1302中文资料(加解释版)文档

DS1302中文资料(加解释版)文档

DS1302涓流充电时钟保持芯片的原理与应用摘要:本文概括介绍了DS1302时钟芯片的特点和基本组成,通过实例详细说明了有关功能的应用软件。

关于DS1302各寄存器的详细位控功能请参考DALLAS达拉斯公司的相应产品资料。

概述:DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。

实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM 指示决定采用24或12小时格式。

DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线(1)RES复位、(2)I/O数据线、(3)SCLK串行时钟。

时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。

DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。

DS1302是由DS1202改进而来,增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。

它广泛应用于电话,传真,便携式仪器以及电池供电的仪器仪表等产品领域,下面将主要的性能指标作一综合:**实时时钟具有能计算2100年之前的秒、分、时、日、日期,星期,月,年的能力,还**有闰年调整的能力**318位暂存数据存储RAM**串行I/O口方式使得管脚数量最少**宽范围工作电压2.05.5V**工作电流2.0V时,小于300nA**读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式**8脚DIP封装或可选的8脚SOIC封装根据表面装配**简单3线接口**与TTL兼容Vcc=5V**可选工业级温度范围-40+85**与DS1202兼容**在DS1202基础上增加的特性——对Vcc1有可选的涓流充电能力——双电源管用于主电源和备份电源供应——备份电源管脚可由电池或大容量电容输入——附加的7字节暂存存储器1DS1302的基本组成和工作原理DS1302的管脚排列及描述如下图及表所示管脚描述X1X232.768KHz晶振管脚GND地RST复位脚I/O数据输入/输出引脚SCLK串行时钟Vcc1,Vcc2电源供电管脚订单信息部分#描述DS1302串行时钟芯片8脚DIPDS1302S串行时钟芯片8脚SOIC(200mil)DS1302Z串行时钟芯片8脚SOIC(150mil)2.DS1302内部寄存器CH:时钟停止位:CH=0振荡器工作允许,CH=1振荡器停止;WP:写保护位:WP=0寄存器数据能够写入,WP=1寄存器数据不能写入;寄存器2的第7位,12/24小时标志:bit7=1,12小时模式,bit7=0,24小时模式;寄存器2的第5位:AM/PM定义:AP=0上午模式,AP=1下午模式;(**若为24小时模式,则此位为小时的10位**)TCS:涓流充电选择DS:二极管选择位TCS=1010使能涓流充电DS=01选择一个二极管TCS=其它禁止涓流充电DS=10选择两个二极管DS=00或11,即使TCS=1010,充电功能也被禁止以下为10个寄存器和31字节的SRAM内容,左边的为地址,右边的为每位对应的意思地址字节中的最低一位为读写控制位,0写,1读。

时钟芯片1302资料

时钟芯片1302资料

DAT=ACC2;
CLK=1;CLK=0; DAT=ACC3;
CLK=1;CLK=0; DAT=ACC4;
CLK=1;CLK=0;
DAT=ACC5; CLK=1;CLK=0;
DAT=ACC6;
CLK=1;CLK=0; DAT=ACC7;
CLK=1;
2011年4}月25日星期一
南大科院
第23页
/* 函数名:read(); /* 参 数:无 /* 功 能:用于从DS1302读出时间数据信息
pSecDa++; ucAddr +=2; /*命令从秒开始,每次加2是下一条*/
} v_W1302(0x8e,0x80); /* 控制命令,WP=1,写保护?*/ }
2011年4月25日星期一
南大科院
第18页
七、读取DS1302当前时间
名称: v_Get1302 * 说明: * 功能: 读取DS1302当前时间 * 调用: uc_R1302() * 输入: ucCurtime: 保存当前时间地址。当前 时间格式为: 秒 分 时 日 月 星期 年 * 7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B * 返回值: 无
void read()
{
// DAT=1;
/*注意在进行读操作之前DAT应置1*/
CLK=0;
ACC0=DAT;
CLK=1;CLK=0;
ACC1=DAT;
CLK=1;CLK=0;
ACC2=DAT;
CLK=1;CLK=0;
ACC3=DAT;
CLK=1;CLK=0;
ACC4=DAT;
CLK=1;CLK=0;
类别 时钟 控制写读寄存器 时钟多字节读写

DS1302中文资料

DS1302中文资料

DS1302中文资料DS1302是一款低功耗的串行实时时钟芯片,广泛用于各种电子设备中,例如电子表、温度计、计时器等。

该芯片具有高准确度、稳定性和低功耗的特点,功能强大,使用简便。

以下是DS1302芯片的详细中文资料及使用说明。

1.特性:-时钟/日历功能:提供秒、分、时、日期、月份和年份的精确计时和日期记录功能。

-31个可编程的时间/日期寄存器:用于存储时钟和日期信息。

-控制根据电源情况自动选择电池或外部电源。

-8字节RAM用于存储额外的用户信息。

-提供电池低电压检测功能。

-通过3线串行接口与微控制器通讯。

-工作电流小于1.5μA。

2.引脚功能:-VCC:电源正极,3.3V至5V的电源供应。

-GND:地。

-RST:复位引脚,用于启动或复位芯片。

-CLK:时钟引脚,与外部晶振连接。

-DAT:数据引脚,与外部时钟连接。

-VBAT:备用电池引脚,用于提供备用电源。

3.时钟和日历操作:-初始化时钟芯片:首先将RST引脚置为高电平,然后将时钟和日期信息写入相应寄存器。

-读取时钟和日期信息:向相应寄存器发送读取指令,然后从DAT引脚读取数据。

-设置闹钟:将闹钟时间和日期写入相应寄存器,设置闹钟标志位。

-清除闹钟标志位:将闹钟标志位清零,重置闹钟状态。

-自动切换电源:设置使能位,将芯片自动切换为外部电源或电池供电。

4.通信协议:-DS1302使用3线串行接口与微控制器通讯,包括时钟(CLK)、数据(DAT)和复位(RST)引脚。

-通信数据以字节为单位,高位在前,低位在后。

-时钟和数据引脚都是双向引脚,需要使用上拉电阻来保证电平的稳定。

-通信基于时钟的脉冲信号,每个时钟周期有四个时钟脉冲。

5.典型应用:-电子表:DS1302提供精确的时钟和日期计时功能,可用于制作各种类型的电子表。

-温度计:结合温度传感器,可以通过DS1302记录和显示温度信息。

-计时器:通过设置定时器和闹钟功能,可以实现计时和提醒功能。

6.注意事项:-正确连接电源和地引脚,确保电源电压在允许范围内。

DS1302中文手册

DS1302中文手册

DS1302中文手册一、简介DS1302是一种实时时钟芯片,主要用于计算机系统、通信设备、智能家居等领域。

本手册旨在提供DS1302的详细说明和操作方法,帮助用户正确使用该芯片。

二、芯片特性1. 基本特性:- 日期格式:年-月-日- 时间格式:时:分:秒- 温度测量范围:-55℃至+125℃- 时钟频率:32768Hz2. 时钟控制:- 时钟源选择:外部或内部- 时钟暂停功能- 时钟调制功能三、引脚定义DS1302具有8个引脚,分别为:1. X1:外部时钟输入端2. X2:外部时钟输出端3. Vcc:供电正极4. GND:地5. SDA:串行数据输入/输出端6. SCLK:串行数据时钟输入端7. RST:复位控制端8. BAT:电池输入端四、工作原理DS1302基于Bipolar CMOS技术,通过外部提供的时钟信号进行时间计数和存储。

芯片内部包含时钟控制电路、RAM存储器、温度计和时钟计数器等功能模块,通过串行通信协议与外部设备进行数据传输。

五、使用方法1. 芯片初始化:- 将X1和X2连接外部时钟源- Vcc与电源正极相连- GND与地相连2. 设定时间:- 通过串行数据输入将年、月、日、时、分、秒信息写入相应寄存器- 通过串行数据输入将温度信息写入相应寄存器(可选)3. 读取时间:- 通过串行数据输出获取年、月、日、时、分、秒信息- 通过串行数据输出获取温度信息(可选)4. 设置时钟暂停:- 通过串行数据输入将时钟控制字节写入相应寄存器控制位,实现时钟暂停功能5. 时钟调制:- 通过串行数据输入将时钟调制字节写入相应寄存器控制位,实现时钟调制功能六、注意事项1. 确保正确接线,避免短路或浮空引脚2. 使用合适的外部时钟源,确保时钟的准确性3. 避免频繁的读写操作,以延长芯片的使用寿命4. 根据实际需求进行合理设置,避免不必要的功能开启5. 定期校准芯片时间,确保准确性七、总结本手册介绍了DS1302的特性、引脚定义、工作原理以及使用方法,并提供了一些注意事项供用户参考。

DS1302时钟芯片资料

DS1302时钟芯片资料

我们继续向CEPARK AVR的第一个终点跨进,今天是倒数第二个内容,时钟芯片DS1302。

以下是DS1302的一些概述(来自ZLG文档):DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。

实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。

时钟操作可通过AM/PM指示决定采用24或12小时格式。

DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES复位(2)I/O数据线(3)SCLK串行时钟。

时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。

DS1302工作时功耗很低保持数据和时钟信息时功率小于1mWDS1302是由DS1202改进而来增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。

它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域下面。

将主要的性能指标作一综合:★实时时钟具有能计算2100年之前的秒、分、时、日、星期、月、年的能力,还有闰年调整的能力★318位暂存数据存储RAM★串行I/O口方式使得管脚数量最少★宽范围工作电压2.05.5V★工作电流 2.0V时,小于300nA★读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式★8脚DIP封装或可选的8脚SOIC封装根据表面装配★简单3线接口★与TTL兼容Vcc=5V★可选工业级温度范围-40+85★双电源管用于主电源和备份电源供应以上是DS1302的一些全面的预览,以下为DS1302管脚图:DS1302管脚.jpgVCC2:主用电源引脚X1、X2:DS1302外部晶振引脚GND:地RST:复位引脚I/O:串行数据引脚,数据输出或者输入都从这个引脚SCLK:串行时钟引脚VCC1:备用电源我们来看看DS1302的典型外围电路,下面是CEPARK AVR的DS1302模块原理图:原理图.jpg我们看到:1、VCC为主电源接5V,C1为滤波电容2、X1、X2外接32.768K的晶振3、5、6、7脚分别与控制器相联,注意外部4.7K上拉电阻4、备用电源脚,注意是3.3V,DS1302要求备用电源电压稍微低于主用电源下面讲讲DS1302的具体操作。

ds1302时钟芯片介绍

ds1302时钟芯片介绍

寄存器名称 取值范围 D7 D6 D5 D4 D3 D2 D1 D0
秒寄存器 00~59 CH 秒的十位
秒的个位
分寄存器 00~59 0
分的十位
分的个位
小时寄存器
01~12或 00~23
12/24
0
A/P
HR
小时的个位
日寄存器 01~31 0 0 日的十位 日的个位
寄存器名称
取值 D7 D6 D5 D4 D3 D2 D1 D0 范围
月寄存器 01~12 0 0 0 1或0 月的个位
星期寄存器 01~07 0 0 0 0
星期几
年寄存器 01~99
年的十位
年的个位
写保护寄存器
WP 0 0 0 0 0 0 0
慢充电寄存器
TCS TCS TCS TCS DS DS RS RS
时钟突发寄存器
说明: (1)数据都以BCD码形式。 (2)小时寄存器的D7位为12小时制/24小时制 的选择位,当为1时选12小时制,当为0时选24小 时制。当12小时制时,D5位为1是上午,D5位为0 是下午,D4为小时的十位。当24小时制时,D5、 D4位为小时的十位。 (3)秒寄存器中的CH位为时钟暂停位,当为1 时钟暂停,为0时钟开始启动。
4)写保护寄存器中的WP为写保护位,当WP=1,写保 护,当WP=0未写保护,当对日历、时钟寄存器或片 内RAM进行写时WP应清零,当对日历、时钟寄存器 或片内RAM进行读时WP一般置1。
(5)慢充电寄存器的TCS位为控制慢充电的选择,当 它为1010才能使慢充电工作。DS为二极管选择位。 DS为01选择一个二极管,DS为10选择二个二极管, DS为11或00充电器被禁止,与TCS无关。RS用于选 择连接在VCC2与VCC1之间的电阻,RS为00,充电器 被禁止,与TCS无关,电阻选择情况见表.

ds1302资料

ds1302资料

DS1302中文资料DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM可通过简单的串行接口与单片机进行通信可提供:--秒分时日日期月年的信息--每月的天数和闰年的天数可自动调整--可通过AM/PM指示决定采用24或12小时格式--保持数据和时钟信息时功率小于1mWDS1302引脚X1X232.768KHz晶振管脚GND地CE复位脚I/O数据输入/输出引脚SCLK串行时钟Vcc1,Vcc2电源供电管脚各引脚的功能为:Vcc1:主电源;Vcc2:备份电源。

当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<Vcc1时,由Vcc1向DS1302供电。

SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。

该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。

参考电路:如上图所示:DS1302与单片机的连接也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。

实际电路:Vcc Vcc_5V _5V _5V::为电路中的为电路中的主电源;主电源;主电源;Vcc2Vcc2Vcc2,也就是,也就是BT1为备份电源。

当Vcc2>Vcc1+0.2V 时,由Vcc2向DS1302供电,当Vcc2<Vcc1时,由Vcc1向DS1302供电CLK 和I/O 虽然和IIC 总线接在一条引脚上总线接在一条引脚上,,但DS1302其实并不是使用IIC 总线,而是一种三线式总线,DS1302内部结构:DS1302内部包括:Power control:电源控制模块Input shift registers:输入移位寄存器Command and control logic:通讯与逻辑控制器Oscillator and divider:晶体振荡器及分频器DS1302的内部主要组成部分虽然有:移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十四讲时钟芯片DS1302DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。

实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。

时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。

DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES 复位(2)I/O 数据线(3)SCLK 串行时钟。

时钟/RAM 的读/写数据以一个字节或多达31个字节的字符组方式通信。

DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。

DS1302由DS1202改进而来增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。

它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域下面。

将主要的性能指标作一综合:★实时时钟具有能计算2100 年之前的秒、分、时、日、星期、月、年的能力,还有闰年调整的能力★ 31 8位暂存数据存储RAM★串行I/O口方式使得管脚数量最少★宽范围工作电压2.0 5.5V★工作电流2.0V时,小于300nA★读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式★ 8 脚DIP封装或可选的8脚SOIC封装根据表面装配★简单3线接口★与TTL兼容Vcc=5V★可选工业级温度范围-40---+85★双电源管用于主电源和备份电源供应以上是DS1302的一些全面的预览,以下为DS1302管脚图:1)VCC2:主用电源引脚2)X1、X2:DS1302外部晶振引脚3)GND:地4)RST:复位引脚5)I/O:串行数据引脚,数据输出或者输入都从这个引脚6)SCLK:串行时钟引脚7)VCC1:备用电源1)VCC 为主电源接5V,CX10 为滤波电容2)2、外接32.768K 的晶振3)3、 5、6、7 脚分别与控制器相联,注意外部4.7K 上拉电阻4)4、备用电源脚,注意是3.3V,DS1302 要求备用电源电压稍微低于主用电源下面讲讲DS1302 的具体操作。

操作DS1302的大致过程,就是将各种数据写入DS1302的寄存器,以设置它当前的时间已经格式。

然后使DS1302开始运作,DS1302时钟会按照设置情况运转,再用单片机将其寄存器内的数据读出。

再用液晶显示,就是我们常说的简易电子钟。

所以总的来说DS1302的操作分2步(显示部分属于液晶显示的内容,不属于DS1302本身的内容)但是在讲述操作时序之前,我们要先看看寄存器:上图是DS1302的寄存器样式,我们看到:1、第7 位永远都是12、第6 位,1表示RAM,寻址内部存储器地址;0表示CK,寻址内部寄存器;第5 位到第1 位,为RAM 或者寄存器的地址;最低位,高电平表示RD:即下一步操作将要“读”;低电平表示W:即下一步操作将要“写”。

(与AT24C02寄存器类似,这点要理解好)。

下面是DS1302的内部寄存器和RAM:上图左边为寄存器和RAM的地址,右边为具体内容。

各个寄存器的最高位都是1,最低位都是“RD/W”,比如要读秒寄存器则命令为10000101,反之写为1000 0100,要注意其含义。

(图片不是很清楚,看不清楚的朋友用软件放大)我们一个一个看:1、SEC:秒寄存器,注意具体右边内容:低四位为SEC,高的次三位为10SEC。

最高位CH 为2、DS1302 的运行标志,当CH=0时,DS1302 内部时钟运行,反之CH=1 时停止;3、MIN:分寄存器;4、HR:时寄存器,最高位为12/24 小时的格式选择位,该位为1时表示12小时格式。

当设置为12小时显示格式时,第5位的高电平表示下午(PM);而当设置为24 小时格式时,第5位位具体的时间数据。

5、DATE:日寄存器;6、MONTH:月寄存器;7、DAY:周寄存器,注意一周只有7天,所以该寄存器只有低三位有效;8、YEAR:年寄存器;9、CONTROL:写保护寄存器,当该寄存器最高位WP 为1 时,DS1302 只读不写,所以要在往DS1302 写数据之前确保WP 为0;10、TRICKLE CHARGE REGISTER:涓细电流充电设置寄存器,我们知道,当DS1302 掉电时,可以马上调用外部电源保护时间数据。

该寄存器就是配置备用电源的充电选项的。

其中高四位(4个TCS)只有在1010 的情况下才能使用充电选项;低四位的情况,与DS1302内部电路有关,有点意思,下文详细讲述。

11、CLOCK BURST:批量读写操作设置寄存器,设置该寄存器后,可以对DS1302的各个寄存器进行连续写入。

DS1302的另外一种读写方式。

笔者还没用过,感兴趣的朋友可以尝试。

最后还有一点,前文说过,DS1302有31个字节的存储空间,但是大家要看到的是,这31个存储空间,最后一个是RAM BURST的寄存器,设置该寄存器可以达到对RAM 连续读写的作用。

所以DS1302的可用存储空间实际上为30个字节。

现在我们来看看DS1302的涓细电流充电的设置:以下来自英文原版PDF:The trickle charge select (TCS) bits (bits4 -7) control the selection of the trickle charger. In order to prevent accidental enabling, only a pattern of 1010 will enable the trickle charger. All other patterns will disable the trickle charger. The DS1302 powers up with the trickle charger disabled. The diode select (DS) bits (bits 2 –3) select whether onediode or two diodes are connected between VCC2 and VCC1. If DS is 01, one diode is selected or if DS is10, two diodes are selected. If DS is 00 or 11, the trickle charger is disabled independently of TCS. The RS bits (bits 0 -1) select the resistor that is connected between VCC2 and VCC1. The resistor selected by the resistor select (RS) bits is as follows:好,英文水平不好也没关系:看到这句“The trickle charge select (TCS) bits (bits4 -7) control the selection of the trickle charger. In order to prevent accidental enabling, only a pattern of 1010 will enable the trickle charger”,这句话是说“,TCS为用以控制涓细电流充电功能,为了防止意外产生,只当TCS位(四位)为1010时涓细电流充电功能才会生效”所以刚才提到“其中高四位(4个TCS)只有在1010的情况下才能使用充电选项”。

那DS呢?“If DS is 01, one diode is selected or if DS is10, two diodes are selected. If DS is 00 or 11, the trickle charger is disabled independently of TCS”,既是说,如果两个DS位为01,则只有1个二极管接入电路,如果DS为10则表示有2个二极管接入,如果DS为00或者11,则充电功能由TCS单独控制”。

看到上部电路三个二极管处,DS为01时接入1个二极管,对应上面的开关闭合,为10时表示2个二极管接入,对应下面的开关闭合为00或者11时笔者认为两个开关都不闭合,充电电流不经过二极管。

对应的,RS的设置也相仿:“The RS bits (bits 0 -1) select the resistor that is connected between VCC2 and VCC1. The resistor selected by the resistor select (RS) bits is as follows:意思是:RS位用以选择在VCC1和VCC2直接接入什么样的电阻:1、当RS为00时,不接入电阻;2、当RS为01时,接入典型值为2K电阻,对应电路图中的R1;3、当RS为10时,接入典型值为4K电阻,对应电路图中的R2;4、当RS为11时,接入典型值为8K电阻,对应电路图中的R3;好了,至此我们知道了,DS和RS的作用是配置接入电路中的二极管和电阻,有什么用呢?笔者认为这些二极管和电阻是分压和限流用的,以调整涓细充电电流的大小。

我们可以看看DS1302的读写时序了:上图就是DS1302的三个时序:复位时序,单字节写时序,单字节读时序;RST:复位时序,即在RST引脚产生一个正脉冲,在整个读写器件,RST要保持高电平,一次字节读写完毕之后,要注意把RST返回低电平准备下次读写周期;SINGLE BYTE READ:单字节读,注意读之前还是要先对寄存器写命令,从最低位开始写;大家细心看可以看到,写数据是在SCLK的上升沿实现,而读数据在SCLK 的下降沿实现,所以,在单字节读时序中,写命令的第八个上升沿结束后紧接着的第八个下降沿就将要读寄存器的第一位数据读到数据线上了!这个就是DS1302操作中最特别的地方。

当然读出来的数据也是最低位开始。

SINGLE BUTE WRITE:单字节写,两个字节的数据配合16个上升沿将数据写入即可。

程序注意事项:★要记得在操作DS1302之前关闭写保护;★注意用延时来降低单片机的速度以配合器件时序★DS1302读出来的数据是BCD码形式,要转换成我们习惯的10进制,转换方法在源程序里;★读取字节之前,将IO设置为输入口,读取完之后,要将其改回输出口;★在写程序的时候,建议实现开辟数组(内存空间)来集中放置DS1302的一系列数据,方便以后扩展键盘输入;打开/******************************************************************** ************ 实验名 : 万年历实验* 使用的IO :* 实验效果 :1602显示时钟,按K3进入时钟设置,按K1选择设置的时分秒日月,按K2选择*选择设置加1。

相关文档
最新文档