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被硬件清零,用户能够经过查询此位来判别读操作是否完结。