打印
[经验分享]

82LE52 IAP 读写范例

[复制链接]
2884|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuq_quan|  楼主 | 2010-5-27 14:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
82LE52 IAP 的设置与读写方法,和范例程序,分享!

82LE52_IAP.pdf

175.05 KB

沙发
ershisi| | 2010-5-27 21:03 | 只看该作者
好,顶~~~

使用特权

评论回复
板凳
huamunv| | 2010-5-27 22:15 | 只看该作者
82L/E52?IAP使用说明,简单明了

使用特权

评论回复
地板
laslison| | 2010-5-27 22:39 | 只看该作者
好简单啊

使用特权

评论回复
5
David_ming| | 2010-5-28 13:37 | 只看该作者

使用特权

评论回复
6
David_ming| | 2010-5-28 13:38 | 只看该作者
操作IAP要注意电压,如果在上电瞬间操作的话,电源不稳定,也许刚好擦除一页就掉电,那么写入就会失败,好像丢失数据一样,一定要电源稳定在操作

使用特权

评论回复
7
yuq_quan|  楼主 | 2010-5-28 13:46 | 只看该作者
David_ming,  好建议! 赞同!

使用特权

评论回复
8
午夜粪车| | 2010-5-28 20:34 | 只看该作者
经验之谈啊

使用特权

评论回复
9
xiaomifan| | 2010-5-28 22:44 | 只看该作者
怎么判断电源稳定?

使用特权

评论回复
10
xiaohuai| | 2010-5-29 21:36 | 只看该作者
这个资料看着真舒服

使用特权

评论回复
11
lpydidi| | 2010-5-30 22:13 | 只看该作者
简洁明了,不错!

使用特权

评论回复
12
yuq_quan|  楼主 | 2010-5-31 10:44 | 只看该作者
怎么判断电源稳定?


一般认为:上电/掉电时,IC的电源是不稳定的.
所以,IC复位后一段时间,最好不要读写IAP,以免误动作.

使用特权

评论回复
13
David_ming| | 2010-6-1 17:19 | 只看该作者
#include "megawin.h"
#include "intrins.h"
#include "iap.h"

bit SetIAP(uchar Address)
{
        bit i = EA;
        if(Address % 2)return(1);//IAPLB must be even number
        EA    = 0;
        IFMT  = 0x04;   //IAPLB set command
        IFD   = Address;//0x02*0x100 = 0x200;(must be even number!!)
        ISPCR|= 0x80;   //enable ISP
        SCMD  = 0x46;
        SCMD  = 0xB9;   //start to set IAPLB
        _nop_();
        SCMD   = 0;     //disable the isp
        ISPCR  = 0;         //disable  ISP
        EA = i;
        return(0);       
}

bit WriteIAP(uint Address,uchar dat)
{
        bit i  = EA;
        EA     = 0;
        IFADRH = Address >> 8;        //address high byte
        IFADRL = (uchar)Address;//address low  byte
        IFMT   = 0x02;        //write   command
        IFD           = dat;   //data
        ISPCR |= 0x80;         //enable  ISP
        SCMD   = 0x46;
        SCMD   = 0xb9;        //start to operate
        _nop_();
        SCMD   = 0;     //disable the isp
        ISPCR  = 0;         //disable  ISP
        EA     = i;
        if(ISPCR & 0x10)return(1);
        else return(0);
}
bit EraseIAP(uchar Address)
{
        bit i  = EA;
        EA     = 0;
        IFADRH = Address;        //address high byte
        IFADRL = 0;                  //address low  byte
        IFMT   = 0x03;                //eraser  command
        ISPCR  = 0x00;                //waiting time set
        ISPCR |= 0x83;          //enable  ISP
        SCMD   = 0x46;
        SCMD   = 0xb9;                //start to operate
        _nop_();
        SCMD   = 0;     //disable the isp
        ISPCR  = 0;         //disable  ISP
        EA     = i;
        if(ISPCR & 0x10)return(1);
        else return(0);
}
uchar ReadIAP(uint Address)
{
        bit i  = EA;
        EA     = 0;
        IFADRH = Address >> 8;        //address high byte
        IFADRL = (uchar)Address;//address low  byte               
        IFMT   = 0x01;        //write   command
        ISPCR  = 0x00;        //waiting time set        
        ISPCR |= 0x83;         //enable  ISP
        SCMD   = 0x46;       
        SCMD   = 0xb9;        //start to operate               
    _nop_();
        SCMD   = 0;     //disable the isp
        ISPCR  = 0;         //disable  ISP
        EA     = i;
        return(IFD);
}

使用特权

评论回复
14
ershisi| | 2010-6-2 21:29 | 只看该作者
13发的是什么东西?

使用特权

评论回复
15
guita| | 2010-6-11 22:01 | 只看该作者
好东西,谢谢楼主分享

使用特权

评论回复
16
panamatw| | 2014-8-18 09:21 | 只看该作者
謝謝

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

119

帖子

1

粉丝