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

上传人:啊飒飒 文档编号:10172239 上传时间:2021-04-25 格式:DOCX 页数:27 大小:77.60KB
返回 下载 相关 举报
北京理工大学微机原理实验报告一二三.docx_第1页
第1页 / 共27页
北京理工大学微机原理实验报告一二三.docx_第2页
第2页 / 共27页
北京理工大学微机原理实验报告一二三.docx_第3页
第3页 / 共27页
北京理工大学微机原理实验报告一二三.docx_第4页
第4页 / 共27页
北京理工大学微机原理实验报告一二三.docx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《北京理工大学微机原理实验报告一二三.docx》由会员分享,可在线阅读,更多相关《北京理工大学微机原理实验报告一二三.docx(27页珍藏版)》请在三一文库上搜索。

1、微机原理与接口技术硬件实验报告 姓名: 班级: 学号: 实验一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)编辑程

2、序,编译链接后,单步运行,调试程序。(3)调试通过后,在中断服务程序的NOP处设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处,观察寄存器AX的值。四,实验源程序如下CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;写ICW1,单片8259A,要写0CW4MOVAX,13H OUT DX,AXMOVDX,4A2H;写ICW2MOV AX,80H ;IR0的中断向量码为80HOUT DX,AXMOV AX,01 OUT DX,AX;一般嵌套,非缓冲方式,非自动EOIMOV AX,0;写OCW1OUT DX

3、,AX;允许中断;中断向量存放在(0000H:0200H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,200H ;中断类型号为80HMOV AX,OFFSET HINT ;中断服务程序的入口地址MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXSTI;开中断,设置IF=1JMP $ ;原地跳转HINT: ;中断服务程序XOR CX,0FFH;CX取反MOV DX,4B0H;CS273接口的地址,与8个LED灯相连MOV AX,CX;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的地址MOV AX,20H ;

4、一般EOI命令,全嵌套方式OUT DX,AXIRET;中断返回CODE ENDSENDSTART实验思考题将P0连线连接到IR1IR7任意一个;重新编写程序。将P0接到了IR1,在原程序的基础上,把写ICW2的控制字改为81H,再把中断向量的入口地址改为0204H即可。程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;写ICW1,单片8259A,要写ocw4MOVAX,13H OUT DX,AXMOVDX,4A2H;写ICW2MOV AX,81H ;IR1的中断向量码为81HOUT DX,AXMOV AX,01 O

5、UT DX,AX;一般嵌套,非缓冲方式,非自动EOIMOV AX,0;写OCW1OUT DX,AX;允许中断;中断向量存放在(0000H:0204H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,204H ;中断类型号为81HMOV AX,OFFSET HINT ;中断服务程序的入口地址MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXSTI;开中断,设置IF=1JMP $ ;原地跳转HINT: ;中断服务程序XOR CX,0FFH;CX取反MOV DX,4B0H;CS273的地址MOV AX,CX;输出高低电平控制LED灯的亮灭OUT DX,

6、AXMOV DX,4A0H ;OCW2的地址MOV AX,20H ;一般EOI命令,全嵌套方式OUT DX,AXIRET;中断返回CODE ENDSENDSTART实验现象:运行程序,触发脉冲发生器产生中断请求,相应二极管点亮。设置OCW1,屏蔽某个中断请求,运行程序观察现象。将IR0重新接入LED0,设置OCW1为01H,屏蔽中断IR0,则IR0的中断无法得到响应。程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;ICW1的地址,写初始化命令字ICW1MOVAX,13H ;上升沿触发,单片8259,要写ICW4O

7、UT DX,AXMOVDX,4A2H;ICW2的地址,写中断向量码ICW2MOV AX,80H ;IR0的中断向量码为80HOUT DX,AXMOV AX,01 ;写中断结束控制字ICW4OUT DX,AX;一般嵌套,非缓冲方式,非自动EOIMOV AX,01H;写中断屏蔽字OCW1OUT DX,AX;屏蔽IR0中断;中断向量存放在(0000H:0200H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,200H ;中断类型号为80HMOV AX,OFFSET HINT ;中断服务程序的入口地址MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXS

8、TI;开中断,设置IF=1JMP $ ;原地跳转HINT: ;中断服务程序XOR CX,0FFH;CX取反MOV DX,4B0H;CS273的地址MOV AX,CX;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的地址MOV AX,20H ;一般EOI命令,全嵌套方式OUT DX,AXIRET;中断返回CODE ENDSENDSTART实验现象:每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。3. 设置OCW2,了解中断结束方式与设置优先权。将IR0和IR1都连接到P+上,分别连接LED0和LED1到00和01。OCW2将 E0OCW2一般

9、EOI命令,将IR0设置为最低中断优先级。程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;ICW1的地址MOVAX,13H ;上升沿触发,单片8259,要写ICW4OUT DX,AXMOVDX,4A2H;ICW2的地址MOV AX,80H ;中断向量码为80H,低3位自动写入OUT DX,AXMOV AX,01 ;写ICW4OUT DX,AX;一般嵌套,非缓冲方式,非自动EOIMOV AX,0;写OCW1OUT DX,AX;允许所有中断;IR0的中断向量存放在(0000H:0200H)开始的四个单元里MOV AX

10、,0MOV DS,AXMOV SI,200HMOV AX,OFFSET HINT1MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXSTI ;开中断,设置IF=1;IR1的中断向量存放在(0000H:0204H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,204HMOV AX,OFFSET HINT2MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXJMP $ ;原地跳转HINT1:;中断服务程序1XOR CX,0F0H ;CX高4位取反MOV DX,4B0H;CS273的地址MOV AX,CX;输出高低电平控

11、制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的地址MOV AX,E0H ;一般EOI命令,IR0优先级最低OUT DX,AXIRET;中断返回HINT2: ;中断服务程序2XOR CX,00FH ;CX低4位取反MOV DX,4B0H;CS273的地址MOV AX,CX;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的地址MOV AX,E0H ;一般EOI命令,IR0优先级最低OUT DX,AXIRET;中断返回CODE ENDSENDSTART实验现象:CS273的00与LED0相连,01与LED1相连,02与LED2相连,依次下去

12、,直至07与LED7相连。每按单脉冲发生器一次产生一次中断申请,由于IR0的优先级比IR1低,故先响应IR1,后响应IR0,观察到低4位的LED灯先点亮或熄灭,高4位的LED灯后点亮或熄灭。实验心得实验让我对8259A的内部寄存器的功能有了更深的认识,掌握了8259A的初始化步骤及其工作方式的选择,以及中断服务程序的编写。使用实验箱和编译软件,使我们在编程和动手操作方面都有了很大的提高,软硬件的结合,使我们更加透彻的理解了所学知识。实验二 8255并行接口实验实验内容8255的A口作为输入口,与逻辑电平开关相连。8255的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光

13、二极管上显示出来。二,实验目的(1)掌握8255的工作原理。(2)掌握编写8255并行接口初始化及编程实现的方法。三,实验仪器微机实验教学系统实验箱、8086CPU模块四,实验步骤连线8255的PA0PA7分别与逻辑电平开关的K1K8相连PB0PB7分别与发光二极管电路的LED1LED8相连CS0与8255的片选CS8255相连其它线路均已连好具体如图所示:编辑程序,编译链接后,单步运行,调试程序。调试通过后,全速运行,观察实验结果。撰写实验报告。五,实验源程序如下CODE SEGMENT PUBLICASSUME CS:CODE ORG 100HSTART: MOV DX,04A6H MOV

14、 AX,90H ;写8255的控制字,A组工作在方式0,A口输入,C口高4位输出,B组工作在方式0,B口及C口的低4位均工作在输出 OUT DX,AXSTART1: MOV DX,04A0H IN AX,DX ;读取A口数据 MOV DX,04A2H OUT DX,AX ;将从A口读取的数据从B口输出,控制LED灯 JMP START1 CODE ENDSEND START六,实验现象LED灯低电平有效。当某一开关拨到低电平时,对应的LED灯点亮。当某一开关拨到高电平时,对应的LED灯熄灭七,思考题1将片选线接到CS1CS7;重新编写程序。CS0对应地址是04A0-O4AF, CS1对应地址是

15、04B0-O4BF.现将片选线接到CS1,重新编程:CODE SEGMENT PUBLIC ASSUME CS:CODEORG 100HSTART:MOV DX,04B6H;CS1对应的地址MOV AX,90HOUT DX,AXSTART1:MOV DX,04B0HIN AX,DXMOV DX,04B2HOUT DX,AXJMP START1CODE ENDSEND START实验现象:如同片选线接到CS02交换A B接线,A口输出、B口输入;重新编写程序。PB0PB7分别与逻辑电平开关的K1K8相连PA0PA7分别与发光二极管电路的LED1LED8相连CODE SEGMENT PUBLIC

16、ASSUME CS:CODEORG 100HSTART:MOV DX,04B6H;片选线接到CS1MOV AX,82HOUT DX,AX;写控制字,A,B组均工作在方式0,A口输出,B口输入START1:MOV DX,04B2HIN AX,DX;读取B口数据MOV DX,04B0HOUT DX,AX;将B口的数据从A口输入,控制LED灯JMP START1CODE ENDSEND START实验现象:LED灯低电平有效。当某一开关拨到低电平时,对应的LED灯点亮。当某一开关拨到高电平时,对应的LED灯熄灭3C口4位接LED;4位接开关;重新编写程序。PC4PC7分别与逻辑电平开关的K1K4相连

17、PC0PC3分别与发光二极管电路的LED1LED4相连CODE SEGMENT PUBLIC ASSUME CS:CODEORG 100HSTART:MOV DX,04B6H;片选接CS1MOV AX,88HOUT DX,AX;A,B组均工作在方式0,C口高4位输入,低4位输出START1:MOV DX,04B4HIN AL,DX;读取C口数据MOV CL,4ROR AL,CL ;不带CF位的循环右移4位,使C口数据的高4位与低4位互换MOV DX,04B4HOUT DX,AL;将C口高4位的数据从低4位输出,控制LED灯JMP START1CODE ENDSEND START实验现象:LED

18、灯低电平有效。当某一开关拨到低电平时,对应的LED灯点亮。当某一开关拨到高电平时,对应的LED灯熄灭实验三 8253可编程定时器一,实验内容8253计数器0,1,2工作于方波方式,观察其输出。二,实验目的掌握8253定时/计数器的编程原理。三,实验设备微机实验教学系统实验箱、8086CPU模块。四,实验步骤连线CS0与8253的片选CS8253相连;CLK3(750KHz)与8253CLK0相连;8253的OUT0与8253CLK2相连;OUT2与发光二极管LED1相连;其它线均已连好。编辑程序,编译链接后,跟踪运行,调试程序。调试通过后,全速运行,观察实验结果。撰写实验报告。五,实验源程序C

19、ODE SEGMENT PUBLICASSUME CS:CODE ORG 100HSTART: MOV DX,04A6H MOV AX,36H OUT DX,AX ;写控制字,计数器0工作在方式3,先读写计数器低8位,再读写计数器高8位,二进制计数 MOV DX,04A0H MOV AX,7CH OUT DX,AX MOV AX,92H OUT DX,AX ;将计数初值927CH写入计数器0MOV DX,04A6H MOV AX,0B6H OUT DX,AX ;写控制字,计数器2工作在方式3,先读写计数器低8位,再读写高8位,二进制计数 MOV DX,04A4H MOV AX,4 OUT DX

20、,AX MOV AX,0 OUT DX,AX ;将计数初值4H写入计数器2 JMP $;原地跳转,等待CODE ENDSEND START六,实验现象LED1灯交替亮灭(闪烁),且亮灭时间相等七,思考题定时器2计数值改为20H;观察其现象。CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,36HOUT DX,AXMOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AXMOV DX,04A6HMOV AX,096HOUT DX,AX ;写控制字,计数器2工作在方式3,只写

21、计数器低8位,二进制计数MOV DX,04A4HMOV AX,20HOUT DX,AX;将计数初值20H写入计数器2JMP $CODE ENDSEND START实验现象:LED1灯等时间间隔的交替两灭,但亮灭的周期更长,即灯闪烁得更慢将定时器2改为方式2分频器方式;观察其现象。CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,36HOUT DX,AXMOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AXMOV DX,04A6H;写控制字,计数器2工作在方式2,只写计

22、数器低8位,二进制计数MOV AX,094HOUT DX,AXMOV DX,04A4HMOV AX,20HOUT DX,AXJMP $CODE ENDSEND START实验现象:LED1灯亮的时间变长,灭的时间变短将GATE2 接到开关上;观察其现象。用上面思考题2的程序,把GATE2 接到开关K1上。当打开开关(开关置1)时,实验现象同思考题2;当开关关闭时,LED1灯始终灭。4. 将GATE2 接到PUL P0开关上,计数器2 改为方式1 ;观察其现象。GATE2接到PUL P0开关的P+端口CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:M

23、OV DX,04A6HMOV AX,36HOUT DX,AXMOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AXMOV DX,04A6H;写控制字,计数器2工作在方式1,只写计数器低8位,二进制计数MOV AX,092HOUT DX,AXMOV DX,04A4HMOV AX,20HOUT DX,AXJMP $CODE ENDSEND START实验现象:按一下PUL P0开关,LED1灯亮,但几秒后就会熄灭。这时,再按动PUL P0开关,LED1灯亮,几秒后又会灭,亮灭情况同第一次相同。每次当灯熄灭后,按动PUL P0开关,LED1灯会产生同第一

24、次相同的亮灭情况。每次在灯未熄灭时,按动PUL P0开关,则灯亮的时间变长,对应示波器的低电平时间加长。5.将GATE2 接到PUL P0开关上,计数器2 改为方式5 ;观察其现象。GATE2接到PUL P0开关的P+端口CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,36HOUT DX,AXMOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AXMOV DX,04A6H;写控制字,计数器2工作在方式5,只写计数器低8位,二进制计数MOV AX,09AHOUT DX,

25、AXMOV DX,04A4HMOV AX,20HOUT DX,AXJMP $CODE ENDSEND START实验现象:触发PUL P0开关后一段时间LED1灯闪一下,然后就立即熄灭,示波器低电平极短八,实验遇到的问题及实验心得实验还算顺利,没有遇到什么问题。八,实验心得 通过8255并行接口实验,我对8255有了更深刻地了解,对其在内存中的地址,各寄存器的使用有了较为清晰的认识。通过思考题的练习,掌握了8255的编程原理。软硬件的结合,使我们学以致用,能力有了较大提升。本次实验,收获颇多,更形象地熟悉了8253定时计数器的6种工作方式的使用及其特点,包括每种方式的控制字、启动方式、输出波形

26、的特点等。通过动手接硬件电路,熟练了实验箱的使用,而且用示波器和LED灯观察实验现象,方便直观。 实验四8250串行接口实验实验目的(1)熟悉串行通信的一般原理和8250的工作原理。(2)了解RS232串行接口标准及连接方法。(3)掌握8250芯片的编程方法。二,实验设备微机实验教学系统实验箱,8086CPU模块三、实验内容在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,若通讯正确,则下位机返回一个同样的字符;若不正确,则无返回值或者返回值不同。四,实验步骤无须接线,内部已经连好。8250的端口地址为0480H起始的偶地址单元。编写下位机程序,编译链接后,全速运行。退出“808

27、6实验系统”,运行“串口调试助手”上位机程序。将“串口调试助手”程序输入和输出都调整为16进制格式,发送一个16进制数,观察返回的是否是同样一个16进制数。五,实验程序程序流程图:实验源程序:CODE SEGMENT PUBLICASSUME CS:CODE ORG 100HSTART: MOV DX,486H ; 写通信线路控制寄存器D7=1 MOV AX,80H OUT DX,AX MOV DX,480H ;设置波特率低字节 MOV AX,12 OUT DX,AXMOV DX,482H ;设置波特率高字节 MOV AX,0 OUT DX,AX MOV DX,486H MOV AX,3 OU

28、T DX,AX MOV DX,482H ;中断允许寄存器 MOV AX,0 OUT DX,AX MOV DX,48AH ;清除原始错误状态 IN AX,DX MOV DX,480H ;清除原始状态 IN AX,DXLOOP1: CALL RECV CALL SEND JMP LOOP1;循环发送SEND:; 发送子函数 PUSH AX MOV DX,48AH IN AX,DX TEST AX,20H JNZ SEND2 ;发送数据寄存器空,则跳转至SEND2,发送字符 POP AX ;发送数据寄存器不是空,不可发送 JMP SENDSEND2: POP AX MOV DX,480H ;指向发送

29、接收数据寄存器,发送字符 OUT DX,AX RETRECV:;接收子函数 MOV DX,48AH IN AX,DX TEST AX,1 JZ RECV ;未接到到一个字符,则跳转至RECV,若接收到字符,则顺序往下执行。 MOV DX,480H ;接收到字符,指向接收缓存器 IN AX,DX ;读取接收缓冲区的字符 RETCODE ENDSEND START实验现象:在发送区键入一个16进制数,接受区是同样一个16进制数。六,思考题连接 8255 将接收到的 16 进制数;驱动8个彩灯;观察其现象。将8255的片选连到CS0,将PB0PB7依次与LED1LED8相连接CODE SEGMENT

30、 PUBLICASSUME CS:CODE ORG 100HSTART: MOV DX,04A6H ;8255的控制字,B口输出 MOV AX,90H OUT DX,AX MOV DX,486H ;8250初始化 MOV AX,80H OUT DX,AX MOV DX,480H MOV AX,12 OUT DX,AX MOV DX,482H MOV AX,0 OUT DX,AX MOV DX,486H MOV AX,3 OUT DX,AX MOV DX,482H MOV AX,0 OUT DX,AX MOV DX,48AH IN AX,DX MOV DX,480H IN AX,DXLOOP1:

31、 CALL RECV ;接收输入的数据 CALL SEND ;将数据发送给上位机 MOV DX,04A2H ;将8250发送的存于AX中的数据,从8255的B口输出,驱动8个LED灯 OUT DX,AX JMP LOOP1;循环发送SEND: PUSH AX MOV DX,48AH IN AX,DX TEST AX,20H JNZ SEND2 POP AX JMP SENDSEND2: POP AX MOV DX,480H OUT DX,AX RETRECV: MOV DX,48AH IN AX,DX TEST AX,1 JZ RECV MOV DX,480H IN AX,DX RETCODE

32、 ENDSEND START实验现象:当在“串口调试助手”的发送区键入一个8位的16进制数后,PC机接收区会显示发送的数字,同时8个LED也会对应的亮(或灭)。连接 8255 将开关的状态以16 进制数的方式发送到PC机;观察其现象。将8个开关连接到8255的PA0PA7口,在pc机上观察接收区的数据CODE SEGMENT PUBLICASSUME CS:CODE ORG 100HSTART: MOV DX,04A6H ;8255的控制字,A口输入 MOV AX,90H OUT DX,AX MOV DX,486H ;8250初始化 MOV AX,80H OUT DX,AX MOV DX,48

33、0H MOV AX,12 OUT DX,AX MOV DX,482H MOV AX,0 OUT DX,AX MOV DX,486H MOV AX,3 OUT DX,AX MOV DX,482H MOV AX,0 OUT DX,AX MOV DX,48AH IN AX,DX MOV DX,480H IN AX,DXLOOP1: MOV DX,04A0H ;从8255的A口输入8个开关的状态IN AX,DXCALL SEND ;将AX中的内容串行发送出去,可在PC机上显示JMP LOOP1SEND: PUSH AX MOV DX,48AH IN AX,DX TEST AX,20H JNZ SEND

34、2 POP AX JMP SENDSEND2: POP AX MOV DX,480H OUT DX,AX RETCODE ENDSEND START实验现象:8个开关的状态循环显示在PC机的接收区,当开关状态改变时,显示的数据也随之改变。连接 8255 和8253 的 GATE0 ;使用“串口调试助手”程序控制 8253 的振荡。将8255的片选接到CS0,将8253的片选接到CS1,8255的B口输出,其中PB0与GATE0相连,CLK3(750KHz)与8253CLK0相连,8253的OUT0与8253CLK2相连,OUT2与发光二极管LED1相连CODE SEGMENT PUBLICAS

35、SUME CS:CODE ORG 100HSTART:MOV DX,04B6H ;8253的控制字,计数器0工作于方式3,二进制计数,先读写低八位,再读写高八位 MOV AX,36H OUT DX,AX MOV DX,04B0H ;将927CH的初值写入计数器0 MOV AX,7CH OUT DX,AX MOV AX,92H OUT DX,AX MOV DX,04B6H ;设置计数器2工作于方式3,二进制计数,先读写低八位,再读写高八位 MOV AX,0B6H OUT DX,AX MOV DX,04B4H ;給计数器2写初值4H MOV AX,4 OUT DX,AX MOV AX,0 OUT DX,AX MOV DX,04A6H

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1