DS1302中文资料.docx
- 文档编号:7406902
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:13
- 大小:644.91KB
DS1302中文资料.docx
《DS1302中文资料.docx》由会员分享,可在线阅读,更多相关《DS1302中文资料.docx(13页珍藏版)》请在冰点文库上搜索。
DS1302中文资料
DS1302中文资料
概述
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信实时时钟/日历电路.提供秒分时日日期.月年的信息,每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式.DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:
1RES复位,2I/O数据线,3SCLK串行时钟.时钟/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的引脚功能排列及描述如下图所示.
DS1302引脚图
管脚描述
X1X232.768KHz晶振管脚
GND地
RST复位脚
I/O数据输入/输出引脚
SCLK串行时钟
Vcc1,Vcc2电源供电管脚
DS1302串行时钟芯片8脚DIP
DS1302S串行时钟芯片8脚SOIC200mil
DS1302Z串行时钟芯片8脚SOIC150mil
2.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选择两个二极管
DS=00或11,即使TCS=1010,充电功能也被禁止
时钟:
DS1302与微控制器的接口软件及功能应用举例
下面首先给出基本的接口软件然后举例说明各种功能的应用
1写保护寄存器操作
当写保护寄存器的最高位为0时允许数据写入寄存器写保护寄存器可以通过命令字节8E,8F来规定禁止写入/读出写保护位不能在多字节传送模式下写入
Write_Enable:
MOVCommand,#8Eh;命令字节为8E
MOVByteCnt,#1;单字节传送模式
MOVR0,#XmtDat;数据地址覆给R0
MOVXmtDat,#00h;数据内容为0写入允许
ACALLSend_Byte;用写入数据子程序
RET;返回调用本子程序处
当写保护寄存器的最高位为1时禁止数据写入寄存器
Write_Disable:
MOVCommand,#8Eh;命令字节为8E
MOVByteCnt,#1;单字节传送模式
MOVR0,#XmtDat;数据地址覆给R0
MOVXmtDat,#80h;数据内容为80h禁止写入
ACALLSend_Byte;调用写入数据子程序
RET;返回调用本子程序处
以上程序调用了基本数据发送(Send_Byte)模块及一些内存单元定义,其源程序清单在附录中给出下面的程序亦使用了这个模块
2时钟停止位操作
当把秒寄存器的第7位时钟停止位设置为0时起动时钟开始
Osc_Enable:
MOVCommand,#80h;命令字节为80
MOVByteCnt,#1;单字节传送模式
MOV0,#XmtDat;数据地址覆给R0
MOVXmtDat,#00h;数据内容为0振荡器工作允许
ACALLSend_Byte;调用写入数据子程序
RET;返回调用本子程序处
当把秒寄存器的第7位时钟停止位设置为1时时钟振荡器停止HT1380进入低功耗方式
Osc_Disable:
MOVCommand,#80h;命令字节为80
MOVByteCnt,#1;单字节传送模式
MOVR0,#XmtDat;数据地址覆给R0
MOVXmtDat,#80h;数据内容为80h振荡器停止
ACALLSend_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:
MOVCommand,#0BEh;命令字节为BEh
MOVByteCnt,#8;多字节写入模式此模块为8个
MOVR0,#XmtDat;数据地址覆给R0
MOVXmtDat,#59h;秒单元内容为59h
MOVXmtDat+1,#59h;分单元内容为59h
MOVXmtDat+2,#13h;时单元内容为13h
MOVXmtDat+3,#21h;日期单元内容为21h
MOVXmtDat+4,#06h;月单元内容为06h
MOVXmtDat+5,#03h;星期单元内容为03h
MOVXmtDat+6,#0;年单元内容为00h
MOVXmtDat+7,#0;写保护单元内容为00h
ACALLSend_Byte;调用写入数据子程序
RET;返回调用本子程序处
读出寄存器0-7的内容程序设置如下
Read_Multiplebyte:
MOVCommand,#0BFh;命令字节为BFh
MOVByteCnt,#8;;多字节读出模式此模块为8个
MOVR1,#RcvDat;数据地址覆给R1
ACALLReceive_Byte;调用读出数据子程序
RET;返回调用本子程序处
以上程序调用了基本数据接收(Receive_Byte)模块及一些内存单元定义,其源程序清单在附录中给出下面的程序亦使用了这个模块
4.单字节传送方式
例如写入8时12小时模式程序设置如下
Write_Singlebyte:
MOVCommand,#84h;命令字节为84h
MOVByteCnt,#1;单字节传送模式
MOVR0,#XmtDat数据地址覆给R0
MOVXmtDat,#88h数据内容为88h
ACALLSend_Byte调用写入数据子程序
RET返回调用本子程序处
上面所列出的程序模块Write_EnableWrite_DisableOsc_EnableOsc_Disable与单字节写入模块Write_Singlebyte的程序架构完全相同仅只是几个入口参数不同本文是为了强调功能使用的不同才将其分为不同模块另外,与涓流充电相关的设定也是单字节操作方式,这里就不再单独列出,用户在使用中可灵活简略.
下面模块举例说明如何单字节读出小时单元的内容.
Read_Singlebyte:
MOVCommand,#85h;命令字节为85h
MOVByteCnt,#1;单字节传送模式
MOVR1,#RcvDat数据地址覆给R1
ACALLReceive_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主控器总线发送接受数据程序头文件
;内存数据定义
BitCntdata30h;数据位计数器
ByteCntdata31h;数据字节计数器
Commanddata32h;命令字节地址
RcvDatDATA40H;接收数据缓冲区
XmtDatDATA50H;发送数据缓冲区
;端口位定义
IO_DATAbitP1.3;数据传送总线
SCLKbitP1.4;时钟控制总线
RSTbitP1.2;复位总线
;发送数据程序
;名称:
Send_Byte
;描述:
发送ByteCnt个字节给被控器DS1302
;命令字节地址在Command中
;所发送数据的字节数在ByteCnt中发送的数据在XmtDat缓冲区中
Send_Byte:
CLRRST;复位引脚为低电平所有数据传送终止
NOP
CLRSCLK;清时钟总线
NOP
SETBRST;复位引脚为高电平逻辑控制有效
NOP
MOVA,Command;准备发送命令字节
MOVBitCnt,#08h;传送位数为8
S_Byte0:
RRCA;将最低位传送给进位位C
MOVIO_DATA,C;位传送至数据总线
NOP
SETBSCLK;时钟上升沿发送数据有效
NOP
CLRSCLK;清时钟总线
DJNZBitCnt,S_Byte0;位传送未完毕则继续
NOP
S_Byte1:
;准备发送数据
MOVA,@R0;传送数据过程与传送命令相同
MOVBitCnt,#08h
S_Byte2:
RRCA
MOVIO_DATA,C
NOP
SETBSCLK
NOP
CLRSCLK
DJNZBitCnt,S_Byte2
INCR0;发送数据的内存地址加1
DJNZByteCnt,S_Byte1;字节传送未完毕则继续
NOP
CLRRST;逻辑操作完毕清RST
RET
;接收数据程序;
;名称:
Receive_Byte
;描述:
从被控器DS1302接收ByteCnt个字节数据
;命令字节地址在Command中
;所接收数据的字节数在ByteCnt中接收的数据在RcvDat缓冲区中
Receive_Byte:
CLRRST;复位引脚为低电平所有数据传送终止
NOP
CLRSCLK;清时钟总线
NOP
SETBRST;复位引脚为高电平逻辑控制有效
MOVA,Command;准备发送命令字节
MOVBitCnt,#08h;传送位数为8
R_Byte0:
RRCA;将最低位传送给进位位C
MOVIO_DATA,C;位传送至数据总线
NOP
SETBSCLK;时钟上升沿发送数据有效
NOP
CLRSCLK;清时钟总线
DJNZBitCnt,R_Byte0;位传送未完毕则继续
NOP
R_Byte1:
;准备接收数据
CLRA;清类加器
CLRC;清进位位C
MOVBitCnt,#08h;接收位数为8
R_Byte2:
NOP
MOVC,IO_DATA;数据总线上的数据传送给C
RRCA;从最低位接收数据
SETBSCLK;时钟总线置高
NOP
CLRSCLK;时钟下降沿接收数据有效
DJNZBitCnt,R_Byte2;位接收未完毕则继续
MOV@R1,A;接收到的完整数据字节放入接收内存缓冲区
INCR1;接收数据的内存地址加1
DJNZByteCnt,R_Byte1;字节接收未完毕则继续
NOP
CLRRST;逻辑操作完毕清RST
RET
END
直流参数表:
主要电参数表:
交流参数表:
电容配置表:
本文来自:
DZ3W.COM原文网址:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS1302 中文 资料