嵌入式学习笔记(21)——AVR单片机之片内EEPROM

来源:互联网 发布:手机淘宝新手教程视频 编辑:程序博客网 时间:2024/04/29 04:44

1. ATmega16单片机内部具有512字节的EEPROM,它是一个独立的数据空间。数据读写以一字节为单位,通过专用的指令来实现对EEPROM的操作,也可通过ISP,JTAG,并行编程的方式实现EEPROM的读写;采用内部RC振荡器的1MHz作为访问的定时时钟,其编程使用周期8848个周期,时间大约8.5ms;操作过程中尽量关闭中断,保证时序不被打断。

2. EEPROM存储器相关的寄存器


程序中可直接对地址寄存器EEAR赋值,如EEAR=0x01BA。




控制寄存器EECR用于控制单片机对EEPROM的操作


  • 位3——EERIE:EEPROM中断准备好使能位。当EERIE置1而且全局中断I置位时,如果EEWE为0,则单片机产生一个中断表示写操作完成。(即置1后,才能在全中断I为“1”,且EEWE为0时产生写操作完成中断。)
  • 位2——EEMWE:EEPROM主写使能位。当EEMWE为“1”时,设置EEWE为“1”将把EEDR中的数据写入EEAR所选择的的地址空间中(只是写入地址空间,还没有真正写入到EEPROM)。如果EEMWE为“0”,则EEWE无效。EEMWE在被用户置“1”后的4个时钟周期后被硬件清“0”。
  • 位1——EEWE:EEPROM写使能位。当EEPROM的地址和数据准备好之后,用户必须设置EEWE为“1”,才能将数据写入EEPROM中,在置EEWE为“1”之前,EEMWE必须置“1”,否则写入操作无效。EEPROM数据的写入操作如下:a等待EEWE为“0”;b把EEPROM的地址写入EEAR;c把EEPROM的数据写入EEDR;d置EEMWE为“1”;e在置EEMWE为“1”的4个时钟周期内,向EEWE中写入“1”。
  • 位0——EERE:EEPROM读使能位。EERE用于对EEPROM的数据读取,当EEAR中设置了EEPROM的读取地址后,置位EERE将执行读操作。当EEPROM中的数据被读取到数据寄存器EEDR中后,EERE被硬件清零,用户可以通过查询此位来判断读操作是否完成。


原创粉丝点击