微机接口实验.docx

上传人:b****3 文档编号:1482303 上传时间:2022-10-22 格式:DOCX 页数:30 大小:724.95KB
下载 相关 举报
微机接口实验.docx_第1页
第1页 / 共30页
微机接口实验.docx_第2页
第2页 / 共30页
微机接口实验.docx_第3页
第3页 / 共30页
微机接口实验.docx_第4页
第4页 / 共30页
微机接口实验.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

微机接口实验.docx

《微机接口实验.docx》由会员分享,可在线阅读,更多相关《微机接口实验.docx(30页珍藏版)》请在冰豆网上搜索。

微机接口实验.docx

微机接口实验

北京科技大学计算机与通信工程学院

实验报告

实验名称:

实验一8259中断控制器应用实验

实验二8254定时/计数器应用实验

实验三8255并口控制器应用实验

学生姓名:

专业:

班级:

学号:

指导教师:

实验成绩:

实验地点:

机电楼320

实验时间:

2015年12月4日

一、实验目的与实验要求

1、实验目的

实验一

1.掌握PC机中断处理系统的基本原理。

2.掌握可编程中断控制器8259的应用编程方法。

实验二

1.掌握8254的工作方式及应用编程。

2.掌握8254典型应用电路的接法。

实验三

1.掌握8255的工作方式及应用编程。

2.掌握8255典型应用电路的接法。

2、实验要求

实验一

(1)实验1-1:

PC机内中断应用实验

①按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,将屏幕显示结果以截图方式写在实验报告中。

②自设计实验。

改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。

(注意:

考虑PC机内中断级联的方式,参看前面的原理说明),将代码写在报告中。

(2)实验1-2:

PC机内中断嵌套实验

①按接线图连好接线,调用程序源代码8259-2.asm,做如下操作,并将屏幕显示结果以截图的方式写在实验报告中,并分析产生该现象的原因:

A.按下连接IRQ的单次脉冲按键,屏幕上会显示10个3,在屏幕上10次显示未结束之前,按下连接IRQ10的单次脉冲按键,观察现象;

B.按下连接IRQ10的单次脉冲按键,屏幕上会显示10个10,在屏幕上10次显示未结束之前,按下连接IRQ3的单次脉冲按键,观察现象。

②程序中所有代码均没有注释,请在报告中补全注释,尽量详细。

(3)实验1-3:

扩展多中断应用实验

说明:

本实验采用查询方式,应用实验箱提供的8259中断源,向PC机提交中断请求。

拨动开关发起请求一次中断,屏幕上显示相应的中断请求号。

调用程序源码文件8259-3.asm,在程序源代码中划横线的位置,请按照所学8259工作原理填写并验证,然后将所填内容写在实验报告中,并分析所填数据的形成原理。

实验二

(1)实验2-1:

计数器应用实验

①将计数器0设置为方式3,计数器初值为4,用手动逐个输入单脉冲,用LED灯观察OUT0电平变化。

将代码中划横线的部分填上相应的代码,并在实验报告中对所填代码做原理分析。

②如果令计数器0工作在方式0,其实验现象有什么不同,在报告中进行分析说明。

(2)实验2-2:

自设计实验

参考实验一的程序和接线,自行设计接线图以及程序代码,实现,以1MHz为时钟源,应用8254的定时功能,将其分频为1Hz。

以LED灯作为输出显示。

经过实际验证后,在报告中画出接线图,并给出源代码。

实验三

(1)实验3-1:

可编程并行接口8255方式0应用实验

编写程序,自行设定A、B、C三个口中某一个口为输入,某一个为输出,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就改变。

根据原理补全代码中缺失的部分,根据自己的设计,补全接线图,并将代码和对应的接线图写在实验报告中。

(2)实验3-2:

自设计试验

自行设计完成本实验,要求,8255A口工作在方式一输入,B口工作在方式一输出,利用方式一的控制信号,使数据从输入到输出人为可控。

在实验报告中画出接线图,并说明设计的原理,给出对应的程序代码。

二、实验设备(环境)及要求

Windows7系统下的HQFC集成开发环境,CZ-CIUS微机接口实验系统。

三、实验内容与步骤

实验一

实验1-1

(1)实验内容

PC机内中断实验。

使用单次脉冲模拟中断产生。

验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。

(2)主要步骤

①按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象。

②自设计实验。

改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。

(注意:

考虑PC机内中断级联的方式,参看前面的原理说明)。

接线图:

说明:

本实验只需要一根连线,一端接系统总线区的IRQ引脚,一端接到单脉冲单元的引脚上,接线如图1-1所示。

参考流程图:

程序源代码:

(1)

;数据段

DATASEGMENT

MESSDB'TPCAinterrupt!

',0DH,0AH,'$'

;需要显示的数据,以'$'结束,方便系统调用。

0DH,0AH为换行

DATAENDS

;代码段

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,CS;系统调用25是设置中断

MOVDS,AX

MOVDX,OFFSETINT3;采用间接修改法,设置中断向量

MOVAX,250BH;设置IRQ3对应的中断向量,25是系统调用功能

;号,在AL里放中断向量号,0B*4=2C,是中断程序的地址所在位置,DS放中断程序的段

;基址,DX放偏移地址

INT21H

;中断设置完成

INAL,21H;读中断屏蔽寄存器,21H是该寄存器的端口号

ANDAL,0F7H;开放IRQ3中断,允许IRQ3的中断申请

OUT21H,AL;写OCW1

MOVCX,10;记中断循环次数为10次

STI;允许中断发生

WAIT:

JMPWAIT

INT3:

MOVAX,DATA;中断服务程序

MOVDS,AX

MOVDX,OFFSETMESS

MOVAH,09

;在屏幕上显示每次中断的提示信息,DS:

DX中存放显示的字符串的地址

INT21H

MOVAL,20H

;发出EOI结束中断到PC内主片的地址20H

OUT20H,AL

LOOPNEXT;LOOP每次跳转CX自动减1

INAL,21H;读中断屏蔽寄存器,获取中断屏蔽字

ORAL,08H;关闭IRQ3中断

OUT21H,AL;将中断屏蔽字送到中断屏蔽寄存器

STI;置中断标志位

MOVAH,4CH;返回DOS

INT21H

NEXT:

IRET;中断返回

CODEENDS

ENDSTART

(2)

DATASEGMENT

MESSDB'TPCAinterrupt!

',0DH,0AH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,CS

MOVDS,AX

MOVDX,OFFSETINT3;采用间接修改法,设置中断向量

MOVAX,2572H

INT21H

INAL,21H;主片

ANDAL,0FBH;11111011

OUT21H,AL

INAL,0A1H;从片

ANDAL,0FBH;11111011

OUT0A1H,AL

MOVCX,10;记中断循环次数为10次

STI;允许中断发生

WAIT:

JMPWAIT

INT3:

MOVAX,DATA;中断服务程序

MOVDS,AX

MOVDX,OFFSETMESS

MOVAH,09;在屏幕上显示每次中断的提示信息

INT21H

MOVAL,20H;发出EOI结束中断到PC内主片的地址20H

OUT20H,AL;关闭主片

OUT0A0H,AL;关闭从片

LOOPNEXT

INAL,21H;读中断屏蔽寄存器,获取中断屏蔽字

ORAL,04H;关闭IRQ3中断

OUT21H,AL;将中断屏蔽字送到中断屏蔽寄存器

INAL,0A1H;读中断屏蔽寄存器,获取中断屏蔽字

ORAL,04H;关闭IRQ10中断

OUT0A1H,AL;将中断屏蔽字送到中断屏蔽寄存器

STI;置中断标志位

MOVAH,4CH;返回DOS

INT21H

NEXT:

IRET;中断返回

CODEENDS

ENDSTART

实验1-2

(1)实验内容

PC机内中断嵌套实验。

使用单次脉冲模拟两个中断源的中断产生,填写

中断处理程序,体会中断嵌套的过程。

(2)主要步骤

接线图:

说明:

本实验接线图如图1-3所示,从单脉冲单元引出两根导线,一根接到系统总线单元区的IRQ引脚,一根接到USB核心卡的IRQ10端。

参考流程图:

程序源代码:

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

.386;告诉汇编器生成intel80386指令集

CLI;关中断

MOVAX,CS

;设置中断向量表INT10

MOVDS,AX;将CS段基址给DS

MOVDX,OFFSETINT10;int10的偏移地址给DX

MOVAX,2572H

INT21H;系统调用25号设置中断功能,中断号72H

;设置完成

;设置中断向量表INT3

MOVDX,OFFSETINT3

MOVAX,250BH

INT21H;系统调用25号设置中断功能,中断号0BH

;设置完成

INAL,21H

ANDAL,0F3H;11110011

OUT21H,AL;写OCW1,开放2,3号端口

INAL,0A1H

ANDAL,0FBH;11111011

OUT0A1H,AL;写OCW1,开放10号端口

MOVCX,10STI

WAIT:

JMPWAIT;CPU等待中断

;INT10代码

INT10:

CLI;关中断

PUSHAD

PUSHFD;将各种寄存器的值入栈,保存现场

MOVCX,10;给CX赋值,循环10次

NEXT10_1:

MOVDX,31H

MOVAH,02H

INT21H;系统调用02功能,DL为显示内容ASCII31H:

1

MOVDX,30H

MOVAH,02H;系统调用02功能,DL为显示内容ASCII31H:

0

INT21H

MOVDX,20H;系统调用02功能,DL为显示内容ASCII20H:

<空格>

MOVAH,02H

INT21H

CALLDELAY1;调用DELAY1子程序

LOOPNEXT10_1;在CX>0之前跳转,并使CX=CX-1

;换行操作

MOVDX,0DH;系统调用02功能,DL为显示内容ASCII0DH:

<归位键>

MOVAH,02H

INT21H

MOVDX,0AH;系统调用02功能,DL为显示内容ASCII0AH:

<换行>

MOVAH,02H

INT21H

MOVAL,20

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

当前位置:首页 > 解决方案 > 学习计划

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

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