📄 test.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 + -