AT89C2051是在擦除状态(也即单元内容为FFH)下用2K字节的片内EEPROM代码存储阵列进行封装的,并且存储器是可编程的。代码存储阵列一次编程一个字节。一旦阵列被编程过,如要重新编程任一非空字节,则整个存储器阵列需进行电擦除。
AT89C2051内Flash存储器的编程和校验如图10.5、图10.6、图10.7所示。
1. 内部地址计数器:AT89C2051包含一内部EEPROM地址计数器,它总是在RST上升沿复位到000H并在XTAL1引脚有一正跳变脉冲时进行计数。
2. 编程算法:要编程AT89C2051,则建议下列步骤。
(1) 上电次序:
在 和GND引脚之间加上电源;
设置RST和XTAL1为GND;
所有其它引脚浮空,至少等待10ms。
(2) 设置RST引脚为高‘H’,设置P3.2引脚为高‘H’。
(3) 对引脚P3.3,P3.4,P3.5,P3.7加上逻辑电平高‘H’或低‘L’的正确组合,来选择EEPROM编程方式如表10.4中所示中的一种编程操作。
编程和校验存储器阵列,由下列(4)~(10)点实现:
(4) 在000H单元对P1.0~Pl.7加人数据代码字节。
(5) 升高RST到12V来激活编程。
(6) 使P3.2跳变一次来编程EEPROM阵列中的一字节或者加密位。写字节周期是自身定时的,一般需用l.2ms。
(7) 校验已被编程的数据,使RST从12V降到逻辑电平‘H’并设置P3.3~P3.7引脚到正确的电平。可在P1口引脚输出数据。
(8) 在下一地址单元编程字节,使XTAL1跳变一次提升内部地址计数器。对P1口引脚加入新数据。
(9) 重复步骤5至8,对整个2K字节阵列改变数据并提升地址计数器或者一直到目标文件的结束。
(10) 下电次序:
上一篇:单片机应用系统的设计方法