AVR EEPROM

来自丢石头百科
Admin讨论 | 贡献2020年1月16日 (四) 15:12的版本 (创建页面,内容为“<table border="0" cellpadding="0" cellspacing="0" width="780"><tr><th class="type_483D8B" scope="col" style="font-size: 12px; line-height: 20px; font-weight: normal;…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
系统功能

  对AVR内部的EEPROM写入数据,再读出EEPROM的数据,用LED进行指示,观察读出的数据与写入的数据是否一致。
  
硬件设计

AVR EEPROM-0.jpg
AVR主控电路原理图(点击图片放大,不需要放大镜!400px
AVR EEPROM-2.jpg 
LED控制电路原理图(点击图片放大,不需要放大镜!400px



软件设计

下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!

//目标系统: 基于AVR单片机
//应用软件: ICC AVR

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
实验内容:
写入一些测试数据进EEPROM,再读出,使用PB口的LED做指示,观测是否与写入一致。
----------------------------------------------------------------------
硬件连接: 
将PB口的LED指示灯使能开关切换到"ON"状态。
----------------------------------------------------------------------
注意事项: 
(1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘
(2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料”
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#include <iom16v.h>
#include "D:\ICC_H\CmmICC.H"

#define DISP_DDR   DDRB
#define DISP_PORT  PORTB

/*--------------------------------------------------------------------
程序名称:
程序功能:
注意事项:
提示说明:
输    入:
返    回:
--------------------------------------------------------------------*/
void main(void) 
{
 uint8 i;
 uint8 wrDat=0xAA;
 uint8 wrDat_[]={1,2,3,4,5,6,7,8},rdDat_[8];
 DISP_DDR=0xFF;
 EEPROMwrite(0x01,wrDat); //写入单个数据
 DISP_PORT=EEPROMread(0x01); //读出用指示灯验证是否正确
 delay50ms(40);   //有2S的观察时间
 EEPROMWriteBytes(1,wrDat_,8); //对EEPROM写入数组数据        
 EEPROMReadBytes(1,rdDat_,8); //对EEPROM读出数据
 for(i=0;i<7;i++)
 {
  delay50ms(40);  //有2S的观察时间
  DISP_PORT=rdDat_[i]; //读出用指示灯验证是否正确
 }
 while(1);
}


系统调试

观察读出的EEPROM数据与写入EERPOM的数据是否一致,用LED作为数据,没什么好说的。。。