实验四存储器实验实验报告电商142班高恒2014012750实验目的通过看懂教学计算机中以及经使用的几个存储器芯片的逻辑连接关系和用以完成存储器容量扩展的几个存储芯片的布线安排,在教学计算机上设计、实现并调试出存储器容量扩展的实验内容。其最终要达到的目的是:1.深入理解计算机内存储器的功能、组成知识;2.深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储系统的方法(即字、位扩展技术),控制其运行的方式。思考并对比静态和动态存储器芯片在特性和使用场合等方面的同异之处。实验说明教学计算机存储器系统由ROM和RAM两个存储区域组成,分别由EPRO芯片(或EEPROM芯片)和RAM芯片构成。TEC-XP教学计算机中还安排了另外几个存储器器件插座,可以插上相应存储器芯片以完成存储器容量扩展的教学实验,为此必须比较清楚的了解:1.TEC-XP教学机的存储器系统的总体组成及其连接关系;2.TEC-XP教学机的有关存储芯片、I/0接口芯片的片选信号控制和读写命令的给出和具体使用办法;3.RAM和EPROM、EEPROM存储芯片在读写控制、写入时间等方面的同异之处,并正确建立连线关系和在程序中完成正确的读写过程;4.如何在TEC-XP教学机中使用扩展的存储器空间并检查其运行的正确性。实验步骤1、检查扩展芯片插座的下方的插针要按下列要求短接:标有“/MWR”“RD”的插针左边两个短接,标有“/MRD”“GND”的插针右边两个短接。2、RAM(6116)支持即时读写,可直接用A、E命令向扩展的存储器输入程序或改变内存单元的值。(1)用E命令改变内存单元的值并用D命令观察结果。1)在命令行提示符状态下输入:E2020↙屏幕将显示:2020内存单元原值:按如下形式键入:2020原值:2222(空格)原值:3333(空格)原值:4444(空格)原值:5555↙2)在命令行提示符状态下输入:D2020↙屏幕将显示从2020内存单元开始的值,其中2020H~2023H的值为:2222333344445555实验情况如下图:如下图:断电后重新启动教学实验机,用D命令观察内存单位2020~2023的值。会发现原来置入到这几个内存单位的值已经改变,用户在使用RAM时,必须每次断电重启后豆芽平重新输入程序或修改内存单位的值。实验情况如下图:(2)用A命令输入一段程序,执行并观察结果。1)在命令行提示符状态下输入:A2000↙屏幕将显示:2000:按如下形式键入:2000:MVRDR0,AAAA2002:MVRDR1,55552004:ANDR0,R12005:RET2006:↙2)在命令行提示符状态下输入:T2000↙R0的值变为AAAAH,其余寄存器的值不变。T↙R1的值变为5555H,其余寄存器的值不变。T↙R0的值变为0000H,其余寄存器的值不变。实验情况如下图:3)在命令行提示符状态下输入:G2000运行输入的程序。4)在命令行提示符状态下输入:R↙屏幕显示:R0=0000R1=5555R2=…实验情况如下图:3、将扩展的ROM芯片(27或28系列或28的替代产品58C65芯片)插入标有“EXTROMH”和“EXTROML”的自锁紧插座,要注意芯片插入的方向,带有半圆形缺口的一方朝左插入。如果芯片插入方向不对,会导致芯片烧毁。然后锁紧插座。4、将扩展芯片下方的插针按下列方式短接:将标有“/MWR”“PGM”和“RD”的三个插针左面两个短接,将标有“/MWR”“/OE”“GND”的三个插针左边两个短接。5、将扩展芯片上方标有EXTROMH和EXTROML的“/CS”信号用自锁紧线短接,然后短接到MEMDC138芯片的上方的标有“4000-5fff”地址单元。注意:标有/CS的圆孔针与标有MEM/CS的一排圆孔针中的任意一个都可以用导线相连;连接的地址范围是多少,用户可用的地址空间就是多少。8、AT28C64B的读操作和一般的RAM一样,而其写操作,需要一定的时间,大约为1毫秒。因此,需要编写一延迟子程序,在对EEPROM进行写操作时,调用该子程序,以完成正确的读写。(1)用E命令改变内存单元的值并用D命令观察结果。1)在命令行提示符状态下输入:E5000↙屏幕将显示:5000内存单元原值:按如下形式键入:5000原值:2424(按空格)原值:3636(按空格)原值:4848(按空格)原值:5050↙2)在命令行提示符状态下输入:D5000↙屏幕将显示5000H~507FH内存单元的值,从5000开始的连续四个内存单元的值依次为2424363648485050。实验情况如下图:3)断电后重新启动,用D命令察看内存单元5000~5003的值,会发现这几个单元的值没有发生改变,说明EEPROM的内容断电后可保存。实验情况如下图:(2)AT28C64B存储器不能直接用A命令输入程序,单字节的指令可能会写进去,双字节指令的低位会出错(建议试一试),可将编写好的程序用编程器写入片内;也可将程序放到RAM(6116)中,调用延时子程序,访问AT28C64B中的内存地址。下面给出的程序,在5000H~500FH单元中依次写入数据0000H、0001H、...000FH。从2000H单元开始输入主程序:(2000)MVRDR0,0000MVRDR2,0010;R2记录循环次数MVRDR3,5000;R3的内容为16位内存地址(2006)STRR[R3],R0;将R0寄存器的内容放到R3给出的内存单元中CALA2200;调用程序地址为2200的延时子程序INCR0;R0加1INCR3;R3加1DECR2;R2减1JRNZ2006;R2不为0跳转到2006HRET从2200H单元开始输入延时子程序:(2200)PUSHR3MVRDR3,FFFF(2203)DECR3JRNZ2203POPR3RET实验情况如下图:运行主程序,在命令提示符下输入:G2000↙。输出结果:程序执行结束后,在命令提示符下输入:D5000↙;可看到从5000H开始的内存单元的值变为5000:000000010002000300040005000600075008:00080009000A000B000C000D000E000F。实验情况如下图:分析:1.此时TEC-XP教学及所用的存储器并不是AT28C64B,所以用户区地址可以从2000开始,而AT28C64B则只能从4000开始。2.如果使用E命令的话,需要将命令转换成相应的格式和进制。