微机原理实验报告_第1页
微机原理实验报告_第2页
微机原理实验报告_第3页
微机原理实验报告_第4页
微机原理实验报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微型计算机原理与应用实验报告教师:候叶学号:04123075姓名:颜秦鑫 2015.12.11实验一 8259中断实验一、实验目的 1掌握PC机中断处理系统的基本原理。2掌握外部扩展中断源的设计方法。3学会编写中断服务程序。二、实验原理PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。三、实验内容实验要求实现8259控制器的IR1、IR7两路中断都可以通过IRQ向PC机发起中断请求,用SP1、SP2单次脉冲模拟两个中断源。IR1中断时,在它的中断服务程序中编程显示“IR1 OK AND E

2、XIT!”; IR7中断时,在它的中断服务程序中编程显示“IR7 OK AND EXIT!”。采用查询方式完成。图1-1 扩展中断电路四、实验步骤1、连接线路8259地址线D0D7用排线和JD1连接起来,8259片选信号CS接Y1,读写控制信号RD和WR分别接LOR 和LOW,手动脉冲信号SP1 和SP2分别接中断信号输入端IR1 和IR3,IRQ接INT.2、编写程序3、汇编、编译、连接及运行五、实验程序;*;* 中断 *;*;data segmentioportequ 0ff00h-0280h MY8259_ICW1 EQU ioport +280H ;实验系统中8259的ICW1端口地址

3、MY8259_ICW2 EQU ioport +281H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU ioport +281H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU ioport +281H ;实验系统中8259的ICW4端口地址MY8259_OCW1 EQU ioport +281H ;实验系统中8259的OCW1端口地址MY8259_OCW2 EQU ioport +280H ;实验系统中8259的OCW2端口地址MY8259_OCW3 EQU ioport +280H ;实验系统中8259的OCW3端口地址msg1 db 0dh,

4、0ah,'DVCC pci card Interrupt',0dh,0ah,'$' msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$' msg3 db 0dh,0ah,'IR1 ok and exit!',0dh,0ah,'$' msg4 db 0dh,0ah,'IR7 ok and exit!',0dh,0ah,'$' msg5 db 0dh,0ah,'ok!',0dh,0ah,'$

5、9;data endsstacks segmentdb 100 dup (?)stacks endscode segment assume cs:code,ds:data,ss:stacks,es:datastart: mov ax,data mov ds,ax mov es,ax mov ax,stacks mov ss,ax mov ax,data mov ds,ax mov dx,offset msg1 mov ah,09h int 21h start1: MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要IC

6、W4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4 MOV AL,09H ;非自动结束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1 MOV AL,7DH ;打开IR1和IR7的屏蔽位 OUT DX,AL QUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3发送查询命令 MOV AL,0CH OUT DX,AL NOPNOPNOP MOV DX,MY8

7、259_OCW3 IN AL,DX ;读出查询字 TEST AL,80H ;判断中断是否已响应 JZ QUERY ;没有响应则继续查询 and al,07h CMP AL,01H JE IR1ISR ;若为IR1请求,跳到IR1处理程序 CMP AL,07H JE IR7ISR ;若为IR7请求,跳到IR3处理程序 JMP EOIQUERY1: mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz start1 ;若无,则继续 mov ah,4ch ;否则返回 int 21hIR1ISR: mov dx,offset msg3;IR1处理,显示字符串'I

8、R1 ok and exit' mov ah,09h int 21h JMP EOIIR7ISR: mov dx,offset msg4;IR3处理,显示字符串'IR7 ok and exit' mov ah,09h int 21h EOI: MOV DX,MY8259_OCW2 ;向实验系统中8259发送中断结束命令 MOV AL,20H OUT DX,AL jmp start code endsend start6、 实验结果 按下sp1,进入中断IR1,显示器显示“IR1 OK OR EXIT!”;按下sp2进入中断IR7,显示器显示“IR7 OK OR EXIT

9、!”。七、实验中遇到的问题及解决方法 这次实验因为一开始比较简单,实验二开始时没有弄懂原理,走了一些弯路,但与同学交流后就非常清楚了。实验二 8255及综合一、实验目的掌握8255方式0的工作原理及使用方法。二、实验原理实验电路如图,8255C口接逻辑电平开关K0K7,A口接LED显示电路L0L7。图2-1三、实验内容 11) 编程从8255C口输入数据,再从A口输出;2) 编程从8255B口输入数据,再从A口输出;3) 编程从8255A口输入数据,再从C口输出。2. 将8255与8259结合起来。 当程序响应IR1中断时候,发光二极管的高四位灭(或亮),同时屏幕显示“IR1 ok and e

10、xit”,当程序响应IR3中断时候,发光二极管的低四位灭(或亮),同时屏幕显示“IR13ok and exit”。四、实验步骤1、连接线路实验一:8255地址线D0D7用排线和JD1连接起来,8255片选信号CS接Y1,读写控制信号RD和WR分别接LOR 和LOW,逻辑电平开关K0K7和LED显示电路L0L7按要求分别接A口B口或C口。实验二:8255和8259的地址线串接起来,其他和实验一以及8259中断实验接线一样。2、编写程序3、汇编、编译、连接及运行五、实验程序1、1)C口入,A口出io8255 equ 0ff00h-0280hio8255a equ ioport+288hio8255

11、b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255 ;设8255为C口输入,A口输出mov al,89hout dx,alinout: mov dx,io8255c;从C口输入一数据in al,dxmov dx,io8255a;从A口输出刚才自C口所输入的数据out dx,almov dl,0ffh; 判断是否有按键mov ah,06hint 21hjz inout;若无,则继续自C口输入,A口输出mov ah,4ch;否则返回DOSint 21hcode endsend

12、start2)B口入,A口出io8255 equ 0ff00h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255c mov al,82hout dx,alinout: mov dx,io8255bin al,dxmov dx,io8255aout dx,almov dl,0ffhmov ah,06hint 21hjz inoutmov ah,4chDOSint 21hcode endsend start3

13、)A入,C出ioportequ 0ff00H-0280hio8255aequ ioport+288hio8255bequ ioport+28bhio8255cequ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255b mov al,90hout dx,al inout: mov dx,io8255a in al,dxmov dx,io8255c out dx,al mov dl,0ffh mov ah,06hint 21hjz inout mov ah,4ch int 21hcode endsend start2、8255与82

14、59的结合程序data segment int_vect EQU 073H ;中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77h irq_mask_2_7 equ 011111011b ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时 ;第2位为零 irq_mask_9_15 equ 011110111b;中断0-7时全一,中断8-15时从低至高相应位为零 ioport_cent equ 0c000h;DVCC 卡中9054芯片的io地址 ioportequ 0c400h-0280h MY8259_ICW1 EQU ioport +280H ;实验系统中8259

15、的ICW1端口地址 MY8259_ICW2 EQU ioport +281H ;实验系统中8259的ICW2端口地址 MY8259_ICW3 EQU ioport +281H ;实验系统中8259的ICW3端口地址 MY8259_ICW4 EQU ioport +281H ;实验系统中8259的ICW4端口地址 MY8259_OCW1 EQU ioport +281H ;实验系统中8259的OCW1端口地址 MY8259_OCW2 EQU ioport +280H ;实验系统中8259的OCW2端口地址 MY8259_OCW3 EQU ioport +280H ;实验系统中8259的OCW3端

16、口地址 csregdw? ipregdw? ;旧中断向量保存空间 irq_timesdw00h ;中断计数 msg1 db 0dh,0ah,'DVCC pci card Interrupt',0dh,0ah,'$' msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$' msg3 db 0dh,0ah,'IR1 ok and exit!',0dh,0ah,'$' msg4 db 0dh,0ah,'IR3 ok and exit!',0

17、dh,0ah,'$'data endsstacks segmentdb 100 dup (?)stacks endscode segment assume cs:code,ds:data,ss:stacks,es:datastart:;Enable Local Interrupt Input.386 cli mov ax,data mov ds,ax mov es,ax mov ax,stacks mov ss,ax mov dx,ioport_cent+68h ;设置 DVCC 卡中9054芯片io口,使能中断 in ax,dx or ax,0900h out dx,ax m

18、ov al,int_vect ;保存原中断向量 mov ah,35h int 21h mov ax,es mov csreg,ax mov ipreg,bx mov ax,cs ;设置新中断向量 mov ds,ax mov dx,offset int_proc mov al,int_vect mov ah,25h int 21h in al, 21h ;设置中断掩码 and al, irq_mask_2_7 out 21h, al in al, 0a1h and al, irq_mask_9_15 out 0a1h, al mov ax,data mov ds,ax mov dx,offset

19、 msg1 mov ah,09h int 21h mov dx,offset msg2 mov ah,09h int 21h MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要ICW4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4 MOV AL,01H ;非自动结束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化实验系统中82

20、59的OCW1 MOV AL,0F5H ;打开IR1和IR3的屏蔽位 OUT DX,AL stiloop1: mov ah,1 ;等待中断 int 16h jnz exit ;按任意键退出 jmp loop1exit: cli mov bl, irq_mask_2_7 ;恢复中断掩码 not bl in al, 21h or al, bl out 21h, al mov bl, irq_mask_9_15 not bl in al, 0a1h oral, bl out 0a1h, al mov dx,ipreg ;恢复原中断向量 mov ax,csreg mov ds,ax mov ah,25

21、h mov al,int_vect int 21h mov dx,ioport_cent+68h ;设置 DVCC 卡中9054芯片io口,关闭中断 in ax,dx and ax,0f7ffh out dx,ax mov ax,4c00h int 21hint_proc proc far cli push ax push dx push dsQUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3发送查询命令 MOV AL,0CH OUT DX,AL NOP NOP NOP MOV DX,MY8259_OCW3 IN AL,DX ;读出查询字 TEST AL,80H ;判断

22、中断是否已响应 JZ QUERY ;没有响应则继续查询 AND AL,07H CMP AL,01H JE IR1ISR ;若为IR1请求,跳到IR1处理程序 CMP AL,03H JE IR3ISR ;若为IR3请求,跳到IR3处理程序 JMP EOIIR1ISR: mov dx,offset msg3 ;IR1处理,显示字符串'IR1 ok and exit' mov ah,09h int 21h JMP EOIIR3ISR: mov dx,offset msg4 ;IR3处理,显示字符串'IR3 ok and exit' mov ah,09h int 21h

23、EOI: MOV DX,MY8259_OCW2 ;向实验系统中8259发送中断结束命令 MOV AL,20H OUT DX,AL mov al,20h ;Send EOI out 0a0h,al out 20h,al pop ds pop dx pop ax sti iretint_proc endpcode ends end start6、 实验结果 实验1:通过开关的变化在某个口输入的数据当连线正确时通过预设的口在LED灯上显示出来。 实验2:当程序响应IR1中断时,发光二极管的高四位灭了又亮,并在屏幕上显示"IR1 OK OR EXIT!,当程序响应IR3中断时,发光二极管的低

24、四位灭了又亮,并在屏幕上显示"IR3 OK OR EXIT!”。七、实验中遇到的问题及解决方法实验1主要就是对端口设定的理解要明确,不然很容易出错;实验2需要修改程序,这里比较容易出现问题,最后通过和其他同学对照才完成了程序的修改。实验三 8253一、实验目的掌握8253的基本工作原理和编程方法。二、实验原理及内容1图3-1是本实验程序的接线图,将计数器0设置为方式0,计数器初值为N(N0FH,本程序中为0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用L0或逻辑笔观察OUT0电平变化,初始时OUT0为高电平,当输入N个脉冲时,OUT0变为低电平,当输入N+1个脉冲后

25、OUT0变高电平)。 2按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用电平指示灯L0或逻辑笔观察OUT1输出电平的变化,要求输出频率1HZ的分频信号。图 3-1图3-2三、实验步骤1、连接线路 实验1:时钟端clk0接SP1,8253片选信号cs接Y0,地址线接JD1。 实验2:clk0接1MHZ脉冲,out0接clk1,也就是说级联起来,其他接线同实验。2、编写程序3、汇编、编译、连接及运行四、参考程序1、 ;*;* 8253方式0计数器实验 *;*; ioportequ 0ff00h-0280hio8253kequ ioport+283hio8253ae

26、qu ioport+280hcode segmentassume cs:codestart: mov al,00010000B ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253k out dx,al mov dx,io8253a ;送计数初值为08H mov al,05h out dx,allll: in al,dx ;读计数初值 call disp ;调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch ;退出 int 21hdisp proc near ;显示子程序 push dx and al,0fh ;首先取低四位 mov dl,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论