一線式時(shí)鐘芯片DS2417的原理與應(yīng)用
由主機(jī)控制DS2417以完成時(shí)間初始值的寫入或時(shí)間值的讀出必須經(jīng)過(guò)三個(gè)步驟,分別是:初始化使DS2417準(zhǔn)備好、發(fā)ROM功能命令和相應(yīng)的64位光刻ROM數(shù)據(jù)、發(fā)時(shí)鐘功能命令讀寫控制字節(jié)和四個(gè)字節(jié)的時(shí)間值。假設(shè)一線僅掛接一個(gè)芯片,則對(duì)于ROM功能命令只需發(fā)跳過(guò)ROM[CCH]即可:而對(duì)于時(shí)鐘功能命令,不論是讀還是寫,第一個(gè)字節(jié)均為控制字,隨后的四個(gè)字節(jié)為時(shí)間數(shù)據(jù)。如將讀出的控制字放入30H,時(shí)間計(jì)數(shù)值從低位到高位依次放入31H~34H,那么,其子程序GETSJ如下:
GETSJ:LCALL INIT
MOV A,#0CCH
LCALL WRITE ;發(fā)跳過(guò)ROM命令
LCALL INIT
MOV A,#66H ;發(fā)讀時(shí)鐘命令
LCALL WRITE
MOV R0,#30H
MOV R7,#5
RDNEXT:LCALL READ
MOV @R0,A
INC R0
DJNZ R7,RDNEXT
RET
.......
如果子程序GETSJ讀取的時(shí)間值放于34H~31H中,根據(jù)選擇的時(shí)間基準(zhǔn),經(jīng)過(guò)編程變換即可得到日歷時(shí)間信息。如果一線上掛接多個(gè)DS2417或其它一線式接口芯片,則子程序GETSJ的編寫將會(huì)復(fù)雜一些,限于篇幅,本文不再,讀者可參閱相關(guān)文獻(xiàn)。
評(píng)論