ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:62.86KB ,
资源ID:23476773      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23476773.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理实验报告资料.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理实验报告资料.docx

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

2、ND EXIT!”。采用查询方式完成。图1-1 扩展中断电路四、实验步骤1、连接线路 IR1与sp1用导线连接,IR2与sp2用导线连接,8259CS与Y0用导线连接。2、编写程序3、汇编、编译、连接及运行五、实验程序 data segmentMY8259_ICW1 EQU ioport +280H ;实验系统中8259的ICW1端口地址 MY8259_ICW2 EQU ioport +281H ;实验系统中8259的ICW2端口地址 MY8259_ICW3 EQU ioport +281H ;实验系统中8259的ICW3端口地址 MY8259_ICW4 EQU ioport +281H ;实

3、验系统中8259的ICW4端口地址 MY8259_OCW1 EQU ioport +281H ;实验系统中8259的OCW1端口地址 MY8259_OCW2 EQU ioport +280H ;实验系统中8259的OCW2端口地址 MY8259_OCW3 EQU ioport +280H ;实验系统中8259的OCW3端口地址 csreg dw ? ipreg dw ? ;旧中断向量保存空间 irq_times dw 00h ;中断计数 msg1 db 0dh,0ah,DVCC pci card Interrupt,0dh,0ah,$ msg2 db 0dh,0ah,Press any key

4、 to exit!,0dh,0ah,$ msg3 db 0dh,0ah,IR1 ok and exit!,0dh,0ah,$ msg4 db 0dh,0ah,IR3 ok and exit!,0dh,0ah,$data endsstacks segment db 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 m

5、ov ss,ax mov dx,ioport_cent+68h ;设置 DVCC 卡中9054芯片io口,使能中断 in ax,dx or ax,0900h out dx,ax mov 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

6、21h, al in al, 0a1h and al, irq_mask_9_15 out 0a1h, al mov ax,data mov ds,ax mov dx,offset 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,MY

7、8259_ICW4 ;初始化实验系统中8259的ICW4 MOV AL,01H ;非自动结束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化实验系统中8259的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 b

8、l in al, 0a1h or al, bl out 0a1h, al mov dx,ipreg ;恢复原中断向量 mov ax,csreg mov ds,ax mov ah,25h 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的OCW

9、3发送查询命令 MOV AL,0CH OUT DX,AL NOP NOP NOP MOV DX,MY8259_OCW3 IN AL,DX ;读出查询字 TEST AL,80H ;判断中断是否已响应 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 EOIIR

10、3ISR: mov dx,offset msg4 ;IR3处理,显示字符串IR3 ok and exit mov ah,09h int 21hEOI: 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、实验结果 运行后显示屏上显示:DVCC pci card Interrupt Press any key to e

11、xit!当IR1中断时,显示屏上显示: IR1 OK AND EXIT! Press any key to exit!当IR3中断时,显示屏上显示: IR3 OK AND EXIT! Press any key to exit!7、实验中遇到的问题及解决方法 做实验时多连了几根线导致实验结果出不了,删掉后,实验得以正常进行。实验二 8255及综合一、实验目的 掌握8255方式0的工作原理及使用方法。二、实验原理 实验电路如图,8255C口接逻辑电平开关K0K7,A口接LED显示电路L0L7。图2-1三、实验内容 11) 编程从8255C口输入数据,再从A口输出;2) 编程从8255A口输入数据

12、,再从B口输出;3) 编程从8255B口输入数据,再从A口输出。2. 将8255与8259结合起来。 当程序响应IR1中断时候,发光二极管的高四位灭(或亮),同时屏幕显示“IR1 ok and exit”,当程序响应IR3中断时候,发光二极管的低四位灭(或亮),同时屏幕显示“IR13ok and exit”。四、实验步骤1、连接线路 8255的PA0PA7与发光二极管的L0L7用导线连接,C口的PC0PC7与K0K7用导线连接,D0D7与JD1的D0D7用导线连接,8255的CS与Y1用单线连接。 2、编写程序3、汇编、编译、连接及运行五、实验程序1、C口入,A口出ioport equ 0ff

13、00h-0280hls273 equ ioport+2a8hcode segment assume cs:codestart: mov ah,2 ;回车符 mov dl,0dh int 21h mov ah,1 ;等待键盘输入 int 21h cmp al,27 ;判断是否为ESC键 je exit ;若是则退出 mov dx,ls273 ;若不是,从2A8H输出其ASCII码 out dx,al jmp start ;转startexit: mov ah,4ch ;返回DOS int 21hcode endsend start2、8255与8259的结合程序data segment iopo

14、rt equ 0ff00h-0280hio8255a equ ioport+288h ;aio8255b equ ioport+289h ;bio8255c equ ioport+28ah ;cio8255 equ ioport+28bh ;K MY8259_ICW1 EQU ioport +280H ;实验系统中8259的ICW1端口地址 MY8259_ICW2 EQU ioport +281H ;实验系统中8259的ICW2端口地址 MY8259_ICW3 EQU ioport +281H ;实验系统中8259的ICW3端口地址 MY8259_ICW4 EQU ioport +281H ;

15、实验系统中8259的ICW4端口地址 MY8259_OCW1 EQU ioport +281H ;实验系统中8259的OCW1端口地址 MY8259_OCW2 EQU ioport +280H ;实验系统中8259的OCW2端口地址 MY8259_OCW3 EQU ioport +280H ;实验系统中8259的OCW3端口地址 irq_times dw 00h ;中断计数 msg1 db 0dh,0ah,DVCC pci card Interrupt,0dh,0ah,$ msg2 db 0dh,0ah,Press any key to exit!,0dh,0ah,$ msg3 db 0dh,

16、0ah,IR1 ok and exit!,0dh,0ah,$ msg4 db 0dh,0ah,IR3 ok and exit!,0dh,0ah,$data endsstacks segment db 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 mo

17、v 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 ;初始化实验系统中8259的OCW1 MOV AL,0F5H ;打开IR1和

18、IR3的屏蔽位 OUT DX,ALQUERY: 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 ;判断中断是否已响应 JZ QUERY ;没有响应则继续查询 AND AL,07H CMP AL,01H JE IR1ISR ;若为IR1请求,跳到IR1处理程序 CMP AL,03H JE IR3ISR ;若为IR1请求,跳到IR1处理程序 JMP EOIIR1ISR: mov dx,offset msg3 ;IR

19、1处理,显示字符串IR1 ok and exit mov ah,09h int 21h mov cx,0ffffh jmp IR1ISR JMP EOIIR3ISR: mov dx,offset msg4 ;IR1处理,显示字符串IR3 ok and exit mov ah,09h int 21h mov cx,0ffffh jmp IR3ISR mov dx,io8255 ;设8255为C口输入,A口输出 mov al,99h out dx,alinout: mov dx,io8255a ;从C口输入一数据 in al,dx mov dx,io8255b ;从A口输出刚才自C口 out dx

20、,al ;所输入的数据 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自C口输入,A口输出 mov ah,4ch ;否则返回 int 21hEOI: MOV DX,MY8259_OCW2 ;向实验系统中8259发送中断结束命令 MOV AL,20H OUT DX,AL JMP startcode ends end start6、实验结果 当程序响应IR1中断时候,发光二极管的高四位亮了又灭,同时屏幕显示“IR1 ok and exit”; 当程序响应IR3中断时候,发光二极管的高四位亮了又灭,同时屏幕显示“IR3 ok and

21、exit”。7、实验中遇到的问题及解决方法 开始时输入的程序有误,发光二极管全灭了,改正后,实验结果与预测的结果一致。实验三 8253一、实验目的掌握8253的基本工作原理和编程方法。二、实验原理及内容1图3-1是本实验程序的接线图,将计数器0设置为方式0,计数器初值为N(N0FH,本程序中为0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用L0或逻辑笔观察OUT0电平变化,初始时OUT0为高电平,当输入N个脉冲时,OUT0变为低电平,当输入N+1个脉冲后OUT0变高电平)。 2按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用电平指示灯L0或逻

22、辑笔观察OUT1输出电平的变化,要求输出频率1HZ的分频信号。图 3-1图3-2三、实验步骤1、连接线路 实验1中,将OUT0与L0连接,CLK0与SP1连接, 8253CS与Y0连接,D0D7分别与JD1的D0D7连接; 实验2中,将OUT0与CLK1连接,CLK0连接1MHZ,OUT1 连接L0,8253CS连接Y0。2、编写程序3、汇编、编译、连接及运行四、参考程序1、ioport equ 0ff00H-0280hio8253k equ ioport+283hio8253a equ ioport+280hcode segment assume cs:codestart: mov al,1

23、4h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253k out dx,al mov dx,io8253a ;送计数初值为08H mov al,08h 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,al cmp dl,9 ;判断是否=9 jle num ;若是则为

24、0-9,ASCII码加30H add dl,7 ;否则为A-F,ASCII码加37Hnum: add dl,30h mov ah,02h ;显示 int 21h mov dl,0dh ;加回车符 int 21h mov dl,0ah ;加换行符 int 21h pop dx ret ;子程序返回 disp endp code endsend start 2、ioport equ 0ff00H-0280hio8253a equ ioport+280hio8253b equ ioport+281hio8253k equ ioport+283hcode segment assume cs:codes

25、tart:mov dx,io8253k ;向8253写控制字 mov al,36h ;使0通道为工作方式3 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253a out dx,al ;先写入低字节 mov al,ah out dx,al ;后写入高字节 mov dx,io8253k mov al,76h ;设8253通道1工作方式3 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253b out dx,al ;先写低字节 mov al,ah out dx,al ;后写高字节 mov ah,4ch ;程序退出 int 21h code ends end start5、实验结果 1、计数器初值为8,手动逐个输入单脉冲,计数值在屏幕上显示,初始时OUT0为高电平,所以二极管亮,当输入8个脉冲时,OUT0变为低电平,所以二极管灭。当输入第9个脉冲后OUT0变高电平,即二极管又亮了。 2、计数器0、计数器1设置在方式3,计数初值为1000,电平指示灯L0显示OUT1输出电平的变化,输出频率1HZ的分频信号。6、实验中遇到的问题及解决方法 实验时,导线连接错误,重新连接后,得到预想的实验结果。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1