STM8S103F3--EEPROM

发布者:Serene123最新更新时间:2020-09-23 来源: eefocus关键字:STM8S103F3  EEPROM  存储结构 手机看文章 扫描二维码
随时随地手机看文章

  本文介绍stm8s103f3这款单片机的eeprom的用法。


      EEPROM是单片机应用系统中经常会用到的存储器,它主要用来保存一些掉电后需要保持不变的数据。在以前的单片机系统中,通常都是在单片机外面再扩充一个EEPROM芯片,这种方法除了增加成本外,也降低了可靠性。现在,很多单片机的公司都推出了集成有小容量EEPROM的单片机,这样就方便了使用,降低了成本,提高了可靠性。


        1.介绍STM8S103F3的首地址及容量。

        STM8单片机芯片内部也集成有EEPROM,容量从640字节到2K字节。最为特色的是,在STM8单片机中,对EEPROM的访问就象常规的RAM一样,非常方便。EEPROM的地址空间与内存是统一编址的,地址从004000H开始,大小根据不同的芯片型号而定。


        stm8s103f3的EEPROM存储结构如下:

clipboard

        由上图可知,EEPROM的大小为0x00427f-0x004000+1=0x280=640bytes。


        2.介绍EEPROM的解保护寄存器

clipboard[1]

        向该寄存器先写入0XAE,然后写入0X56就可以解除解保护。想该寄存器读操作时,会返回0;


        3.FLASH状态寄存器

clipboard[2]

clipboard[3]

    需要注意的是bit3,bit3为EEPROM区域解锁标记,0表示保护使能,1表示保护失效。向FLASH_DUKR中写入解锁数据后通过查看FLASH_IAPSR寄存器的bit3来确定EEPROM区域已经解锁。


        bit2表示编程结束标志。对EEPROM区域进行写操作后需要判断该位来确定已经写操作成功。


        下面设计两个程序程序,第一个程序给EEPROM中的004000H位置写入一个值01H,少写入Flash中。第二个程序先读出004000H位置的值,然后给该值加1,再写入到004000H位置,也即是说每次上电时,004000H位置的值会加1。同时为了观察现象,在第二个程序中设置了一个LED灯,通过灯的亮灭次数来表示当前004000H位置的值。


第一个程序:

 1         #include "iostm8s103f3.h"

 2 

 3 void main()

 4 

 5 {

 6 

 7   unsigned char *p;

 8 

 9   unsigned int i;

10 

11   p = (unsigned char *)0x4000; // 指针p指向芯片内部的EEPROM第一个单元

12 

13   // 对数据EEPROM进行解锁

14 

15   do

16 

17   {

18 

19     FLASH_DUKR = 0xae; // 写入第一个密钥

20 

21     FLASH_DUKR = 0x56; // 写入第二个密钥

22 

23   } while((FLASH_IAPSR & 0x08) == 0); // 若解锁未成功,则重新再来

24 

25   *p=1; // 写入第一个字节

26 

27   while((FLASH_IAPSR & 0x04) == 0); // 等待写操作成功

28 

29 }


第二个程序:


 1  #include "iostm8s103f3.h"

 2  unsigned char ch;

 3  void delay (unsigned int times)

 4  {

 5    unsigned int i,j;

 6    for(j=0;j 7    for(i=0;i<65535;i++);

 8  }

 9  void main()

10  {

11    unsigned char *p;

12    unsigned int i;

13    p = (unsigned char *)0x4000; // 指针p指向芯片内部的EEPROM第一个单元

14    // 对数据EEPROM进行解锁

15     ch=0;

16     PD_DDR = 0x10;

17     PD_CR1 = 0x10;

18     PD_CR2 = 0x00;

19    do

20    {

21      FLASH_DUKR = 0xae; // 写入第一个密钥

22      FLASH_DUKR = 0x56; // 写入第二个密钥

23    } while((FLASH_IAPSR & 0x08) == 0); // 若解锁未成功,则重新再来

24    *p = *p+1; // 写入第一个字节

25    while((FLASH_IAPSR & 0x04) == 0); // 等待写操作成功

26    ch=*p; // 将写入的内容读到变量ch中

27    for(i=0;i28      PD_ODR = 0x00;

29      delay(4);

30      PD_ODR=0X10;

31      delay(4);

32    }

33  }


第二个程序下载完成之后,对开发版进行断电和上电操作,上电后PD4所对应的LED灯就会闪烁,闪烁次数代表*p位置的值的大小。


关键字:STM8S103F3  EEPROM  存储结构 引用地址:STM8S103F3--EEPROM

上一篇:STM8s在利用库配置端口的小问题
下一篇:IAR配置ICF到项目的实现方法

推荐阅读最新更新时间:2024-11-07 17:57

读写EEPROM(利用数码管观察)
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int #define ON_138 PORTC|=BIT(PC7) //使能74138 #define OFF_138 PORTC&=~BIT(PC7) const uchar table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示的段码值 uchar buffer ={0,0,0};//存放待显示的数据的段码 //函数名;Send_Buffer //输入:待数码管显示的
[单片机]
51单片机 EEPROM 24c02 读取存储多字节
先将数据存进去,然后再读出来显示在数码管上。 除了代码里定义的连线外还要把p0连接到8位数码管的8针上。 1 /*-- 2 名称:IIC协议 EEPROM24c02 3 内容:此程序用于检测EEPROM性能,测试方法如下:写入24c02一些数据,然后在内存中清除这些数据, 4 掉电后主内存将失去这些信息,然后从24c02中调入这些数据。看是否与写入的相同。 5 函数是采用软件延时的方法产生SCL脉冲,固对高晶振频率要作 一定的修改....(本例是1us机器 6 周期,即晶振频率要小于12MHZ) 7 */ 8 #include reg52.h //头文件的包含 9 #include intrins.
[单片机]
单片机_stc单片机eeprom 学习笔记
1,有若干个扇区,每个扇区包含512字节,一个地址存储一个字节,第一个扇区的地址从0到512. 十六进制表示是 0x0000~0x0200 2,数据擦除是按照扇区为单位的,所以要合理分配存储内容的扇区(擦除频率高的数据和频率低的数据放在不同的扇区存储) 3,eeprom操作的时候,系统时钟不供给cpu,但是系统时钟给其它外设时钟此时需要注意,如串口发送的数据可能会丢失,以及不能及时响应 4,擦除,写和读,都需要正常的等待时间,不然会影响使用寿命,和数据的正确性 5,IAP和movc二者对eeprom的操作地址不同, 实际使用中规划好需要存储的数据,和所在扇区,然后通过excel,生成eeprom文件,然后
[单片机]
单片机_stc单片机<font color='red'>eeprom</font> 学习笔记
24C02(EEPROM)以字节读写程序(ASM)
24C02以字节读写时序 选择性读时序 .................24c02字节读写程序(已调试过 )....................... ;//////////////////////////////////////////////////// ;AT89C52与AT24C02的IIC通信 ;控制数码管显示0-P ;AT24C02采用字节写和选择性读 ;//////////////////////////////////////////////////// DAUN EQU 18 ;写入字节数,对24C02(256BK)最大为255 ADDR EQU 41H ;24C02操作数据地址 WRD
[单片机]
24C02(<font color='red'>EEPROM</font>)以字节读写程序(ASM)
STC单片机内部EEPROM的使用-记录上电次数
大多数情况下,大家存储掉电的数据都是用的24C02,在一些需要考虑成本的场合,内部的EEPROM也是可以考虑使用的,这个程序介绍一下,STC内部的EEPROM的使用,程序的功能是记录上电次数,然后加1,在数码管上显示出来。 /******************************************************************************* * 文件名: 数码管显示上电计数值 * 描 述: 上电计数 * 功 能:数码管的使用 11.0592MHZ * 作 者:大核桃 * 版本号:1.0.1(2017.05.23) ************************************
[单片机]
意法半导体(ST)推出新的带EEPROM和嵌入式晶体的实时时钟芯片
新器件在电表应用中同时提供 三大 功能: 压缩电路板空间,提高产品可靠性,降低制造成本 中国 ,2006年11月29日 — 高性能模拟及混和信号产品的领导厂商 意法半导体(纽约证券交易所代码: STM) 推出一个高精度的串行实时时钟 (RTC) ,该芯片在一个节省空间的 18 引脚 SOIC ( 小外廓集成电路 ) 内集成了 EEPROM 和一个嵌入式晶体。ST的新产品 M41T56C64 压缩了电路板空间,提高了系统可靠性,降低了制造成本,特别适用于有计时精度和非易失性数据存储要求的应用产品。目标应用包括电表、医疗设备、自动售货机、销售点终端 (POS) 。 芯片的实时时
[新品]
STM32的FLASH模拟EEPROM
1. Flash.h /* ******************************************************************* ** ** @Brief : STM32 FLASH 模拟EEPROM ** @Cpu : STM32F103ZET6 ** @Flash : 512K 字节 ** @Note : 源码来自正点原子stm32 教程 ******************************************************************* */ #ifndef __STMFLASH_H__ #define __STMFLASH_H__ #incl
[单片机]
Cortex-M3 (NXP LPC1788)之EEPROM存储
EEPROM是一种非易失性存储器,主要用于存储相对少量的数据,如存储一些系统的配置信息。通过系统的EEPROM控制模块可以轻松的进行EERPOM的存储控制。 要正确使用EPPROM需要配置掉电寄存器EEPWRDWN确定EEPROM的工作模式,配置EEPROM时钟分频器寄存器,使EPPROM工作在375KHZ。下面对EPPROM的读和写数据进行介绍。 EEPROM存储器的访问有三种操作方式:读、写、擦除/编程。对EPPROM中写数据分成两个单独的操作:写和擦除/编程。第一步写操作并不是真正把数据写入EPPROM的存储介质中,而只是更新被称作 页寄存器 的临时数据寄存器。只有执行下一步 擦除/编程 操作才会真正
[单片机]
Cortex-M3 (NXP LPC1788)之<font color='red'>EEPROM</font><font color='red'>存储</font>器
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved