查看: 5233|回复: 1

华邦(W79E2051/W79E825)单片机系列NVM(仿EEPROM) 库函数 (转自老许笔记)

[复制链接]

该用户从未签到

发表于 2010-4-30 10:20:56 | 显示全部楼层 |阅读模式
分享到:
 
推荐

<div style="word-break: break-all" align="left">   <span style="font-size: 9pt">华邦公司推出的 LPC(W79E2051/W79E825)单片机系列,内含小扇区的 NVM(仿EEPROM),在使用上比一般产品方便(指用 FLASH仿 EEPROM),因产品需要,编写了 NVM(仿EEPROM) 库函数,现上传供网友分享。(许工是我们MCU行业,大师级人物,从许工身上可以看到我们技术人员的,务实求是、专研精神。如果大家经常逛BBS,应该经常会看到许工的身影,他经常为我们这些新手答疑解惑,组织翻译、样板赠送活动,他的那种无私贡献,乐于助人的精神让我非常的敬佩)
//------------------------------------------------------//

#ifndef __W79ExxxNVM_H__  
#define __W79ExxxNVM_H__

#i nclude 

#if defined(W79E825)       // W79E825
#  include "W79E825.h"
#  define  NVM_PLEN   64   // LEN  = 256
#  define  NVM_RL      6   // PAGE = 4

#elif defined(W79E4051)    // W79E4051
#  include "W79E4051.h"
#  define  NVM_PLEN   16   // LEN  = 128
#  define  NVM_RL      4   // PAGE = 8

#else
#  error   "请选择带NVM芯片型号"
#endif

#pragma SAVE
#pragma REGPARMS
//     char NVM_RD_CHAR(unsigned char ADDR)
#define     NVM_RD_CHAR(m)  CBYTE[m+0xfc00]                   // 字节读出
extern int  NVM_RD_INT(unsigned char ADDR);                   // 字读出
extern long NVM_RD_LONG(unsigned char ADDR);                  // 长字读出
extern void NVM_RD_PAGE(unsigned char PAGE,unsigned char *p); // 页读出
extern void NVM_CLR(unsigned char PAGE);                      // 页擦除
extern void NVM_WR_CHAR(unsigned char ADDR,unsigned char CA); // 字节写入
extern void NVM_WR_INT(unsigned char ADDR,unsigned int IA);   // 字写入
extern void NVM_WR_LONG(unsigned char ADDR,unsigned long LA); // 长字写入
extern void NVM_WR_PAGE(unsigned char PAGE,unsigned char *p); // 页写入
#pragma RESTORE

#endif  // __W79ExxxNVM_H__

//------------------------------------------------------//

/*---------------------------------------------------*/
/*                                                   */
/*   W79E4051/W79E825 NVM通用读写子程序              */
/*                                                   */
/*   CPU  : W79E4051                                 */
/*   晶振 : 12MHz                                    */
/*   作者 : 许意义                                   */  
/*   版本 : V1.0                                     */
/*   日期 : 2009.1.6                                 */
/*                                                   */
/*---------------------------------------------------*/
#i nclude "MPU51TYPE.h"
#i nclude "W79ExxxNVM.h"

int NVM_RD_INT(unsigned char ADDR)   // 字读出
{ unsigned int IA;
  byte0(IA) = NVM_RD_CHAR(ADDR++);
  byte1(IA) = NVM_RD_CHAR(ADDR);
  return(IA);
}

long NVM_RD_LONG(unsigned char ADDR)   // 长字读出
{ unsigned long LA;
  byte0(LA) = NVM_RD_CHAR(ADDR++);
  byte1(LA) = NVM_RD_CHAR(ADDR++);
  byte2(LA) = NVM_RD_CHAR(ADDR++);
  byte3(LA) = NVM_RD_CHAR(ADDR);
  return(LA);
}

void NVM_RD_PAGE(unsigned char PAGE,unsigned char *p) // 页读出

  unsigned char a, i;
  a = PAGE 
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-4-30 10:20:59 | 显示全部楼层

RE:华邦(W79E2051/W79E825)单片机系列NVM(仿EEPROM) 库函数 (转自老许笔记)

W79E2051/ W79E4051,全面兼容AT89C4051/4051,STC12C2052/4052系列。
Part No.        最新价格        Flash        RAM        Data Flash        I/O        Timer        ITERNALRC OSC        PWM        WDT        ICP        封装
W79E2051        2.40        2K        256        128b        15        2*16bit        20/10MHZ+2%        1*10b        Y        Y        DIP\SOP20
W79E4051        2.90        4K        256        128b        15        2*16bit        20/10MHZ+2%        1*10b        Y        Y        DIP\SOP20
注:能与AT89C2051兼容通用功能外,还具有更快的速度,W79E2051采用4T时钟周期内核,更大的RAM空间
达到256字节,内置RC振荡,可配置的I/O模式,带噪声滤波的模拟比较器,1路PWM输出,有上电复位欠压
检测功能;工业级温度设计,高抗干扰兼容性。
:http://www.victor-ic.cn         :86-0755-61392396/61392398-809           :0755-61392390
:唐孙林    :13410362373   :1057045572   :tangsunlin@163.com   :tang@victor-ic.cn
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /5 下一条

手机版|小黑屋|与非网

GMT+8, 2024-12-21 06:15 , Processed in 0.117980 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.