STC12C5A60S2的EEPROM应用
1.概述
STC12C5A60S2单片机可以使用ISP/IAP技术可将内部Data Flash作为EEPROM使用,EEPROM可以分为多个扇区,每个扇区包含512字节,STC12C5A60S2包含两个扇区。
2.IAP寄存器介绍
IAP_DATA:
数据寄存器,从Flash读出与写入数据都使用此寄存器。
IAP_ADDRH:
地址寄存器,高八位。
IAP_ADDRL:
地址寄存器,低八位。
IAP_CMD:
命令寄存器,指定对Flash区进行读/写/擦除操作
IAP_TRIG:
命令触发寄存器,操作命令时用于触发寄存器,对此寄存器先写入5Ah,再写入A5h,IAP命令才会生效。
IAP_CONTR
控制寄存器,使能IAP读写操作。
3.写EEPROM
void IapProgramByte(unsigned int addr, unsigned char dat){IAP_CONTR = ENABLE_IAP; // 打开IAP方法IAP_CMD = CMD_PROGRAM; // 设置写命令IAP_ADDRL = addr; // 设置低八位地址IAP_ADDRH = addr >> 8; // 设置高八位地址IAP_DATA = dat; // 写数据IAP_TRIG = 0x5A; // 设置触发命令IAP_TRIG = 0xa5; // 设置触发命令_nop_();IapIdle(); // 关闭方法
}
4.读EEPROM
unsigned char IapReadByte(unsigned int addr){unsigned int dat;IAP_CONTR = ENABLE_IAP; // 打开IAP方法IAP_CMD = CMD_READ; // 设置读命令IAP_ADDRL = addr; // 设置低八位地址IAP_ADDRH = addr >> 8; // 设置高八位地址IAP_TRIG = 0x5A; // 设置触发命令IAP_TRIG = 0xa5; // 设置触发命令_nop_();dat = IAP_DATA; // 读取数据IapIdle(); // 关闭方法return dat;
}
5.擦除EEPROM扇区
void IapEraseSector(unsigned int addr){IAP_CONTR = ENABLE_IAP; // 打开IAP方法IAP_CMD = CMD_ERASE; // 设置写擦除令IAP_ADDRL = addr; // 设置低八位地址IAP_ADDRH = addr >> 8; // 设置高八位地址IAP_TRIG = 0x5A; // 设置触发命令IAP_TRIG = 0xa5; // 设置触发命令_nop_();IapIdle(); // 关闭方法
}
由于STC12C5A60S2使用的是Flash,所以进行写操作的时候只能将0置为1,无法将1置为0,所以在更新数据的时候,先要进行擦除操作,才可以进行写操作。
由于擦除操作是对整个扇区进行擦除的,所以在进行写数据的时候,需要对整个扇区的数据进行缓存,在擦除完成之后进行整个扇区写数据。
6.实例代码下载
EEPROM的应用示例代码(github)
STC12C5A60S2的EEPROM应用相关推荐
- 基于射频RFID智能刷卡门禁系统设计(毕设课设)
1.用户密码以及IC卡号和IC卡刷入序列号,保存到STC12C5A60S2的EEPROM中,实现掉电数据保存功能. 2.支持非接触式IC卡授权功能,可连续授权(授权需输入管理员密码程序默认" ...
- java门禁系统设计流程图_RFID门禁系统代码+pcb+流程图+论文+参考资料
如有疑问可联系QQ525658917 测试视频链接: 一.实现功能:存储5张IC卡 1.用户密码以及IC卡号和IC卡刷入序列号,保存到STC12C5A60S2的EEPROM中,实现掉电数据保存功能. ...
- LCD1602,4位数据总线液晶屏时钟,STC12C5A60S2的10位ADC功能程序
/* 程序名: LCD1602,4位数据总线液晶屏时钟,STC12C5A60S2的10位ADC功能程序 编写时间: 2015年10月4日 硬件支持: LCD1602液晶屏 STC12C5A60S2 外 ...
- STC12C5A60S2片内存储器介绍
STC12C5A60S2内部集成RAM 1280字节,其中 内部RAM(data):256 Byte 内部扩展RAM(xdata):1024 Byte 支持片外扩展RAM: 64kB STC12C5A ...
- ROM、PROM、EPROM、EEPROM、RAM、SRAM、DRAM的区别
平时对于这些个相近的名词一看到就头疼,看了这篇文章后豁然开朗!!! 在微机的发展初期,BIOS都存放在ROM(Read Only Memory,只读存储器)中.ROM内部的资料是在ROM的制造工序中, ...
- 简介nandflash、norflash、ram、sram、dram、rom、eeprom、flash的区别
1.nandflash Nandflash是IO设备,数据.地址.控制线都是共用的,需要软件区控制读取时序, 所以不能像nor flash.内存一样随机访问,不能EIP(片上运行),因此不能直 ...
- linux除了eeprom其他的保存方法,linux的EEPROM的读写控制.doc
毕业设计[论文]题目:基于linux的EEPROM的读写控制毕业论文(设计)原创性声明 本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果.据我所知,除文中已经注明引用的内容 ...
- 10.STM32中用I2C接口发送数据到EEPROM寄存器在从此寄存器读数据
10.STM32中用I2C接口发送数据到EEPROM寄存器在从此寄存器读数据.
- 读写EEPROM遇到的问题:16位地址的内容都是最后写入的数据。
#define EE_TYPE AT24C64 如下图所示,往EEPROM的地址0x1000.0x1001.0x1002和0x1003分别写入0xAA.0xBB.0xCC和0xDD,读出来的数据都是最 ...
- EEPROM存储器--AT24CXX
AT24CXX介绍: 目前,市场上I2C总线接口器件有多种,利于A/D转换器.D/A转换器.时钟芯片和存储器等.这里以典型的I2C总线接口为例进行介绍. I2C总线接口EEPROM存储器是一种采用I2 ...
最新文章
- c#链接操作mysql数据库代码_c#连接mysql数据库 代码
- Xamarin XAML语言教程基本页面ContentPage占用面积内容页面的派生关系与属性
- NTU 课程笔记:MAS714(9) 动态规划
- 若依项目linux部署
- 校园职业社交Handshake获1005万美金A轮融资
- 同时满足两个条件怎么写_2020年宅基地确权需满足哪些条件?可以写几个人的名字?...
- 每天一道LeetCode-----从有序数组中删除重复元素
- QT显示框架嵌入Vs控制台工程
- linux内存管理的主要概念是虚拟内存,你知道linux内存管理基础及方法?
- python canvas画移动物体_Python GUI编程入门(25)-移动Canvas对象
- C语言 socket 编程学习
- 一个励志PM小哥哥的Java转型之路
- Teleport Ultra 抓包工具
- AI人脸识别真的成熟了吗?读完这篇你就懂了
- python实现安卓点击_python模拟点击在ios中实现的实例讲解
- 【Unity开源项目精选】AssetStudio:提取Unity游戏的资源
- 谁说大龄程序员不能学 Java?
- 各种SQL数据库的数据类型
- 看不出svp补帧_SVP4免费版|SVP4(视频补帧软件)下载v4.2.0.122免费版 附教程 - 欧普软件下载...
- Large Scale Spectral Clustering with Landmark-Based Representation