您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 微机实验报告三-简资料
[在此处键入]东南大学《微机实验及课程设计》实验报告实验四、五简单输入输出、中断姓名:学号:专业:实验室:实验时间:年月日报告时间:年月日评定成绩:审阅教师:[在此处键入]实验四简单输入输出一、实验目的与内容(概述)实验目的:1)进一步掌握TPC实验装置的基本原理和组成结构;2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况;3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能和使用。实验内容:(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.参考流程图:2.程序简述:(1)简单并行输出程序[在此处键入]①movah,2movdl,0dhint21h;------------显示字符的软中断,显示回车符②movah,1int21h;------------输入字符并回显的软中断③movdx,ls273②movah,1int21h;------------输入字符并回显的软中断③movdx,ls273outdx,al;------------从2A8H输出其ASCII码(2)简单并行输入程序①movdx,ls244inal,dx;------------从LS244指定端口输入一数据②movah,06movdl,0ffhint21h;------------是否有键按下,是直接控制台I/O的软中断三.方案实现与测试(或调试)实验步骤:(1)动态调试程序DEBUG/TD的直接I/O操作方法(Input)。①TD模式下,启动TD(全屏模式),将光标置于代码区右击后可得到代码区局部菜单,选中I/O选项出现菜单;②选择inbyte,在编辑菜单中输入所要读入数据的地址,确认后即可得到该地址的数据内容,要读74ls244的当前输出端的数据,可在编辑菜单中输入:0B800-280+2A0H③确认后即可得到74LS244输入端的数据;(2)实验电路中中并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要三条指令:MOVAL,数据字节MOVDX,0B428HB400H-280H+2A8HOUTDX,AL通过上述并行接口输入数据需要2条指令:MOVDX,0B420HB400-280H+2A0HINAL,DX1、简单并行输出①按图搭接电路[在此处键入]②查看TPC扩展卡I/O地址,设计程序。主要算法如下:start:movax,stacksmovss,axmovah,2回车符movdl,0dhint21hmovah,1等待键盘输入int21hcmpal,27判断是否为ESC键jeexit若是则退出movdx,ls273若不是,从2A8H输出其ASCII码outdx,aljmpstart转start③观察硬件电路,查看LED指示灯亮灭观察发现,根据输入的字符不同,8位LED灯显示输入字符的ASCII码,实现电路以及代码符合设计要求,设计正确。2、简单并行输入①按图搭接电路[在此处键入]②查看TPC扩展卡I/O地址,设计程序。主要算法如下:start:movax,stacksmovss,axmovdx,ls244从2A0输入一数据inal,dxmovdl,al将所读数据保存在DL中movah,02int21hmovdl,0dh显示回车符int21hmovdl,0ah显示换行符int21hmovah,06是否有键按下movdl,0ffhint21hjnzexitjestart若无,则转start③观察硬件电路,查看LED指示灯亮灭观察发现,根据开关量的不同,74LS244将不同的电平输入CPU,根据电平,屏幕上显示其转化为的不同ASCII码字符。屏幕的显示与开关相对应,实现电路以及代码符合设计要求,设计正确。四.分析与总结经过本次实验我们进一步掌握TPC实验装置的基本原理和组成结构,熟悉测试检查TPC-PCI总线转接卡地址、I/O地址译码电路的工作原理、动态调试程序直接I/O操作方法;掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况;掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能和使用,同时也熟悉了对于软件的编写以及配合硬件的使用。[在此处键入]实验五中断一.实验目的1、掌握PC机中断处理系统的基本原理。2、学会编写中断服务子程序。3、掌握8255工作方式1时的使用及编程。4、学会编写中断服务子程序。二.实验内容必做:7-1、直接用手动产生单脉冲作为中断请求信号,要求每按一次开关产生中断一次,在屏幕上显示一次“TPCpcicardinterrupt:”,冒号后面添加已经中断的次数,中断10次后程序退出。选做:7-2、(输出)每按一次单脉冲产生一个正脉冲使8255产生一次中断,让CPU进行一次中断服务:依次输出01H、02H、04H、08H、10H、20H、40H、80H使L0~L7依次发光,中断8次结束。7-3、(输入)每按一次单脉冲产生一个正脉冲使8255产生一次中断,让CPU进行一次中断服务:读取逻辑开关预制的ASCII码,在屏幕上显示其对应的字符,中断8次结束。三.实验原理与接线原理:1、PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级等处理后向CPU发出可屏蔽中断请求。IBMPC/XT机中有一片8259中断控制器对外可以提供8个中断源:中断源中断类型号中断功能IRQ008H时钟IRQ109H键盘IRQ20AH保留IRQ3OBH串行口2IRQ40CH串行口1IRQ50DH硬盘IRQ60EH软盘IRQ70FH并行打印机2、这8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已经设定为中断请求信号为边沿触发、普通结束方式(用户不需对8259再进行初始化)。3、对于PC/AT及286以上的微机内有扩展了一片8259中断控制,IRQ2用于两片8259的级连,对外提供16个中断源:中断源中断类型号中断功能IRQ8070H实时时钟[在此处键入]IRQ9071H用户中断IRQ10072H保留IRQ11O73H保留IRQ12074H保留IRQ13075H协处理器IRQ14076H硬盘IRQ15077H保留4、PCI总线中的中断线只有四根,INTA#、INTB#、INTC#、INTD#,它们需要通过P&P的设置来和某一根中断相连才能进行中断申请。中断源中断类型号中断功能IRQ008H时钟IRQ109H键盘IRQ20AH保留IRQ3OBH串行口2IRQ40CH串行口1IRQ50DH硬盘IRQ60EH软盘IRQ70FH并行打印机接线图:[在此处键入][在此处键入]四.实验源程序(主要部分)和流程图源程序:7-1、直接用手动产生单脉冲作为中断请求信号,要求每按一次开关产生中断一次,在屏幕上显示一次“TPCpcicardinterrupt:”,冒号后面添加已经中断的次数,中断10次后程序退出。;386以上微机适用;纯dos下才能使用;tasm4.1或以上编译datasegmentioportequ0b800h-0280h;tpc卡中设备的io地址int_vectEQU0bH;中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77hirq_mask_2_7equ11110111b;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零irq_mask_9_15equ11111111b;中断0-7时全一,中断8-15时从低至高相应位为零ioport_centequ0bc00h;tpc卡中9054芯片的io地址csregdw?ipregdw?;旧中断向量保存空间irq_timesdw?;中断计数numdw?msg1db0dh,0ah,'TPCpcicardInterrupt',0dh,0ah,'$'msg2db0dh,0ah,'Pressanykeytoexit!',0dh,0ah,'$'msg3db0dh,0ah,'PressDMCtointerrupt10timesandexit!',0dh,0ah,'$'dataendsstackssegmentdb100dup(?)stacksendscodesegmentassumecs:code,ds:data,ss:stacks,es:datamainprocfar;EnableLocalInterruptInputstart:climovax,datamovds,axmoves,axmovax,stacksmovss,axmovdx,ioport_cent+68h;设置tpc卡中9054芯片io口,使能中断inax,dxorax,0900houtdx,axmoval,int_vect;保存原中断向量movah,35h[在此处键入]int21hmovax,esmovcsreg,axmovipreg,bxmovax,cs;设置新中断向量movds,axmovdx,offsetint_procmoval,int_vectmovah,25hint21hinal,21h;设置中断掩码andal,irq_mask_2_7out21h,alinal,0a1handal,irq_mask_9_15out0a1h,almovax,datamovds,axmovdx,offsetmsg2movah,09hint21hmovdx,offsetmsg3movah,09hint21hmovirq_times,8movnum,8stiloop1:cmpirq_times,0;等待中断并判断中断8次后退出jzexitmovah,1int16hjnzexit;按任意键退出calldispjmploop1exit:climovbl,irq_mask_2_7;恢复中断掩码notblinal,21horal,blout21h,almovbl,irq_mask_9_15notblinal,0a1horal,bl[在此处键入]out0a1h,almovdx,ipreg;恢复原中断向量movax,csregmovds,axmovah,25hmoval,int_vectint21hmovdx,ioport_cent+68h;设置tpc卡中9054芯片io口,关闭中断inax,dxandax,0f7ffhoutdx,axmovax,4c00hint21hmainendpdispprocnearpushdspushdxpushcxpushaxmovcx,irq_timesmovax,cxmovbx,numcmpax,bxjzdisp1movax,data;显示提示信息movds,axmovdx,offsetmsg1movah,09hint21hmovnum,cxdisp1:popaxpopcxpopdxpopdsretdispendpint_procprocfar;中断处理程序decirq_timesmoval,20h;SendEOIout0a0h,alout20h,almovcx,0ffffhloop2:[在此处键入]noplooploop2iretint_pro
本文标题:微机实验报告三-简资料
链接地址:https://www.777doc.com/doc-5755354 .html