DS1302芯片资料Word文档下载推荐.doc
《DS1302芯片资料Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《DS1302芯片资料Word文档下载推荐.doc(13页珍藏版)》请在冰点文库上搜索。
![DS1302芯片资料Word文档下载推荐.doc](https://file1.bingdoc.com/fileroot1/2023-5/11/b7ed9d00-fa77-4d78-9fa5-5dba5d2b13e4/b7ed9d00-fa77-4d78-9fa5-5dba5d2b13e41.gif)
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,充电功能也被禁止
RS位
电阻
典型位
00
没有
01
R1
2KΩ
10
R2
4KΩ
11
R3
8KΩ
时钟:
DS1302与微控制器的接口软件及功能应用举例
下面首先给出基本的接口软件然后举例说明各种功能的应用
1写保护寄存器操作
当写保护寄存器的最高位为0时允许数据写入寄存器写保护寄存器可以通过命令字节8E,8F来
规定禁止写入/读出写保护位不能在多字节传送模式下写入
Write_Enable:
MOV
Command,#8Eh
;
命令字节为8E
ByteCnt,#1
单字节传送模式
R0,#XmtDat
数据地址覆给R0
XmtDat,#00h
数据内容为0写入允许
ACALLSend_Byte
用写入数据子程序
RET
返回调用本子程序处
当写保护寄存器的最高位为1时禁止数据写入寄存器
Write_Disable:
Command,#8Eh
ByteCnt,#1
;
R0,#XmtDat
数据地址覆给R0
XmtDat,#80h
数据内容为80h禁止写入
ACALL
Send_Byte
调用写入数据子程序
以上程序调用了基本数据发送(Send_Byte)模块及一些内存单元定义,其源程序清单在附录中给出下面
的程序亦使用了这个模块
2时钟停止位操作
当把秒寄存器的第7位时钟停止位设置为0时起动时钟开始
Osc_Enable:
Command,#80h
命令字节为80
单字节传送模式
0,#XmtDat
数据内容为0振荡器工作允许
Send_Byte
返回调用本子程序处
当把秒寄存器的第7位时钟停止位设置为1时时钟振荡器停止HT1380进入低功耗方式
Osc_Disable:
命令字节为80
XmtDat,#80h
数据内容为80h振荡器停止
调用写入数据子程序
3.多字节传送方式
当命令字节为BE或BF时DS1302工作在多字节传送模式8个时钟/日历寄存器从寄存器0地址开
始连续读写从0位开始的数据当命令字节为FE或FF时DS1302工作在多字节RAM传送模式31个
RAM寄存器从0地址开始连续读写从0位开始的数据
例如写入00年6月21日星期三13时59分59秒程序设置如下
Write_Multiplebyte:
Command,#0BEh
命令字节为BEh
ByteCnt,#8
多字节写入模式此模块为8个
XmtDat,#59h
秒单元内容为59h
XmtDat+1,#59h
分单元内容为59h
XmtDat+2,#13h
时单元内容为13h
XmtDat+3,#21h
日期单元内容为21h
XmtDat+4,#06h
月单元内容为06h
XmtDat+5,#03h
星期单元内容为03h
XmtDat+6,#0
年单元内容为00h
XmtDat+7,#0
写保护单元内容为00h
读出寄存器0-7的内容程序设置如下
Read_Multiplebyte:
Command,#0BFh
命令字节为BFh
ByteCnt,#8;
多字节读出模式此模块为8个
R1,#RcvDat
数据地址覆给R1
Receive_Byte
调用读出数据子程序
以上程序调用了基本数据接收(Receive_Byte)模块及一些内存单元定义,其源程序清单在附录中给
出下面的程序亦使用了这个模块
4.单字节传送方式
例如写入8时12小时模式程序设置如下
Write_Singlebyte:
Command,#84h
命令字节为84h
XmtDat,#88h
数据内容为88h
上面所列出的程序模块Write_EnableWrite_DisableOsc_EnableOsc_Disable与单字节写入模块Write_Singlebyte的程序架构完全相同仅只是几个入口参数不同本文是为了强调功能使用的不同才将其分为不同模块另外,与涓流充电相关的设定也是单字节操作方式,这里就不再单独列出,用户在使用中可灵活简略.
下面模块举例说明如何单字节读出小时单元的内容.
Read_Singlebyte:
Command,#85h
命令字节为85h
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
31h
数据字节计数器
Command
32h
命令字节地址
RcvDat
DATA
40H
接收数据缓冲区
XmtDat
DATA50H
发送数据缓冲区
端口位定义
IO_DATA
bit
P1.3
数据传送总线
SCLK
P1.4
时钟控制总线
RST
P1.2
复位总线
发送数据程序
名称:
Send_Byte
描述:
发送ByteCnt个字节给被控器DS1302
命令字节地址在Command中
所发送数据的字节数在ByteCnt中发送的数据在XmtDat缓冲区中
Send_Byte:
CLR
RST
复位引脚为低电平所有数据传送终止
NOP
清时钟总线
SETB
复位引脚为高电平逻辑控制有效
A,Command
准备发送命令字节
BitCnt,#08h
传送位数为8
S_Byte0:
RRC
A
将最低位传送给进位位C
IO_DATA,C
位传送至数据总线
时钟上升沿发送数据有效
DJNZ
BitCnt,S_Byte0
位传送未完毕则继续
S_Byte1:
准备发送数据
A,@R0
传送数据过程与传送命令相同
BitCnt,#08h
S_Byte2:
RRCA
IO_DATA,C
SCLK
BitCnt,S_Byte2
INC
R0
发送数据的内存地址加1
ByteCnt,S_Byte1
字节传送未完毕则继续
NOP
逻辑操作完毕清RST
RET
接收数据程序;
Receive_Byte
从被控器DS1302接收ByteCnt个字节数据
所接收数据的字节数在ByteCnt中接收的数据在RcvDat缓冲区中
Receive_Byte:
清时钟总线
A,Command
BitCnt,#08h
R_Byte0:
IO_DATA,C
SCLK
BitCnt,R_Byte0
位传送未完毕则继续
R_Byte1:
准备接收数据
清类加器
C
清进位位C
接收位数为8
R_Byte2:
C,IO_DATA
数据总线上的数据传送给C
A
从最低位接收数据
时钟总线置高
时钟下降沿接收数据有效
BitCnt,R_Byte2
位接收未完毕则继续
@R1,A
接收到的完整数据字节放入接收内存缓冲区
R1
接收数据的内存地址加1
ByteCnt,R_Byte1
字节接收未完毕则继续
逻辑操作完毕清RST
END
直流参数表:
主要电参数表:
交流参数表:
电容配置表: