欢迎光临MCUWAY! 本站网名:单片机之路  永久域名:www.mcuway.com

设为首页

加入收藏

电子基础 初学MCU 单片机类型 MCU程序 MCU应用 设计软件 测控电路 技术论坛
 您现在的位置: 单片机之路 >> 单片机类型 >> AVR系列 >> 文章正文

读/写atmega8515内部EEPROM的程序

/**************************************************************
;    平凡单片机工作室
;  http://www.mcustudio.com
;    Copyright 2004 pingfan's mcustudio
;    All rights Reserved
;作者:周坚   
;eeprom.c
;读/写atmega8515内部EEPROM的例子
;将数据0....9写入eeprom中,再读出用数码管显示出来
***************************************************************/

#include "avr/io.h"
#include "avr/eeprom.h"
#define uchar unsigned char
#define Hidden 16

uchar DispTab[17]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
uchar BitTab[6]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB};
uchar DispBuf[6]; //显示缓冲区

unsigned char Counter=0;

static void io_init(void)
{
// PortA
PORTA = 0xff;
DDRA = 0xff;
// PortB
PORTB = 0x0;
DDRB = 0x0;
// PortC
PORTC = 0xfc;
DDRC = 0xfc;
// PortD
PORTD = 0x0;
DDRD = 0x0;
}

void mDelay(uint16_t DelayTim)
{ uint16_t i;
for(;DelayTim>0;DelayTim--)
{ for(i=0;i<600;i++)
{;}
}
}

void disp()
{ static uchar i;
uchar tmp;
if(++i>=6)
i=0;
PORTC=0xff; //关闭显示
tmp=DispBuf[i];
PORTA=DispTab[tmp];
tmp=BitTab[i];
PORTC=tmp;
mDelay(1); //延时1ms
}

int main(void)
{ unsigned int Count=0;
unsigned char Addr=1; //向地址1里面写数字
uint8_t temp=0;
io_init();
DispBuf[0]=Hidden;
DispBuf[1]=Hidden;
DispBuf[2]=Hidden;
DispBuf[3]=Hidden;
DispBuf[4]=0; //次低位显示0
while(1)
{
temp=eeprom_read_byte (Addr);
DispBuf[5]=temp;
if(++Count==1000)
{ Count=0;
Counter++;
eeprom_write_byte(Addr,Counter);
}
if(Counter>=10)
Counter=0; //计数值在0~9之间循环
disp(); //调用显示程序
}
}

普通文章28课:单片机音乐汇编程序设计
普通文章27课:单片机的一些基本概念
普通文章26课:单片机矩阵式键盘接口技术
普通文章非常详细的51单片机引脚介绍
普通文章图解使用Keil C51软件的九个步骤
普通文章哈佛(Harvard)结构的单片机的原理图
普通文章单片机引脚及功能说明
普通文章c51单片机c语言教程介绍
普通文章第一课 建立你的第一个KeilC51项目
普通文章第二课 HEX文件的生成和MCU最小系统
普通文章第三课 C51语言的数据类型
普通文章第四课 C51常量
普通文章第五课 C51变量
普通文章第六课 C51运算符和表达式
普通文章第七课 运算符和表达式(关系运算符)
普通文章第八课 运算符和表达式(位运算符)
普通文章第九课 C51运算符和表达式(指针和地址
普通文章第十课 C51表达式语句及仿真器
普通文章第十一课 C51复合语句和条件语句
普通文章第十二课 C51开关分支语句
普通文章第十三课 C51循环语句
普通文章第十四课 C51函数
普通文章第十五课 C51数组的使用
普通文章第十六课 C51指针的使用
普通文章第十七课 C51结构、联合和枚举的使用

  • 上一篇文章:
  • 下一篇文章:
  • 更多精彩内容>>>

    普通文章电流单位
    普通文章功率单位
    普通文章什么是达林顿管?
    普通文章晶闸管的作用与原理

    学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com