📄 test.asm
字号:
; 测试Iap_lite.inc
;
$NOMOD51
$INCLUDE (REG931.INC)
; 使用内部7.3768MHz晶振,9600波特率
BRGR1_DAT EQU 02H
BRGR0_DAT EQU 0F0H
KEYIN BIT P2.7 ; 按键定义
ORG 0000H
MAIN: MOV R7,#0
DJNZ R7,$
MOV P2M1,#00H
MOV P2M2,#00H
; 初始化串口
ACALL UART_INI
; 字节擦除编程
MOV DPTR,#402H
MOV A,#55H
ACALL FLASH_WRBYTE
MOV DPTR,#406H
MOV A,#5AH
ACALL FLASH_WRBYTE
MOV DPTR,#400H
MOV R7,#120
ACALL UART_SENDCODE
; 写多个字节数据
MOV R0,#80H
MOV A,#00H
MOV R7,#90
LOAD_DAT:
MOV @R0,A
INC R0
INC A
DJNZ R7,LOAD_DAT
MOV DPTR,#400H
MOV R1,#80H
MOV R7,#90
ACALL FLASH_WRNBYTE
MOV DPTR,#400H
MOV R7,#120
ACALL UART_SENDCODE
; 擦除扇区/页
MOV DPTR,#400H
ACALL ERASE_PAGE
;ACALL ERASE_SECTOR
; 读出数据并发送
MOV DPTR,#400H
MOV R7,#120
ACALL UART_SENDCODE
JNB KEYIN,MAIN_END
; 填充数据
MOV A,#5AH
MOV DPTR,#400H
ACALL FILL_PAGE
MOV DPTR,#400H
MOV R7,#100
ACALL UART_SENDCODE
MAIN_END:
SJMP $
; 初始化UART
UART_INI:
MOV P1M1,#00H
MOV P1M2,#00H
MOV SCON,#50H
MOV BRGCON,#00H
MOV BRGR1,#BRGR1_DAT
MOV BRGR0,#BRGR0_DAT
MOV BRGCON,#03H
RET
; 发送字节数据
UART_SENDBYTE:
MOV SBUF,A
JNB TI,$
CLR TI
RET
; 发送指定程序空间的数据
UART_SENDCODE:
CLR A
MOVC A,@A+DPTR
ACALL UART_SENDBYTE
INC DPTR
DJNZ R7,UART_SENDCODE
RET
$INCLUDE(IAP_LITE.INC)
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -