DS1302_SetTime:
MOV A,#8EH
MOV B,#0
CALL DS1302_WriteData ;允许写操作
MOV R7,#80H ;从寄存器80开始
MOV R6,#7 ;连续写7次
SetNext:
CLR A
MOV C A,@A+DPTR
MOV B,A ;数据
MOV A,R7 ;地址
CALL DS1302_WriteData ;写数据
INC R7
INC R7 ;寄存器地址+2
INC DPTR ;数据地址+1
DJNZ R6,SetNext
MOV A,#8EH
MOV B,#80H
CALL DS1302_WriteData ;写保护
RET
;**************************************
;读取当前时间
;入口参数:R0 (数据缓冲区首地址)
;出口参数:无
;**************************************
DS1302_GetTime:
MOV R7,#81H ;从寄存器81开始
MOV R6,#7 ;连续读7次
GetNext:
MOV A,R7 ;地址
CALL DS1302_ReadData ;读数据
MOV @R0,A ;保存数据
INC R7
INC R7 ;寄存器地址+2
INC R0 ;数据地址+1
DJNZ R6,GetNext
RET
;**************************************
;初始化DS1302
;**************************************
DS1302_Initial:
CLR RST
CLR SCLK
MOV A,#8EH
MOV B,#0
CALL DS1302_WriteData ;允许写操作
MOV A,#80H
MOV B,#0
CALL DS1302_WriteData ;时钟启动
MOV A,#90H
MOV B,#0A6H
CALL DS1302_WriteData ;一个二极管+4K电阻充电
MOV A,#8EH
MOV B,#80H
CALL DS1302_WriteData ;写保护
RET
END
上一页 [1] [2]
本文关键字:单片机 程序 STC单片机(,单片机-工控设备 - STC单片机(