;實時時鐘DS1302
ORG 0000H
CE EQU P3.5
IO EQU P3.3
SCLK EQU P3.4
AJMP MAIN
ORG 0030H
MAIN:
LCALL REST
lcall write1302
nop
nop
nop
nop
nop
nop
nop
nop ;哈哈哈原來如此!這里果然得加延時,不加的話1302反應不過來啊,哈哈哈
nop ;至今天我終于把DS1302`搞定了,這也是努力得來的啊,我雖然笨,但別人做到了,我通過努力也一定辦得到。
;至今天板子上的器件都搞定了2010年8月1日,這個值得紀念的 日子,
nop ;18B20,1602,數碼顯示,24C08,AD0832,DS1302,呵呵呵繼續努力
nop
nop
nop
nop
KK: MOV A,#81H
LCALL READ1302
MOV P0,A
AJMP KK
REST:CLR SCLK
CLR CE
clr io
clr c
NOP
NOP
NOP
NOP
NOP
RET
WRITE1302:
clr sclk
SETB CE
mov a,#80h
MOV R1,#08
WUR: RRC A
MOV IO,C
NOP
NOP
SETB SCLK
NOP
NOP
CLR SCLK
DJNZ R1,WUR
mov a,#00h
MOV R1,#08
WURt: RRC A
MOV IO,C
NOP
NOP
NOP
SETB SCLK
NOP
NOP
CLR SCLK
DJNZ R1,WURt
CLR SCLK
NOP
NOP
NOP
CLR CE
RET
READ1302:;注意這里啊,這里的讀貝內置到肚里面,原因再與如果分開在時序上是不成立的,
CLR SCLK
SETB CE
SETB IO
NOP
NOP
CLR C
NOP
NOP
MOV R1,#08
Ro:
CLR SCLK
RRC A
MOV IO,C
NOP
SETB SCLK
NOP
NOP
DJNZ R1,Ro
mov r1,#08
RUD:
setb sclk
NOP
NOP
CLR SCLK
NOP
NOP
MOV C,IO
NOP
RRC A
DJNZ R1,RUD
CLR SCLK
CLR CE
RET
end
|