51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机源码 > 详细内容
DS1302 时钟芯片的原理与应用(汇编)
发布时间:2009/6/2  阅读次数:403  字体大小: 【】 【】【

作者:未知       来源:电子爱好者

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
的管脚排列及描述如下图及表所示

管脚描述
X1 X2 32.768KHz
晶振管脚
GND

RST
复位脚
I/O
数据输入/输出引脚
SCLK
串行时钟
Vcc1,Vcc2
电源供电管脚
订单信息
部分# 描述
DS1302
串行时钟芯片8 DIP
DS1302S
串行时钟芯片8 SOIC 200mil
DS1302Z
串行时钟芯片8 SOIC 150mil
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
MOV ByteCnt,#1 ;
单字节传送模式

MOV R0,#XmtDat
数据地址覆给R0
MOV XmtDat,#00h
数据内容为0 写入允许


ACALL Send_Byte
调用写入数据子程序
RET
返回调用本子程序处
当写保护寄存器的最高位为1 时禁止数据写入寄存器
Write_Disable:­
MOV Command,#8Eh ;
命令字节为8E
MOV ByteCnt,#1 ;
单字节传送模式

MOV R0,#XmtDat
数据地址覆给R0
MOV XmtDat,#80h
数据内容为80h 禁止写入

ACALL Send_Byte
调用写入数据子程序
RET
返回调用本子程序处
以上程序调用了基本数据发送(Send_Byte)模块及一些内存单元定义, 其源程序清单在附录中给出下面
的程序亦使用了这个模块
2
时钟停止位操作
当把秒寄存器的第7 位时钟停止位设置为0 时起动时钟开始
Osc_Enable:­
MOV Command,#80h ;
命令字节为80
MOV ByteCnt,#1 ;
单字节传送模式

MOV R0,#XmtDat
数据地址覆给R0
MOV XmtDat,#00h
数据内容为0 振荡器工作允许

ACALL Send_Byte
调用写入数据子程序
RET
返回调用本子程序处
­
当把秒寄存器的第7 位时钟停止位设置为1 时时钟振荡器停止HT1380 进入低功耗方式
Osc_Disable:
MOV Command,#80h ;
命令字节为80
MOV ByteCnt,#1 ;
单字节传送模式

MOV R0,#XmtDat
数据地址覆给R0
MOV 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 ;
命令字节为BEh
MOV ByteCnt,#8 ;
多字节写入模式此模块为8

MOV R0,#XmtDat
数据地址覆给R0
MOV XmtDat,#59h
秒单元内容为59h

MOV XmtDat+1,#59h
分单元内容为59h
MOV XmtDat+2,#13h
时单元内容为13h
MOV XmtDat+3,#21h
日期单元内容为21h
MOV XmtDat+4,#06h
月单元内容为06h
MOV XmtDat+5,#03h
星期单元内容为03h
MOV XmtDat+6,#0
年单元内容为00h
MOV XmtDat+7,#0
写保护单元内容为00h
ACALL Send_Byte
调用写入数据子程序

RET
返回调用本子程序处
­
读出寄存器0-7 的内容程序设置如下
Read_Multiplebyte:
MOV Command,#0BFh ;
命令字节为BFh
MOV ByteCnt,#8 ;
多字节读出模式此模块为8

MOV R1,#RcvDat
数据地址覆给R1
ACALL Receive_Byte
调用读出数据子程序

RET
返回调用本子程序处
以上程序调用了基本数据接收(Receive_Byte)模块及一些内存单元定义, 其源程序清单在附录中给
出下面的程序亦使用了这个模块
4.
单字节传送方式
例如写入8 12 小时模式程序设置如下
Write_Singlebyte:
MOV Command,#84h ;
命令字节为84h
MOV 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
数据地址覆给R1
ACALL 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 ;
复位引脚为低电平所有数据传送终止
NOP
CLR SCLK
清时钟总线
NOP

SETB RST ;
复位引脚为高电平逻辑控制有效
NOP
MOV A,Command
准备发送命令字节
MOV BitCnt,#08h
传送位数为8
S_Byte0:
RRC A
将最低位传送给进位位C
MOV IO_DATA,C
位传送至数据总线

NOP
SETB SCLK
时钟上升沿发送数据有效
NOP
CLR SCLK
清时钟总线
DJNZ BitCnt,S_Byte0
位传送未完毕则继续
NOP
S_Byte1:
准备发送数据
MOV A,@R0
传送数据过程与传送命令相同
MOV BitCnt,#08h
S_Byte2:
RRC A
MOV IO_DATA,C
NOP
SETB SCLK
NOP
CLR SCLK
DJNZ BitCnt,S_Byte2
INC R0
发送数据的内存地址加1
DJNZ ByteCnt,S_Byte1
字节传送未完毕则继续

NOP
CLR RST
逻辑操作完毕清RST
RET
;***************************************************************************************
;
接收数据程序;
;
名称:Receive_Byte
;
描述:从被控器DS1302 接收ByteCnt 个字节数据

;
命令字节地址在Command
;
所接收数据的字节数在ByteCnt 中接收的数据在RcvDat 缓冲区中
;***********************************************************************************
Receive_Byte:
CLR RST ;
复位引脚为低电平所有数据传送终止
NOP
CLR SCLK
清时钟总线
NOP
SETB RST ;
复位引脚为高电平逻辑控制有效
MOV A,Command
准备发送命令字节

MOV BitCnt,#08h
传送位数为8
R_Byte0:
RRC A
将最低位传送给进位位C
MOV IO_DATA,C
位传送至数据总线

NOP
SETB SCLK
时钟上升沿发送数据有效
NOP
CLR SCLK
清时钟总线
DJNZ BitCnt,R_Byte0
位传送未完毕则继续
NOP
R_Byte1:
准备接收数据
CLR A
清类加器
CLR C
清进位位C
MOV BitCnt,#08h
接收位数为8
R_Byte2:
NOP
MOV C,IO_DATA
数据总线上的数据传送给C
RRC A
从最低位接收数据

SETB SCLK
时钟总线置高
NOP
CLR SCLK
时钟下降沿接收数据有效
DJNZ BitCnt,R_Byte2
位接收未完毕则继续
MOV @R1,A
接收到的完整数据字节放入接收内存缓冲区
INC R1
接收数据的内存地址加1
DJNZ ByteCnt,R_Byte1
字节接收未完毕则继续

NOP
CLR RST
逻辑操作完毕清RST
RET
END
(
文章出处电子爱好者)

  

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号