您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 建筑材料 > 微机原理与接口技术实验报告
《微机原理与接口技术》实验报告班级:组员:实验二74HC138译码器实验1、编写程序:使用82C55的PC0、PC1、PC2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。2、运行程序,验证译码的正确性。实验源程序:.MODELTINYCon_8255EQU0F003H;8255控制口PC_8255EQU0F002H;8255PC口.STACK100.CODESTART:MOVDX,Con_8255MOVAL,80HOUTDX,AL;8255初始化,PC口作输出用MOVDX,PC_8255MOVAL,0START1:OUTDX,ALCALLDelayINCALJMPSTART1DelayPROCNEAR;延时Delay1:XORCX,CXLOOP$RETDelayENDPENDSTART实验三8259A中断控制器实验一、实验目的与要求了解8259A的内部结构、工作原理;了解8259A与8088的接口逻辑;掌握对8259A的初始化编程方法,了解8088是如何响应中断、退出中断的。复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编制程序:拨动单脉冲开关,“”送给8259A的IR0,触发中断,8088计数中断次数,显示于G5区的数码管上四、实验原理图112233445566DDCCBBAATitleNumberRevisionSizeBDate:2006-6-13SheetofFile:Sheet1.SchDocDrawnBy:CS1WR2RD3D74D65D56D47D38D29D110D011CAS012CAS113GND14CAS215SP/EN16INT17IR018IR119IR220IR321IR422IR523IR624IR725INTA26A027VCC288259U28CSRDWRD7D0D1D2D3D4D5D6SP/ENINTIR0IR1IR7IR2123487651KR96A0VCCINTA(0F000H)CS1INTA(B2)INTR五、实验步骤1、连线说明:B3区:CS、A0——A3区:CS1、A0B3区:INT、INTA——ES8688:INTR、INTAB3区:IR0——B2区:单脉冲E5区:CS、A0——A3区:CS5、A0E5区:CLK——B2区:2ME5区:A、B、C、D——G5区:A、B、C、D2、运行程序3、上下拨动单脉冲开关,拨动二次,产生一个“”,观察结果,数码管上显示的次数与拨动开关次数是否对应。(注:如数码管显示有问题,可在“显示”菜单中选择“观察窗”,在其中输入变量名counter,观察其中值的变化)六、演示程序.MODELTINYEXTRNDisplay8:NEARIO8259_0EQU0F000HIO8259_1EQU0F001H.STACK100.DATABUFFERDB8DUP(?)CounterDB?ReDisplayFlagDB0.CODESTART:MOVAX,@DATAMOVDS,AXMOVES,AXNOPCALLInit8259CALLWriIntver;MOVCounter,0;中断次数MOVReDisplayFlag,1;需要显示STI;开中断START1:CMPReDisplayFlag,0JZSTART1CALLLedDisplayMOVReDisplayFlag,0JMPSTART1Init8259PROCNEAR;请解释以下语句功能MOVDX,IO8259_0;此3条语句为ICW1送到8259的低位端口MOVAL,13H;各位含义:OUTDX,AL;ICW4可用,单片,边沿触发,ICW1的特征位MOVDX,IO8259_1;ICW2MOVAL,08H;功能:OUTDX,AL;IR0的中断类型码为00001BMOVAL,09H;ICW4OUTDX,AL;功能:一般全嵌套方式,缓冲方式,正常中断结束方式MOVAL,0FEH;功能:OUTDX,AL;OCW1开放IR0的可屏蔽中断请求RETInit8259ENDPWriIntverPROCNEAR;本子程序实现将INT_0程序段写入PUSHES;中断向量表MOVAX,0MOVES,AXMOVDI,20H;为什么是20H=08*4LEAAX,INT_0;以下4行语句功能:STOSW;把中断服务程序INT_0的偏移地址IP写至0020:0021HMOVAX,CSSTOSW;把中断服务程序INT_0的段地址cs写至0022:0023HPOPESRETWriIntverENDPLedDisplayPROCNEARMOVAL,CounterMOVAH,ALANDAL,0FHMOVBuffer,ALANDAH,0F0HRORAH,4MOVBuffer+1,AHMOVBuffer+2,10H;高六位不需要显示MOVBuffer+3,10HMOVBuffer+4,10HMOVBuffer+5,10HMOVBuffer+6,10HMOVBuffer+7,10HLEASI,BufferCALLDisplay8RETLedDisplayENDPINT_0:PUSHDXPUSHAXMOVAL,CounterADDAL,1DAAMOVCounter,ALMOVReDisplayFlag,1MOVDX,IO8259_0MOVAL,20H;功能:OCW2一般中断结束命令OUTDX,ALPOPAXPOPDXIRETENDSTART请仔细阅读程序并回答:系统何时调用中断服务程序INT_0:1、拨动开关通过IR0向8259发中断请求信号2、8259通过INT与CPU的INTR连接将中断请求信号发送给CPU3、CPU又通过INTA向8259发送中断允许相应信号4、8259向CPU发送IR0的中断类型码08H,根据中断类型码CPU在中断向量表中找出中断服务程序INT_0所在的位置5、CPU停止正在执行的程序,转去执行中断服务程序INT_0七、实验扩展1、在中断服务程序中加入读取ISR、IRR寄存器内容的指令,然后以单步方式(单步时请注意:当调用显示子程序时,请以F8方式单步),跟踪执行中断服务程序,观察读取ISR、IRR寄存器的内容,并加以分析:寄存器内容分析ISR00000001CPU正在响应IR0中断IRR00000000INT0已经执行中断,所以IRR相应位清零程序中加入的读ISR、IRR的程序段:MOVDX,IO8259_0MOVAL,0BHOUTDX,ALINAL,DXMOVAL,0AHOUTDX,ALINAL,DX2、将中断请求线切换到IR2线,比较两次读到的中断向量号、ISR、IRR的异同(请注意在程序中对IR2线的中断解除屏蔽及修改中断向量表);寄存器内容分析ISR00000100CPU正在响应IR2中断IRR00000000INT2已经执行中断,所以IRR相应位清零程序中哪些地方需进行修改?相应的语句为:Init8259的对OCW1初始化程序:MOVAL,0FBHOUTDX,ALWriIntver中的中断向量表:MOVDI,28H;28H=0AH*4如果要开放IR7线上的中断,则相应的OCW1命令字为:01111111B3、试构造实验,比较IR0及IR1线的中断优先级并分析程序的执行过程,并将源程序写在下面:.MODELTINYEXTRNDisplay8:NEARIO8259_0EQU0F000HIO8259_1EQU0F001H.STACK100.DATABUFFERDB8DUP(?)CounterDB?ReDisplayFlagDB0.CODESTART:MOVAX,@DATAMOVDS,AXMOVES,AXNOPCALLInit8259CALLWriIntverCALLLedDisplayMOVCounter,0MOVReDisplayFlag,1STISTART1:JMPSTART1Init8259PROCNEARMOVDX,IO8259_0MOVAL,13HOUTDX,ALMOVDX,IO8259_1MOVAL,08HOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,0FCHOUTDX,ALRETInit8259ENDPWriIntverPROCNEARPUSHESMOVAX,0MOVES,AXMOVDI,20HLEAAX,INT_0STOSWMOVAX,CSSTOSWMOVAX,0MOVES,AXMOVDI,24HLEAAX,INT_1STOSWMOVAX,CSSTOSWPOPESRETWriIntverENDPLedDisplayPROCNEARMOVBuffer,10HMOVBuffer+1,10HMOVBuffer+2,10HMOVBuffer+3,10HMOVBuffer+4,10HMOVBuffer+5,10HMOVBuffer+6,10HMOVBuffer+7,10HLEASI,BufferCALLDisplay8RETLedDisplayENDPINT_0:PUSHDXPUSHAXPUSHCXSTIMOVCX,0063HA0:ADDAL,1DAAMOVAH,ALANDAL,0FHMOVBuffer,ALANDAH,0F0HRORAH,4MOVBuffer+1,AHMOVBuffer+2,0HLEASI,BufferCALLDisplay8LOOPA0MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOPCXPOPAXPOPDXIRETINT_1:PUSHDXPUSHAXPUSHCXSTIMOVCX,0063HA1:ADDAL,1DAAMOVAH,ALANDAL,0FHMOVBuffer+4,ALANDAH,0F0HRORAH,4MOVBuffer+5,AHMOVBuffer+6,01HLEASI,BufferCALLDisplay8LOOPA1MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOPCXPOPAXPOPDXIRETENDSTART实验四8255控制实验一、实验目的与要求1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能。2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、将8255的PA口与G6区的8个开关相连,PB口连接G6区的8个LED灯,要求实现:从A口读入开头的状态,并根据此状态控制B口的LED灯的亮灭。(1)连线说明:B4区:PB口——G6区:开关B4区:PB口——G6区:LED指示灯B4区:CS、A0、A1——A3区:CS1、A0、A1(2)8255控制字说明:D7D6D5D4D3D2D1D0(3)编写程序,并描述运行结果。.MODELTINYCon_8255EQU0F003H;8255控制口PA_8255EQU0F000H;8255PA口PB_8255EQU0F001H;8255PB口.STACK100.CODEC口高4位0:输出1:输入1A口方式选择00:方式001:方式110:方式2A口0:输出1:输入B口方式选择0:方式01:方式1B口0:输出1:输入C口低4位0:输出1:输入START:MOVDX,Con_8255MOVAL,90HOUTDX,AL;8255初始化,PA口作输入用,PB口作输出用START1:MOVDX,PA_8255INAL,DXMOVDX,PB_8255OUTDX,ALJMPSTART1ENDSTART2、G5区的B口和C口用于七段码LED显示器的显示。请根据此电路图实现:在其中的任意一个LED显示器上依次显示从0~9这10个数字。每个数字显示时间为500ms。(1)连线说明1122334455667788991010111112121313
本文标题:微机原理与接口技术实验报告
链接地址:https://www.777doc.com/doc-2435618 .html