北京理工大学微机原理实验报告一二三

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微机原理与接口技术硬件实验报告姓名:班级:学号:实验一8259中断控制器实验实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。二,实验目的(1)掌握8259的工作原理。(2)掌握编写中断服务程序的方法。(3)掌握初始化中断向量的方法。实验步骤(1)连线单脉冲发生器输出P+与8259的IR0相连;8259的片选CS8259与CS0相连;8259的INT与8086的INT相连;8259的INTA与8086的INTA相连;CS273与CS1相连;00与LED0相连,01与LED1相连,依次将CS273接口与LED相连;其它线均已连好如下图:(2)编辑程序,编译链接后,单步运行,调试程序。(3)调试通过后,在中断服务程序的NOP处设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处,观察寄存器AX的值。四,实验源程序如下CODESEGMENTPUBLICASSUMECS:CODEORG100HIR0IR1IR2IR3IR4IR5IR6IR7VccDDBUSDD0DD1DD2DD3DD4DD5DD6DD7A1IORDIOWR74LS32213VccCS8259D011D110D29D38D47D56D65D74A027CS1RD3WR2SP/EN16INT17INTA26IR018IR119IR220IR321IR422IR523IR624IR725CAS214CAS113CAS0128259INTINTAVccSTART:MOVDX,4A0H;写ICW1,单片8259A,要写0CW4MOVAX,13HOUTDX,AXMOVDX,4A2H;写ICW2MOVAX,80H;IR0的中断向量码为80HOUTDX,AXMOVAX,01OUTDX,AX;一般嵌套,非缓冲方式,非自动EOIMOVAX,0;写OCW1OUTDX,AX;允许中断;中断向量存放在(0000H:0200H)开始的四个单元里MOVAX,0MOVDS,AXMOVSI,200H;中断类型号为80HMOVAX,OFFSETHINT;中断服务程序的入口地址MOVDS:[SI],AXADDSI,2MOVAX,CSMOVDS:[SI],AXSTI;开中断,设置IF=1JMP$;原地跳转HINT:;中断服务程序XORCX,0FFH;CX取反MOVDX,4B0H;CS273接口的地址,与8个LED灯相连MOVAX,CX;输出高低电平控制LED灯的亮灭OUTDX,AXMOVDX,4A0H;OCW2的地址MOVAX,20H;一般EOI命令,全嵌套方式OUTDX,AXIRET;中断返回CODEENDSENDSTART实验思考题将P0连线连接到IR1—IR7任意一个;重新编写程序。将P0接到了IR1,在原程序的基础上,把写ICW2的控制字改为81H,再把中断向量的入口地址改为0204H即可。程序如下:CODESEGMENTPUBLICASSUMECS:CODEORG100HSTART:MOVDX,4A0H;写ICW1,单片8259A,要写ocw4MOVAX,13HOUTDX,AXMOVDX,4A2H;写ICW2MOVAX,81H;IR1的中断向量码为81HOUTDX,AXMOVAX,01OUTDX,AX;一般嵌套,非缓冲方式,非自动EOIMOVAX,0;写OCW1OUTDX,AX;允许中断;中断向量存放在(0000H:0204H)开始的四个单元里MOVAX,0MOVDS,AXMOVSI,204H;中断类型号为81HMOVAX,OFFSETHINT;中断服务程序的入口地址MOVDS:[SI],AXADDSI,2MOVAX,CSMOVDS:[SI],AXSTI;开中断,设置IF=1JMP$;原地跳转HINT:;中断服务程序XORCX,0FFH;CX取反MOVDX,4B0H;CS273的地址MOVAX,CX;输出高低电平控制LED灯的亮灭OUTDX,AXMOVDX,4A0H;OCW2的地址MOVAX,20H;一般EOI命令,全嵌套方式OUTDX,AXIRET;中断返回CODEENDSENDSTART实验现象:运行程序,触发脉冲发生器产生中断请求,相应二极管点亮。设置OCW1,屏蔽某个中断请求,运行程序观察现象。将IR0重新接入LED0,设置OCW1为01H,屏蔽中断IR0,则IR0的中断无法得到响应。程序如下:CODESEGMENTPUBLICASSUMECS:CODEORG100HSTART:MOVDX,4A0H;ICW1的地址,写初始化命令字ICW1MOVAX,13H;上升沿触发,单片8259,要写ICW4OUTDX,AXMOVDX,4A2H;ICW2的地址,写中断向量码ICW2MOVAX,80H;IR0的中断向量码为80HOUTDX,AXMOVAX,01;写中断结束控制字ICW4OUTDX,AX;一般嵌套,非缓冲方式,非自动EOIMOVAX,01H;写中断屏蔽字OCW1OUTDX,AX;屏蔽IR0中断;中断向量存放在(0000H:0200H)开始的四个单元里MOVAX,0MOVDS,AXMOVSI,200H;中断类型号为80HMOVAX,OFFSETHINT;中断服务程序的入口地址MOVDS:[SI],AXADDSI,2MOVAX,CSMOVDS:[SI],AXSTI;开中断,设置IF=1JMP$;原地跳转HINT:;中断服务程序XORCX,0FFH;CX取反MOVDX,4B0H;CS273的地址MOVAX,CX;输出高低电平控制LED灯的亮灭OUTDX,AXMOVDX,4A0H;OCW2的地址MOVAX,20H;一般EOI命令,全嵌套方式OUTDX,AXIRET;中断返回CODEENDSENDSTART实验现象:每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。3.设置OCW2,了解中断结束方式与设置优先权。将IR0和IR1都连接到P+上,分别连接LED0和LED1到00和01。OCW2将E0OCW2一般EOI命令,将IR0设置为最低中断优先级。程序如下:CODESEGMENTPUBLICASSUMECS:CODEORG100HSTART:MOVDX,4A0H;ICW1的地址MOVAX,13H;上升沿触发,单片8259,要写ICW4OUTDX,AXMOVDX,4A2H;ICW2的地址MOVAX,80H;中断向量码为80H,低3位自动写入OUTDX,AXMOVAX,01;写ICW4OUTDX,AX;一般嵌套,非缓冲方式,非自动EOIMOVAX,0;写OCW1OUTDX,AX;允许所有中断;IR0的中断向量存放在(0000H:0200H)开始的四个单元里MOVAX,0MOVDS,AXMOVSI,200HMOVAX,OFFSETHINT1MOVDS:[SI],AXADDSI,2MOVAX,CSMOVDS:[SI],AXSTI;开中断,设置IF=1;IR1的中断向量存放在(0000H:0204H)开始的四个单元里MOVAX,0MOVDS,AXMOVSI,204HMOVAX,OFFSETHINT2MOVDS:[SI],AXADDSI,2MOVAX,CSMOVDS:[SI],AXJMP$;原地跳转HINT1:;中断服务程序1XORCX,0F0H;CX高4位取反MOVDX,4B0H;CS273的地址MOVAX,CX;输出高低电平控制LED灯的亮灭OUTDX,AXMOVDX,4A0H;OCW2的地址MOVAX,E0H;一般EOI命令,IR0优先级最低OUTDX,AXIRET;中断返回HINT2:;中断服务程序2XORCX,00FH;CX低4位取反MOVDX,4B0H;CS273的地址MOVAX,CX;输出高低电平控制LED灯的亮灭OUTDX,AXMOVDX,4A0H;OCW2的地址MOVAX,E0H;一般EOI命令,IR0优先级最低OUTDX,AXIRET;中断返回CODEENDSENDSTART实验现象:CS273的00与LED0相连,01与LED1相连,02与LED2相连,依次下去,直至07与LED7相连。每按单脉冲发生器一次产生一次中断申请,由于IR0的优先级比IR1低,故先响应IR1,后响应IR0,观察到低4位的LED灯先点亮或熄灭,高4位的LED灯后点亮或熄灭。实验心得实验让我对8259A的内部寄存器的功能有了更深的认识,掌握了8259A的初始化步骤及其工作方式的选择,以及中断服务程序的编写。使用实验箱和编译软件,使我们在编程和动手操作方面都有了很大的提高,软硬件的结合,使我们更加透彻的理解了所学知识。实验二8255并行接口实验实验内容8255的A口作为输入口,与逻辑电平开关相连。8255的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。二,实验目的(1)掌握8255的工作原理。(2)掌握编写8255并行接口初始化及编程实现的方法。三,实验仪器微机实验教学系统实验箱、8086CPU模块四,实验步骤连线8255的PA0—PA7分别与逻辑电平开关的K1—K8相连PB0—PB7分别与发光二极管电路的LED1—LED8相连CS0与8255的片选CS8255相连其它线路均已连好具体如图所示:编辑程序,编译链接后,单步运行,调试程序。调试通过后,全速运行,观察实验结果。撰写实验报告。五,实验源程序如下CODESEGMENTPUBLICASSUMECS:CODEORG100HSTART:MOVDX,04A6HMOVAX,90H;写8255的控制字,A组工作在方式0,A口输入,C口高4位输出,B组工作在方式0,B口及C口的低4位均工作在输出OUTDX,AXSTART1:MOVDX,04A0HINAX,DX;读取A口数据MOVDX,04A2HOUTDX,AX;将从A口读取的数据从B口输出,控制LED灯JMPSTART1CODEENDSENDSTART六,实验现象LED灯低电平有效。当某一开关拨到低电平时,对应的LED灯点亮。当某一开关拨到高电平时,对应的LED灯熄灭七,思考题1.将片选线接到CS1—CS7;重新编写程序。CS0对应地址是04A0---O4AF,CS1对应地址是04B0---O4BF.现将片选线接到CS1,重新编程:D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET35CS68255D0D1D2D3D4D5D6D7RDWRA0A1RSTCS8255PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7CS0K1K2K3K4K5K6K7K8L1L2L3L4L5L6L7L8CODESEGMENTPUBLICASSUMECS:CODEORG100HSTART:MOVDX,04B6H;CS1对应的地址MOVAX,90HOUTDX,AXSTART1:MOVDX,04B0HINAX,DXMOVDX,04B2HOUTDX,AXJMPSTART1CODEENDSENDSTART实验现象:如同片选线接到CS02.交换AB接线,A口输出、B口输入;重新编写程序。PB0—PB7分别与逻辑电平开关的K1—K8相连PA0—PA7分别与发光二极管电路的LED1—LED8相连CODESEGMENTPUBLICASSUMECS:CODEORG100HSTART:MOVDX,04B6H;片选线接到CS1MOVAX,82HOUTDX,AX;写控制字,A,B组均工作在方式0,A口输出,B口输入START1:MOVDX,04B2HINAX,DX;读取B口数据MOVDX,04B0HOUTDX,AX;将B口的数据从A口输入,控制LED灯JMPSTAR

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功