当前位置:文档之家› 机组原理存储器部件教学实验

机组原理存储器部件教学实验

机组原理存储器部件教学实验
机组原理存储器部件教学实验

《计算机组成与结构》实验报告

实验项目实验三 存储器部件教学实验

实验编号2280110803

学号姓名

成绩

1、实验目的

通过看懂教学计算机中已经使用的几个存储器芯片的逻辑连接关系和用于完成存储器容量扩展的几个存储器芯片的布线安排,在教学计算机上设计、实现并调试出存储器容量扩展的实验内容。

其最终要达到的目的是:

1. 深入理解计算机内存储器的功能、组成知识;

2. 深入地学懂静态存储器芯片的读写原理和用他们组成教学

计算机存储器系统的方法(即字、位扩展技术),控制其

运行的方式;

思考并对比静态和动态存储器芯片在特性和使用场合等方面的同异之处。

2、实验内容

1. 要完成存储器容量扩展的教学实验,需为扩展存储器选择一

个地址,即将扩展存储器的片选(标有/CS 的2 个插孔的上

面一个)与标有MEM /CS 的插孔中的一个相连;

2. 用监控程序的 D、E 命令对存储器进行读写,比较

RAM(6116)、EEPROM(28 系列芯片)EPROM(27 系

列芯片)在读写上的异同;

3. 用监控程序的 A 命令编写一段程序,对RAM(6116)进行

读写,用D 命令查看结果是否正确;

4. 用监控程序的 A 命令编写一段程序,对扩展存储

器EEPROM(28 系列芯片)进行读写,用D命令查看结果

是否正确;如不正确,分析原因,改写程序,重新运行;3、实验步骤

1. 将 RAML(6116)右边的两个圆孔针用导线连接起来.

2. RAM(6116)支持即时读写,可直接用A、E 命令向扩展的存储器输入程序或改变内存单元的值。RAM 中的内容在断电后会消失,重新启动实验机后会发现内存单元的值发生了改变。

1〉用E 命令改变内存单元的值并用D 命令观察结果。

<1> 在命令行提示符状态下输入:

E 2020↙

屏幕将显示: 2020 内存单元原值:

按如下形式键入:

2020 原值:2222 (空格)原值:3333(空格)原值:4444(空格)原值:5555↙

<2> 在命令行提示符状态下输入:

D 2020↙

屏幕将显示从2020 内存单元开始的值,其中2020H~2023H 的值为:

2222 3333 4444 5555

<3>断电后重新启动教学实验机,用D 命令观察内存单元2020~2023

的值。会发现原来置入到这几个内存单元的值已经改变,用户在使用RAM 时,必须每次断电重启后都要重新输入程序或修改内存单元的值。

2〉用 A 命令输入一段程序,执行并观察结果。

<1> 在命令行提示符状态下输入:

A 2000↙

屏幕将显示: 2000:

按如下形式键入:

2000: MVRD R0,AAAA

2002: MVRD R1,5555

2004: AND R0,R1

2005: RET

2006:↙

<2> 在命令行提示符状态下输入:

T 2000 ↙

R0 的值变为AAAAH,其余寄存器的值不变。

T↙

R1 的值变为5555H,其余寄存器的值不变。

T↙

R0 的值变为0000H,其余寄存器的值不变。

<3>在命令行提示符状态下输入:

G 2000

运行输入的程序。

<4>在命令行提示符状态下输入:

R ↙

屏幕显示:

R0=0000 R1=5555 R2=…

RAM 芯片可直接用A 命令键入程序,但断电会丢失,要再次调试该程序必须重新输入,对那些较长的程序或经常用到的程序可通过交叉汇编,在上位机生成代码文件,每次加电启动后不用重新输入,只需通过PCEC 将代码文件传送给下位机即可。

3. 将扩展的高位 ROM 芯片(27 或28 系列)右侧标有/CS 的圆孔针与标有MEM /CS 的一排圆孔针中地址为4000~5FFF 的一个用导线相连;将扩展的低位ROM 芯片右侧的两个圆孔针用导线相连。这表示扩展的ROM 的内存地址是从4000H 开始,可用空间是4000H~5FFFH,用户可在这个范围内输入程序或改变内存单元的值。

注意:每个ROM 插座的两边都有4 组插针,要根据选用的存储器型号,正确连接。

4组插针依次为:

标有“VCC /MWR”3 个插针:使用27 系列的芯片时,应将上面2 个短接;

使用28 系列的芯片时,应将下面2 个短接。需要注意的是,监控程序使用的28C64 芯片,为了防止对其误擦写,应上面2 个短接。

标有“A11 /MWR”3 个插针:使用28C64、2764、2732 芯片时,应将上面2 个短接;使用28C16 芯片时,应将下面2 个短接。 标有“2764”2 个插针:使用2764 芯片时,应将其短接;使用28C64、28C16、2732 芯片时,应将其断开。

标有“/MRD GND”3 个插针:使用28 系列的芯片时,应将上面2 个短接。

下面以 2764A 为例,进行扩展EPROM 实验。

4. EPROM 是紫外线可擦除的电可改写的只读存储器芯片。在对EPROM 进行重写前必须先擦除并判空,再通过编程器进行编程。

〈1〉将芯片0000~001F 的内存单元的值置成01 02 03 04 05 06 07 08

09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E

1F

〈2〉将编程好的该芯片插在扩展芯片的高位,低位不插,按上面的提示插好插针。

〈3〉用D 命令看内存单元0000~001F 的值。可以看到内存单元的

值为:01FF 02FF 03FF 04FF......1FFF。

〈4〉用E 命令向芯片的内存单元置值,再用D 命令察看,会发现原来的值没有改变;用A 命令向芯片所在的地址键入程序,用U 命令反汇编,会发现地址仍然保持原来的值。该实验说明EPROM 不能直接修改和编程,必须先擦除,再通过编程器编程。

〈5〉将教学机断电后重启,用D 命令看内存单元0000~001F 的内容,会发现数值没变,EPROM 的内容在断电后会保持。

下面以 AT28C64B 为例,进行扩展EEPROM 实验。

5. AT28C64B 的读操作和一般的RAM 一样,而其写操作,需要一定的时间,大约为1 毫秒。因此,需要编写一延迟子程序,在对EEPROM 进行写操作时,调用该子程序,以完成正确的读写。

1〉用E 命令改变内存单元的值并用D 命令观察结果。

<1> 在命令行提示符状态下输入:

E 5000↙

屏幕将显示: 5000 内存单元原值:

按如下形式键入:

5000 原值:2424(空格)原值:3636(空格)原值:4848(空格)原值:5050 ↙

<2> 在命令行提示符状态下输入:

D 5000↙

屏幕将显示5000H~507FH 内存单元的值,从5000 开始的连续四个内存单元的值依次为2424 3636 4848 5050。

<3>断电后重新启动,用D 命令察看内存单元5000~5003 的值,会发现

这几个单元的值没有发生改变,说明EEPROM 的内容断电后可保

存。

2〉AT28C64B 存储器不能直接用A 命令输入程序(建议试一试),可将编写好的程序用编程器写入片内;也可将程序放到RAM(6116)中,调用延时子程序,访问AT28C64B 中的内存地址。

下面给出的程序,在 5000H~500FH 单元中依次写入数据0000H、0001H 、 ... 000FH。从 2000H 单元开始输入主程序: (2000)MVRD R0,0000

MVRD R2,0010 ;R2 记录循环次数

MVRD R3,5000 ;R3 的内容为16 位内存地址

(2006)STRR [R3],R0 ;将R0 寄存器的内容放到R3 给出的内存单元中

MVRD R10,2200 ;寄存器R10 存放子程序地址

CALR R10 ;调用循环子程序

INC R0 ;R0 加1

INC R3 ;R3 加1

DEC R2 ;R2 减1

JRNZ 2008 ;R2 不为0 跳转到2008H

RET

从 2200H 单元开始输入延时子程序:

(2200)PUSH R3

MVRD R3,FFFF

(2203)DEC R3

JRNZ 2203

POP R3

RET

运行主程序,在命令提示符下输入G 2000↙。

程序执行结束后,在命令提示符下输入 D 5000↙,可看到从5000H 开始的内存单元的值变为

5000:0000 0001 0002 0003 0004 0005 0006 0007

5008:0008 0009 000A 000B 000C 000D 000E 000F。

思考:

1) 为何能用E 命令直接写AT28C64B 的存储单元,而A 命令则有时不正确;

答:E命令是储存寄存器指令A时监控器指令,而E直接多个程序写入

AT28C64B的存储单元,写入的速度快,A命令只能是一次写入执行一条程序,是延迟指令、所以用E命令直接写A。T28C64B的存储单元,而A命令则有时不正确。

2)修改延时子程序,将其延时改短,可将延时子程序中R3 的内容赋成00FF或0FFF 等,再看运行结果。

4、实验体会

在本次实验中我深入的理解了计算机内存储器的功能、组成知识;深入了解了静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即字、位扩展技术),控制其运行的方式;实验的难度在于怎样弄清楚ROM芯片和RAM芯片在功能和使用方法等方面的同和差异之处:学习编程器设备向EEPROM芯片内写入一批数据的过程跟方法的工作原理,我在实验前预习的时候了解到计算机存储器系统由ROM和RAM两个存储区组成,分别由EPROM芯片(或EEPROM芯片)和RAM芯片构成。

双端口存储器原理实验

华中科技大学实验报告实验名称双端口存储器原理实验成绩实验日期第 2 次试验指导老师陈国平专业计科班号组别 学生姓名同组学生 一、实验目的 1.了解双端口静态存储器IDT7132的工作特性及其使用方法 2.了解半导体存储器怎样存储和读取数据。 3.了解双端口存储器怎样并行读写,并分析冲突产生的情况。 二、实验电路

图3.2 双端口存储器实验电路图 图3.2示出了双端口存储器的实验电路图。这里使用一片IDT7132(2048×8位),两个端口的地址输入A8-A10引脚接地,因此实际使用的存储容量为256字节。左端口的数据输出接数据总线DBUS,右端口的数据输出端接指令总线IBUS。 IDT7132有六个控制引脚:CEL#、LR/W#、OEL#、CER#、RR/W#、OER#。CEL#、LR/W#、OEL#控制左端口读、写操作;CER#、RR/W#、OER#控制右端口的读写操作。CEL#为左端口选择引脚,低电平有效;当CEL#=1时,禁止对左端口的读、写操作。LR/W#控制对左端口的读写。当LR/W#=1时,左端口进行读操作;LR/W#=0时,左端口进行写操作。OEL#的作用等同于三态门,当OEL#=0时,允许左端口读出的数据送到数据总线DBUS上;当OEL#=1时,禁止左端口的数据放到DBUS。因此,为便于理解,在以后的实验中,我们将OEL#引脚称为RAM_BUS#。控制右端口的三个引脚与左端口的三个完全类似,这里不再赘述。有两点需要说明:

(1)右端口读出的数据(更确切的说法是指令)放到指令总线IBUS上而不是数据总线DBUS,然后送到指令寄存器IR。 (2)所有数据/指令的写入都使用左端口,右端口作为指令端口,不需要进行数据的写入,因此我们将右端口处理成一个只读端口,已将RR/W#固定接高电平,OER#固定接地。这两点请同学好好理解。 存储器左端口的地址寄存器AR和右端口的地址寄存器PC都使用2片74LS163,具有地址递增的功能。同时,PC在以后的实验当中也起到程序计数器的作用。左右端口的数据和左右端口的地址都有特定的显示灯显示。存储器地址和写入数据都由实验台操作板上的二进制开关分时给出。 当LDAR#=0时,AR在T2时从DBUS接收来自SW7-SW0的地址;当AR+1=1时,在T2存储器地址加1。LDAR#和AR+1不能同时有效。在下一个时钟周期,令CEL#=0,LR/W#=0,则在T2的上升沿开始进行写操作,将SW7-SW07设置的数据经DBUS写入存储器。 三、实验任务 1.按图3.2所示,将有关控制信号和二进制开关对应接好,仔细复查一遍,然后 接通电源。 2.将二进制数码开关SW7-SW0(SW0为最低位)设置为00H,将其作为存储 器地址置入AR;然后将二进制开关的00H作为数据写入RAM中。用这个方 法,向存储器的10H、20H、30H、40H单元依次写入10H、20H、30H和40H。 3.使用存储器的左端口,依次将第2步存入的5个数据读出,观察各单元中存 入的数据是否正确。记录数据。注意:禁止两个或两个以上的数据源同时向 数据总线上发送数据!在本实验中,当存储器进行读出操作时,务必将

实验十四 存储器扩展机读写实验

实验十四存储器扩展机读写实验 一、实验目的 (1)通过阅读并测试示例程序,完成程序设计题,熟悉静态RAM的扩展方法。 (2)了解8086/8088与存储器的连接,掌握扩展存储器的读写方法。 二、实验内容 1.实验原理(62256RAM介绍) 62256是32*8的静态存储器,管脚如图所示。其中:A0~A14为地址线,DB0~DB7为数据线,/cs为存储器的片选,/OE为存储器数据输出选通信号,/WE为数据写入存储器信号。62256工作方式如下图。 /CS /WE /OE 方式DB-~DB7 H X X 未选中高阻 L H H 读写禁止高阻 L L H 写IN L H L 读OUT 2.实验内容 设计扩展存储电器的硬件连接图并编制程序,讲字符A~Z循环存入62256扩展RAM 中,让后再检查扩展存储器中的内容。 三、程序设计 编写升序,将4KB扩展存储器交替写入55H和0AAH。 程序如下: RAMADDR EQU 0000H RAMOFF EQU 9000H COUNT EQU 800H CODE SEGMENT ASSUME CS:CODE START: PROC NEAR MOV AX,RAMADDR MOV DS,AX MOV BX,RAMOFF MOV CX,COUNT MOV DL,55h MOV AX ,0AAH REP: MOV [BX],DL INC BX MOV [BX],AX INC BX LOOP REP JMP $ CODE ENDS END START 四、实验结果 通过在软件上调试,运行时能够看到内存地址的改变,证明此扩展的程序成功实现了。 五、实验心得

计算机组成原理双端口存储器实验报告

计算机组成原理实验报告 实验名称双端口存储器实验专业软件工程学院计算机与软件学院 姓名徐振兴班级(2)学号069 指导老师任勇军 实验日期得分 一、实验类别 原理性+分析性 二、实验目的 ⑵了解双端口静态存储器IDT7132的工作特性及其使用方法; ⑵了解半导体存储器怎样存储和读取数据; ⑶了解双端口存储器怎样并行读写; ⑷熟悉TEC-8模型计算机中存储器部分的数据通路。 三、实验设备 ⑴TEC-8 实验系统1台⑵双踪示波器1台 ⑵直流万用表1块⑷逻辑测试笔(在TEC-8 实验台上) 1 支 四、实验电路 双端口RAM 电路由1 片IDT7132 及少许附加电路组成,存放程序和数据。IDT7132 有2 个端口,一个称为左端口,一个称为右端口。2 个端口各有独立的存储器地址线、数据线和3 个读、写控制信号: CE#、R/W#和OE#,可以同时对器件内部的同一存储体同时进行读、写。IDT7132 容量为2048 字节,TEC-8 实验系统只使用64 字节。 在TEC-8 实验系统中,左端口配置成读、写端口,用于程序的初始装入操作,从存储器中取数到数据总线DBUS,将数据总线DBUS 上的数写入存储器。当信号MEMW 为 1 时,在T 2 为1 时,将数据总线DBUS 上的数D7~D0 写入AR7~AR0 指定的存储单 元;当MBUS 信号为1 时,AR7~AR0 指定的存储单元的数送数据总线DBUS。右端口设置成只读方式,从PC7~PC0 指定的存储单元读出指令INS7~INS0,送往指令寄存器IR。 程序计数器PC 由2 片GAL22V10(U53 和U54)组成。向双端口RAM 的右端口提供存储器地址。当复位信号CLR#为0 时,程序计数器复位,PC7~PC0 为00H。当信号LPC 为1 时,在T3 的上升沿,将数据总线DBUS 上的数D7~D0 写入PC。当信号PCINC 为1 时,在T3 的上升沿,完成PC 加1。当PCADD 信号为1 时,PC 和IR 中的转移偏量(IR3~IR0)相加,在T3 的上升沿,将相加得到的和写入PC 程序计数器。 地址寄存器AR 由1 片GAL22V10(U58)组成,向双端口RAM 的左端口提供存储器地址AR7~AR0。当复位信号CLR#为0 时,地址寄存器复位,AR7~AR0 为00H。当信号LAR 为1 时,在T3 的上升沿,将数据总线DBUS 上的数D7~D0 写入AR。当信号ARINC 为1 时,在T3 的上升沿,完成AR 加1。 指令寄存器IR是1片74273(U47),用于保存指令。当信号LIR为1时,在T3的上升沿,将从双端口RAM右端口读出的指令INS7~INS0写入指令寄存器IR。 数据开关SD7~SD0用于设臵双端口RAM的地址和数据。当信号SBUS为1时,数SD7~SD0送往数据总线DBUS。 本实验中用到的信号归纳如下: MBUS 当它为1时,将双端口RAM的左端口数据送到数据总线DBUS。 MEMW 当它为1时,在T2为1期间将数据总线DBUS上的D7~D0写入双端 口RAM 写入的存储器单元由AR7~AR0指定。 LIR 当它为1时,在T3的上升沿将从双端口RAM的右端口读出的指令 INS7~ INS0写入指令寄存器IR。读出的存储器单元由PC7~PC0

实验一扩展存储器读写实验

实验一:扩展存储器读写实验 一.实验要求 编制简单程序,对实验板上提供的外部存贮器(62256)进行读写操作。 二.实验目的 1.学习片外存储器扩展方法。 2.学习数据存储器不同的读写方法。 三.实验电路及连线 将P1.0接至L1。CS256连GND孔。 四.实验说明 1.单片机系统中,对片外存贮器的读写操作是最基本的操作。用户藉此来熟悉MCS51单片机编程的基本规则、基本指令的使用和使用本仿真实验系统调试程序的方法。 用户编程可以参考示例程序和流程框图。本示例程序中对片外存贮器中一固定地址单元进行读写操作,并比较读写结果是否一致。不一致则说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段(本示例程序通过熄灭一个发光二极管来表示出错)。读写数据的选用,本例采用的是55(0101,0101)与AA(1010,1010)。一般采用这两个数据的读写操作就可查出数据总线的短路、断路等,在实际调试用户电路时非常有效。 用户调试该程序时,可以灵活使用单步、断点和变量观察等方法,来观察程序执行的流程和各中间变量的值。 2.在I状态下执行MEM1程序,对实验机数据进行读写,若L1灯亮说明RAM读

写正常。 3.也可进入LCA51的调试工具菜单中的对话窗口,用监控命令方式读写RAM,在I状态执行SX0000↓ 55,SPACE,屏幕上应显示55,再键入AA,SPACE,屏幕上也应显示AA,以上过程执行效果与编程执行效果完全相同。 注:SX是实验机对外部数据空间读写命令。 4.本例中,62256片选接地时,存储器空间为0000~7FFFH。 五.实验程序框图 实验示例程序流程框图如下: 六.实验源程序: ORG 0000H LJMP START ORG 0040H START:

实验二 双端口存储器原理实验

实验二双端口存储器原理实验一、实验目的 (1)了解双端口静态随机存储器IDT7132的工作特性及使用方法。 (2)了解半导体存储器怎样存储和读出数据。 (3)了解双端口存储器怎样并行读写,产生冲突的情况如何。 二、实验电路 图7 双端口存储器实验电路图

图7示出了双端口存储器的实验电路图。这里使用了一片IDT7132(U36)(2048×8位),两个端口的地址输入A8—A10引脚接地,因此实际使用存储容量为256字节。左端口的数据部分连接数据总线DBUS7—DBUS0,右端口的数据部分连接指令总线INS7—INS0。一片GAL22V10(U37)作为左端口的地址寄存器(AR1),内部具有地址递增的功能。两片4位的74HC298(U28、U27)作为右端口的地址寄存器(AR2H、AR2L),带有选择输入地址源的功能。使用两组发光二极管指示灯显示地址和数据:通过开关IR/DBUS 切换显示数据总线DBUS和指令寄存器IR的数据,通过开关AR1/AR2切换显示左右两个端口的存储地址。写入数据由实验台操作板上的二进制开关SW0—SW7设置,并经过SW_BUS三态门74HC244(U38)发送到数据总线DBUS上。指令总线INS的指令代码输出到指令寄存器IR(U20),这是一片74HC374。 存储器IDT7132有6个控制引脚:CEL#、LRW、OEL#、CER#、RRW、OER#。CEL#、LRW、OEL#控制左端口读、写操作,CER#、RRW、OER#控制右端口读、写操作。CEL#为左端口选择引脚,低有效。当CEL# =1时,禁止左端口读、写操作;当CEL# =0 时,允许左端口读、写操作。当LRW为高时,左端口进行读操作;当LRW为低时,左端口进行写操作。当OEL#为低时,将左端口读出的数据放到数据总线DBUS上;当OEL#为高时,禁止左端口读出的数据放到数据总线DBUS上。CER#、RRW、OER#控制右端口读、写操作的方式与CEL#、LRW、OER#控制左端口读、写操作的方式类似,不过右端口读出的数据放到指令总线上而不是数据总线上。实验台上的OEL#由LRW经反相产生。当CEL#=0且LRW=1时,左端口进行读操作,同时将读出的数据放到数据总线DBUS上。当CER#=0且LRW=0时,在T3的上升沿开始进行写操作,将数据总线上的数据写入存储器。实验台上已连接T3到时序发生器的T3输出。实验台上OER#已固定接地,RRW固定接高电平,CER#由CER反相产生,因此当CER=1且LDIR=1时,右端口读出的指令在T4的上升沿打入IR寄存器。 存储器的地址由地址寄存器AR1、AR2提供,而AR1和AR2的内容根据数码开关SW0—SW7设置产生,并经三态门SW_BUS发送到数据总线时被AR1或AR2接收, 三态门的控制信号SW_BUS#是低电平有效。数据总线DBUS有5个数据来源:运算器ALU,寄存器堆RF,控制台开关SW0—SW7,双端口存储器IDT7132和中断地址寄存器IAR。在任何时刻,都不允许2个或者2个以上的数据源同时向数据总线DBUS输送数据,只允许1个(或者没有)数据源向数据总线DBUS输送数据。在本实验中,为了保证数据的正确设置和观察,请令RS_BUS# = 1, ALU_BUS = 0, IAR_BUS# = 1。AR1的控制信号是LDAR1和AR1_INC。当LDAR1 = 1时,AR1从DBUS接收地址;当AR1_INC =1时,使AR1中的存储器地址增加1;在T4的上升沿,产生新的地址;LDAR1和AR1_INC两者不可同时为1。AR2的控制信号是LDAR2和M3。当M3 =1 时,AR2从数据总线DBUS接收数据;当M3=0 时,AR2以PC总线PC0—PC7作为数据来源。当LDAR2=1时,在T2的下降沿,将新的PC值打入AR2。 三、实验设备 (1)TEC-4计算机组成原理实验系统1台 (2)双踪示波器一台 (3)直流万用表一只 (4)逻辑测试笔一支 四、实验任务 (1)按图7所示,将有关控制信号和二进制开关对应接好,仔细复查一遍,然后接通电源。 (2)将数码开关SW0—SW7(SW0是最低位)设置为00H,将此数据作为地址置入AR1;然后重新设置二进制开关控制,将数码开关SW0—SW7上的数00H写入RAM第0号单元。依此方法,在存储器10H单元写入数据10H,20H单元写入20H,30H单元写入30H,40H号单元写入40H。共存入5个数据。 使用双端口存储器的左端口,依次读出存储器第00H、10H、20H、30H、40H单元中的内容,观察上述各单元中的内容是否与该单元的地址号相同。请记录数据。注意:总线上禁止两个以上部件同时向总线输出数据。当存储器进行读出操作时,必须关闭SW_BUS三态门!而当向AR1送入地址时,双端口存储器不能被选中。 (3)通过双端口存储器右端口(指令端口),依次把存储器第00H、10H、20H、30H、40H单元中的内容置入指令寄存器IR,观察结果是否与(2)相同,并记录数据。

双端口存储器原理实验

双端口存储器原理实验 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

华中科技大学实验报告实验名称双端口存储器原理实验成绩 实验日期第 2 次试验指导老师陈国平 专业计科班号组别 学生姓名同组学生 一、实验目的 1.了解双端口静态存储器IDT7132的工作特性及其使用方法 2.了解半导体存储器怎样存储和读取数据。 3.了解双端口存储器怎样并行读写,并分析冲突产生的情况。 二、实验电路 图示出了双端口存储器的实验电路图。这里使用一片IDT7132(2048×8位),两个端口的地址输入A8-A10引脚接地,因此实际使用的存储容量为256字节。左端口的数据输出接数据总线DBUS,右端口的数据输出端接指令总线IBUS。 IDT7132有六个控制引脚:CEL#、LR/W#、OEL#、CER#、RR/W#、OER#。 CEL#、LR/W#、OEL#控制左端口读、写操作;CER#、RR/W#、OER#控制右端口的读写操作。CEL#为左端口选择引脚,低电平有效;当CEL#=1时,禁止对左端口的读、写操作。LR/W#控制对左端口的读写。当LR/W#=1时,左端口进行读操作;LR/W#=0时,左端口进行写操作。OEL#的作用等同于三态门,当OEL#=0时,允许左端口读出的数据送到数据总线DBUS上;当OEL#=1时,禁止左端口的数据放到DBUS。因此,为便于理解,在以后的实验中,我们将OEL#引脚称为

RAM_BUS#。控制右端口的三个引脚与左端口的三个完全类似,这里不再赘述。有两点需要说明: (1)右端口读出的数据(更确切的说法是指令)放到指令总线IBUS上而不是数据总线DBUS,然后送到指令寄存器IR。 (2)所有数据/指令的写入都使用左端口,右端口作为指令端口,不需要进行数据的写入,因此我们将右端口处理成一个只读端口,已将RR/W#固定接高电平,OER#固定接地。这两点请同学好好理解。 存储器左端口的地址寄存器AR和右端口的地址寄存器PC都使用2片 74LS163,具有地址递增的功能。同时,PC在以后的实验当中也起到程序计数器的作用。左右端口的数据和左右端口的地址都有特定的显示灯显示。存储器地址和写入数据都由实验台操作板上的二进制开关分时给出。 当LDAR#=0时,AR在T2时从DBUS接收来自SW7-SW0的地址;当AR+1=1时,在T2存储器地址加1。LDAR#和AR+1不能同时有效。在下一个时钟周期,令CEL#=0,LR/W#=0,则在T2的上升沿开始进行写操作,将SW7-SW07设置的数据经DBUS写入存储器。 三、实验任务 1.按图所示,将有关控制信号和二进制开关对应接好,仔细复查一遍,然后 接通电源。 2.将二进制数码开关SW7-SW0(SW0为最低位)设置为00H,将其作为存储 器地址置入AR;然后将二进制开关的00H作为数据写入RAM中。用这个 方法,向存储器的10H、20H、30H、40H单元依次写入10H、20H、30H和 40H。

存储器的工作原理

存储器的工作原理 1、存储器构造 存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。 图2

图3 让我们看图2。这是一个存储器的示意图:一个存储器就像一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就像是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。 有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图3)。可是问题出来了,看图2,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看图2,在每个单元上有个控制线,我想要把数据放进哪个单元,就

给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果要某个单元中取数据,也只要打开相应的控制开关就行了。 2、存储器译码 那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线的数量。我们有一种方法称这为译码,简单介绍一下:一根线可以代表2种状态,2根线可以代表4种状态,3根线可以代表几种,256种状态又需要几根线代表?8种,8根线,所以65536种状态我们只需要16根线就可以代表了。 3、存储器的选片及总线的概念 至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件,如图4所示。这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么

存储器扩展实验

实验5 存储器扩展实验 一、实验目的 1.掌握PC存储器扩展的方法。 2.熟悉6264芯片的接口方法。 3.掌握8031内部RAM和外部RAM的数据操作 二、实验设备 PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。 三、实验内容 1)向外部存储器的7000H到8000H区间循环输入00~0FFH数据段。设置断点,打开外部数据存储器观察窗口,设置外部存储器的窗口地址为7000H—7FFFH。全速运行程序,当程序运行到断点处时,观察7000H—7FFFH的内容是否正确。 四、实验原理 实验系统上的两片6264的地址范围分别为:4000H~5FFFH,6000H~7FFFH,既可作为实验程序区,也可作为实验数据区。6264的所有信号均已连好。(3000H~3FFFH也可用) 五、实验方法 1、运用PROTUES软件进行虚拟仿真实验。按照实验要求用PROTUES软件绘制电路,编制程序,并通过调试。 2、运用星研仿真系统进行实际系统仿真实验。将星研仿真器与微机和目标板相互连接构成完整的硬件仿真系统,按照实验要求在通用实验板上进行硬件系统连接,并用星研仿真器进行系统仿真运行调试。 3、实验说明 在采用星研仿真时,若CPU选型为8051则,应将P2、P3口修改为总线模式(默认为IO口模式)。若为8031CPU则无此选项,因此不必修改。 4、星研仿真器设置时,注意,在项目工作环境设置选项中的存储器借出方式中,不能借用仿真器的外部数据空间(直接选择默认方式即可),否则无法正确测试实验箱上的存储器。 5、利用星研仿真器,在选择用户板外部RAM方式下,可以在存储器窗口中,通过直接对外部存储器单元的内容进行修改来确定该单元是否可用,可以修改的单元,表明用户可用,如果无法修改(无论键盘输入任何数字与字符,始终显示FF),则表明该存储单元不可用。 六、实验电路 1、PROTEUS 仿真电路

有机浮栅存储器的工作原理

有机浮栅存储器的工作原理 1.1 有机场效应晶体管(OFET)的基本结构和工作原理 1.1.1 有机场效应晶体管的基本结构 有机场效应晶体管的具有很多的优点:材料来源广、可以大量生产和能够实现低成本、可与柔性衬底兼容。应用前景十分广泛,如有机集成电路、存储器件、柔性显示屏等。自20世纪80年代有机场效应晶体管诞生,有机场效应晶体管得到迅速发展,到目前为止,一些有机场效应晶体管已经得到实用化的程度,在载流子迁移率、开关电流比方面已经可与非晶硅相媲美。 有机场效应晶体管按照源漏极和有机半导体的相对位置有两种结构(图2-1)底接触和顶接触,按照沟道中起传输作用的载流子的种类的不同,可以分为两种:n沟道场效应晶体管和p沟道场效应晶体管[8,9]。 图2-1 两种OFET结构:顶接触(左) 底接触(右) 1.1.2 有机场效应晶体管的工作原理 有机场效应晶体管的工作原理与无机场效应晶体管的工作原理类似。下面通过对一个顶接触的p-沟的OFET进行分析,如图2-2所示:

图2-2 有机场效应管的原理示意图 我们在栅极上施加一个相对于源极的负偏压时(源极是接地的),栅极表面出现负电荷,相应的在沟道表面感应出正电荷。当增大栅极电压时,在沟道表面形成积累层并进而形成含有可动载流子-空穴-的薄层,源漏之间的电流主要是由空穴贡献,这是与无机场效应晶体管最大的不同,通过控制栅极电压来改变沟道中空穴的数量,进而控制漏极电流[10]。 由于我们使用的是有机材料作为有源区,我们在引用传统的EEPROM的模型时必须要进行修改。在本文中,我们考虑了Pool-Frenkel效应[11],在半导体和绝缘层接触面的电荷,接触势垒,陷阱效应,采用修正以后的漂移-扩散模型(DDM)[12],借助TCAD求解泊松方程和连续性方程(2-1),(2-2),(2-3)[13],来模拟有机场效应晶体管的电学特性。 其中为静电势,为有机材料的介电常数,G为产生率, 和分别为捕获的电子和空穴的密度,和分别为电子和空穴的 电流密度。R是电子和空穴的复合率。[14,15],

存储器和IO扩展实验,计算机组成原理

科技学院 课程设计实验报告 ( 2014--2015年度第一学期) 名称:计算机组成原理综合实验题目:存储器和I/O扩展实验 院系:信息工程系 班级: 学号: 学生姓名: 指导教师:李梅王晓霞 设计周数:一周 成绩: 日期:2015 年1 月

一、目的与要求 1. 内存储器部件实验 (1)熟悉ROM芯片和RAM芯片在功能和使用方法等方面的相同和差异之处;学习用编程器设备向EEPROM芯片内写入一批数据的过程和方法。 (2)理解并熟悉通过字、位扩展技术实现扩展存储器系统容量的方案; (3)了解静态存储器系统使用的各种控制信号之间正常的时序关系; (4)了解如何通过读、写存储器的指令实现对58C65 ROM芯片的读、写操作; (5)加深理解存储器部件在计算机整机系统中的作用。 2. I/O口扩展实验 学习串行口的正确设置和使用。 二、实验正文 1.主存储器实验内容 1.1实验的教学计算机的存储器部件设计(说明只读存储器的容量、随机读写器的容量,各选用了什么型号及规格的芯片、以及地址空间的分布) 在教学计算机存储器部件设计中,出于简化和容易实现的目的,选用静态存储器芯片实现内存储器的存储体,包括唯读存储区(ROM,存放监控程序等) 和随读写存储区(RAM)两部分,ROM存储区选用4片长度8位、容量8KB 的58C65芯片实现,RAM存储区选用2片长度8位、容量2KB的6116芯片 实现,每2个8位的芯片合成一组用于组成16位长度的内存字,6个芯片被分 成3组,其地址空间分配关系是:0-1777h用于第一组ROM,固化监控程序, 2000-2777h用于RAM,保存用户程序和用户数据,其高端的一些单元作为监 控程序的数据区,第二组ROM的地址范围可以由用户选择,主要用于完成扩 展内存容量(存储器的字、位扩展)的教学实验。 1.2扩展8K字的存储空间,需要多少片58C65芯片,58C65芯片进行读写时的特殊要求 要扩展8K字的存储空间,需要使用2片(每一片有8KB容量,即芯片内由8192个单元、每个单元由8个二进制位组成)存储器芯片实现。对 58C65 ROM芯片执行读操作时,需要保证正确的片选信号(/CE)为低点平, 使能控制信号(/OE)为低电平,读写命令信号(/WE)为高电平,读58C65 ROM 芯片的读出时间与读RAM芯片的读出时间相同,无特殊要求;对58C65 ROM 芯片执行写操作时,需要保证正确的片选信号(/CE)为低电平,使能控制信 号(/OE)为高电平,读写命令信号(/WE)为低电平,写58C65 ROM芯片的 维持时间要比写RAM芯片的操作时间长得多。为了防止对58C65 ROM芯片执 行误写操作,可通过把芯片的使能控制引脚(/OE)接地来保证,或者确保读 写命令信号(/WE)恒为高电平。 1.3在实验中思考为何能用E命令直接写58C65芯片的存储单元,而A命令则有时不正确;

双端口存储器原理实验

双端口存储器原理实验

华中科技大学实验报告 实验名称双端口存储器原理实验成绩 实验日期第2次试验指导老师陈国平 专业计科班号组别 学生姓名同组学生 一、实验目的 1.了解双端口静态存储器IDT7132的工作特性及其使用方法 2.了解半导体存储器怎样存储和读取数据。 3.了解双端口存储器怎样并行读写,并分析冲突产生的情况。 二、实验电路 图3.2 双端口存储器实验电路图 图3.2示出了双端口存储器的实验电路图。这里使用一片IDT7132(2048×8位),两个端口的地址输入A8-A10引脚接地,因此实际使用的存储容量为256字节。左端

口的数据输出接数据总线DBUS,右端口的数据输出端接指令总线IBUS。 IDT7132有六个控制引脚:CEL#、LR/W#、OEL#、CER#、RR/W#、OER#。CEL#、LR/W#、OEL#控制左端口读、写操作;CER#、RR/W#、OER#控制右端口的读写操作。CEL#为左端口选择引脚,低电平有效;当CEL#=1时,禁止对左端口的读、写操作。LR/W#控制对左端口的读写。当LR/W#=1时,左端口进行读操作;LR/W#=0时,左端口进行写操作。OEL#的作用等同于三态门,当OEL#=0时,允许左端口读出的数据送到数据总线DBUS上;当OEL#=1时,禁止左端口的数据放到DBUS。因此,为便于理解,在以后的实验中,我们将OEL#引脚称为RAM_BUS#。控制右端口的三个引脚与左端口的三个完全类似,这里不再赘述。有两点需要说明: (1)右端口读出的数据(更确切的说法是指令)放到指令总线IBUS上而不是数据总线DBUS,然后送到指令寄存器IR。 (2)所有数据/指令的写入都使用左端口,右端口作为指令端口,不需要进行数据的写入,因此我们将右端口处理成一个只读端口,已将RR/W#固定接高电平,OER#固定接地。这两点请同学好好理解。 存储器左端口的地址寄存器AR和右端口的地址寄存器PC都使用2片74LS163,具有地址递增的功能。同时,PC在以后的实验当中也起到程序计数器的作用。左右端口的数据和左右端口的地址都有特定的显示灯显示。存储器地址和写入数据都由实验台操作板上的二进制开关分时给出。 当LDAR#=0时,AR在T2时从DBUS接收来自SW7-SW0的地址;当AR+1=1时,在T2存储器地址加1。LDAR#和AR+1不能同时有效。在下一个时钟周期,令CEL#=0,LR/W#=0,则在T2的上升沿开始进行写操作,将SW7-SW07设置的数据经DBUS 写入存储器。 三、实验任务 1.按图3.2所示,将有关控制信号和二进制开关对应接好,仔细复查一遍,然 后接通电源。 2.将二进制数码开关SW7-SW0(SW0为最低位)设置为00H,将其作为存储器 地址置入AR;然后将二进制开关的00H作为数据写入RAM中。用这个方法, 向存储器的10H、20H、30H、40H单元依次写入10H、20H、30H和40H。 3.使用存储器的左端口,依次将第2步存入的5个数据读出,观察各单元中存 入的数据是否正确。记录数据。注意:禁止两个或两个以上的数据源同时向 数据总线上发送数据!在本实验中,当存储器进行读出操作时,务必将 SW_BUS#的三态门关闭。而当向AR送入数据时,双端口存储器也不能被选中。 4.通过存储器的右端口,将第2步存入的5个数据读出,观察结果是否与第3 步结果相同。记录数据。 5.双端口存储器的并行读写和访问冲突。 将CEL#、CER#同时置为0,使存储器的左右端口同时被选中。当AR和PC的地址不相同时,没有访问冲突;地址相同时,由于都是读操作,也不会冲突。如果左右端口地址相同,且一个进行读操作,一个进行写操作,就会发生冲突。检测冲突的方法:观察两个端口的“忙”信号输出指示灯BUSYL#和BUSYR#。BUSYL#/BUSYR#灯亮(为0)时,不一定发生冲突,但发生冲突时,BUSYL#/BUSYR#必定亮。

实验五_存储器设计

计算机组成原理 实验五《存储器设计》 实验报告 姓名:吴速碘黄紫微 学号:13052053 13052067 班级:计算机二班 日期2015、5、25

实验五存储器设计 一、实验目的 1、掌握RAM和ROM的Verilog语言描述方法; 2、学习用宏模块的方法定制RAM和ROM。 二、实验任务 1、设计并实现一个128*16 的单端口的RAM; 2、设计并实现一个128*16的ROM; 3、设计并实现一个双端口的128*16的RAM 4、设计并实现一个16*32的FIFO。 5、设计并实现正弦信号发生器,见“正弦信号发生器实验指南”。 三、实验步骤 1 编写Verilog代码(见附页) 2功能仿真 进行分析与综合,排除语法上的错误 建立波形仿真文件,输入激励 生成功能仿真网表 进行功能仿真,观察输出结果 3选择器件 DE2_70开发板的使用者请选择EP2C70F896C6 4绑定管脚 5 下载验证 DE2_70开发板的下载:使用USB-Blaster进行下载 四、实验内容 五、实验思考题 1、分析存储器采用三态输出的原因是什么? 存储器的输出端是连接在数据总线上的。数据总线相当于一条车流频繁的大马路,必须在绿灯条件下,车辆才能进入这条大马路,否则要撞车发生交通事故。同 理,存储器中的数据是不能随意传送到数据总线上的。例如,若数据总线上的数 据是“1”(高电平5V),存储器中的数据是“0”(低电平0V),两种数据若碰到一 起就会发生短路而损坏单片机。因此,存储器输出端口不仅能呈现“l”和“0”两 种状态,还应具有第三种状态“高阻"态。呈“高阻"态时,输出端口相当于断开,对数据总线不起作用,此时数据总线可被其他器件占用。当其他器件呈“高阻”态 时,存储器在片选允许和输出允许的条件下,才能将自己的数据输出到数据总线 上。 2、单端口和双端口的区别是什么? 单端口ram是ram的读写只有一个端口,同时只能读或者只能写。 双端口ram是ram读端口和写端口分开,一个端口能读,另一个端口可以同时写。 3、什么情况下考虑采用双端口存储器?

存储程序工作原理

一、存储程序工作原理 二、计算机的三个基本能力:一是采用二进制,二是能够存储程序,三是能够自动地执行程序。 三、计算机是利用“存储器”(内存)来存放所要执行的程序的,而称之为CPU的部件可以依次从存储器中取出程序中的每一条指令,并加以分析和执行,直至完成全部指令任务为止。 四、总线(Bus):是微型计算机中用于连接CPU、存储、输入/输出接口等部件的一组信号线和控制电路,是系统内各种部件之间共享的一组公共数据传输线路。 五、回收站:硬盘的部分存储区域 六、文件:新建打开保存另存为页面设置打印 七、编辑:撤消重复复制粘贴查找替换 八、格式:字体段落分栏文字方向背景 九、表格:绘制表格插入表格合并单元格绘制斜线表头表格属性 十、计算机网络是指通过通信设备将地理位置分散、具有独立功能的多个计算机连接起来,按照协议进行数据通信,以实现资源共享和信息传递的系统。 十一、计算机网络的物理组成:计算机传输介质连接设备 十二、网络连接设备:网络适配器集线器交换机中继器网桥路由器网关调制解调器 十三、国标字符集有6763个常用汉字 十四、由三部分组成: 十五、字母、数字和各种符号,共687个 十六、一级常用汉字,共3755个,按汉语拼音排列 十七、二级常用汉字,共3008个,按偏旁部首排列 十八、基本思想:先把编制的程序存储起来,再用程序来控制计算机的运行. 十九、“存储程序”工作原理:在计算机中设置存储器,将二进制编码表示的计算步骤与数据一起存放在存储器中,机器一经启动,就能按照程序指定的逻辑顺序依次取出存储内容进行译码和处理,自动完成由程序所描述的处理工作 二十、计算机网络的概念:概念:计算机网络是通信技术与计算机技术相结合的产物,是以资源共享为主要目的、以通信媒体互连起来的计算机的集合二十一、计算机:服务器、客户机和同位体。 二十二、传输介质:计算机与通信设备之间、以及通信设备之间都通过传输介质互连,具体有双绞线、同轴电缆、光纤、电话线、微波信道、卫星信道等。 二十三、通信设备:其作用是为计算机转发数据,具体有交换机、集线器、路由器、调制解调器等。 二十四、中国教育科研网(CERNET )中国公用信息网(ChinaNET )中国科学技术网(CSTNET )中国金桥信息网(CHINAGBN) 1.阐述系统软件和应用软件的分类和作用。 系统软件:操作系统、程序设计语言、语言处理程序、诊断程序、数据库管理系统。 应用软件:用于科学计算方面的数学计算软件包、统计软件包;文字处理软件包;图像处理软件包;各种财务管理、税务管理、工业控制等行业软件。

存储器扩展实验

存储器扩展实验 1.实验目的 1. 了解存储器的扩展方法及其对存储器的读/写。 2. 掌握CPU对8/16位存储器的访问方法。 2.实验设备 PC机一台,TD-PITC实验箱。 3.实验内容 编写程序,往扩展存储器中传送有规律的数据(如5555H、AAAAH或顺序递增的数据等,以便于观察写入是否正确),然后通过Tdpit软件中的“扩展存储区数据显示窗口”查看该存储空间,检测写入数据是否正确。 1)循环传送16位规则字到扩展存储器(共32768个字); 2)循环传送16位非规则字到扩展存储器(共32768个字); 3)循环传送字节数据到扩展存储器(共32768个字节)。 关于规则字和非规则字的含义见以下16位存储器操作的说明。 4.实验原理 1)SRAM 62256介绍 SRAM(静态RAM)的基本存储元是由MOS管组成的触发器电路构成,每个触发器可以存放1位信息。只要不掉电,所储存的信息就不会丢失。目前较常用的SRAM有6116(2K×8),6264(8K×8)和62256(32K×8)。TD-PITC实验箱内使用了2片62256构成32K×16的扩展存储器模块。62256的引脚如图1所示。 图1 62256引脚图 2)16位总线的存储器接口 TD-PITC实验箱中的16位系统总线提供了XA1~XA20、#BHE、#BLE、MY0等信号用于扩展存储器的读写操作。MY0是系统为扩展存储器提供的片选信号,其地址空间为D8000H~DFFFFH,XA1~XA20提供了16位(2字节)存储单元的地址,#BHE和#BLE用来确定访问16位存储单元中的低8位还是高8位,#BLE有效时允许访问低8位(D7-D0),#BHE有效时允许访问高8位(D15-D8)。其对应关系如表1所示。

RAM-ROM-EEPROM存储器工作原理

RAM-ROM-EEPROM存储器工作原理

一.基本工作原理 1、存储器构造 存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。 图1 图2 让我们看图1。这是一个存储器的示意图:

一个存储器就像一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就像是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。 有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图2)。可是问题出来了,看图1,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看图1,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所

以开关不打开,不会受到影响,这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果要某个单元中取数据,也只要打开相应的控制开关就行了。 2、存储器译码 那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线的数量。我们有一种方法称这为译码,简单介绍一下:一根线可以代表2种状态,2根线可以代表4种状态,3根线可以代表几种,256种状态又需要几根线代表?8种,8根线,所以65536种状态我们只需要16根线就可以代表了。 3、存储器的选片及总线的概念 至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件。这样问题就出来了,这八根线既然

单片机实验 数据存储器和程序存储器扩展

实验四数据存储器和程序存储器扩展 一、实验目的 1、学习片外存储器扩展方法 2、学习数据存储器不同的读写方法 3、学习片外程序存储器的读方法 二、实验说明 本次实验使用1片6264SRAM,作为片外扩展的数据存储器,对其进行读写。先向6264中写入整数1~200,然后将其逆向复制到地址0x0100处。注意单片机ALE引脚与74LS373的LE引脚的连接,直至锁存由单片机的ALE控制,另外还要注意单片机读/写控制引脚、与6264的连接。RD WR 三、实验线路图 四、实验步骤 1、先建立文件夹“ex4”,然后建立“ex4”工程项目,最后建立源程序文件“ex4.c”,输入如下源程序; /*用6264扩展内存*/ //说明:先向6264中写入整数1~200,然后将其逆序复制到0x0100处 #include #include #define uchar unsigned char #define uint unsigned int sbit LED=P1^0; /*主程序*/ void main() { uint i; LED=1; //向6264的0x0000地址处写入1~200

for(i=0;i<200;i++) { XBYTE[i]=i+1; } //将6264中的1~200逆向拷贝到0x0100地址开始处 for(i=0;i<200;i++) { XBYTE[i+0x0100]=XBYTE[199-i]; } //扩展内存数据处理完成后LED点亮 LED=0; while(1); } 2、用Proteus软件仿真 经过Keil软件编译通过后,可利用Proteus软件仿真。在Proteus ISIS编辑环境中绘制仿真电路图。打开配套实验3仿真原理图文件“ex4.DSN”,将编译好的“ex4.hex”文件载入 A T89C51,启动仿真。 五、思考题 实验仅使用了一片6264SRAM对数据内存进行扩展,要求在电路中使用EPROM27512(64KB)对程序内存进行扩展,将HEX文件移到27512中执行,注意将EA接地。 /*用6264扩展内存*/ //说明:先向6264中写入整数1~200,然后将其逆序复制到0x0100处 #include #include #define uchar unsigned char #define uint unsigned int sbit LED=P1^0; /*主程序*/ void main() { uint i; LED=1; //向6264的0x0000地址处写入1~200 for(i=0;i<200;i++) { XBYTE[i]=i+1; } //将6264中的1~200逆向拷贝到0x0100地址开始处 for(i=0;i<200;i++) { XBYTE[i+0x0100]=XBYTE[199-i]; } //扩展内存数据处理完成后LED点亮 LED=0; while(1); }

相关主题
文本预览
相关文档 最新文档