查看: 1156|回复: 6
打印 上一主题 下一主题

片内EEPROM读写应用

[复制链接]
跳转到指定楼层
沙发
发表于 2014-8-12 07:57:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <iom16v.h>
  2. #include <macros.h>
  3. #define  uchar unsigned char
  4. #define  uint  unsigned int

  5. uchar SEG_CODE[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};  //ED数码管从0到9来回显示

  6. void delay_1ms(int k)
  7. {
  8.     int i,j;
  9.     for(i=0;i<k;i++)
  10.     {
  11.        for(j=0;j<1000;j++)
  12.        ;
  13.     }
  14. }

  15. void EEPROM_write(uint addr,uint adata)
  16. {
  17.         SREG &= ~BIT(7);
  18.         while(EECR &BIT(EEWE));
  19.         EEAR = addr;
  20.         EEDR = adata;
  21.         EECR |= BIT(EEMWE);
  22.         EECR |= BIT(EEWE);
  23.         SREG |= BIT(7);
  24. }
  25. uchar EEPROM_read(uint addr)
  26. {
  27.         uchar edata;
  28.         SREG &= ~BIT(7);
  29.         while(EECR &BIT(EEWE));
  30.         EEAR = addr;
  31.         EECR |= BIT(EERE);
  32.         edata = EEDR;
  33.         return edata;
  34. }
  35. void main(void)
  36. {
  37.         uchar i;
  38.         DDRB = 0xff;                        //初始化PB口为输出
  39.         PORTB = 0x00;                        //PB口一开始输出为0
  40.         i = EEPROM_read(2);
  41.         i ++;
  42.         EEPROM_write(2,i);

  43.         while(1)
  44.         {
  45.                 PORTB = SEG_CODE<i>;
  46.                 delay_1ms(10000);
  47.         }
  48. }

  49. </i>
复制代码


回复

使用道具 举报

板凳
发表于 2014-8-12 08:15:12 | 只看该作者
AVR和51的端口定义不一样啊
回复 支持 反对

使用道具 举报

4#
发表于 2014-8-12 08:52:09 | 只看该作者
技术老牛,强
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2014-8-12 08:53:51 | 只看该作者

可是写进去之后擦出不掉了!是要写代码还是怎么?你造么?
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2014-8-12 08:54:33 | 只看该作者
lucky80204 发表于 2014-8-12 08:15
AVR和51的端口定义不一样啊

是啊,不一样,我现在在发愁怎么擦除!!!
回复 支持 反对

使用道具 举报

7#
发表于 2014-8-12 08:56:13 | 只看该作者
jerryzhai 发表于 2014-8-12 08:54
是啊,不一样,我现在在发愁怎么擦除!!!

网上找找呗。。。有的吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表