⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e2prom.c

📁 采用Mega16+VS1011B+SD卡制作的Mp3
💻 C
字号:
//******************************************************************************
 //MCU:ATMEL AVR MEGA16L ,晶振频率:8MHz,频率越高,播放Mp3越流畅
 //用到硬件器件: MEGA16L内部的512B EEPROM
 //EEPROM用来保存基本的参数,如:
 //音量(0)、重低音(1)、当前歌曲(2,3)、遥控模式(4)
 //RECS80遥控按键(5-8,9-12,13-16,17-20).
 //RC5遥控按键(21-24,25-28,29-32,33-36).
 //制作人:平顶山工学院计算机系,郭猛
//******************************************************************************
# include "iom16v.h"
# include "macros.h"

//在E2PROM写入指定长度的数据
//IAddress:起始地址,*Data:要写入的数据首地址,Cnt:要写入的数据个数
//函数无返回值
void E2PROM_Write(unsigned int IAddress,unsigned char *Data,unsigned char Cnt)
{
   unsigned char i;
   CLI();	//程序进入临界区
   for(i=0;i<Cnt;i++)
   {
   	   //等待前一次写操作完毕
   	   while(EECR & BIT(EEWE)) ;
   	   EEAR = IAddress + i;
   	   EEDR = Data[i];
	   EECR|= BIT(EEMWE);
	   ;;;;	  //等待4个周期
	   EECR|= BIT(EEWE);
   } 
   SEI();	//程序退出临界区
}

//在E2PROM写入指定长度的数据
//IAddress:起始地址,*Data:要写入的数据首地址,Cnt:要写入的数据个数
//函数返回一个字节
unsigned char E2PROM_Read_OneChar(unsigned int IAddress)
{
   CLI();	  //程序进入临界区
   //等待前一次操作完毕
   while(EECR & BIT(EEWE)) ;
   EEAR = IAddress;
   EECR|= BIT(EERE);
   ;	  //等待1个周期
   SEI(); 	 //程序退出临界区
   return EEDR;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -