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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机接口实验.docx

1、微机接口实验科技大学 计算机与通信工程学院实 验 报 告实验名称: 实验一 8259 中断控制器应用实验 实验二 8254 定时/计数器应用实验 实验三 8255 并口控制器应用实验 学生: 专 业: 班 级: 学 号: 指导教师: 实验成绩: 实验地点: 机电楼320 实验时间: 2015 年 12 月 4 日一、实验目的与实验要求1、实验目的实验一1.掌握 PC 机中断处理系统的基本原理。 2.掌握可编程中断控制器 8259 的应用编程方法。实验二1.掌握 8254 的工作方式及应用编程。 2.掌握 8254 典型应用电路的接法。实验三1.掌握 8255 的工作方式及应用编程。 2.掌握

2、8255 典型应用电路的接法。 2、实验要求实验一(1)实验 1-1:PC 机中断应用实验 按接线图连好接线,调用程序源代码 8259-1.asm,观察实验现象,将屏幕显示结果以截图方式写在实验报告中。自设计实验。改变接线方式,将单次脉冲连到 USB 核心板上的 IRQ10 插孔上,参考本实验代码,编程实现 IRQ10 中断。( 注意:考虑 PC 机中断级联的方式,参看前面的原理说明),将代码写在报告中。(2)实验 1-2:PC 机中断嵌套实验 按接线图连好接线,调用程序源代码 8259-2.asm,做如下操作,并将屏幕显示结果以截图的方式写在实验报告中,并分析产生该现象的原因: A 按下连接

3、 IRQ 的单次脉冲按键,屏幕上会显示 10个3,在屏幕上 10 次显示未结束之前,按下连接 IRQ10 的单次脉冲按键,观察现象; B 按下连接 IRQ10 的单次脉冲按键,屏幕上会显示 10个10,在屏幕上 10次显示未结束之前,按下连接 IRQ3 的单次脉冲按键,观察现象。 程序中所有代码均没有注释,请在报告中补全注释,尽量详细。 (3)实验 1-3:扩展多中断应用实验说明:本实验采用查询方式,应用实验箱提供的 8259 中断源,向 PC 机提交中断请求。拨动开关发起请求一次中断,屏幕上显示相应的中断请求号。 调用程序源码文件 8259-3.asm,在程序源代码中划横线的位置,请按照所学

4、8259 工作原理填写并验证,然后将所填容写在实验报告中,并分析所填数据的形成原理。实验二(1)实验 2-1:计数器应用实验将计数器 0 设置为方式 3,计数器初值为 4,用手动逐个输入单脉冲,用 LED灯观察 OUT0 电平变化。 将代码中划横线的部分填上相应的代码,并在实验报告中对所填代码做原理分析。 如果令计数器 0 工作在方式 0,其实验现象有什么不同,在报告中进行分析说明。(2)实验 2-2:自设计实验参考实验一的程序和接线,自行设计接线图以及程序代码,实现,以 1MHz为时钟源,应用 8254 的定时功能,将其分频为 1Hz。以 LED灯作为输出显示。经过实际验证后,在报告中画出接

5、线图,并给出源代码。实验三(1)实验 3-1:可编程并行接口 8255 方式 0 应用实验编写程序,自行设定 A、B、C 三个口中某一个口为输入,某一个为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。根据原理补全代码中缺失的部分,根据自己的设计,补全接线图,并将代码和对应的接线图写在实验报告中。(2)实验 3-2:自设计试验自行设计完成本实验,要求,8255A 口工作在方式一输入,B 口工作在方式一输出,利用方式一的控制信号,使数据从输入到输出人为可控。在实验报告中画出接线图,并说明设计的原理,给出对应的程序代码。二、实验设备(环境)及要求Windows 7系统下

6、的HQFC集成开发环境,CZ-CIUS微机接口实验系统。三、实验容与步骤实验一实验 1-1(1)实验容PC 机中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。(2)主要步骤 按接线图连好接线,调用程序源代码 8259-1.asm,观察实验现象。自设计实验。改变接线方式,将单次脉冲连到 USB 核心板上的 IRQ10 插孔上,参考本实验代码,编程实现 IRQ10 中断。( 注意:考虑 PC 机中断级联的方式,参看前面的原理说明)。接线图: 说明:本实验只需要一根连线,一端接系统总线区的 IRQ 引脚,一端接到单脉冲单元的引脚上,接线如图 1-1 所示。

7、参考流程图:程序源代码:(1);数据段DATA SEGMENT MESS DB TPCA interrupt! ,0DH,0AH, $;需要显示的数据,以$结束,方便系统调用。0DH,0AH为换行DATA ENDS ;代码段CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, CS ;系统调用25是设置中断MOV DS, AX MOV DX, OFFSET INT3 ;采用间接修改法,设置中断向量 MOV AX, 250BH ;设置 IRQ3 对应的中断向量,25是系统调用功能;号,在AL里放中断向量号,0B*4=2C,是中断程序的地址所在位置

8、,DS放中断程序的段;基址,DX放偏移地址INT 21H ;中断设置完成IN AL, 21H ;读中断屏蔽寄存器,21H 是该寄存器的端口号 AND AL, 0F7H ;开放 IRQ3 中断,允许 IRQ3 的中断申请 OUT 21H, AL ;写OCW1MOV CX, 10 ;记中断循环次数为 10 次 STI ;允许中断发生 WAIT: JMP WAIT INT3: MOV AX, DATA ;中断服务程序 MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上显示每次中断的提示信息 ,DS:DX中存放显示的字符串的地址 INT 21H MOV AL

9、, 20H ; 发出 EOI 结束中断到 PC 主片的地址 20H OUT 20H, AL LOOP NEXT ;LOOP每次跳转CX自动减1IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 08H ;关闭 IRQ3 中断 OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器 STI ;置中断标志位 MOV AH, 4CH ;返回 DOS INT 21H NEXT: IRET ;中断返回 CODE ENDS END START(2) DATA SEGMENT MESS DB TPCA interrupt! ,0DH,0AH, $ DATA ENDS CODE SEGM

10、ENT ASSUME CS:CODE, DS:DATA START: MOV AX, CS MOV DS, AX MOV DX, OFFSET INT3 ;采用间接修改法,设置中断向量 MOV AX, 2572H INT 21H IN AL, 21H ;主片 AND AL, 0FBH ;1111 1011 OUT 21H, AL IN AL, 0A1H ;从片 AND AL, 0FBH ;1111 1011 OUT 0A1H, AL MOV CX, 10 ;记中断循环次数为10次 STI ;允许中断发生 WAIT: JMP WAIT INT3: MOV AX, DATA ;中断服务程序 MOV

11、 DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上显示每次中断的提示信息 INT 21H MOV AL, 20H ; 发出EOI结束中断到PC主片的地址20H OUT 20H, AL ;关闭主片 OUT 0A0H,AL ;关闭从片 LOOP NEXT IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 04H ;关闭IRQ3中断 OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器 IN AL, 0A1H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 04H ;关闭IRQ10中断 OUT 0A1H, AL ;将中断屏蔽字送到中断

12、屏蔽寄存器 STI ;置中断标志位 MOV AH, 4CH ;返回DOS INT 21H NEXT: IRET ;中断返回 CODE ENDS END START实验 1-2(1)实验容PC 机中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。(2)主要步骤接线图: 说明:本实验接线图如图 1-3 所示,从单脉冲单元引出两根导线,一根接到系统总线单元区的 IRQ 引脚,一根接到 USB 核心卡的 IRQ10 端。 参考流程图: 程序源代码: CODE SEGMENT ASSUME CS:CODE ,DS: DATA START: .386 ;告诉汇编器生

13、成intel 80386指令集CLI ;关中断MOV AX,CS ;设置中断向量表INT10MOV DS,AX ;将CS段基址给DSMOV DX,OFFSET INT10 ;int10的偏移地址给DX MOV AX,2572H INT 21H ;系统调用25号设置中断功能,中断号72H;设置完成;设置中断向量表INT3MOV DX,OFFSET INT3 MOV AX,250BH INT 21H ;系统调用25号设置中断功能,中断号0BH;设置完成IN AL,21H AND AL,0F3H ;1111 0011 OUT 21H,AL ;写OCW1,开放2,3号端口IN AL,0A1H AND

14、AL,0FBH ; 1111 1011 OUT 0A1H,AL ; 写OCW1,开放10号端口MOV CX,10 STI WAIT: JMP WAIT ;CPU等待中断 ;INT10代码INT10: CLI ;关中断PUSHAD PUSHFD ;将各种寄存器的值入栈,保存现场MOV CX,10 ;给CX赋值,循环10次NEXT10_1: MOV DX,31H MOV AH,02H INT 21H ;系统调用02功能,DL为显示容ASCII31H :1MOV DX,30H MOV AH,02H ;系统调用02功能,DL为显示容ASCII31H :0 INT 21H MOV DX,20H ;系统调

15、用02功能,DL为显示容ASCII20H : MOV AH,02H INT 21H CALL DELAY1 ;调用 DELAY1 子程序LOOP NEXT10_1 ;在CX0之前跳转,并使CX=CX-1 ;换行操作MOV DX,0DH ;系统调用02功能,DL为显示容ASCII0DH : MOV AH,02H INT 21H MOV DX,0AH ;系统调用02功能,DL为显示容ASCII0AH : MOV AH,02H INT 21H MOV AL,20H OUT 0A0H,AL OUT 20H,AL ;发送OCW2结束到主片(偶地址为20H)和从片(偶地址为A0H)POPFD POPAD

16、;将之前入栈的恢复,恢复现场STI ;开中断IRET ;中断返回 ;INT3代码INT3: CLI ;关中断PUSHAD ;将各种寄存器的值入栈,保存现场PUSHFD MOV CX,10 ;给CX赋值,循环10次NEXT3_1: MOV DX,33H ;系统调用02功能,DL为显示容ASCII33H :3 MOV AH,02H INT 21H MOV DX,20H ;系统调用02功能,DL为显示容ASCII20H : MOV AH,02H INT 21H CALL DELAY1 ;调用 DELAY1 子程序LOOP NEXT3_1 ;在CX0之前跳转,并使CX=CX-1 ;换行操作MOV DX

17、,0DH ;系统调用02功能,DL为显示容ASCII0DH : MOV AH,02H INT 21H MOV DX,0AH ;系统调用02功能,DL为显示容ASCII0AH : MOV AH,02H INT 21H MOV AL,20H OUT 0A0H,AL OUT 20H,AL ;发送OCW2结束到主片(偶地址为20H)和从片(偶地址为A0H)POPFD POPAD ;将之前入栈的恢复,恢复现场STI ;开中断IRET ;中断返回DELAY1 PROC PUSHAD ;将各种寄存器的值入栈,保存现场PUSHFD MOV CX,0FH ;给CX赋值,循环15次DELAY_LOOP1: MOV

18、 BX,0FFFFH ;BX给成FFFFH,每次减一到0跳出循环以此来达到延时的效果DELAY_LOOP2: DEC BX NOP JNZ DELAY_LOOP2 LOOP DELAY_LOOP1 POPFD POPAD ;恢复现场RET DELAY1 ENDP CODE ENDS END START实验 1-3(1)实验容扩展多中断源查询方式应用实验。利用实验平台上 8259 控制器作为中断扩展源,编写程序对 8259 控制器的中断请求进行处理。(2)主要步骤接线图: 说明:接线图如图 1-5 所示,以逻辑电平开关模拟单次脉冲,开关置高电平,代表一次脉冲,8259 模块相应管脚分别与系统总线

19、、I/O 地址单元和+5V 相连。参考流程图:源程序代码:;*; 8259中断查询方式应用实验;请根据所学原理推断横线处需填写的源代码;* I8259_1 EQU 2B0H ; 8259的ICW1端口地址 I8259_2 EQU 2B1H ; 8259的ICW2端口地址 I8259_3 EQU 2B1H ; 8259的ICW3端口地址 (奇地址) I8259_4 EQU 2B1H ; 8259的ICW4端口地址 (奇地址) O8259_1 EQU 2B1H ; 8259的OCW1端口地址 (奇地址) O8259_2 EQU 2B0H ; 8259的OCW2端口地址 (偶地址) O8259_3

20、EQU 2B0H ; 8259的OCW3端口地址 (偶地址) DATA SEGMENT MES1 DB YOU CAN PLAY A KEY ON THE KEYBOARD!,0DH, 0AH, 24H ;24H=$ MES2 DD MES1 MESS1 DB HELLO! THIS IS INTERRUPT * 0 *!,0DH,0AH,$ MESS2 DB HELLO! THIS IS INTERRUPT * 1 *!,0DH,0AH,$ MESS3 DB HELLO! THIS IS INTERRUPT * 2 *!,0DH,0AH,$ MESS4 DB HELLO! THIS IS I

21、NTERRUPT * 3 *!,0DH,0AH,$ MESS5 DB HELLO! THIS IS INTERRUPT * 4 *!,0DH,0AH,$ MESS6 DB HELLO! THIS IS INTERRUPT * 5 *!,0DH,0AH,$ MESS7 DB HELLO! THIS IS INTERRUPT * 6 *!,0DH,0AH,$ MESS8 DB HELLO! THIS IS INTERRUPT * 7 *!,0DH,0AH,$DATA ENDSSTACKS SEGMENT DB 100 DUP(?)STACKS ENDS STACK1 SEGMENT STACK D

22、W 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACKS, ES:DATA.386START: MOV AX,DATA MOV DS, AX MOV ES, AX ;DS,ES段基址都设为DATA MOV AX, STACKS MOV SS, AX;SS段基址都设为STACKS MOV DX, I8259_1 ;初始化8259的ICW1 MOV AL, 13H ; 0001:ICW1 0011:边沿触发、单片8259、需要ICW4;0001 0011 (IR7-3=000:无意义;IR4=1:ICW1标识位;I

23、R3=0:边沿;IR2=0:无意义;IR1=1:单片8259;IR0=1:需要ICW4) OUT DX,AL MOV DX,I8259_2 ;初始化8259的ICW2 MOV AL,0B0H ;1011 0000 OUT DX,AL MOV AL,03H ;ICW4 0000 0011 OUT DX,AL MOV DX, O8259_1 ;初始化8259的中断屏蔽操作命令字 MOV AL, 00H ;打开屏蔽位 OUT DX,AL;写OCW1,打开屏蔽位 QUERY: MOV AH,1 ;判断是否有按键按下 INT 16H JNZ QUIT ;有按键则退出 MOV DX,O8259_3 ;向8

24、259发送查询命令 MOV AL, 0CH ;0000 1100 OUT DX,AL;先向8259发送一个OCW3,其中查询位P为1,则下一条指令中可以从同样的地址中取得一个查询字,得到的查询字中最高位(D7)为1代表有中断请求,第三位为请求的来源。 IN AL,DX ;读出查询字 TEST AL,80H ;判断中断是否已响应;若最高位为1,则有中断请求 JZ QUERY ;没有响应则继续查询 AND AL,07H CMP AL,00H JE IR0ISR ;若为IR0请求,跳到IR0处理程序 CMP AL,01H JE IR1ISR ;若为IR1请求,跳到IR1处理程序 CMP AL,02H

25、 JE IR2ISR ;若为IR2请求,跳到IR2处理程序 CMP AL,03H JE IR3ISR ;若为IR3请求,跳到IR3处理程序 CMP AL,04H JE IR4ISR ;若为IR4请求,跳到IR4处理程序 CMP AL,05H JE IR5ISR ;若为IR5请求,跳到IR5处理程序 CMP AL,06H JE IR6ISR ;若为IR6请求,跳到IR6处理程序 CMP AL,07H JE IR7ISR ;若为IR7请求,跳到IR7处理程序 JMP QUERY IR0ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS1 ;显示提示信息 MO

26、V AH,09 INT 21H JMP EOI IR1ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS2 ;显示提示信息 MOV AH,09 INT 21H JMP EOI IR2ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS3 ;显示提示信息 MOV AH,09 INT 21H JMP EOI IR3ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS4 ;显示提示信息 MOV AH,09 INT 21H JMP EOI IR4ISR: MOV AX,DATA MOV

27、DS,AX MOV DX,OFFSET MESS5 ;显示提示信息 MOV AH,09 INT 21H JMP EOI IR5ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS6 ;显示提示信息 MOV AH,09 INT 21H JMP EOI IR6ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS7 ;显示提示信息 MOV AH,09 INT 21H JMP EOI IR7ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS8 ;显示提示信息 MOV AH,09 INT

28、21H EOI: MOV DX,O8259_2 ;向8259发送中断结束命令;向8259发OCW2,D5位为EOI中断结束命令位,20H表示清除当前中断服务寄存器的ISn位,在非自动结束中断方式中使用。 MOV AL,20H OUT DX,AL JMP QUERY QUIT: MOV AX,4C00H ;结束程序退出 INT 21HCODE ENDS END START实验二实验 2-1(1)实验容计数应用实验。应用 8254 的计数功能,用开关模拟计数,使每当按照计数初值的次数按动单次脉冲后,观察 LED 的变化。(2)主要步骤说明:运行源程序 8254.asm,按接线图接线,实现计数器功能。接线图:程序源代码:IO8254_MODE EQU 283H ;8254控制寄存器端口地址IO8254_COUNT0 EQU 280H ;8254计数器0端口地址 STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV DX, IO8254_MODE ;初始化8254工作方式 MOV AL, 17H ;计数器0,方式3 0001 0111;方式0 0001 0001:11H OUT DX, AL ;01只写低8位 MOV DX,IO8254_CO

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

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