93C46串行EEPROM数据读写实验
一、实验目的
1.学会93C46的操作指令,掌握93C46读/写程序的编写 2.掌握93C46与单片机的接口方式 二、实验说明
93C46/56/66是1K/2K/4K位的串行电可擦写的EPROM。93C46的1K位EPROM,可以按128字节排列,也可以字节排列。93C46芯片有8脚,当ORG接VCC时作字使用。当ORG接地时作128字节使用。本实验使用单片机P1口的低4位对93C46进行控制,当然也可以使用其他I/O口。CS是片选端,高电平有效,CLK是移位脉冲输入端,DI是数据输入端,D0是数据位输出端。ORG接5V,93C46作个字使用。
如图:93C46指令表 地址 字节 11XXXX 00XXXX 10XXXX 01XXXX A6~A0 A6~A0 A6~A0 字 字节 数指 字 起始位 操作码 1 1 1 1 1 1 1 00 00 00 00 01 10 11 说明 读/写允许 读/写禁止 擦写指令 同一数据写片 写指定单元 读指定单元 擦除指定单元 RWEN RWDS ERAL WRAL WRITE READ ERASE D7~D0 D15~D0 A5~A0 D7~D0 D15~D0 A5~A0 A5~A0 本实验提供93C46的读写操作软件,有5条主要的命令:READ、WRITE、WRAL、ERASE和ERAL。其中EWEN(写允许)和EWDS(写禁止)操作命令已经包含在写入命令和擦除命令当中了。程序中寄存器R7用来指定93C46的地址,R6、R5分别用来存放待操作数据的高低字节。对主程序操作只要在调用子程序之前把相应的内容写进R7、R6、R5中就可以了。 三、实验内容及步骤
本实验需要用到单片机最小应用系统CPU模块(F1区)、串行EEPROM模块(E1区)。 1.用单片机最小应用系统和93C46串行接口模块,用导线连接P1.0到CS,P1.1到CLK,P1.2到DIN,P1.3到D0UT,ORG与+5V电源相接。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加TH18_93C46.ASM源程序,进行编译,直到编译无误。
4.进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5.打开93C46.ASM源程序,编译无误后按MAIN程序要求设置断点执行程序,打开CPU窗口(寄存器窗口),查看寄存器R7、R6、R5的值。按程序要求设置下一个断点,验证93C46可读可写。93C46先写入数据,断电一段时间后,再读出数据,查看是否与写入值一致。 四、源程序(见光盘中的程序文件夹)
五、实验电路
C3F10uFVCCRESET31VCC87265U1FVCCCSNCSKORGDINGNDDOUT93C461234P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71234567P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7XTAL1A12MHzC3A33pFC2A33pF1011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSC51VCCP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0EAALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0VCC4039P0.738P0.637P0.536P0.435P0.334P0.233P0.132P0.031EAR2F100R1F1K 30ALE29PSEN28CS127P2.626P2.525P2.424P2.323P2.222P2.121P2.0