新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一线式时钟芯片DS2417的原理与应用

一线式时钟芯片DS2417的原理与应用

作者: 时间:2012-03-12 来源:网络 收藏

DAT EQU P1.0
........
INIT:CLR EA
INI10:SETB DAT
MOV R2,#200
INT11:CLR DAT
DJNZ R2, INI11
;主机发复位脉冲持续3μs×200=600μs
SETB DAT ;主机释放总线,口线改为输入
MOV R2,#30
INI12:DJNZ R2,INI12
;等待2μs×30=60μs
CLR C
ORL C,DAT
;数据线变低(有存在脉冲)吗?
JC INI10 ;未准备好,重新初始化
MOV R6,#80
INT13:ORL C,DAT
JC INI14;DS2417;数据线变高,初始化成功
DJNZ R6, INI13
;数据线低电平可持续3μs×80=240μs
SJMP INI10 ;初始化失败,重来
INI14:MOV R2,#240
INI15:DJNZ R2,INI15
;DS2417;应答最少2μs×240=480μs
RET
;---------------
WRITE:CLR EA ;写入的命令/数据字节在A中
MOV R3,#8 ;循环8次,写一个字节
WR11:SETB DAT
MOV R4,#8
RRC A ;写入位从A中移到CY
CLR DAT
WR12:DJNZ R4,WR12 ;等待16μs
MOV DAT,C;命令字按位依次送给DS2417
MOV R4, #20
WR13:DJNZ R4, WR13 ;保证写过程持续60μs
DJNZ R3, WR11 ;未送完一个字节继续
SETB DAT
RET
;----------------
READ:CLR EA
MOV R6,#8 ;循环8次,读一个字节
RD11:CLR DAT
MOV R4,#4
NOP ;低电平持续2μs
SETB DAT ;口线设为输入
RD12:DJNZ R4,RD12 ;等待8μs
MOV C,DAT ;主机按位依次读入DS2417的数据
RRC A ;读取的数据移入A
MOV R5,#30
RD13:DJNZ R5,RD13 ;保证读过程持续60μs
DJNZ R6,RD11 ;读完一个字节的数据,存入A中
SETB DAT
RET
;----------------

本文引用地址:https://www.eepw.com.cn/article/171912.htm



评论


相关推荐

技术专区

关闭