找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2738|回复: 0
打印 上一主题 下一主题
收起左侧

读/写atmega8515内部EEPROM的例子

[复制链接]
跳转到指定楼层
楼主
ID:75926 发表于 2015-4-3 01:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  1. /**************************************************************
  2. ;eeprom.c
  3. ;读/写atmega8515内部EEPROM的例子
  4. ;将数据0....9写入eeprom中,再读出用数码管显示出来
  5. ***************************************************************/

  6. #include "avr/io.h"
  7. #include "avr/eeprom.h"
  8. #define uchar unsigned char
  9. #define Hidden 16

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

  13. unsigned char Counter=0;

  14. static void io_init(void)
  15. {
  16. // PortA
  17. PORTA = 0xff;
  18. DDRA = 0xff;
  19. // PortB
  20. PORTB = 0x0;
  21. DDRB = 0x0;
  22. // PortC
  23. PORTC = 0xfc;
  24. DDRC = 0xfc;
  25. // PortD
  26. PORTD = 0x0;
  27. DDRD = 0x0;
  28. }

  29. void mDelay(uint16_t DelayTim)
  30. { uint16_t i;
  31. for(;DelayTim>0;DelayTim--)
  32. { for(i=0;i<600;i++)
  33. {;}
  34. }
  35. }

  36. void disp()
  37. { static uchar i;
  38. uchar tmp;
  39. if(++i>=6)
  40. i=0;
  41. PORTC=0xff; //关闭显示
  42. tmp=DispBuf[i];
  43. PORTA=DispTab[tmp];
  44. tmp=BitTab[i];
  45. PORTC=tmp;
  46. mDelay(1); //延时1ms
  47. }

  48. int main(void)
  49. { unsigned int Count=0;
  50. unsigned char Addr=1; //向地址1里面写数字
  51. uint8_t temp=0;
  52. io_init();
  53. DispBuf[0]=Hidden;
  54. DispBuf[1]=Hidden;
  55. DispBuf[2]=Hidden;
  56. DispBuf[3]=Hidden;
  57. DispBuf[4]=0; //次低位显示0
  58. while(1)
  59. {
  60. temp=eeprom_read_byte (Addr);
  61. DispBuf[5]=temp;
  62. if(++Count==1000)
  63. { Count=0;
  64. Counter++;
  65. eeprom_write_byte(Addr,Counter);
  66. }
  67. if(Counter>=10)
  68. Counter=0; //计数值在0~9之间循环
  69. disp(); //调用显示程序
  70. }
  71. }
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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