background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
36
STC12C5410AD 系列 IAP 应用汇编简介
STC12C5410AD 系列 
内部 EEPROM 的应用
此两句可以合成一句, 并且只送一次就够了
地址需要改变时才需重新送地址
;用 DATA 还是 EQU 声明新增特殊功能寄存器地址要看你用的汇编器 / 编译器
ISP_DATA
DATA
0E2h; 或
ISP_DATA
EQU
0E2h
ISP_ADDRH
DATA
0E3h; 或
ISP_ADDRH
EQU
0E3h
ISP_ADDRL
DATA
0E4h; 或
ISP_ADDRL
EQU
0E4h
ISP_CMD
DATA
0E5h; 或
ISP_CMD
EQU
0E5h
ISP_TRIG
DATA
0E6h; 或
ISP_TRIG
EQU
0E6h
ISP_CONTR
DATA
0E7h; 或
ISP_CONTR
EQU
0E7h
;定义 ISP/IAP 命令及等待时间
ISP_IAP_BYTE_READ
EQU
字节读
ISP_IAP_BYTE_PROGRAM EQU
字节编程,
前提是该字节是空,0 F F h
ISP_IAP_SECTOR_ERASE EQU
扇区擦除,
要某字节为空,要擦一扇区
WAIT_TIME
EQU
设置等待时间,30MHz 以下 0,24M 以下 1,
;20MHz 以下 2,12M 以下 3,6M 以下 4,3M 以下 5,2M 以下 6,1M 以下 7,
;字节读
MOV
ISP_ADDRH, #BYTE_ADDR_HIGH       ;送地址高字节
MOV
ISP_ADDRL, #BYTE_ADDR_LOW
;送地址低字节
MOV
ISP_CONTR, #WAIT_TIME ;设置等待时间
ORL
ISP_CONTR, #10000000B ;允许 ISP/IAP 操作
MOV
ISP_CMD,
#ISP_IAP_BYTE_READ;送字节读命令,命令不需改变时,不需重新送命令
     MOV
ISP_TRIG,
#46h
;先送 46h,再送 B9h 到 ISP/IAP 触发寄存器,每次都需如此
     MOV
ISP_TRIG,
#0B9h ;送完 B9h 后,ISP/IAP 命令立即被触发起动
; C P U 等待 I A P 动作完成后,才会继续执行程序。
      NOP
;数据读出到 ISP_DATA 寄存器后,CPU 继续执行程序
MOV
A,
ISP_DATA
     ;将读出的数据送往 Acc
;以下语句可不用, 只是出于安全考虑而已
     MOV
ISP_CONTR, #00000000B      ;禁止 ISP/IAP 操作
MOV
ISP_CMD,
#00000000B      ;去除 ISP/IAP 命令
;MOV ISP_TRIG, #00000000B      ;防止 ISP/IAP 命令误触发
;MOV ISP_ADDRH, #0
;送地址高字节单元为 00,指向非 EEPROM 区
;MOV ISP_ADDRL, #0
;送地址低字节单元为 00,防止误操作