打印
[家电应用]

SH79F166A 类EEPROM操作程序,测试通过,可存储读取数组

[复制链接]
4838|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
搞了三天,终于调出来了,特此留贴, 希望能给像我一样的新手带来帮助


unsigned char Ssp_Flag;
//**********************************************************
//向EEPROM的指定地址单元写入一个字节模块
//字节编程
//入口参数:addr = 待写入字节地址, byte= 须编程字节的数据
//**********************************************************
void Byte_Write(unsigned int addr,unsigned char byte)
  {  Ssp_Flag=0x5a;
        EA=0;                        // disable Interrupts during write
        FLASHCON=1;
        XPAGE = (addr>>8)&0x07;         //选择类EEPROM扇区
        IB_OFFSET = addr&0xff;    //被编程的存储单元低8位地址
        IB_DATA = byte;
        if(Ssp_Flag!=0x5A)
        {
          IB_CON2=0;
          goto Write_Err;
        }
        IB_CON1 = 0x6E;
        IB_CON2 = 0x05;
        IB_CON3 = 0x0A;
        IB_CON4 = 0x09;
        IB_CON5 = 0x06;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
Write_Err:
        Ssp_Flag=0;
        FLASHCON=0;
        XPAGE=0;
        EA = CY;
  }

//*********************************************************
// 向EEPROM中写入若干待存数据子程序
// 入口参数:writeAddr:写入后数据的存放地址
//            pBuffer: 待写数据的临时存放地址(在RAM中开辟)
//            NumToWrite:待写入数据的个数:
//*********************************************************
   void Flash_Write (unsigned int WriteAddr, unsigned char *pBuffer, unsigned char NumToWrite)
{
   unsigned char t;
for(t=0;t<NumToWrite;t++)
{
  Byte_Write(WriteAddr+t,*pBuffer++);
}
}
//**********************************************************
// 檫除指定的EEPROM页(256字节/每页)子程序
// 擦除扇区, 入口:addr = 扇区地址
//**********************************************************
void Flash_Erase(unsigned int addr)
{
EA=0;
XPAGE = (addr>>8)&0x07;      
FLASHCON=1;
if(Ssp_Flag!=0xA5)
  {
   IB_CON2=0;
   goto Erase_Err;
  }
IB_CON1 = 0xE6;
IB_CON2 = 0x05;
IB_CON3 = 0x0A;
IB_CON4 = 0x09;
IB_CON5 = 0x06;
_nop_();
_nop_();
_nop_();
Erase_Err:
Ssp_Flag=0;
FLASHCON=0;
XPAGE=0;
EA = 1;
}

//***********************************************************
///读EEPROM的指定单元模块
// 入口参数:addr:待读取数据的地址
// 返回值类型:UCHAR
//***********************************************************
unsigned char Byte_Read(unsigned int addr)
{
        unsigned int TEMPB;
      
        FLASHCON=1;
        //XPAGE = 0;
        TEMPB=*(unsigned char code *)(addr);
        FLASHCON=0;
        return(TEMPB);  // return data
}
//*********************************************************
// 从EEPROM中读出若干数据子程序
// 入口参数: ReadAddr:读出后数据的临时存放地址(在RAM中开辟)
//            pBuffer: 待读取数据的首地址
//            NumToRead:待读取数据的个数
//返回值类型:字节
//*********************************************************
void Flash_Read (unsigned int ReadAddr,unsigned char *pBuffer,unsigned int NumToRead)
{
while(NumToRead)
{
  *pBuffer++=Byte_Read(ReadAddr++);
  NumToRead--;
}
}
沙发
liguohong327|  楼主 | 2015-8-24 16:49 | 只看该作者


验证数组

使用特权

评论回复
板凳
渔村| | 2015-8-25 14:08 | 只看该作者
正在研究中

使用特权

评论回复
地板
渔村| | 2015-8-25 16:53 | 只看该作者
楼主是否可以再指导下,感觉很迷茫

使用特权

评论回复
5
qhtflsw| | 2016-4-24 11:54 | 只看该作者
本帖最后由 qhtflsw 于 2016-4-24 16:40 编辑

查看EEPROM的窗口在哪里调出来的。
喔,在烧写那里。明白了

使用特权

评论回复
6
黑夜之狼| | 2016-4-25 08:51 | 只看该作者
少用goto为妙

使用特权

评论回复
7
cnb12345| | 2016-5-5 16:01 | 只看该作者

使用特权

评论回复
8
hanbing0898| | 2021-12-14 11:18 | 只看该作者

使用特权

评论回复
9
cemaj| | 2022-8-14 17:40 | 只看该作者
相当全的资料,很适合初学者                                 

使用特权

评论回复
10
pentruman| | 2022-8-14 17:55 | 只看该作者
资料还是相当全面的                                 

使用特权

评论回复
11
burgessmaggie| | 2022-8-14 18:14 | 只看该作者
谢谢lz分享,很有用                                 

使用特权

评论回复
12
febgxu| | 2022-8-14 18:23 | 只看该作者
资料够全的,多谢分享                                 

使用特权

评论回复
13
chenci2013| | 2022-8-14 18:33 | 只看该作者
有时间需要好好看看   不错                                 

使用特权

评论回复
14
lzmm| | 2022-8-14 18:42 | 只看该作者
分享的资料很高端呢。                                    

使用特权

评论回复
15
htmlme| | 2022-8-14 18:50 | 只看该作者
资料的确是很全面                                 

使用特权

评论回复
16
bartonalfred| | 2022-8-14 18:59 | 只看该作者
以后多交流交流                  

使用特权

评论回复
17
timfordlare| | 2022-8-14 19:08 | 只看该作者
谢谢lz分享,很有用                                 

使用特权

评论回复
18
selongli| | 2022-8-14 19:18 | 只看该作者
分享的资料很高端呢。                                    

使用特权

评论回复
19
eefas| | 2022-8-14 19:27 | 只看该作者
资料的确是很全面                                 

使用特权

评论回复
20
232321122| | 2022-8-14 19:35 | 只看该作者
分享的资料很高端呢。                                    

使用特权

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

本版积分规则

11

主题

38

帖子

1

粉丝