AT89C52的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。
一、编程方法
编程前,须按表9和图11所示设置好地址、数据及控制信号,AT89C52编程方法如下:
1、在地址线上加上要编程单元的地址信号。
2、在数据线上加上要写入的数据字节。
3、激活相应的控制信号。
4、在高电什编程方式时,将EA/Vpp端加上十12V编程电压。
5、每对FLASH存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。每个字竹写入周期是自身定时的,通常约为1.5ms。重复1-5步骤。改变编程单元的地址和写入的数据,直到全部文件编程结束。
二、数据查询
AT89C52单片机用DatoPalling表示一个写周期结束为特征,在一个写周期中,如需读取最后写入的一个字节,则读出的数据的最高位(P0。7)是原来写入字书最高位的反码。写周期完成后,所输出的数据是有效的数据,即可进入下一个字节的写周期。写周期开始后,DataPallmg可能随时有效。
Ready/Busy:字节编程的进度可通过“RDY/BsY输出信号监测,编程期间,ALE变为高电平“H”后,P3.4(RDY/BSY)端电平被拉低。表示正在编程状态吸忙状态)。编程完成后,P3.4变为高电平表示准备就绪状态。
1、程序校脸:如果加密位LB1、LB2没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用如图12的电路。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。
2、芯片擦除:利用控制信号的正确组合(表6)并保持ALE/PROG引脚10ms的低电平脉冲宽度即可将PEROM阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。
3、读片内签名字节:AT89C52单片机内有3个签名字节,地址为030H、03lH和032H。用于声明该器件的厂商、型号和编程电帐。读AT89C52签名字节需将P3.6和P3.7置逻辑低电平,读签名字竹的过程和单元030H、031H及032H的正常校验相仿,只返回值意义如下: