/***************************************
读写AVR单片机EEPROM实验。
先向单片机EEPROM写入254,然后读出254,
并在数码管上显示出来
***************************************/
#include
const unsigned char duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
const unsigned char weima[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char shu[8];
unsigned int num;
/****************************************
延时函数
****************************************/
void delay(unsigned char t)
{
unsigned char x,y;
for(x=t;x>0;x--)
for(y=100;y>0;y--);
}
/****************************************
显示函数
****************************************/
void display(void)
{
unsigned char i;
for(i=0;i<4;i++)
{
PORTB =0X00;
PORTA|=0X01;
PORTA&=0XFE;
PORTB =weima[i];
PORTA|=0x02;
PORTA&=0XFD;
PORTB=shu[i];
PORTA|=0X01;
PORTA&=0XFE;
delay(4);
}
}
/***************************************
写EEPROM
***************************************/
void write_eep(unsigned int add,unsigned int data)
{ //data为待写数据,add为某单元地址
while(EECR&(1< EEAR=add; //设定单元地址
EEDR=data; //将数据写入EEDR
EECR|=(1< EECR|=(1<}
/***************************************
读EEPROM
***************************************/
unsigned char read_eep(unsigned int add)
{ //add为某单元地址
while(EECR&(1< EEAR=add; //设定单元地址
EECR|=(1< return EEDR; //返回读出的数据
}
/***************************************
数据转换子函数
***************************************/
void change(unsigned int i)
{
shu[0]=duanma[i/1000];
shu[1]=duanma[i/100%10];
shu[2]=duanma[i%100/10];
shu[3]=duanma[i%10];
}
/***************************************
端口初始化
***************************************/
void init_port(void)
{
PORTA=0XFF;
DDRA=0XFF;
PORTB=0XFF;
DDRB=0XFF;
}
/***************************************
MAIN
***************************************/
void main(void)
{
init_port();
write_eep(488,254);
delay(20);
num=read_eep(488);
delay(20);
change(num);
while(1)
{
display();
}
}
关键字:ATmega16L EEPROM 读写操作
引用地址:
ATmega16L-EEPROM读写操作实验
推荐阅读最新更新时间:2024-03-16 13:06
stm8s eeprom读写
stm8s有自带的eeprom,起始地址是0x4000,终止到哪看手册,因为我用的时候只写一个4字节数据,配置如下: 入参:eeprom偏移地址,写入的数据 void eeprom_write(const unsigned char addr,unsigned long date) { asm( sim ); FLASH_CR1_FIX = 1;//编程时间固定为标准编程时间 FLASH_CR2_WPRG = 1;//使能字编程 FLASH_NCR2_NWPRG = 0;/使能字编程 do { FLASH_DUKR = 0xAE; FLASH_DUKR = 0x56; } wh
[单片机]
基于ATmega16L的便携设备电源系统设计
随着科技的进步,便携设备应用日益普遍,这些设备给我们的工作和生活带来越来越多的便利,同时,其对内部的电源系统提出更高的要求。便携设备一般需要满足市电和蓄电池两种供电方式,完成蓄电池的充放电控制和电池剩余电量的估算;需要与嵌入式主板进行开关机交互和数据交互;需要具备体积小、重量轻、效率高等特点。虽然针对笔记本和手机产品有成熟的电源方案,但是一般仅适用于小功率的场合,对于专业的便携设备缺乏适应性。 在上述背景下,急需设计一款较大功率,具备以上功能特点的电源系统,从而满足一般便携设备对电源的需求。 1 电源系统总体设计 本系统以微控制器为检测和控制的核心,包括适配器、电池组、电池充放电模块、DC/DC变换等功能模块。系统的总
[单片机]
ATtiny13 EEPROM数据存储器
ATtiny13包含64字节的EEPROM数据存储器。它是作为一个独立的数据 可以按字节读写。EEPROM的寿命至少为 100,000 次擦除周期。EEPROM 的访问由地 址寄存器、数据寄存器和控制寄存器决定。详见 P100 中 EEPROM的串行数据下载。 EEPROM 读/ 写访问 EEPROM 读/ 写访问EEPROM 的访问寄存器位于I/O 空间。 EEPROM的写访问时间由Table 1给出。自定时功能可以让用户软件监测何时可以开始写 下一字节。用户操作 EEPROM 需要注意如下问题:在电源滤波时间常数比较大的电路 中,上电 下电时 VCC 上升 下降速度会比较慢。此时 CPU 可能工作于低于晶振所要求 的电源电压。
[单片机]
STM8与汇编语言(12)--EEPROM应用
在单片机的应用系统中,经常会用到EEPROM,用来保存一些掉电后仍然需要保存的数据。传统的方法是在单片机外再加一个EEPROM芯片,这种方法除了增加成本外,也降低了可靠性。现在,许多单片机芯片公司也都推出了集成有小容量EEPROM的单片机,降低了成本,提高了可靠性。 STM8单片机芯片内部也集成有EEPROM,容量从640字节到2K字节。最为关键的是,在STM8单片机中,访问EEPROM就向访问常规的内存一样,非常方便。EEPROM的地址空间与内存是统一编址的,地址从004000H开始,大小根据不同的芯片型号而定。 如果我们要读出EEPROM中的第一个单元的内容,则只要执行LD A,$4000这条指令,就可以将EEPROM
[单片机]
复旦微电推出NAND Flash及EEPROM存储器新品
2023年4月27日——上海复旦微电子集团股份有限公司今日举办线上发布会,推出FM25/FM29系列SLC NAND,FM24N/FM24LN/FM25N高可靠、超宽压系列EEPROM,以及符合AEC-Q100的车规FM24C/FM25系列EEPROM等非挥发存储新产品。 FM25/FM29系列产品基于28nm先进NAND flash工艺,满足6万次擦写次数和数据保存10年的高可靠性要求,应用于工规、5G通讯、车载等相关领域。FM24N/FM24LN/FM25N系列产品基于95nm先进EEPROM工艺,具备低功耗、超宽电压、高可靠等特性,其中擦写寿命大于400万次、数据保持时间大于200年,产品性能及可靠性达到业界领先水
[嵌入式]
PCI-PCI桥在线读写EEPROM的技巧
PCI-PCI桥启动时,一般需要从EEPROM预读取配置数据。更改EEPROM中的数据一般需要专用的烧结器,这给调试过程带来不便。尤其是采用表贴封装的EEPROM。本文以Intel公司的Dec21554PCI-PCI桥为例,介绍一种在线读写EEPROM的方法。
EEPROM选用的是ATMEL公司生产的AT93LC66,4Kbit,按512×8bit组织。AT93LC66与Dec21554的硬件连线如图1所示。
Dec21554提供了一组寄存器,用于访问外接的串行ROM。寄存器位于CSR(控制状态寄存器组)空间中,基地址是PCI配置头部Secondary BAR2寄存器的值,文中定义为base。寄存器包括:
①
[应用]
PIC16F877的EEPROM读与写实验
PIC16F877的EEPROM每一个单元的读/写所用时间典型值为:4ms,最大值为8ms。在烧写每个EEPROM单元过程中,需要CPU插入等待时间,既可利用中断功能,也可利用软件查询方式来解决。在此我们利用了软件查询方式,循环检测WR烧写控制位兼烧写完成标志位。 PIC16F877的EEPROM读/写实验硬件连线图
[单片机]
Microchip推出SPD EEPROM
全球领先的单片机和模拟半导体供应商——Microchip Technology Inc.(美国微芯科技公司)今天宣布推出全新系列串行存在检测 (Serial Presence Detect,简称SPD) EEPROM器件。它们既能支持现今高速个人计算机中最新的双倍数据速率 (DDR2) DIMM模块,还可支持未来的DDR3 DIMM模块。新器件编号分别为34AA02、34LC02以及34VL02 (34XX02),符合SPD EEPROM器件最新的JEDEC标准,其中34VL02可支持业界任何一款SPD EEPROM 的最低工作电压范围(1.5V至3.6V) 。各款EEPROM均备有JEDEC标准封装,也是目前唯一采用深受欢迎
[模拟电子]