中颖EEPROM 操作
<pre name="code" class="cpp">/*中颖EEPROM,使用比较方便,但有个注意点,就是每次无论你写入什么数据或者在哪个地址写数据,都需要将对 对应的块擦除,擦除后才能写入成功。
*/
#define SSPWriteFlag 0x5A
#define SSPEraseFlag 0xA5 //数据区 扇形区1
#define ADDR_START1 (uint16)0x100 //数据存储区起始地址#define ADDR_START2 (uint16)0x200 //数据存储区起始地址
//数据区 扇形区2
#define Addr1UserHave (uint16)0x101 //用户地址1
#define Addr2UserHave (uint16)0x102 //用户地址2uint8 Ssp_Flag = 0 ;//*************************************
// 函数名称:Ssp_Write
// 函数功能:SSP擦除某块的地址
// 入口参数:被写数据的地址 数据
// 出口参数:无
//***************************************
void Ssp_EraseBlock(uint16 addr)
{CY=EA;EA=0;IB_CON1 = 0xE6;IB_CON2 = 0x05;IB_CON3 = 0x0A;IB_CON4 = 0x09;if(Ssp_Flag != SSPEraseFlag){IB_CON2=0;goto Erase_Err;}XPAGE = (addr>>8) & 0x07; FLASHCON=1;IB_CON5 = 0x06;_nop_();_nop_();_nop_();
Erase_Err:Ssp_Flag=0; FLASHCON=0;XPAGE=0;EA = CY;
}//**************************************
// 函数名称:Ssp_Write
// 函数功能:SSP向某地址写一字节数据
// 入口参数:被写数据的地址 数据
// 出口参数:无
//***************************************
void Ssp_WriteByte(uint16 addr,uint8 dat)
{CY=EA;EA=0;IB_DATA = dat;IB_OFFSET = addr&0xff; //取被编程的低8位地址IB_CON1 = 0x6E;IB_CON2 = 0x05;IB_CON3 = 0x0A;IB_CON4 = 0x09;if(Ssp_Flag != SSPWriteFlag){IB_CON2=0;goto Write_Err;}XPAGE = ((addr>>8) & 7); //被编程的扇形区0-3 FLASHCON=1; //对类EPROM编程开始IB_CON5 = 0x06;_nop_();_nop_();_nop_();_nop_();
Write_Err:Ssp_Flag=0;FLASHCON=0;XPAGE=0;EA = CY;
}
//*************************************
// 函数名称:Read_Flash
// 函数功能:读数据 向FLASH
// 入口参数:读数据的地址
// 出口参数:无
//***************************************
uint8 Read_FlashByte(uint16 addr)
{uint8 temp;FLASHCON=1;temp=*(uint8 code *)(addr);FLASHCON=0;return(temp);
}//应用实例:Ssp_EraseBlock(ADDR_START1);//擦除块1Ssp_WriteByte(Addr1UserHave,0x88);//在地址Addr1UserHave中写入0x88R_Data = Read_FlashByte(Addr1UserHave);//读地址Addr1UserHave的值
中颖EEPROM 操作相关推荐
- 关于FMD单片机的Eeprom操作的摆放位置
今天搞了一天的FMD程序,由于之前的程序中的Eeprom操作一直都是在Main\while中运行的,并没有问题,这次的程序按键时间需要精准,就把while中的按键程序移动到Time0下面了,反复测试, ...
- 项目之后小谈中颖芯片——SH79F166A
最近刚做完一个项目,刚好用到了国产芯片中颖的SH79F166A,由于是第一次用到这款芯片,很多细节不是很清楚,其中也踩过很多坑,在这里拿出来分享给大家,希望对同样用到这款芯片的朋友遇到相似的问题有所帮 ...
- 单片机c语言实训例子基于mega16,基于AVR单片机的mega16内部EEPROM操作C语言程序设计...
原标题:基于AVR单片机的mega16内部EEPROM操作C语言程序设计 #include #include #include #define uchar unsigned char #define ...
- 锂电池 保护板方案 中颖SH367309方案 原理图 PCB 源代码 锂电池电池管理系统 中颖SH367309保护板方案
锂电池 保护板方案 中颖SH367309方案 原理图 PCB 源代码 保护板方案 中颖SH367309方案 原理图 PCB 源代码 应用注意事项 该部分主要针对SH367309在使用过程中,软件编程和 ...
- 电力线载波SoC实现路灯远程监控应用实例(中颖SH99F01)
城市路灯是人们日常生活中必不可少的公共设施,近年来,具备远程监控功能的智能化路灯监控系统逐渐得到推广应用,除了传统的高压钠灯.卤素灯外,新型的LED路灯更是广泛采用远程监控接口,以达到节能降耗,集约化 ...
- 基于中颖8位MCU的触摸按键方案
前言 在需要用户界面的应用方案中,传统的机电开关正在被电容式触摸感应控制所替代. Sino wealth已经开发了一套触摸感应软件,使得任意一款8位的中颖微控制器都可以作为一个电容式触 ...
- H7-TOOL发布V2.20带来原创RTOS Trace,截图,Scope功能,脱机烧录增加PSoC6, 中颖, 笙泉, 韦斯佰瑞, nRF9160, 杰发科技新系列等
新功能视频介绍: https://www.bilibili.com/video/BV1ss4y1f7MV H7-TOOL发布原创RTOS Trace,GUI截图,Scope功能,脱机烧录增加PSoC6 ...
- STC32G 单片机EEPROM 操作实例
一 STC32G 单片机EEPROM简介 STC32G系列单片机内部集成了大量的EEPROM,特别是STC32G12K128集成多达128K EEPROM. STC32G内部EEPROM可擦写10万 ...
- Python使用matplotlib绘制数据去重前后的柱状图对比图(在同一个图中显示去重操作之后同一数据集的变化情况)
Python使用matplotlib绘制数据去重前后的柱状图对比图(在同一个图中显示去重操作之后同一数据集的变化情况) #仿真数据 import pandas as pd import numpy a ...
最新文章
- nginx 配置https 并解决重定向后https协议变成了http的问题
- 英伟达公开课 | 手把手教你部署一辆高速目标检测Jetbot智能小车
- Lua === Lua 十分钟基础入门上手
- 深入react技术栈(9):表单
- 分布式事务实践--Spring的全局事务JTA
- 进程信号(信号、信号的注册与注销、信号的处理方式)
- 任正非表示支持小女儿姚安娜搞文艺
- 城市中计算机控制系统的应用,计算机联锁控制系统在北京城铁中的应用
- 从动态表单得到的一些思考
- 设置全屏代码android,Android实现全屏显示的方法
- 教程资源合集(网上搜集整理)
- matlab安装mosek工具包
- excel把多个工作表合并
- 酒店管理系统 java_java酒店管理系统项目书.pdf
- 有哪些盛极一时的互联网产品,现在都没落了?
- itpt_TCPL 第一章:C简要教程
- 使用uncompyle2直接反编译python字节码文件pyo/pyc
- 部暑nginx digest auth
- Solar-Putty如何修改显示字体大小
- springboot配置日志文件报错: