谁能给我一份计算机组成原理的试验讲义

如题

实验一 AEDK实验仪的ISA总线配置方式下
实现的接口技术与编程环境

一、实验目的
1、 熟悉AEDK实验仪的ISA总线配置方式下实现的接口技术与编程环境。并了解其他两种:独立运行的单板机配置方式和串行监控配置方式。
2、 学习通过60芯总线、驱动器、译码器等在PC外扩展新的接口芯片。
3、 了解编程对可编程接口实现控制的程序设计方法。
二、试验设备
硬件:PC兼容机
AEDK实验仪

软件:操作系统MS-DOS或WINDOWS
MASM..EXE
LINK.EXE DEBUG 和EDIT.等编辑器
三、实验内容
1、 复习汇编语言和微机原理的相关内容,了解总线及端口地址的编址方式(统一编址和独立编址)。熟悉CS信号的产生方法。
2、 掌握汇编语言编辑、汇编、链接、调试程序的方法。熟练掌握DEBUG调试程序的各条命令和使用。
3、 熟悉实验仪面板的结构,掌握原理,从而更好的利用并搞好开发。
四、要求与说明
1、 遵守实验室规章制度,爱护实验仪器(履行人机对号签名记录办法);
2、 成绩构成:平时实验情况及报告70%,考试10%,实验仪器使用管理及恢复情况20%(旨在培养良好的实验作风,第一次犯错警告,再次以10分,20分,40分从总成绩中扣分);
3、 本实验使用8253计数器/定时器,端口地址为200H、201H、202H、203H,对应COUNT0、COUNT1、COUNT2、控制端口。
五、汇编程序结构
DATA SEGMENT



DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:




CODE ENDS
END START
六、源程序生成步骤
1、用编辑程序EDIT编辑源程序
C>EDIT文件名.ASM (文件名由用户自定)
2、用宏汇编程序MASM汇编源程序产生目标程序
C>MASM 文件名.ASM
汇编完成后若不提示错误,顺序进行第3步操作,否则重复1-2步并记录分析错误原因。
3、用链接程序LINK
C>LINK 文件名.OBJ(扩展名.OBJ可省略)
4、用调试程序DEBUG调试程序
C>DEBUG 文件名.EXE
注意观察调试过程中的各种现象并记录
5、 正确联接硬件,经指导教师检查电路连接无误,接通实验仪电源开关,运行程序。使用DEBUG单步运行,观察、记录执行输入、输出、存储器—寄存器传送、寄存器—存储器传送指令时,总线信号接口芯片片选信号CS的现象和状态。(建议画出波形图)
七、报告要求
1、谈谈对本实验课的建设性建议,教学方式的意见及自己应达到的目标;
2、指定题目或者有关8253,8255,8251,8259,A/D,D/A等自己设计的或选摘的较好的实验方案都可以在实验课上做。您对这种教改的看法如何?

实验二 8253计时器/定时器
一、实验目的
1. 进一步学会通过62芯总线、驱动器、译码器等,在PC机外扩展新的接口芯片。
2. 掌握8253计数器的编程原理,用示波器或发光二极管LED观察不同模式下的波形或频率关系。
二、试验设备
硬件:PC兼容机
微机实验仪
示波器
LED3只
软件:操作系统MS-DOS
MASM..EXE
LINK.EXE
三、试验内容
1. 用8253构成一个方波发生器和分频器,完成如图连接。
1>、把8253的CLKO与实验仪Q0—Q3端之一输出的2.5KHz—20KHz(不同仪器有所差异)频率相连接。
2>、将OUT0与CLK1相连接,OUT1与CLK2相连接,OUT0、OUT1、OUT2分别连接LED阳极。
3>、GATE0、GATE1、GATE2接+5V。
4>、片选CS插孔接200H~207H。可选用D触发器和LED检测CS信号状态。接线方式见实验一。

2.完成编程,将计数器0、1设为模式3(方波),计时器2设为模式2(分频),计数器0的输出脉冲作为计数器1的时钟输入,计数器1的输出脉冲作为计数器2的时钟输入。修改程序中的计数初值参数以改变方波宽度和分频信号周期,用LED观察计数器0、1和2的输出频率关系,并画出频率关系图波形。
记数初值 =F入/ F 出= T入 / T出
四、编程提示
1、8253控制端口地址为 203H
计数器0地址为 200H
计数器1地址为 201H
计数器2地址为 202H
2、8253的控制字:

3、程序框图

五、参考程序清单
DATA SEGMENT
TS DB '注意观察现象并记录输出波形关系',OAH,ODH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,TS
MOV AH,9
INT 21H
MOV DX,203H
MOV AL,36H
OUT DX,AL
MOV DX,200H
MOV AL,0FFH
OUT DX, AL
OUT DX,AL
MOV DX,203H
MOV AL, 56H
OUT DX, AL
MOV DX, 201H
MOV AL, 8
OUT DX, AL
MOV DX,203H
MOV AL,94H
OUT DX,AL
MOV DX,202H
MOV AL,6
OUT DX,AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
六、试验步骤
1、用编辑程序EDIT编辑源程序
C>EDIT文件名.ASM (文件名由用户自定)
注意:编辑结束时一定要将建立的源程序存盘后再退出EDIT。
2、用宏汇编程序MASM汇编源程序产生目标程序
C>MASM 文件名.ASM
汇编完成后若不提示错误,顺序进行第3步操作,否则重复1-2步并记录分析错误原因。
3、用链接程序LINK
C>LINK 文件名.OBJ(扩展名.OBJ可省略)
4、用调试程序DEBUG调试程序
C>DEBUG 文件名.EXE
注意观察调试过程中的各种现象并记录
5、经指导教师检查电路连接无误,接通实验仪电源开关,运行程序。使用DEBUG单步运行,观察、记录每个计数器写入工作方式控制字,写入记数初值后OUT端的现象和状态。
计数器0 计数器1 计数器2
工作方式 记数初值 输出F或T 工作方式 初值 输出F或T 工作方式 初值 输出F或T

执行指令 OUT0 OUT1 OUT2

注意:记录波形

6、讨论及改进
1>、请改变源程序中工作方式控制字和记数初值并观察分析运行结果。
2>、LED观察与CRT观察有什么不同?为什么?
3>、试用一对红外发射、接收管和8253计数器设计生产线实物记数装置,采集的数据传送到CPU处理。
4>、提出对本实验的改进意见。

实验三 8255并行接口(小键盘控制)实验
一、 实验目的
1、 学习在PC机系统中扩展I/O接口的方法。掌握8255并行接口编程原理,体会可编程接口的设计灵活性、方便性。
2、 了解非编码键盘的结构特点,学习扫描读取键盘键值,与键名对应在CRT显示的编程方法及硬件结构。
二、实验设备
硬件:PC兼容机
微机实验仪
软件同实验一
三、 实验内容
1、用8255并行接口控制一个16键的小键盘(用行扫描法或反转法均可),按图连接线路:
1>、用导线将PA0—PA7连接到插孔RL0—RL7,控制键盘行数据。
2>、用导线将PB0、PB1连接到插孔Y0、Y1,控制键盘列数据。拔掉K10上的所有短路套。
3>、片选CS连接218H—21FH。

2、编写程序,当运行程序时,大键盘交出控制权,在小键盘按键后,微机屏幕显示读到的键名。当小键盘压下“F”后,返回DOS,大键盘恢复控制权。
四、 编程提示
1、 识别键盘上的闭合键,通常用行扫描法或反转法。
行扫描法使键盘上某一行线为低电平,其余行为高电平。然后读取列值,若列值中有某列为低电平,则表明行、列交叉点处的键被压下,由列值+行值=键值,与存储在缓冲区的键值表比较判断后,再找出对应键名的字符显示在微机屏幕或返回DOS;否则扫描下一行,直到扫完全部行线为止。
行反转法将行线接一并行口,工作在输出方式。列线接另一并行口,工作在输入方式。程序使CPU由输出口往各行线全部送出低电平,再读入列线的值。若此时有某一键被按下,则必定会使某一列线值为0。然后程序再对两个并行口进行方式设置,使行线工作在输入方式,列线工作于输出方式,并且将刚才读到的列线值从列线所接的并行口输出,再读取行线的输入值,那么,在闭合键所在的行线上由于有键压下,其行值肯定为0。因此,当一个键被按下时,必定可以读取一对唯一的键值(列值+行值)。
2、 编程时各个键的键名可由用户定义,各个键对应的键值代码(列值+行值)由接口排列确定。行与
列的交叉点数即是键的个数,键名与键值均存放在数据段的键表中,程序通过查表来确定具体按下的是那一个键。
五、 参考程序清单(反转法)
DATA SEGMENT
TABLE DW 0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180H
DW 0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H
CHAR DB ‘ 89ABCDEF01234567’
TS DB ‘ 按下小键盘上任意键,在CRT上显示,按F 键 ,程序推出 ’,0DH,0AH,‘$’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
MAIN PROC FAR
START:MOV AX, DATA
MOV DS, AX
LEA DX, TS
MOV AH, 9
INT 21H
KY:CALL KEY
CMP DL,‘F’
JNZ KY
MOV AH,4CH
INT 21H
RET
MAIN ENDP
KEY PROC NEAR
INI: MOV DX, 21BH
MOV AL, 82H
OUT DX, AL
WAIT1:MOV DX, 218H
MOV AL, 0
OUT DX,AL
MOV DX, 219H
IN AL, DX
MOV AH, AL
AND AL, 03H
CMP AL, 03H
JZ WAIT1
MOV AL, AH
MOV AH, 0
PUSH AX
PUSH AX
MOV CX, 1000H
DLY: LOOP DLY
MOV DX, 21BH
MOV AL, 90H
OUT DX, AL
MOV DX, 219H
POP AX
Out dx,al
MOV DX, 218H
IN AL, DX
POP BX
MOV AH, BL
NOT AL
MOV SI, OFFSET TABLE
MOV DI, OFFSET CHAR
MOV CX, 16
SKIP: CMP AX, [SI]
JZ DISP
DEC CX
JZ ini
ADD SI, 2
INC DI
JMP SKIP
DISP:MOV DL, [DI]
MOV AH,2
INT 21H
PUSH DX
MOV DX,21BH
MOV AL, 82H
OUT DX, AL
WAIT2:MOV DX,218H
MOV AL, 0
OUT DX, AL
MOV DX, 219H
IN AL, DX
AND AL, 03H
CMP AL, 03H
JNZ WAIT2
POP DX
RET
KEY ENDP
CODE ENDS
END START
六、 实验步骤
1、 编辑、汇编、链接、调试源程序。
2、 正确连接电路,经指导教师检查确认无误后方可接通电源。
3、 运行程序,用LED分别测量PA0—PA7,PB0—PB1的状态。观察、记录实验现象。
小键盘: 无键按下时 有键按下时
PA0—PA7 PB0—PB1 键名 PA0—PA7 PB0—PB1

大键盘:

4、 讨论及改进
1>、用LED测量PA0—PA7,有什么现象,为什么?
2>、用LED测量PB0、PB1有键压下与无键压下的状态有何区别?为什么?
3>、当小键盘有效时,大键盘可否使用?在大键盘按下16次以上,CRT有什么现象,请记录。
4>、用A口8位和B口2位可控制16位键。若选用8255 接口A组12位,B组12位共可控制多少位键?8255可否控制104标准键盘?
5>、注释源程序各模块,并画出流程图。

实验四 8259A中断控制器实验
一、实验目的
1、掌握8259A中断控制器工作原理,熟悉实验中涉及到8259A 中的中断屏蔽寄存器IMR和中断服务寄存器ISR等的用法。
3、 掌握外部中断源的引入,学会中断处理程序的编写。
二、实验设备
硬件:PC兼容机
微机实验仪
软件同实验一
三、 实验内容
1、 使用正、负单脉冲作为外中断源,可随机产生中断请求(也可用8253计数器产生定时外部中断请求),中断请求通过PC/XT 62芯总线的IRQ2端输入到机内8259 ,由8259 向总线发出INTR信号,总线响应后,给出INTA响应信号。转入中断服务程序。
2、 编写程序,要求每次主机响应外部中断IRQ2时,启动8255并行接口,由PC7—4采集输入推键开关组的4位信号,从PC3—0输出到4只LED显示。每次中断请求前选定推键开关组合,中断响应后,LED显示组合开关状态。中断十次后,程序退出。
四、 编程提示
1、 本实验使用PC机内的8259A芯片,主机启动时已将8259A中断控制寄存器前5位初始化为00001,因此,IRQ2的中断号为00001010B=0AH,IRQ5的中断号为00001101B=0DH。主机把IRQ2保留给用户使用,其它外中断由系统时钟、键盘等占用。所以,编程时避开系统已使用的中断请求号。只需将IMR寄存器中对应IRQ2的位清零(使ICW3=11111011B),解除IRQ2的中断屏蔽,允许IRQ2中断即可。
2、 PC机内8259A初始化为普通结束方式,当外中断结束时,必须使用中断结束命令清除中断服务寄存器ISR中的对应位。(MOV AL,20H OUT 20H,AL OCW2=00100000B)。
3、程序退出时,关闭IRQ2中断,把IMR中对应位置1(使OCW1=11111111B),将其屏蔽,禁止中断。
3、 PC机系统内8259A端口地址:偶地址 20H,奇地址 21H。
五、 参考程序清单
DATA SEGMENT
TS1 DB ‘组合推键开关设置编码,按下单脉冲键,观察LED显示,注意上升沿或下降沿触发’,0DH,0AH,‘$’
TS2 DB ‘并行接口8255 C口采集数据并显示,请观察、记录。’,‘$’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:MOV AX,CS
MOV DS,AX
LEA DX,INTPROG
MOV AH,25H
MOV AL, 0AH
INT 21H
CLI
MOV DX, 21H
IN AL, DX
AND AL, 11111011B
OUT DX, AL
MOV BX,10
MOV SI, 0041H
STI
MOV AX,DATA
MOV DS,AX
LEA DX, TS1
MOV AH, 9
INT 21H
YY: NOP
JMP YY
INTPROG:
MOV AX,DATA
MOV DS,AX
LEA DX,TS2
MOV AH, 9
INT 21H
MOV CX, 05H
MOV DL, 20H
MOV AH, 2
XH0: INT 21H
LOOP XH0
MOV DX, SI
MOV AH, 2
INT 21H
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
MOV DX,21BH
MOV AL, 88H
OUT DX, AL
MOV DX,21AH
IN AL, DX
MOV CL, 4
ROR AL, CL
NOT AL
OUT DX, AL
MOV DX,20H
MOV AL, 20H
OUT DX, AL
DEC BX
JNZ CONTINUE
MOV DX, 21H
IN AL, DX
OR AL, 04
OUT DX, AL
STI
MOV AH,4CH
INT 21H
CONTINUE:INC SI
IRET
CODE ENDS
END START
六、实验步骤
1、编辑、汇编、链接、调试源程序。
2、正确连接电路,经指导教师检查确认无误后方可接通电源。
3、运行程序,CRT显示提示后,对组合推键选择编码,按下PLUS按钮,观察CRT的显示和LED显示的PC3—0的编码,分析INTR信号上升沿还是下降沿有效。观察、记录实验现象。如何检测?
4、 注意观察8259A 中断控制器的中断请求寄存器IRR是否有寄存中断请求的功能?如何证实?

实验五 存储器直接传送DMA
一、实验目的
1、 学习DMA工作原理及DMA控制器8237A—5的使用方法。
2、 掌握在PC 环境下通过编程实现DMA数据传送,了解DMA工作时序。
二、实验设备
硬件:PC兼容机
微机实验仪
软件同实验一
三、实验内容
1、 编写程序,将PC机内存60000H—61FFFH的内容用DMA读方式送到实验仪的62256外扩存储器中,然后再用DMA写方式写回到70000—71FFFH区域。
2、 用74LS154集成4D触发器检测DREQ、DACK信号状态。
3、 用DEBUG调试程序对内存60000H—61FFFH区域填充数据,DMA操作后,读出70000H—71FFFH区域的数据检查、核对,传送后的数据有无差错。
四、实验说明
1、 本实验利用PC机内DMA控制器,必须遵守PC机的某些约定条件:
DMA控制器8237—A在PC机系统内部,4个DMA通道中,通道0用于RAM 刷新(刷新请求信号由系统中8253计数器通道1产生,每隔15.13微秒产生一次),通道1保留给用户使用,通道2做软驱数据传送,通道3用于硬盘数据传送。8237—A寻址范围00H—0FH,通道1对应的页面地址为83H。
PC机BIOS处始化时,控制寄存器设为00H,即DREQ高电平有效,DACK低电平有效,固定优先级,普通时序及不扩展写方式。四个通道都遵守此约定,建议不必再设定控制寄存器内容,避免系统设置紊乱。
2、使用DMA,应注意:
1>、保证通道0的RAM刷新正常运行,否则会死机。对DMA的三种传输模式,PC机环境下只支持单字节传输方式,其它两种都因占用总线时间过长,使RAM得不到及时刷新而导致死机。系统设置固定优先级方式,也是为保证动态RAM刷新的优先。由于ROM—BIOS已将通道0已用于动态RAM刷新,用户不得改动,所以,尽管通道0和1具有内存到内存的DMA传送功能,但PC机不支持内存到内存的DMA传送。
2>、软件请求方式是与块传输模式相对应的。为不影响RAM刷新,建议用直接传送方式。当传送多字节时,要用一段循环程序实现。
2、 短路套JP0,JP1,JP2,JP3,JP4跳接到DMA侧(左侧),K11、K12拨到DMA侧,HALT键兼作DMA按键使用。
3、 总线信号DREQ1、DACK1分别联接到D触发器的S端和R端,Q端联接LED。
五、 程序清单
DATA SEGMENT
TS1 DB ‘按下DMA(HALT)键,请求将内存源数据区中32KB数据直接传送到外扩存储器62256(当作外设)中,观察LED显示的DREQ1、DACK1信号。’,0DH,0AH,‘$’
TS2 DB ‘按下DMA(HALT)键,请求将外扩存储器62256(当作外设)中32KB数据直接传送到内存目标区中,观察LED显示的DREQ1、DACK1信号。’,0DH,0AH,‘$’
TS3 DB ‘DMA直接传送完成,请进入DEBUG用D命令检查内存目标区中的32KB数据正确否。’,0DH,0AH,‘$’
DATA ENDS
STACK SEGMENT
STA DW 50 DUP (?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS;CODE, DS:DATA, SS:STACK, ES:DATA
START:MOV AX, DATA
MOV DS, AX
MOV AX, STACK
MOV SS, AX
MOV SP, TOP
MOV AL, 5
OUT 0AH, AL ;设置通道1屏蔽字
OUT 0CH, AL ;清除先后触发器
MOV AL, 01001001B
OUT 0BH, AL ;设方式字为单字节读传输
MOV BX, 0000H
MOV AL, BL
OUT 02H, AL
MOV AL, BH
OUT 02H, AL
MOV AL, 06H
OUT 83H, AL ;起始地址为6000H:0
MOV AL, 0FFH
OUT 03H, AL
MOV AL, 07FH
OUT 03H, AL ;传送字节数为7FFFH(32KB)
MOV AL, 01H
OUT 0AH, AL
LEA DX, TS1
MOV AH, 9
INT 21H
PUSH AX
POP AX
WAIT0: IN AL, 08H
AND AL, 02H
JZ WAIT0
MOV AL, 05H
OUT 0AH, AL ;设置通道1屏蔽字
OUT 0CH, AL ;清除先后触发器
MOV AL, 01000101B
OUT 0BH, AL ;设置方式字为单字节写传输
MOV AL, BL
OUT 02H, AL
OUT 02H, AL
MOV AL, 07H
OUT 83H, AL ;目的地址为内存7000H:0
MOV AL, 0FFH
OUT 03H, AL
MOV AL, 7FH
OUT 03H, AL ;传送字节为7FFFH(32KB)
MOV AL, 01
OUT 0AH, AL ;除去通道1的屏蔽
LEA DX, TS2
MOV AH, 9
INT 21H
PUSH AX
POP AX
WAIT1: IN AL, 08H
AND AL, 02H
JZ WAIT1
LEA DX,TS3
MOV AH,9
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
六、实验步骤
1、编辑、汇编、链接、调试源程序。
2、正确连接电路,经指导教师检查确认无误后方可接通电源。
3、进入DEBUG,运行D命令检查6000H:0000—6000H:7FFFH范围的数据,用F命令对该范围填充数据。再用D命令检查该范围是否填充到数据。
4、 运行程序,按照程序提示,按下HALT键请求DMA传送,观察DREQ1、DACK1、MEMR、IOW信号的状态。实现内存中数据传送到外部扩充存储器62256中。
5、 按照程序提示,再次按下HALT键请求DMA传送,观察DREQ1、DACK1、MEMW、IOR信号的状态。实现外部扩充存储器62256中数据传送到内存中。
6、进入DEBUG,运行D命令检查7000H:0000—7000H:7FFFH范围的数据,与源数据区的数据比较,有无差错,若有差错,请分析原因。

实验六 8251可编程串行接口通信实验
一、实验目的
1、掌握8251芯片结构、工作原理、和初始化编程。
2、了解实现串行通信的硬件环境、数据格式的协议,数据交换的协议。
3、学习PC机通信的编程方法。
二、试验设备
硬件:PC兼容机
微机实验仪
LED4只
74LS74或74LS175集成电路1片
软件:操作系统MS-DOS
MASM..EXE
LINK.EXE
三、实验内容
1、 编辑、汇编、链接、调试汇编程序。通过对8251初始化设定串行传送字符帧格式,波特率因子等数据格式、数据交换协议。
2、 使用查询法编程,从键盘输入数据,8251自发自收,观测8251串行传送并将传送数据在CRT显示。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-26
实验一 AEDK实验仪的ISA总线配置方式下
实现的接口技术与编程环境

一、实验目的
1、 熟悉AEDK实验仪的ISA总线配置方式下实现的接口技术与编程环境。并了解其他两种:独立运行的单板机配置方式和串行监控配置方式。
2、 学习通过60芯总线、驱动器、译码器等在PC外扩展新的接口芯片。
3、 了解编程对可编程接口实现控制的程序设计方法。
二、试验设备
硬件:PC兼容机
AEDK实验仪

软件:操作系统MS-DOS或WINDOWS
MASM..EXE
LINK.EXE DEBUG 和EDIT.等编辑器
三、实验内容
1、 复习汇编语言和微机原理的相关内容,了解总线及端口地址的编址方式(统一编址和独立编址)。熟悉CS信号的产生方法。
2、 掌握汇编语言编辑、汇编、链接、调试程序的方法。熟练掌握DEBUG调试程序的各条命令和使用。
3、 熟悉实验仪面板的结构,掌握原理,从而更好的利用并搞好开发。
第2个回答  2008-09-14