当前位置:   article > 正文

Arduino IDE+_Attiny13/85实践(六)Attiny13A EEPROM内存读与写_attiny85 13 24区别

attiny85 13 24区别

一、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
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

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

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

五、运行结果

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

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/381798
推荐阅读
相关标签
  

闽ICP备14008679号