打印
[其它应用]

中颖MCU专用《FLASH、类EEPROM 读写库》

[复制链接]
2140|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Vitality1|  楼主 | 2015-1-29 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中颖MCU专用《FLASH、类EEPROM 读写库》

一、简介

自从上次编写了中颖单片机C51定点库、浮点库专用运算库函数,再接再励,完善中颖单片机通用库函数,特编写了《中颖FLASH、类EEPROM 专用读写库》,适于于中颖SH79/88/89系列对片内FLASH、类EEPROM 的读出和写入,完善对中颖单片机的技术支持。



二、中颖FLASH、类EEPROM 专用读写库 清单


/***************************************************************************************

Model: flash-sh88f51.h

Description : Head file of defining GLOBAL variable.

Author: CLR

Create Time : 2011-10-19

Version ID: 1.5

用途 :中颖SH79/88/89F51系列MCU

作者 :许意义

21icID :LAOXU

中颖论坛 : bbs.21ic.com

****************************************************************************************/


#ifndef_FLASH_SH88F51_H

#define_FLASH_SH88F51_H


#pragmaMODDP2 // 打开中颖单片机双DPTR功能,加速数据传送

//#pragmaNOMODDP2 // 关闭中颖单片机双DPTR功能


/*--------------------------------------------------------------------------------------*/

/* Resource - FLASH_SH88F51.asm */

/*--------------------------------------------------------------------------------------*/


externuint8read_eeprom_u8 (uint16 u16_addr, uint8 u8_FAC); // 从指定的eeprom/flash地址中读出char型变量

externuint16 read_eeprom_u16(uint16 u16_addr, uint8 u8_FAC); // 从指定的eeprom/flash地址中读出int型变量

externuint32 read_eeprom_u32(uint16 u16_addr, uint8 u8_FAC); // 从指定的eeprom/flash地址中读出long型变量

extern void read_eeprom_str(uint16 u16_addr, uint8 u8_len, uint8 *u8_data, uint8 u8_FAC); // 从eeprom/flash中读出字符串, 存储在char*指向的RAM中

extern void erase_eeprom(uint8 u8_XPAGE, uint8 u8_FAC); // 擦除eeprom/flash的指定页

extern bit write_eeprom_u8 (uint8u8_data,uint16 u16_addr, uint8 u8_FAC);// 将char型变量写入指定的eeprom/flash中

extern bit write_eeprom_u16(uint16 u16_data, uint16 u16_addr, uint8 u8_FAC);// 将int型变量写入指定的eeprom/flash中

externbit write_eeprom_u32(uint32 u32_data, uint16 u16_addr, uint8 u8_FAC);// 将long型变量写入指定的eeprom/flash中

externbit write_eeprom_str(uint16 u16_addr, uint8 u8_len, uint8 *u8_data, uint8 u8_FAC); // 将char*指向的字符串写入指定的eeprom/flash中

extern bitread_eeprom_like(uint8 u8_XPAGE, uint8 u8_len, uint8 *u8_data, uint8 u8_FAC); // 从指定页循环使用的eeprom/flash空间内,读出长度为u8_LEN的字符串

extern bit write_eeprom_like(uint8 u8_XPAGE, uint8 u8_len, uint8 *u8_data, uint8 u8_FAC); // 从指定页循环使用的eeprom/flash空间内,读出长度为u8_LEN的字符串

// 入口要求: u8_FAC=1 指定eeprom时,u8_len > 1;u8_FAC=0 指定flash时,u8_len > 4

// 返回:C=0 --> 读写成功,C=1 --> u8_len长度不符规定或末成功写入


/* 中颖单片机EEPROM或FLASH数据读出/写入库内部调用函数

extern void read_rom_dptr1(int16 u16_DPTR1); // 从@DPTR1中读出1byte EEPROM或FLASH数据(其FAC位已预设定)送ACC, DPTR1++

extern bitcmp_eeprom_1(uint8u8_data); // 将@DPTR1指定的EEPROM或FLASH中内容读出, 和char型变量相比较,DPTR1++

extern bitcmp_eeprom_2(uint16 u16_data); // 将@DPTR1指定的EEPROM或FLASH中内容读出, 和 int型变量相比较,DPTR1++

extern bitcmp_eeprom_4(uint32 u32_data); // 将@DPTR1指定的EEPROM或FLASH中内容读出, 和long型变量相比较,DPTR1++

extern void write_rom_dptr1(int8 u8_ACC); // 将ACC中数据写入@DPTR1指定的EEPROM或FLASH中(其FAC位已预设定),DPTR1++

extern void write_eeprom_1(uint8u8_data) // 将char型变量写入指定的eeprom/flash中

extern void write_eeprom_2(uint16 u16_data) // 将 int型变量写入指定的eeprom/flash中

extern void write_eeprom_4(uint32 u32_data) // 将long型变量写入指定的eeprom/flash中

extern bit check_eeprom_null(uint8 u8_len); // 检查当前写入页中,len长度的空间是否为空 null

extern bit locate_eeprom(uint8 u8_eeprom_count_len); // 寻找index当前写入页中,是否有len长度的空间充许写入

*/


#endif



三、便用说明

只需要在编译程序过程中,加入《中颖FLASH、类EEPROM 专用读写库》----FLASH-SH88F51.LIB,其他什么事都不用干!在编译过程中实现自动插入,无缝嵌入。



四、友情提示

本《中颖FLASH、类EEPROM 专用读写库》,仅适用于中颖SH79/88/89系列单片机,其他51单片机并不适用,由于Keil C51不支持中颖51单片机的软件仿真,所以必须要用中颖51单片机的硬件仿真或依靠中颖51单片机的实时运行,读写结果才能正确



沙发
powerful1| | 2015-1-29 20:56 | 只看该作者
FLASH、类EEPROM读写过程很清楚

使用特权

评论回复
板凳
黑夜之狼| | 2015-1-30 09:11 | 只看该作者
资料呢

使用特权

评论回复
地板
我叫荧火| | 2015-4-30 17:28 | 只看该作者
资料呢

使用特权

评论回复
5
laoxu| | 2015-5-4 10:03 | 只看该作者
中颖MCU专用《FLASH、类EEPROM 读写库》

下载地址:

https://bbs.21ic.com/icview-277564-1-1.html

使用特权

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

本版积分规则

81

主题

421

帖子

9

粉丝