《微机实验及课程设计》实验报告 学号 080121
东南大学
《微机实验及课程设计》
实验报告
实验三 I/O与存储器 实验四(一)简单输入输出 实验四(二)中断
姓 名: 学 号: 080121 专 业: 自动化 实 验 室: 计算机硬件技术 实验时间:20xx年04月15日 报告时间: 20xx年04月20日
评定成绩: 审阅教师:
《微机实验及课程设计》实验报告 学号 080121
一. 实验目的与内容
实验三
实验目的:
1)了解掌握TPC实验系统的基本原理和组成结构,学会测试检查TPC-PCI总线转接卡地址;
2)正确掌握I/O地址译码电路的工作原理,学会动态调试程序DEBUG/TD的直接I/O操作方法;
3)学会利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况;
4)进一步熟悉8086/8088及PC机的分段存储特性,了解存储器扩展原理,完成编程及测试。
实验内容:
1)观察了解TPC-2003A实验系统的基本原理和组成结构,测试基本单元电路功能,熟悉各部分辅助电路的使用;
2)通过Win/XP控制台硬件信息或测试程序检查TPC-PCI总线转接卡地址,并记录;
3)按图3.3-5的I/O地址译码测试参考电路连线,分析电路原理,分别利用动态调试程序直接I/O操作功能和单步功能测试;
4)编程利用片选负脉冲控制指示灯(如L7)闪烁发光(亮、灭、亮、灭、??),时间间隔通过软件延时实现;
5)修改延时参数,使亮(约1秒)与灭的时间间隔分别为1秒、5秒和8秒,记录延时程序对应参数BX,CX。
实验四(一)
实验目的:
1)进一步掌握TPC实验装置的基本原理和组成结构;
2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况;
3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能和使用。
实验内容:
1
《微机实验及课程设计》实验报告 学号 080121
1)按图3.4-1简单并行输出接口参考电路图连接线路(74LS273 插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7;
2)编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性;
3)按图3.4-2简单并行输入接口参考电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7;
4)用逻辑电平开关K0~K7预置一字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。(标准ASCII码的范围为20H~FFH);
实验四(二)
实验目的:
1)掌握PC机中断处理系统的基本原理;
2)学会编写中断服务程序;
实验内容:
实验电路如图所示,直接用手动单脉冲作为中断请求信号(只需连一根导线),要求没按一次开关产生一次中断,在屏幕上显示一次“TPC pci card Interrupt”,中断8次后退出程序。
二. 基本实验原理
实验三
(一)基本原理
译码输出端Y0~Y7在实验台上“I/O地址”输出端引出,每个输出端包含8个地址: Y0:280H~287H,Y1:288H~28FH,?? 当CPU执行I/ O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。利用译码器输出负脉冲,利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、??),时间间隔通过软件延时实现。
(二)实验接线图
2
《微机实验及课程设计》实验报告 学号 080121
(三)流程图
实验四(一)
3
《微机实验及课程设计》实验报告 学号 080121
(一) 实验接线图
(二)流程图
实验四(二)
(一) 基本原理
PC机用户可使用的硬件中断只有可屏蔽中断,由8259
中断控制管理器。中断控制器 4
《微机实验及课程设计》实验报告 学号 080121
用于接收外部中断请求信号,经过优先级别判断等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可提供8个中断源:
中断源 中断类型号 中断功能
IRQ0 08H 时钟
IRQ1 09H 键盘
IRQ2 0AH 保留
IRQ3 0BH 串行口2
IRQ4 0CH 串行口1
IRQ5 0DH 硬盘
IRQ6 0EH 软盘
IRQ7 0FH 并型打印机
三. 方案实现与测试
实验三
(一)查看并替换TPC扩展卡I/O和存储基地址
1)参照实验指导书安装接口卡及其驱动程序;
2)启动微机并打开“控制面板”-〉“系统”-〉“设备管理器”,找到“微机原理教学实验系统”;打开“TPC”,点击“资源”看到占用的存储和中断资源,找到两个输入/输出范围,其中一个范围大小是0ffH的是PCI接口芯片上的设置寄存器组占用的I/O地址空间,另一个范围大小是7fH的是TPC设备的I/O地址;
5
《微机实验及课程设计》实验报告 学号 080121
3) 用记录下的实际基址值替换每个汇编程序头中的定义行中的值,并重新编译链接 代码为:
Ioport equ 0EC00h-0280h
outport1 equ ioport+2a0h
outport2 equ ioport+2a8h
(二)I/0译码测试实验电路
1)将试验箱安装好,并按原理图搭接译码电路。
2) 执行下面两条指令:
MOV DX, 0EC20H
OUT DX, AL
Y4输出一个负脉冲,灯亮
执行下面两条指令:
MOV DX, 0EC28H
OUT DX, AL
6
《微机实验及课程设计》实验报告 学号 080121
Y5输出一个负脉冲,灯灭
3)动态调试程序DEBUG/TD的直接I/O操作方法(OUTPUT):
1.命令行方式比较简单,启动debug,在命令符-后键入-o EC20 20回车,其中20H为输出量,EC20H为端口地址。执行完第一句灯亮,执行第二句灯灭
2.TD模式下,启动TD,将光标置于代码区右击可得到代码区的局部菜单,选中I/O选项将出现菜单,选择Out byte,在编辑菜单中输入要输出的地址以及输出内容,格式为:输出地址,内容。例如要使译码电路Y5输出一个负脉冲,可键入相应内容如下图所示:
7
《微机实验及课程设计》实验报告 学号 080121
3.通过让Y4,Y5交替输出负脉冲,观察L7的亮灭变化,总结I/O地址译码电路原理,尝试编写程序利用这个负脉冲控制L7闪烁发光,时间间隔通过软件延时实现。
程序主要算法:
利用delay子程序进行延时操作,控制LED的亮灭。
delay proc near
mov bx,2000
K1: mov cx, 0
K2: Loop K2
Dec bx
jne K1
ret
delay endp
实验四(一)
(一) 动态调试程序DEBUG/TD的直接I/O操作方法(Input)(按图3.4-2接线)。
1.TD模式下,启动TD(全屏模式),将光标置于代码区右击后可得到代码区局部菜单,选中I/O选项将出现菜单:
2.选择in byte,在编辑菜单中输入所要读入数据的地址,确认后即可得到该地址的数据的内容,要读74ls244的当前输出端的数据,可在编辑菜单中输入: 0C800-280+2A0H 如下图所示
8
《微机实验及课程设计》实验报告 学号 080121
3.确认后即可得到74Ls244输入端的数据
(二)实验电路中并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要三条指令:
MOV AL,数据字节
MOV DX,0C428 ;C400-280H+2A8H
OUT DX,AL
通过上述并行接口输入数据需要2条指令:
MOV DX,0C420 ;C400-280H+2A0H
IN AL, DX
(三)编写程序让其显示开关电平所输入的ASCII码对应的数据值
编写程序如下:
ioport equ 0EC00h-0280h tpc卡中设备的io地址 ls244
equ ioport+2a0h ;译码地址Y4片选ls244
stacks segment stack
db 100 dup (?)
stacks ends
code segment
assume cs:code,ss:stacks
main proc far
9
《微机实验及课程设计》实验报告 学号 080121
start:
movax,stacks
movss,ax
mov dx,ls244 ;从2A0输入一个数据 in al,dx
movdl,al ;将所读数据保存在DL中 mov ah,02
int 21h
mov dl,0dh ;显示回车符
int 21h
mov dl,0ah ;显示换行符
int 21h
mov ah,06 ;是否有键按下
mov dl,0ffh
int 21h
jnz exit
je start ;若无,则转start
exit:
mov ah,4ch ;返回DOS
int 21h
main endp
code ends
end start
10
《微机实验及课程设计》实验报告 学号 080121
实验四(二 )
实验现象:
实验源程序:
;386以上微机适用
;纯dos下才能使用
;tasm4.1或以上编译
;*********************;
;* 中断 *;
;*********************;
data segment
int_vect EQU 071H ;中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77h irq_mask_2_7 equ 011111011b
2位为零
irq_mask_9_15 equ 011111101b ;中断0-7时全一,中断8-15时从低至高相应位为零 ioport_cent equ 0d800h ;tpc 卡中9054芯片的io地址
csreg dw ?
ipreg dw ? ;旧中断向量保存空间
irq_times dw 00h ;中断计数
msg1 db 0dh,0ah,'TPC pci card Interrupt',0dh,0ah,'$'
11 ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第
《微机实验及课程设计》实验报告 学号 080121
msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$'
msg3 db 0dh,0ah,'Press DMC to interrupt 10 times and exit!',0dh,0ah,'$' data ends
stacks segment
db 100 dup (?)
stacks ends
code segment
assume cs:code,ds:data,ss:stacks,es:data
start:
;Enable Local Interrupt Input
.386
cli
mov ax,data
mov ds,ax
mov es,ax
mov ax,stacks
mov ss,ax
mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断
in ax,dx
or ax,0900h
out dx,ax
mov al,int_vect ;保存原中断向量
mov ah,35h
int 21h
12 mov ax,es mov csreg,ax mov ipreg,bx
《微机实验及课程设计》实验报告 学号 080121
mov ax,cs ;设置新中断向量
mov ds,ax mov dx,offset int_proc mov al,int_vect mov ah,25h
int 21h
in al, 21h ;设置中断掩码 and al, irq_mask_2_7
out 21h, al
in al, 0a1h
and al, irq_mask_9_15
out 0a1h, al
mov ax,data
mov ds,ax
mov dx,offset msg2
mov ah,09h int 21h
mov dx,offset msg3
loop1:
cmp irq_times,0
jz exit
mov ah,09h int 21h mov irq_times,0ah sti ;等待中断并判断中断10次后退出 mov ah,1 int 16h 13
《微机实验及课程设计》实验报告 学号 080121
jnz exit
jmp loop1
exit: cli ;按任意键退出
mov bl, irq_mask_2_7 ;恢复中断掩码 not bl
in al, 21h
or al, bl
out 21h, al
mov bl, irq_mask_9_15
not bl
in al, 0a1h
or al, bl
out 0a1h, al
mov dx,ipreg ;
mov ax,csreg
mov ds,ax
mov ah,25h
mov al,int_vect
int 21h
mov dx,ioport_cent+68h ;
in ax,dx
and ax,0f7ffh
out dx,ax
mov ax,4c00h
int 21h
恢复原中断向量 设置 tpc 卡中9054芯片io口,关闭中断
14
《微机实验及课程设计》实验报告 学号 080121
int_proc proc far
cli
push ax
push dx
push ds
dec irq_times
mov ax,data ;Interrupt to do
mov ds,ax
mov al,20h ;Send EOI
out 0a0h,al
out 20h,al
pop ds
pop dx
pop ax
sti
iret
int_proc endp
code ends
end start mov dx,offset msg1 mov ah,09h int 21h
四.提高与创新研究
实验三:
(1)如果用只访问一个I/O 地址(而不是二个I/O 地址)的方法来实现发光二极管闪烁发光,电路应怎样连接?画出电路图。(提示:将D 触发器连接成1 位的计数器)。编写相应的程序使发光二极管闪烁发光,并上机验证。
答:电路修改:将D触发器的Q非段与D端相连接,CD端接+5V。
程序:
15
《微机实验及课程设计》实验报告 学号 080121
Ioport equ 0ec00h-0280h tpc卡中设备的io地址
outport1 equ ioport+2a0h 译码输出端地址Y4
stacks segment stack
db 100 dup (?)
stacks ends
code segment
cs: code, ss: stacks
main proc far
start:
mov ax, stacks
mov ss, ax
mov dx,outport1
out dx, al
call delay 调延时子程序
mov ah,1
int 16h
je start
mov ah,4ch
int 21h
main endp
delay proc near 延时子程序
mov bx,2000
ZZZ:
mov cx,0
ZZ:
loop ZZ
dec bx
jne ZZZ
ret
delay endp
code ends
end start
实验四(一):
(1)利用基本实验(1)中输出锁存电路将L0~L7制成流水灯,流水方向由键盘控制,可随时切换,流水间隔时间也由键盘控制
设计思路:选择两个按键如“1”“2”分别控制流水灯的方向,至于控制流水间隔,我的想法是通过按一次键灯移位一次,这样由两个键控制了流水灯的方向和间隔,具体程序在之前的输出地程序中进行改动
编写程序:
ioport equ 0b800h-0280h tpc卡中设备的io地址ls273
equ ioport+2a8h ;译码输出端地址Y5片选ls273
stacks segment stack
db 100 dup (?)
stacks ends
16
《微机实验及课程设计》实验报告 学号 080121
code segment
assume cs: code, ss: stacks
main proc far
start:
mov ax, stacks
mov ss, ax
mov ah,2 ;回车符
mov dl,0dh
int 21h
mov ah,1 ;等待键盘输入 int 21h
cmp al,27 ;判断是否为ESC键
je exit ;若是则退出
mov dx,ls273 ;若不是,从2A8H输出其ASCII码
out dx, al
jmp start ;转start
exit:
mov ah,4ch ;返回DOS
int 21h
main endp
code ends
end start
五.分析与总结
实验三:
通过本实验,我们进一步掌握和了解I/O地址译码电路的工作原理,通过对I/O口的输出进行控制,从而使得D触发器的状态改变,小灯开始闪烁。。
总之,这次实验做得比较顺利,也很有收获,对于课本上讲授的I/O地址译码电路的工作原理有了更加深刻的认识和比较直观的感受。
实验四(一):
本次实验熟悉了并行输入输出电路,学会了用TD和DEBUG对I/O进行直接操作的方法,也通过编程实现实验要求加深了对于I/O操作的理解。
通过这部分的实践操作,我进一步掌握了TPC实验装置的基本原理和组成结构, 熟悉测试检查TPC-PCI总线转接卡地址、I/O地址译码电路的工作原理、动态调试程序直接I/O操作方法;掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况;掌握简单并行输入输出接口的工作原理及使用方法, 进一步熟悉掌握输入输出单元的功能和使用,同时也熟悉了对于软件的编写以及配合硬件的使用。
实验四(二):
本次实验是对中断有了本质的了解,知道如何运用硬件中断和软件中断,基本掌握了如何编写中断服务程序以及调用过程。
17
实验一霍尔效应及其应用预习思考题1列出计算霍尔系数载流子浓度n电导率及迁移率的计算公式并注明单位霍尔系数载流子浓度电导率迁移率2如…
1实验前进教室以后把书包什么的放到一个角落里不能放实验台上占地方把实验报告和书拿出来最好再拿个本好随时记老师说的注意事项教室的黑板…
谋学网15秋学期大学物理在线作业3单选题一单选题共20道试题共100分1选择22R24R2R2R2选择3题面为图片选择4题面为图片…
光学仿真课程设计实验报告课程名称:姓名:学院:系部:专业:年级:学号:指导教师:职称:时间:光学仿真课程设计电子工程学院光电子技术…
polarizedlight姓名班级学号实验名称偏振光的实验Thepurposeoftheexperimenttomasterth…
实验报告姓名班级学号实验成绩同组姓名实验日期指导教师批阅日期偏振光学实验实验目的1观察光的偏振现象验证马吕斯定律2了解12波片14…
北京师范大学物理实验教学中心基础物理实验实验题目偏振光的产生和检验实验记录与数据处理1线偏振光的获得与检验1器件光路示意图2分3贴…
偏振光的研究班级:物理实验班21学号:***姓名:***光的偏振现象是波动光学的一种重要现象,它的发现证实了光是横波,即光的振动垂…