📄 readwriteflash.#1
字号:
$INCLUDE(C8051F310.INC) ; Register definition file.
org 00h
LJMP Config
org 0B3h ; End of Interrupt Vector space.
Config:
mov XBR0, #001h ; Crossbar Register 1
mov XBR1, #0C0h ; Crossbar Register 2
ANL PCA0MD, #NOT(040h) ; clear Watchdog Enable bit
mov P2MDOUT, #10000100B ; Output configuration for P2
mov OSCICN, #083h ; Internal Oscillator Control Register
main2:
MOV R0,#00H
MOV R1,#00H
MOV DPTR,#0300H
MOV A,#00H
MOVC A,@A+DPTR
MOV R0,A
MOV DPTR,#0301H
MOV A,#00H
MOVC A,@A+DPTR
MOV R1,A
SETB P2.2
SETB P2.7
CLR P2.2
CLR P2.7
//LJMP WRITE
CLR EA
WR:
MOV R0,#00H
MOV R1,#00H
SETB P2.7
SETB P2.2
READ01:
MOV DPTR,#0300H
MOV A,#00H
MOVC A,@A+DPTR
lcall delay25ms
MOV R0,A
XRL A,#01H
JZ P01
SETB P2.2
SETB P2.7
LJMP READ02
P01: CLR P2.2
READ02:
MOV DPTR,#0301H
MOV A,#00H
MOVC A,@A+DPTR
lcall delay25ms
MOV R1,A
XRL A,#02H
JZ P02
SETB P2.2
SETB P2.7
MOV FLSCL,#10000000B
CLR EA //1 关中断
ORL PSCTL,#00000010B
ORL PSCTL,#00000001B
MOV FLKEY,#0xA5
MOV FLKEY,#0xF1
MOV DPTR,#0300H
MOV A,#01H
MOVX @DPTR,A
ANL PSCTL,#11111101B
MOV FLKEY,#0xA5
MOV FLKEY,#0xF1
MOV DPTR,#0300H
MOV A,#01H
MOVX @DPTR,A
MOV FLKEY,#0xA5
MOV FLKEY,#0xF1
MOV DPTR,#0301H
MOV A,#02H
MOVX @DPTR,A
ANL PSCTL,#11111110B
setb P2.2
SETB P2.7
ajmp $
P02:
CLR P2.7
AJMP $
delay25ms: mov r3, #05 ;2
delay25msa: mov r1, #200 ;2
delay25msb: mov r2, #164 ;2
djnz r2, $ ;2/3 2+164*3+2=496
nop ;1 496+1=497
djnz r1, delay25msb ;2/3 2+(497+3)*200+2=100004
djnz r3, delay25msa ;2/3 2+()*5+2=500024
ret ;1 500025 ;;;need 20MHz
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -