单片机内部 EEPROM 的应用
STC89C51、52 内部都自带有 2K 字节的 EEPROM,54、55 和 58 都自带有 16K 字节的
EEPROM,STC 单片机是利用 IAP 技术实现的 EEPROM,内部 Flash 擦写次数可达 100,000 次以
上,先来介绍下 ISP 与 IAP 的区别和特点。
知识点:ISP 与 IAP 介绍
ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不
用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给 STC 单片机下载程序,或给 AT
89S51 单片机下载程序,这就是利用了 ISP 技术。
IAP:In Application Programable 是指在应用编程,就是片子提供一系列的机制(硬件/软件
上的)当片子在运行程序的时候可以提供一种改变 flash 数据的方法。通俗点讲,也就是说程序自
己可以往程序存储器里写数据或修改程序。这种方式的典型应用就是用一小段代码来实现程序的
下载,实际上单片机的 ISP 功能就是通过 IAP 技术来实现的,即片子在出厂前就已经有一段小
的 boot 程序在里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上
位机通信,然后下载数据到存储区。大家要注意千万不要尝试去擦除这段 ISP 引导程序,否则
恐怕以后再也下载不了程序了。
STC 单片机内部有几个专门的特殊功能寄存器负责管理 ISP/IAP 功能的,见表 1。
表 1 ISP/IAP 相关寄存器列表
名称
地址
功能描述
D7
D6
D5
D4
D3
D2
D1
D0
复位值
ISP_DATA
E2h
Flash 数据寄存器
1111
1111
ISP_ADDRH
E3h
Flash 高字节地址
寄存器
0000
0000
ISP_ADDRL
E4h
Flash 低字节地址
寄存器
0000
0000
ISP_CMD
E5h
Flash 命令模式寄
存器
--
--
--
--
--
MS2
MS1
MS0
xxxx x000
ISP_TRIG
E6h
Flash 命令触发寄
存器
xxxx xxxx