?? 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 + -