STC的IAP功能使用

本文介绍了STC89C51、52等系列单片机的内部EEPROM特性,这些是通过IAP(In-Application Programming)技术实现的。文章探讨了ISP与IAP的区别,并强调了STC单片机内部Flash的高擦写次数。内容引用自mcuol.com的xiaoxiaopig博客。
摘要由CSDN通过智能技术生成

 

以一些资料源自mcuol.com的xiaoxiaopig博客里面,http://blog.mcuol.com/User/xiaoxiaopig/Article/38135_1.htm,在此声明,如有意见,请立该联系处理。有空要加为好友∧_∧


 STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点。

知识点:ISP与IAP介绍
    ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了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
ISP_CONTR
E7h
ISP/IAP 控制寄存器
ISPEN
SWBS
SWRST
--
--
WT2
WT1
WT0
000x x000
ISP_DATA:ISP/IAP操作时的数据寄存器。
ISP/IAP从Flash读出的数据放在此处,向Flash写入的数据也需放在此处。
ISP_ADDRH:ISP/IAP操作时的地址寄存器高八位。
ISP_ADDRL:ISP/IAP操作时的地址寄存器低八位。
ISP_CMD:ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。命令模式如表2所示。
表2 ISP_CMD寄存器模式设置
D7
D6
D5
D4
D3
D2
D1
D0
模式选择
保留
命令选择
--
--
--
--
--
0
0
0
待机模式,无ISP操作
--
--
--
--
--
0
0
1
对用户的应用程序flash区及数据flash区字节读
--
--
--
--
--
0
1
0
对用户的应用程序flash区及数据flash区字节编程
--
--
--
--
--
0
1
1
对用户的应用程序flash区及数据flash区扇区擦除
程序在系统ISP程序区时可以对用户应用程序区/数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除;程序在用户应用程序区时,仅可以对数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除。STC89C51RC/RD+系列单片机出厂时已经固化有ISP引导码,并设置为上电复位进入ISP程序区,并且出厂时就已完全加密。
ISP_TRIG:ISP/IAP操作时的命令触发寄存器。
在ISPEN(ISP_CONTR.7) =1时,对ISP_TRIG 先写入46h,再写入B9h,ISP/IAP命令才会生效。
STC89C52RC,STC89LE52RC单片机内部可用Data Flash(EEPROM)的地址如表3所示,其它型号单片机请查阅相关资料。
表3 STC89C52RC、STC89LE52RC单片机内部EEPROM地址表
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值