DSC12887时钟的驱动程序

来源:本站
导读:目前正在解读《DSC12887时钟的驱动程序》的相关信息,《DSC12887时钟的驱动程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《DSC12887时钟的驱动程序》的详细说明。
简介:本文主要介绍了DSC12887时钟的驱动程序。

;**********************************

;写时间子程序

;向DS12887回写时间信息,包括年月日,时分秒;

;**********************************

WRITE_TIME:

MOV DS_ADDR,#0BH

MOV A,#0A2H

LCALL WRITE_DS

;写秒信息,在60H,61H中

MOV DS_ADDR,#0

MOV A,61H

ANL A,#0FH

SWAP A

ANL 60H,#0FH

ORL A,60H

LCALL WRITE_DS

;分信息,在62,63H中

MOV DS_ADDR,#2

ANL 62H,#0FH

ANL 63H,#0FH

MOV A,63H

SWAP A

ORL A,62H

LCALL WRITE_DS

;时信息,在64,65H中

MOV DS_ADDR,#4

ANL 64H,#0FH

ANL 65H,#0FH

MOV A,65H

SWAP A

ORL A,64H

LCALL WRITE_DS

;周信息,在66H中

MOV DS_ADDR,#6

MOV A,66H

LCALL WRITE_DS

;日信息,在67,68H中

MOV DS_ADDR,#7

ANL 67H,#0FH

ANL 68H,#0FH

MOV A,68H

SWAP A

ORL A,67H

LCALL WRITE_DS

;月信息,在69,6AH中

MOV DS_ADDR,#8

ANL 69H,#0FH

ANL 6AH,#0FH

MOV A,6AH

SWAP A

ORL A,69H

LCALL WRITE_DS

;年信息,在6B,6CH中

MOV DS_ADDR,#9

ANL 6BH,#0FH

ANL 6CH,#0FH

MOV A,6CH

SWAP A

ORL A,6BH

LCALL WRITE_DS

;世纪信息,在6D,6EH中

MOV DS_ADDR,#0EH

ANL 6DH,#0FH

ANL 6EH,#0FH

MOV A,6EH

SWAP A

ORL A,6DH

LCALL WRITE_DS

;********以下重新初始化时钟

MOV DS_ADDR,#0AH

MOV A,#2FH

LCALL WRITE_DS

MOV DS_ADDR,#0BH

MOV A,#42H

LCALL WRITE_DS

MOV DS_ADDR,#0CH

LCALL READ_DS

MOV DS_ADDR,#0DH

LCALL READ_DS

RET

;************************************

;读时间信息例程,包括年月日,时分秒

;分别放入60H-6DH的内存字节中,一个

;字节中只存放一位数,低位在前

;************************************

READ_TIME:

MOV DS_ADDR,#0AH

LCALL READ_DS

JBC ACC.7,READ_TIME ;更新标志

;秒信息送60H,61HNDEFINED SYMBOL (PASS-2)

MOV DPTR,#0 ;读秒信息

MOVX A,@DPTR

MOV 60H,A

SWAP A

MOV 61H,A

ANL 60H,#0FH

ANL 61H,#0FH

;分信息送62,63H

MOV DPTR,#2

MOVX A,@DPTR

MOV 62H,A

SWAP A

MOV 63H,A

ANL 62H,#0FH

ANL 63H,#0FH

SWAP A

CLR BZ_M00 ;清整点标志

CJNE A,#00,RT_H10

SETB BZ_M00 ;整点标志

;时信息送64,65H

RT_H10:

MOV DPTR,#4

MOVX A,@DPTR

MOV 64H,A

SWAP A

MOV 65H,A

;周信息送66H

H_14:

MOV DS_ADDR,#6

LCALL READ_DS

MOV 66H,A

ANL 66H,#0FH

;月日期送67,68H

MOV DS_ADDR,#7

LCALL READ_DS

MOV 67H,A

SWAP A

MOV 68H,A

;月计数送69,6AH

D_01:

MOV DS_ADDR,#8

LCALL READ_DS

MOV 69H,A

SWAP A

MOV 6AH,A

SWAP A

;年信息送6B,6C时

MOV DS_ADDR,#9

LCALL READ_DS

MOV 6BH,A

SWAP A

MOV 6CH,A

;世纪信息送6D,6E

CJNE A,#98H,RT_1

RT_1: JC RT_2

MOV A,#19H ;判断世纪,大于98是19,小于

是20

AJMP RT_3

RT_2: MOV A,#20H

RT_3: MOV 6DH,A

SWAP A

MOV 6EH,A

;*****以下程序累加安全天数,64H=时

JNB BZ_M00,RT_10 ;不是整点

MOV A,64H

CJNE A,#00H,RT_END ;0点累加安全天数

JB BZ_ADD,RT_END ;已经加过了

SETB BZ_ADD

LCALL ADD_DAY ;累加安全天数

RT_6:

AJMP RT_END

;*****以上程序累计产量*******

RT_10:

CLR BZ_ADD

; CLR BZ_ADM

; CLR BZ_ADN

RT_END:

; MOV DS_ADDR,#0CH

; LCALL READ_DS

RET

;***************************************

;从DS12887中读写数据,地址在DS_ADDR中

;***************************************

READ_DS:

; CLR P3.3

MOV DPH,#0H

MOV DPL,DS_ADDR

MOVX A,@DPTR

RET

WRITE_DS:

MOV DPH,#0H

MOV DPL,DS_ADDR

MOVX @DPTR,A

RET

提醒:《DSC12887时钟的驱动程序》最后刷新时间 2024-03-14 01:02:54,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《DSC12887时钟的驱动程序》该内容的真实性请自行鉴别。