宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 单片机中文指南
41
;------------------------------------------------
;读一字节,调用前需打开 IAP 功能,入口:DPTR = 字节地址,返回:A = 读出字节
Byte_Read:
MOV ISP_CONTR, #ENABLE_ISP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV ISP_CMD, #ISP_IAP_BYTE_READ ;设置为 IAP/ISP/EEPROM 字节读模式命令
MOV ISP_ADDRH, DPH ;设置目标单元地址的高 8 位地址
MOV ISP_ADDRL, DPL ;设置目标单元地址的低 8 位地址
;CLR EA
MOV ISP_TRIG, #46H ;先送 46h,再送 B9h 到 ISP/IAP 触发寄存器,每次都需如此
MOV ISP_TRIG, #0B9H ;送完 B9h 后,ISP/IAP 命令立即被触发起动
NOP
MOV A, ISP_DATA ;读出的数据在 ISP_DATA 单元中,送入累加器 A
;SETB EA
ACALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使 CPU 处于安全状态,
;一次连续的 IAP 操作完成之后建议关闭 IAP 功能,不需要每次都关
RET
;------------------------------------------------
;字节编程,调用前需打开 IAP 功能,入口:DPTR = 字节地址, A= 须编程字节的数据
Byte_Program:
MOV ISP_CONTR, #ENABLE_ISP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV ISP_CMD, #ISP_IAP_BYTE_PROGRAM ;设置为 IAP/ISP/EEPROM 字节编程模式命令
MOV ISP_ADDRH, DPH ;设置目标单元地址的高 8 位地址
MOV ISP_ADDRL, DPL ;设置目标单元地址的低 8 位地址
MOV ISP_DATA, A ;要编程的数据先送进 ISP_DATA 寄存器
;CLR EA
MOV ISP_TRIG, #46H ;先送 46h,再送 B9h 到 ISP/IAP 触发寄存器,每次都需如此
MOV ISP_TRIG, #0B9H ;送完 B9h 后,ISP/IAP 命令立即被触发起动
NOP
;SETB EA
ACALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使 CPU 处于安全状态,
;一次连续的 IAP 操作完成之后建议关闭 IAP 功能,不需要每次都关
RET
;------------------------------------------------
;擦除扇区, 入口:DPTR = 扇区地址
Sector_Erase:
MOV ISP_CONTR, #ENABLE_ISP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV ISP_CMD, #03H ;设置为 IAP/ISP/EEPROM 扇区擦除模式命令
MOV ISP_ADDRH, DPH ;设置目标单元地址的高 8 位地址
MOV ISP_ADDRL, DPL ;设置目标单元地址的低 8 位地址
;CLR EA
MOV ISP_TRIG, #46H ;先送 46h,再送 B9h 到 ISP/IAP 触发寄存器,每次都需如此
MOV ISP_TRIG, #0B9H ;送完 B9h 后,ISP/IAP 命令立即被触发起动
NOP
;SETB EA
ACALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使 CPU 处于安全状态,
;一次连续的 IAP 操作完成之后建议关闭 IAP 功能,不需要每次都关
RET