📄 ds1302d.asm
字号:
; 这是DS12302汇编程序, 文件名为DS1302D.ASM
; 功能:本程序主要是读出DS12302 时钟区(地址从00-06)的内容;
; 或将日历时钟值写入DS12302 时钟区(地址从00-06)中去,
; 又叫时钟的初始化.
SCLK BIT P1.5
IO BIT P1.6
RST BIT P1.7
SWRAM BIT 0D5H
SEC DATA 60H
MIN DATA 61H
HR DATA 62H
DATE DATA 63H
MONTH DATA 64H
DAY DATA 65H
YEAR DATA 66H
ORG 0000H
STAT:AJMP MAIN
NOP
MAIN:MOV SP,#0CFH
;LCALL INIT
;LCALL SDAT3
MOV R0,#SEC
MOV R7,#7 ;7-CLOCK 16-RAM
;CLR SWRAM ;WRITE DS1302
SETB SWRAM ;READ DS1302
LCALL RWRTC
LJMP $
SDAT3:MOV 60H,#0
MOV 61H,#05
MOV 62H,#10H
MOV 63H,#14H
MOV 64H,#03
MOV 65H,#03
MOV 66H,#05
RET
RWRTC: MOV B,#081H; 081==READ CLOCK
JB SWRAM,RWRTC1
MOV B,#080H; 080==WRITE CLOCK
RWRTC1:CLR SCLK
NOP
SETB RST
MOV R6,#08
MOV A,B
RWRTC2:CLR SCLK
RRC A
MOV IO,C
NOP
SETB SCLK
DJNZ R6,RWRTC2
MOV R6,#8
JNB SWRAM,RWRTC4
RWRTC3:CLR SCLK
NOP
MOV C,IO
RRC A
SETB SCLK
DJNZ R6,RWRTC3
MOV @R0,A
SJMP RWRTC6
RWRTC4:MOV A,@R0
RWRTC5:CLR SCLK
RRC A
MOV IO,C
NOP
SETB SCLK
DJNZ R6,RWRTC5
RWRTC6:INC R0
MOV A,B
ADD A,#02H
MOV B,A
CLR RST
NOP
CLR SCLK
DJNZ R7,RWRTC1
RET
WRRTC: CLR SCLK
NOP
SETB RST
NOP
NOP
MOV R7,#2
WRRTC1:MOV R6,#8
MOV A,@R0
CLR C
WRRTC2:CLR SCLK
RRC A
MOV IO,C
NOP
SETB SCLK
DJNZ R6,WRRTC2
INC R0
DJNZ R7,WRRTC1
CLR RST
NOP
CLR SCLK
RET
INIT: CLR SCLK
CLR RST
MOV SEC,#8EH
MOV MIN,#0
MOV R0,#SEC
LCALL WRRTC
MOV SEC,#080H
MOV MIN,#00H
MOV R0,#SEC
LCALL WRRTC
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -