📄 programming.asm
字号:
;///////////////////////////////////////////////////////////////////////////
;///
;/// name: charger
;/// MCU: uPD78F9202
;/// file: programming.asm
;/// version: V1.52
;/// date: 29/10/2006
;///
;///////////////////////////////////////////////////////////////////////////
PUBLIC _programming
extrn _bit_current;
extrn _bit_voltage;
_programming:
MOV MK0, #11111111b
MOV FLCMD, #00H
DI
ModeOnLoop:
MOV PFS,#00H
MOV PFCMD,#0A5H
MOV FLPMC,#01H
MOV FLPMC,#0FEH
MOV FLPMC,#01H
NOP
HALT
BT PFS.0,$ModeOnLoop
FlashBlockErase:
MOV FLCMD,#03H
MOV FLAPH,#0eH
MOV FLAPL,#00H
MOV FLAPHC,#0eH
MOV FLAPLC,#00H
MOV PFS,#00H
HALT
MOV A,PFS
CMP A,#00H
BNZ $FlashBlockErase
FlashBlockBlankCheck:
MOV FLCMD,#04H
MOV FLAPH,#0eH
MOV FLAPL,#00H
MOV FLAPHC,#0eH
MOV FLAPLC,#0FFH
MOV PFS,#00H
HALT
MOV A,PFS
CMP A,#00H
BNZ $FlashBlockBlankCheck
FlashWriteLowV:
MOV FLCMD,#05H
MOV FLAPH,#0eH
MOV FLAPL,#02H
MOVW AX, _bit_current
XCH A, X
MOV FLW, A
MOV PFS,#00H
HALT
MOV FLAPH,#0eH
MOV FLAPL,#03H
MOVW AX, _bit_current
MOV FLW, A
MOV PFS,#00H
HALT
MOV A,PFS
CMP A,#00H
BNZ $FlashWriteLowV
FlashWriteHighV:
MOV FLCMD,#05H
MOV FLAPH,#0eH
MOV FLAPL,#04H
MOVW AX, _bit_voltage
XCH A, X
MOV FLW, A
MOV PFS,#00H
HALT
MOV FLAPH,#0eH
MOV FLAPL,#05H
MOVW AX, _bit_voltage
MOV FLW, A
MOV PFS,#00H
HALT
MOV A,PFS
CMP A,#00H
BNZ $FlashWriteHighV
FlashWriteFlag:
MOV FLCMD,#05H
MOV FLAPH,#0eH
MOV FLAPL,#01H
MOV FLW, #11H
MOV PFS,#00H
HALT
MOV A,PFS
CMP A,#00H
BNZ $FlashWriteFlag
FlashVerify:
MOV FLCMD,#01H
MOV FLAPH,#0eH
MOV FLAPL,#00H
MOV FLAPHC,#0eH
MOV FLAPLC,#0FFH
MOV PFS,#00H
HALT
MOV A,PFS
CMP A,#00H
BNZ $FlashWriteFlag
MOV FLCMD, #00H
ModeOffLoop:
MOV PFS,#00H
MOV PFCMD,#0A5H
MOV FLPMC,#00H
MOV FLPMC,#0FFH
MOV FLPMC,#00H
BT PFS.0,$ModeOffLoop
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -