📄 pcf8563.asm
字号:
;为软件包定义变量
ACK BIT 10H ;应答标志位变量
SLA DATA 50H ;器件从地址变量
SUBA DATA 51H ;器件子地址变量
NUMBYTE DATA 52H ;读/写的字节数变量
;使用前定义常量
SDA BIT P1.7 ; I2C总线定义
SCL BIT P1.6
MTD EQU 30H ;发送数据缓冲区首址
MRD EQU 38H ;接收数据缓冲区首址
;定义器件地址
PCF8563 EQU 0A2H
ORG 8000H
AJMP MAIN
ORG 8100H
MAIN:
MOV SP,#70H
MOV R4,#0F0H ;延时,等待其它芯片复位好
DJNZ R4,$
MOV MTD,#00H ;控制寄存器1置为普通模式芯片运行
MOV MTD+1,#12H ;控制寄存器2置为定时报警都有效
MOV MTD+2,#00H ;秒为00
MOV MTD+3,#30H ;分30
MOV MTD+4,#12H ;时12
WR8563:
MOV SLA,#PCF8563 ;送器件地址0A2H
MOV SUBA,#00H ;送子地址为00H
MOV NUMBYTE,#5 ;写4个字节数据
LCALL IWRNBYTE
NOP ;设置断点,观察ACK位,ACK为1时写正常
RD8563:
MOV SLA,#PCF8563
MOV SUBA,#02H ;读时分秒
MOV NUMBYTE,#3 ;读两个字节
LCALL IRDNBYTE
NOP
LCALL CHANGE ;数据转换
LCALL DISPLAY
JMP RD8563
CHANGE:
MOV A,MRD+2
ANL A,#0F0H
SWAP A
MOV 40H,A
MOV A,MRD+2
ANL A,#0FH
MOV 41H,A
MOV A,MRD+1
ANL A,#0F0H
SWAP A
MOV 42H,A
MOV A,MRD+1
ANL A,#0FH
MOV 43H,A
MOV A,MRD
ANL A,#0F0H
SWAP A
MOV 44H,A
MOV A,MRD
ANL A,#0FH
MOV 45H,A
RET
$INCLUDE(DISPLAY.INC)
$INCLUDE (VI2C_ASM.INC) ;包含VIIC软件包
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -