
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
34
;扇区擦除,没有字节擦除,只有扇区擦除,512 字节 / 扇区, 每个扇区用得越少越方便
;如果要对某个扇区进行擦除,而其中有些字节的内容需要保留,则需将其先读到单片机
;内部的 RAM 中保存,再将该扇区擦除,然后将须保留的数据写回该扇区,所以每个扇区
;中用的字节数越少越好,操作起来越灵活越快(每个扇区只用 1-128 字节以内较方便)
MOV ISP_ADDRH,
#SECTOR_FIRST_BYTE_ADDR_HIGH
;送扇区起始地址高字节
MOV ISP_ADDRL,
#SECTOR_FIRST_BYTE_ADDR_LOW
;送扇区起始地址低字节
CLR EA
;
关中断, 此时各中断请求,会被挂起,一开中断,立即响应
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_CONTR,
#WAIT_TIME
;设置等待时间
ORL ISP_CONTR,
#10000000B
;允许 ISP/IAP
MOV ISP_CMD,
#ISP_IAP_SECTOR_ERASE
;送扇区擦除命令
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_TRIG,
#46h
;先送 46h,再送 B9h 到 ISP/IAP 触发寄存器
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_TRIG,
#0B9h
;送完 B9h 后,ISP/IAP 命令立即被触发起动
;CPU 等待 IAP 动作完成后,才会继续执行程序,要先关中断(EA ),
;再送 46h,B9h 到 ISP/IAP 触发寄存器,起动 ISP/IAP 命令,关中断在触发之前即可
NOP
;扇区擦除成功后,CPU 继续执行程序
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,防止误操作
;从用户应用程序区(AP 区)软件复位并切换到 ISP 程序区开始执行程序
MOV ISP_CONTR,
#01100000B
;SWBS = 1(选择 ISP 区), SWRST = 1(软复位)
;从 ISP 程序区软件复位并切换到用户应用程序区(AP 区)开始执行程序
MOV ISP_CONTR,
#00100000B
;SWBS = 0(选择 AP 区), SWRST = 1(软复位)
;使用 ISP/IAP 功能的朋友尽量给 13922805190(姚工)一个电话交流一下
;建议在打开 ISP 及在 ISP 触发送 46H,B9H 之前三个地方,各加些软件陷阱(欢迎来电讨论)
;5V 单片机,应在 3.6V 以下时让其复位,3V 单片机,应在 2.4V 以下时让其复位
;在此电压以下,此时再用 ISP/IAP 功能,编程 / 擦除 Flash,不能保证能达到要求