Arduino IDE+_Attiny13/85实践(六)Attiny13A EEPROM内存读与写

一、Attiny 13A 与 EEPROM

EEPROM:(Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。
Attiny 13A 也有一个64bytes 的EEPROM,我们可以利用记录上一次程序运行的结果,达到某些设计目的。比如用开关管理手电筒电源,同时完成模式切换等。
本次记录我学习EEPROM的读写过程,也希望能给大家带来帮助。

二、程序目标

利用EEPROM记录上次程序运行的结果,实现用电源开关控制不同脚输出的目的。即开关开合,Attiny 13A能在不管脚0、1、2 中进行输出切换。

三、实现电路

电路接线如图
在这里插入图片描述

四、程序

//目标:用开关  改变输出脚 PB0、PB1、PB2顺序切换
//版本:V1.0 时间 2021.2.7//


 
//调EEPROM 库
#include <EEPROM.h>
// 变量声明
unsigned char EP;
// 初始化
void setup() {

  //引脚初始化
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  //Read first EEPROM cell.(读第一个EEPROM内容)
  EP = EEPROM[ 0 ];
//  读出EEPROM后,对EEPROM第一个单元进行改写,用于下一次断合记录。
    if(EP == 0x00){
      EEPROM[ 0 ] = 0x01;
    } 
    else {   
            if(EP == 0x01){
               EEPROM[ 0 ] = 0x02;
            }
            else {  EEPROM[ 0 ] = 0x00; 
           }
     }
  
}

//主程序

void loop() {
  // put your main code here, to run repeatedly:


  if (EP == 0x00){
  digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
  }

  if (EP == 0x01){
  digitalWrite(1, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(1, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
  }

 if (EP == 0x02){
  digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(2, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
}

这里偷懒不写闪光函数了,不影响学习结果 。

另,Arduino EEPROM的指令集见:https://www.arduino.cc/en/reference/EEPROM

五、运行结果

经测试,运行结果可用。
Attiny13A 烧录参见 。https://blog.csdn.net/sadanubis2008/article/details/105984422
其中,Attiny13A 接线方式与与ATTINY85一样。

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值