




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机系统与接口(含实验)实验报告 学号 东南大学微机系统与接口(含实验)实验报告实验三TPC 装置系统,I/O 与存储器实验四(1) 简单输入输出(2)中断姓 名: 学 号: 专 业: 电类强化班 实 验 室: 计算机硬件技术 实验时间: 2015年04月21日 报告时间: 2015年4月30日评定成绩: 审阅教师: 一. 实验目的与内容(概述)实验目的:(实验三)1)了解掌握TPC 实验系统的基本原理和组成结构,学会测试检查TPC-PCI 总线转接卡地址;2)正确掌握I/O 地址译码电路的工作原理,学会动态调试程序DEBUG/TD 的直接I/O 操作方法;3)学会利用I/O 指令单步调试检查
2、硬件接口功能,学会利用示波器检测I/O 指令执行时总线情况;4) 进一步熟悉8086/8088 及PC 机的分段存储特性,了解存储器扩展原理,完成编程及测试;(实验四【1】)5) 进一步掌握TPC实验装置的基本原理和组成结构;6) 掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况;7)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元功能和使用。(实验四【2】)8)掌握PC 机中断处理系统的基本原理;9)学会编写中断服务程序。实验内容:(三)(1)观察了解TPC-2003A 实验系统的基本原理和组成结构,测试基本单元电路功能,熟悉各部
3、分辅助电路的使用;(2)通过Win/XP 控制台硬件信息或测试程序检查TPC-PCI 总线转接卡地址,并记录;(3)按图3.3-5 的I/O 地址译码测试参考电路连线,分析电路原理,分别利用动态调试程序直接I/O操作功能和单步功能测试;(4)编程利用片选负脉冲控制指示灯(如L7)闪烁发光(亮、灭、亮、灭、),时间间隔通过软件延时实现;(5)修改延时参数,使亮(约1秒)与灭的时间间隔分别为1 秒、5 秒和8 秒,记录延时程序对应参数BX,CX;输出接口输出,根据8个发光二极管发光的情况验证编程从键盘输入一个字符或数字,将其ASCII码通过正确性。(四(1))(1) 按简单并行输出接口参考电路图连
4、接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273 为八D触发器,8个D输入端分别接数据总线D0D7,8个Q输出端接LED显示电路L0L7;(2) 编程从键盘输入一个字符或数字,将其ASC码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性;(3) 按简单并行输入接口参考电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0K7,8个数据输出端分别接数据总线D0D7;(4) 用逻辑电平开关K0K7 预置一字母的ASC码,编程输入这个ASC码,并将其对应字母在屏幕上
5、显示出来。(标准ASCII 码的范围为20HFFH);(四(2)完成简单中断电力路,直接用手动产生单脉冲作为中断请求信号(只需连接一根导线),要求每按一次开关产生一次中断,在屏幕上显示一次“TPC pci card interrupt”,8 次中断后程序退出。二. 基本实验原理(或基本原理)(实验三)1. 在Windows环境下获得板卡资源的方法,分三步完成:(1) 参考实验指导书安装接口卡及其驱动程序; (2)启动微机并打开“控制面板”->“系统”->“设备管理器”,找到“微机教学实验系统”,打开“TPC”,点击资源看到占用的存储器和中断资源,找到两个输入输出
6、范围,范围大小是0ffH的是PCI接口芯片上的设置寄存器组占用的I/O地址空间,另一个范围大小是07fH的是TPC设备的I/O地址空间;两个内存范围,一个范围大小是0ffH的是PCI接口芯片占用的mem地址空间,另一个范围大小是0fffffH的是TPC设备的mem地址空间。(3)用记录下的实际基址值替换每个汇编程序头中定义行中的值,并重新编译链接即可。2.实验电路图见3.3-5,实验电路中D 触发器CLK 端输入脉冲时,上升沿使Q 端锁存输出高电平L7发光,CD 端为低电平时L7 灭:在Windows 环境下获取板卡资源:ioport equ 0b800H-0280H (TPC 设备的I/O
7、基址)参考程序:程序名:decode.asmioport equ 0b800h-0280h ;tpc 卡中设备的IO 地址outport1 equ ioport+2a0h ;CLK 端译码输出端选为地址Y4outport2 equ ioport+2a8h ;CD 端对应译码输出选为地址Y5stacks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ss:stacksmain proc farstart: mov ax,stacksmov ss,axmov dx,outport1 ;Y4,置位,CLK 端写out
8、 dx,alcall delay ;调延时子程序mov dx,outport2 ;Y5,清空CD 端写out dx,alcall delay ;调延时子程序mov ah,1int 16hje start ;ZF=1,无键输入mov ah,4chint 21h ;返回DOS 操作系统main endpdelay proc near ;延时子程序mov bx,20000ZZZ: mov cx,0ZZ: loop ZZdec bxjne ZZZretdelay endpcode endsend start(实验四【1】) 1.按下图方式接线,输出参考流程图如下 简单并行输出程序:ioportequ
9、0b800h-0280h ;tpc卡中设备的io地址ls273equ ioport+2a8h ;译码输出端地址Y5片选ls273stacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ss:stacksmain proc farstart:mov ax,stacksmov ss,axmov ah,2 ;回车符mov dl,0dhint 21hmov ah,1 ;等待键盘输入int 21hcmp al,27 ;判断是否为ESC键je exit ;若是则退出mov dx,ls273 ;若不是,从2A8H输出
10、其ASCII码out dx,aljmp start ;转startexit: mov ah,4ch ;返回DOSint 21hmain endpcode endsend start2.接线方式和输入参考流程图如下: 简单并行输入程序:ioportequ 0b800h-0280h ;tpc卡中设备的io地址ls244equ ioport+2a0h ;译码地址Y4片选ls244stacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ss:stacksmain proc farstart:mov ax,sta
11、cks mov ss,ax mov dx,ls244 ;从2A0输入一数据in al,dxmov dl,al ;将所读数据保存在DL中mov ah,02int 21hmov dl,0dh ;显示回车符int 21hmov dl,0ah ;显示换行符int 21hmov ah,06 ;是否有键按下mov dl,0ffhint 21hjnz exitje start ;若无,则转startexit: mov ah,4ch ;返回DOSint 21hmain endpcode endsend start(实验四【2】)1.PC 机用户可使用的硬件中断只有可屏蔽中断,由8259 中断控制器管理。中断控
12、制器用于接收外部中断请求信号,经过优先级判别等处理后向CPU 发出可屏蔽中断请求。IBMPC、PC/XT 机内有一片8259 中断控制器对外可以提供8 个中断源:中断源 中断类型号 中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8个中断源的中断请求信号线IRQ0IRQ7 在主机的62 线ISA 总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT 及286 以上微机内又扩展了一片8259中断控制,IRQ2用于两
13、片8259之间级连,对外可以提供16个中断源:中断源 中断类型号 中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 O73H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留PCI 总线中的中断线只有四根,INTA#、INTB#、INTC#、INTD#,它们需要通过PNP 设置与某一根中断相连接才能进行中断申请。TPC-2003A 实验系统有一信号IRQ 为对应PCI 接口卡的中断请求信号,具体中断号由系统分配,可通过资源读取程序portr.exe(纯DOS 版)读取。2.程序流
14、程图见下图所示:参考程序如下:data segmentioportequ 0b800h-0280h ;tpc卡中设备的io地址int_vect EQU 0bH ;中断0-7 的向量为:08h-0fh,中断8-15 的向量为:70h-77hirq_mask_2_7 equ 11110111b ;中断掩码,中断0-7 时从低至高相应位为零,中断8-15 时第2 位为零irq_mask_9_15 equ 11111111b;中断0-7 时全一,中断8-15 时从低至高相应位为零ioport_cent equ 0cc00h ;tpc 卡中9054 芯片的io 地址csreg dw ?ipreg dw
15、? ;旧中断向量保存空间irq_times dw ? ;中断计数num dw ?msg1 db 0dh,0ah,'TPC pci card Interrupt',0dh,0ah,'$'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 endsstacks segmentdb 100 dup (?)
16、stacks endscode segmentassume cs:code,ds:data,ss:stacks,es:datamain proc far;Enable Local Interrupt Input.386start:climov ax,datamov ds,axmov es,axmov ax,stacksmov ss,axmov dx,ioport_cent+68h ;设置 tpc 卡中9054 芯片io 口,使能中断in ax,dxor ax,0900hout dx,axmov al,int_vect ;保存原中断向量mov ah,35hint 21hmov ax,esmov
17、csreg,axmov ipreg,bxmov ax,cs ;设置新中断向量mov ds,axmov dx,offset int_procmov al,int_vectmov ah,25hint 21hin al, 21h ;设置中断掩码and al, irq_mask_2_7out 21h, alin al, 0a1hand al, irq_mask_9_15out 0a1h, almov ax,datamov ds,axmov dx,offset msg2mov ah,09hint 21hmov dx,offset msg3mov ah,09hint 21hmov irq_times,8m
18、ov num,8stiloop1: cmp irq_times,0 ;等待中断并判断中断8 次后退出jz exitmov ah,1int 16hjnz exit ;按任意键退出call dispjmp loop1exit: climov bl, irq_mask_2_7 ;恢复中断掩码not blin al, 21hor al, blout 21h, almov bl, irq_mask_9_15not blin al, 0a1hor al, blout 0a1h, almov dx,ipreg ;恢复原中断向量mov ax,csregmov ds,axmov ah,25hmov al,int
19、_vectint 21hmov dx,ioport_cent+68h ;设置 tpc 卡中9054 芯片io 口,关闭中断in ax,dxand ax,0f7ffhout dx,axmov ax,4c00hint 21hmain endpdisp proc nearpush dspush dxpush cxpush axmov cx,irq_timesmov ax,cxmov bx,numcmp ax,bx jz disp1mov ax,data ;显示提示信息mov ds,axmov dx,offset msg1mov ah,09hint 21hmov num,cxdisp1:pop axp
20、op cxpop dxpop dsretdisp endpint_proc proc far ;中断处理程序dec irq_timesmov al,20h ;Send EOIout 0a0h,alout 20h,almov cx,0ffffh loop2: nop loop loop2iretint_proc endpcode endsend start三. 方案实现与测试(或调试)(实验三)1、查看并替换TPC 扩展卡 I/O 和存储基地址步骤 1:参照实验指导书安装接口卡及其驱动程序; 步骤 2:启动微机并打开“控制面板”-“系统”-“设备管理器”,找到“微机原理教学实验系统” ,打开“T
21、PC”,点击“资源”看到占用的存储和中断资源,找到两个输入/输出范围,其中一个范围大小是 0ffH 的是 PCI 接口芯片上的设置寄存器组占用的 I/O 地址空间,另一个范围大小是 07fH 的是 TPC 设备的 I/O 地址空间;两个内存范围,一个范围大小是 0ffH 的是PCI 接口芯片占用的 mem地址空间,另一个范围大小是 0fffffH 的是 TPC 设备的 mem 地址空间。Tpc属性如下图,由图可知,实验中TPC 设备的 I/O 地址空间起始地址为0B800H。步骤 3:用记录下的实际基址值替换每个汇编程序头中的定义行中的值,并重新编译链接即可代码为:ioport equ 0b8
22、00h-0280houtport1 equ ioport+2a0houtport2 equ ioport+2a8h2. 动态调试程序DEBUG/TD的直接I/O操作方法。 (1)命令行方式下直接启动,在命令符-后直接键入ObC00 01回车即可,其中01H为输出量,bC00H为端口地址。 实验现象:将输出接到8×8点阵显示,会看到一排的点阵灯被点亮。修改输出代码,将看到其他的行或列或某个点的灯被点亮。(忘记拍图,请老师见谅)(2)TD模式下,将光标置于代码区右击可得到代码区局部菜单,选则Out byte,编辑输出的地址和内容即可。3.(1)将试验箱安装好
23、,并按原理图搭接译码电路。(2)先用调试工具软件直接 I/O,观察输出结果,再编写相应程序。程序主要算法:利用delay子程序进行延时操作,控制LED的亮灭。delay proc near ;延时子程序 mov bx,2000 /此句控制延时长短ZZZ: mov cx,0 ZZ: loop ZZ dec bx jne ZZZ ret delay endp实验现象:可以发现L7周期性亮灭,我将Q与非Q分别连至多个灯,让这些灯均周期性亮灭,附图如下(3)修改延时长度,即bx中保存的数值,再进行汇编调试,可以调节LED的亮灭周期,随数值的增大而延长或数值的减小而缩短。实验四(1)1.利用工具软件确定
24、本机PCI扩展卡地址等参数; 内存范围 FDC00000-FDCFFFFF 输入/输出范围 BC00-BCFF 输入/输出范围 B800-B8CF 2.根据所获得的地址修改两段程序开头如下: ioport equ 0B800h-0280h tpc卡中设备的io地址 ls273 equ ioport+2a8h 译码输出端地址Y5片选ls273 ioport&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论