⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.asm

📁 实时时钟RTC4553的测试程序
💻 ASM
字号:
LWR	EQU	P1.7
CS0	EQU	P3.2
SCK	EQU	P1.6    ;数据在SCK上升沿输入,在下降沿输出。
SIN	EQU	P1.3
SOUT	EQU	P1.5

        ORG 0000H
        LJMP MAIN
        ORG 0100H
MAIN:	MOV SP,#60H
        CLR SCK
        SETB SCK
        CLR SOUT
        SETB SOUT

;--READ-RTC------------------
        MOV R7,#8FH  ;CNT3命令
        LCALL _RTCWrite ;WRITE CNT3

        MOV R1,#20H
        MOV B,#0
TT:     MOV R7,B
        LCALL _RTCRead
        MOV A,R7
        MOV @R1,A
        INC R1
        INC B
        NOP
        MOV R7,B
        CJNE R7,#10H,TT

        AJMP $

;******************************************************************************
;功能:从指定地址(4bit)读入数据(4bit)子程序
;标号:(1)ASM: _RTCRead (2) C : RTCRead(uint8 addr)
;入口参数:(1) R7----地址(低4bit)
;出口参数:(1) R7----数据(高4bit)
;堆栈需求:4 字节
;影响资源:R7
;*******************************************************************************
_RTCRead:
	PUSH    A        ;保护A
        PUSH    B        ;保护B
	SETB LWR  ;
        SETB SCK
	CLR CS0   ;CHIP SELECT
	MOV A,R7  ;ADDR
	MOV B,#8
READ1:	CLR SCK
        NOP
        LCALL DELAY1 ;DELAY
	RRC A
	MOV SIN,C
	NOP
        LCALL DELAY1 ;DELAY
        SETB SCK
	DJNZ B,READ1

        LCALL DELAY1 ;DELAY
	MOV B,#8
READ2:  CLR SCK
	NOP
        LCALL DELAY1 ;DELAY
	MOV C,SOUT
	RRC A
	SETB SCK
	NOP
        LCALL DELAY1 ;DELAY
	DJNZ B,READ2
	SETB CS0       ;CLOSE
	MOV R7,A
	POP     B       ;恢复B
        POP     A       ;恢复A
	RET

;******************************************************************************
;功能:往指定地址(4bit)写入数据(4bit)子程序
;标号:(1)ASM: _RTCWrite (2) C : RTCWrite(uint8 addr)
;入口参数:(1) R7----地址(低4bit)|数据(高4bit)
;出口参数:(1) R7----地址(低4bit)|数据(高4bit)
;堆栈需求:4 字节
;影响资源:R7
;*******************************************************************************
_RTCWrite:
	PUSH    A        ;保护A
        PUSH    B        ;保护B
        SETB SCK
	CLR  LWR   ;ENABLE WRITE
	CLR  CS0   ;CHIP SELECT
	MOV  A,R7  ;ADDR+DATA
	MOV  B,#8
WRITE1: CLR SCK
        NOP
        LCALL DELAY1 ;DELAY
	RRC  A
	MOV  SIN,C
	NOP
        LCALL DELAY1 ;DELAY
	SETB SCK
	DJNZ B,WRITE1

        LCALL DELAY1 ;DELAY
	MOV  B,#8
WRITE2: CLR SCK
        NOP
        LCALL DELAY1 ;DELAY
	MOV  C,SOUT
	RRC  A
	SETB SCK
	NOP
        LCALL DELAY1 ;DELAY
	DJNZ B,WRITE2
	SETB CS0      ;CLOSE
        SETB LWR
	MOV R7,A
	POP     B       ;恢复B
        POP     A       ;恢复A
	RET


;===============延时子程序DELAY1==================
;程序调用入口:	DELAY1
;所调用子程序:	无
;程序输入参数:  无
;程序返回值:	无
;程序功能说明:	延迟一段时间
;=====================================
DELAY1:
        PUSH    A
        MOV     A,#80H
DD11:   DEC     A
        JNZ DD11
        POP     A
        RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -