摘要:AT93C46/56/66是Atmel公司生产的,软件编程怎么写

软件 7
[日期:2004-12-8] AT93C46/56/55串行EEPROM及单片机程序 来源:国外电子元器件作者:湖北武汉高压研究所张蓬鹤 [字体:大中小] 摘要:AT93C46/56/66是Atmel公司生产的低功耗、低电压、电可擦除、可编程只读存储器,采用CMOS工艺技术制造并带有3线串行接口,其容量分别为1kB/4kB,可重复写100万次,数据可保存100年以上。
文中介绍了该存储器的引脚功能和指令时序,给出了AT93C46/56/66和单片机的 接口应用电路和软件程序。
关键词:EEPROM存储器接口应用程序AT93C46/56/66 16位单片机以其适于高速控制场合及功能多等优点已在工业控制领域中占领了一定的市场。
由于EEPROM能在不脱离系统的情况下修改其存储单元中的内容,故在16位单片机中的应用愈来愈广 泛。
本文结合16位机的特点,详细介绍AT93系列EEPROM及其使用方法。
AT93C46/56/66是ATMEL公司推出的低功耗、低电压电可擦除的可编程只读存储器。
它采
用CMOS技术和FairchildSemiconductor公司的Mi- croWire工业标准3线串行接口,具有1kB/2kB/4kB的容量,并可通过ORG管脚配置成128×8/256×8/512×8或64×16/128×16/256×16等结构。
该系列存储器可靠性高,能够重复写100万次,数据可以保存100年不丢失;采用8脚PDIP/SOIC封装和14脚SOI封装(SOI封装为JEDEC和EIAJ标准),与并行的EEPROM相比,AT93C46/56/66可大大节省印制板空间,且接线简单 ,因而在多功能的精密测试仪中具有广阔的前途。
1 引脚功能 AT93C46/56/66存储器芯片的引脚排列如图1所示。
各引脚的功能如下: CS:片选信号。
高电平有效,低电平时进入等待模式。
在连续的指令之间,CS信号必须持续至少
250ns的低电平,才能保证芯片正常工作。
CLK:串行时钟信号。
在CLK的上升沿,操作码、地址和数据位进入器件或从器件输出。
在发送序列时,CLK最好不停止,以防止读/写数据的错误。
DI:串行数据输入。
可在CLK的同步下输入开始位、操作码、地址位和数据位。
DO:串行数据输出。
在CLK同步下读周期时,用于输出数据;而在地址擦/写周期或芯片擦/写
周期时,该端用于提供忙/闲信息。
VSS:接地。
VCC:接+5V电源。
ORG:存贮器构造配置端。
该端接VCC或悬空时,输出为16位;接GND时,输出为8位。
NC:空脚,不连接。
表1AT93C46/56/66系统指令 指令起始位操作码 READ
1 10 EWEN
1 00 ERASE1 11 WRITE1 01 ERAL
1 00 WRAL
1 00 EWDS
1 00 地址位*8*16AnAoAnAo11xxxxx11xxxxAn~AoAn-1~Ao An~AoAn-1~Ao 10xxxxx10xxxx 01xxxx01xxxx 00xxxxx00xxxx 数据位空空空空 D7~D0D15~D0 空D7~D0D15~D0 空 备注从指定的单元读数 允许写指令擦除指定单元写入存储单元擦除存储器所有单元写入存储器所有单元禁止写指令 表中,93C46n=6;93C56n=7;93C66n=82 指令及时序 AT93C46/56/66的指令如表1所列,各指令的具体含义如下:(1)擦/写允许指令(EWEN) 由于在上电复位后AT93C46/56/66首先将处于擦/写不允许状态。
故该指令必须在所有编程模式前执行,一旦该指令执行后,只要外部没有断电就可以对芯片进行编程。
(2)地址擦指令(ERASE) 该指令用于强迫指定地址中所有数据位都为“1”。
一旦信息在DI端上被译码,就需使CS信号保
持至少250ns的低电平,然后将CS置为高电平,这时,DO端就会指示“忙”标志。
DO为“0”,表示 编程正在进行;DO为“1”,表示该指定地址的寄存器单元已擦完,可以执行下一条指令。
(3)地址写指令(WRITE) 写指令时,先写地址,然后将16位的或8位数据写入到指定地址中。
当DI端输出最后一个数
据位后,在CLK时钟的下一个上升沿以前,CS必须为低,且需至少保持250ns,然后将CS置为高电平 。
需要说明的是:写周期时,每写一个字节需耗时4ms。
(4)地址读指令(READ) 读指令用于从指定的单元中把数据从高位到低位输出至DO端,但逻辑“0”位先于数据位输出。

读指令在CLK的上升沿触发,且需经过一段时间方可稳定。
为防止出错,建议在读指令结束后,再输出 2~3个CLK脉冲。
(5)芯片擦指令(ERAL)该指令可将整个存贮器阵列置为1,其 它功能与地址擦指令相同。
(6)芯片写指令WRAL 该指令可将命令中指定的数据写入整个存贮器阵列,其它功能与地址写指令相同。
该指令周期所花费时间的最大值为30ms。
(7)擦/写禁止指令(EWDS)使用该指令可对写入的数据进行保护,操作步骤与擦/写允许指令相同。
3 AT93C56的应用3.1AT93C56与80C196KB的连接串行EEPROM芯片AT93C56同80C196单片机接口的硬件电路连接方法如图2所示。
图中,由于MCS-96系列16位单片机的P1口为准双向口,因此,为了防止数据错位,在向其P1口写数据时, 必须先将P1口置“1”。
3.2软件编程 该读/写程序采用PL/M语言编写,由于PL/M语言介于高级语言与汇编语言之间,故其对数据、地址位的处理比较繁琐。
其中ADDR为指定的地址单元,DATA为写入的数据,在写数据、地址时均 从高位开始。
本程序已在仿真器上调试通过。
且已被应用于电量测试仪中(如接触电阻测试仪)。
DECLARE
SETCSLITERALLY‘CALLBITSET.IO-PORT2,0′;DECLARECLRCSLITERALLY‘CALLBITCLR.IOPORT2,0′;DECLARESETCLKLITERALLY‘CALLBITSET.IOPORT2,5′;DECLARECLRCLKLITERALLY‘CALLBITCLR.IOPORT2,5′;DECLARESETDILITERALLY‘CALLBITSET.IO-PORT1,5′;DECLARECLRDILITERALLY‘CALLBITCLR.IOPORT1,5′; EWEN:PROCEDUREPUBLIC;DECLAREIBYTE; CLRCS;CLRDI;CLRCLK;SETCS;SETDI;SETCLK; DOI=1TO2;CLRCLK;CLRDI;SETCLK; END; DOI=1TO2;CLRCLK;SETDI;SETCLK; END;DOI=0TO6;CLRCLK;SETDI;SETCLK; END;CLRCLK;CLRCS;SETCS; SETCLK;CLRCLK;ENDEWEN; READ:PROCEDURE(ADDR)PUBLIC;DECLARE(ADDR,I,COUNT)BYTE; CLRCS;CLRDI;CLRCLK;SETCS; DOI=1TO2;CLRCLK;SETDI;SETCLK; END;DOI=1TO2;CLRCLK;CLRDI;SETCLK;DOCOUNT=1TO7;BITOUT(COUNT)=SHR(BITOUT(COUNT),1); END;CLRCS;CLRDI;CLRCLK; CALLTIME(100);SETCS;CLRC;ENDREAD; WRITE:PROCEDURE(ADDR,DATA)PUBLIC;DECLARE(ADDR,DATA)BYTE; CLRCS;CLRDI;CLRCLK;SETCS;SETDI;SETCLK;CLRDI;CLRCLK;SETCLK;SETDI;CLRCLK;SETCLK; END;DOI=-1TO8;X=ROL(ADDR,1);ADDR=X;CLRCLK;IF((XAND01H)=01H)THENSETDI; ELSECLRDI;SETCLK;END; DOI=1TO7;CLRCLK;SETCLK; END;DOI=1TO8CALLBITSET(.IOPORT1,7);COUNT=COUNT-1;CLRCLK;SETCLK;BITOUT(COUNT)=IOPORT1; END;CLRCLK;SETCLK; J=0;AA:DOI=1TO8; J=J+1;X=ROL(ADDR,1;ADDR=X;CLRCLK;

标签: #软件 #文件夹 #程序 #苹果 #压缩文件 #怎么做 #好友 #程序