微机原理实验指导书非电专业.docx

上传人:b****6 文档编号:5166538 上传时间:2022-12-13 格式:DOCX 页数:66 大小:1.17MB
下载 相关 举报
微机原理实验指导书非电专业.docx_第1页
第1页 / 共66页
微机原理实验指导书非电专业.docx_第2页
第2页 / 共66页
微机原理实验指导书非电专业.docx_第3页
第3页 / 共66页
微机原理实验指导书非电专业.docx_第4页
第4页 / 共66页
微机原理实验指导书非电专业.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

微机原理实验指导书非电专业.docx

《微机原理实验指导书非电专业.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导书非电专业.docx(66页珍藏版)》请在冰豆网上搜索。

微机原理实验指导书非电专业.docx

微机原理实验指导书非电专业

计算机与通信工程学院实验指导书系列

 

 

 

目录

目录II

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

一、实验目的1

二、实验内容1

三、实验原理与步骤1

四、思考题17

实验二8255并口控制器应用实验18

一、实验目的18

二、实验内容18

三、实验原理与步骤18

四、思考题24

实验三8254定时/计数器应用实验25

一、实验目的25

二、实验内容25

三、实验原理与步骤25

四、思考题30

附录31

附录一实验系统认识31

一、CZ-CIUS实验系统结构及主要电路31

二、实验箱集成开发环境的使用说明36

三、微机实验操作注意事项43

附录二INT21H指令说明及使用方法44

附录三I386汇编指令集51

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

一、实验目的

1.学习可编程中断控制器8259的工作原理。

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

二、实验内容

1.PC机内中断实验。

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

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

2.PC机内中断嵌套实验。

使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。

3.扩展多中断源查询方式应用实验。

利用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行处理。

三、实验原理与步骤

1.实验原理

(1)PC微机系统中的8259介绍

中断控制器8259是Intel公司专为控制优先级中断而设计开发的芯片。

它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需增加其他电路的情况下,通过多片8259的级连,能构成多达64级的矢量中断系统。

它的管理功能包括:

1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。

8259A的命令字共有7个,可分为两类。

一类是初始化命令字,另一类是操作命令字。

8259的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。

ICW1-ICW4各命令字格式如表1-1所示,OCW1-OCW3各命令字格式如表1-2所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和结束方式的操作命令字,OCW3用于设置和撤消特殊屏蔽方式,设置中断查询方式以及设置对8259A内部寄存器的读出命令。

表1-1初始化命令字

D7

D6

D5

D4

D3

D2

D1

D0

ICW1

X

X

X

1

1:

电平触发

0:

边沿

触发

X

1:

单片

8259

0:

多片

8259

1:

需要ICW4

0:

不需要

ICW4

ICW2

中断向量的高5位

X

X

X

ICW3(主)

分别对应8个IRQ,Di=1,IRQi上有级连芯片,=0,无级连芯片

ICW3(从)

0

0

0

0

0

指明从片连接在主片的哪个IRQ上

ICW4

0

0

0

1:

特殊全嵌套

0:

非特

殊全嵌

1:

缓冲

0:

非缓冲

1:

主片

0:

1:

自动EOI

0:

非自

动EOI

1:

8086系统

0:

8080系统

表1-2操作命令字

D7

D6

D5

D4

D3

D2

D1

D0

OCW1

Di=0:

开放IRi中断请求

Di=1:

禁止IRi中断请求

OCW2

优先级

循环控

制位

L2~L0

有效控

制位

中断结

束命令

0

0

中断级编码

OCW3

X

0X:

无意义

10:

撤销特殊屏蔽

11:

设置特殊屏蔽

0

1

中断查

询控制

0X:

无意义

10:

读IRR寄存器

11:

读ISR寄存器

(2)PC微机系统中的8259A

在80x86系列PC微机系统中,系统中包含了两片8259中断控制器,通过级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表1-3所示。

两片8259的端口地址为:

主片8259使用020H和021H两个端口;从片使用0A0H和0AlH两个端口。

系统初始化两片8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为:

0级最高,依次为1级、8级~15级,然后是3级~7级。

在实验平台上系统总线单元的INTR信号对应的中断线就是PC机保留中断其中的一个。

对INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽打开,修改中断向量。

表1-3PC微机系统中的硬件中断

中断号

功能

中断向量号

中断向量地址

主8259IRQ0

时钟/计数器0

08H

0020H~0023H

主8259IRQ1

键盘

09H

0024H~0027H

主8259IRQ2

接从片8259

0AH

0028H~002BH

主8259IRQ3

串行口2

0BH

002CH~002FH

主8259IRQ4

串行口1

0CH

0030H~0033H

主8259IRQ5

并行口2

0DH

0034H~0037H

主8259IRQ6

软盘

0EH

0038H~003BH

主8259IRQ7

并行口1

0FH

003CH~003FH

从8259IRQ8

实时钟

70H

01C0H~01C3H

从8259IRQ9

保留

71H

01C4H~01C7H

从8259IRQ10

保留

72H

01C8H~01CBH

从8259IRQ11

保留

73H

01CCH~01CFH

从8259IRQ12

保留

74H

01D0H~01D3H

从8259IRQ13

协处理器中断

75H

01D4H~01D7H

从8259IRQ14

硬盘控制器

76H

01D8H~01DBH

从8259IRQ15

保留

77H

01DCH~01DFH

说明:

CZ-CIUS-USB实验系统总线区的IRQ接到了3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。

USB核心板上的IR10接到了10号中断IRQ10上,所用中断类型为072H。

(3)中断向量的设置方法

当系统程序或应用程序由于某种特殊需要而提供新的中断处理程序时,需要设置对应的中断向量,使其指向新的中断处理程序。

修改向量表中的中断处理程序的入口地址一般有两种方式:

直接修改法和间接修改法。

1)直接修改法

直接利用传送指令,将中断处理程序的入口地址送入中断向量表中。

2)间接修改法

利用DOS的25号功能调用,将中断子程序的入口地址送入中断向量表,其方法如下:

①将25号功能号送入AH寄存器,即AH=25H;

②将需要修改中断向量的类型号送入AL寄存器,即AL=中断类型号;

③将中断处理程序的段首址送入DS段寄存器,将偏移量送入DX寄存器,即DS:

DX=新的中断向量;

④执行“INT21H”指令。

2.实验步骤

(1)实验1-1:

PC机内中断应用实验

实验要求:

通过本实验,学习对PC机内中断的编程应用,掌握中断向量的设置方法,开启和关闭中断的方法。

本实验使用单次脉冲模拟中断的产生,通过实验箱连入PC机,验证设定好的中断处理程序,是否能在显示器屏幕上显示一行预设定的字符串。

接线图:

说明:

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

图1-18259实验1接线图

参考流程图(如图1-2):

图1-28259实验1程序流程图

程序源代码:

DATASEGMENT

MESSDB'TPCAinterrupt!

',0DH,0AH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,CS

MOVDS,AX

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

_________________;设置IRQ3对应的中断向量

INT21H

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

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

OUT21H,AL

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

STI;允许中断发生

WAIT:

JMPWAIT

INT3:

MOVAX,DATA;中断服务程序

MOVDS,AX

MOVDX,OFFSETMESS

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

_____________

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

OUT20H,AL

LOOPNEXT

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

_____________;关闭IRQ3中断

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

STI;置中断标志位

MOVAH,4CH;返回DOS

INT21H

NEXT:

IRET;中断返回

CODEENDS

ENDSTART

(2)实验1-2:

PC机内中断嵌套实验

实验要求:

通过本实验,学习中断嵌套的原理与实现。

利用实验箱生成两个脉冲信号,模拟两个中断申请,发送给PC机内中断芯片的IRQ3和IRQ10引脚,通过实验观察中断优先级不同,其实验现象的不同。

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

①按下连接IRQ的单次脉冲按键,在屏幕显示未结束之前,按下连接IRQ10的单次脉冲按键,观察现象;

②按下连接IRQ10的单次脉冲按键,在屏幕显示未结束之前,按下连接IRQ的单次脉冲按键,观察现象;

接线图:

说明:

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

图1-38259实验2接线图

参考流程图:

图1-48259实验2程序流程图

程序源代码:

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

.386

CLI

MOVAX,CS

MOVDS,AX

MOVDX,_________;设置IRQ10对应的中断向量

_________________

INT21H

MOVDX,__________;设置IRQ3对应的中断向量

___________________

INT21H

INAL,21H

___________________;开放IRQ3和IRQ2中断请求

OUT21H,AL

INAL,0A1H

___________________;开放IRQ10中断请求

OUT0A1H,AL

MOVCX,10

STI

WAIT:

JMPWAIT;跳转,等待中断请求信号

INT10:

CLI;将处理器标志寄存器的中断标志位清0,当前不允许中断

PUSHAD;将所有的32位通用寄存器压入堆栈

PUSHFD;然后将32位标志寄存器EFLAGS压入堆栈

MOVCX,10

NEXT10_1:

;在*号之间填写代码,在屏幕上显示“10”和“空格”的字符

;****************************************

 

;******************************************

CALLDELAY1;调用延时子程序

LOOPNEXT10_1

MOVDX,0DH;调用DOS的中断功能,回车

MOVAH,02H

INT21H

MOVDX,0AH;调用DOS的中断功能,换行

MOVAH,02H

INT21H

MOVAL,20H

OUT0A0H,AL

OUT20H,AL

POPFD

POPAD

STI

IRET

INT3:

CLI

PUSHAD

PUSHFD

MOVCX,10

NEXT3_1:

;在*号之间填写代码,在屏幕显示“3”和“空格”的字符

;****************************************

 

;******************************************

CALLDELAY1;调用延时子程序

LOOPNEXT3_1

MOVDX,0DH;调用DOS的中断功能,回车

MOVAH,02H

INT21H

MOVDX,0AH;调用DOS的中断功能,换行

MOVAH,02H

INT21H

MOVAL,20H

OUT20H,AL

OUT0A0H,AL

POPFD

POPAD

STI

IRET

DELAY1PROC;延时子程序

PUSHAD;将所有的32位通用寄存器压入堆栈

PUSHFD;然后将32位标志寄存器EFLAGS压入堆栈

MOVCX,0FH;向CX送数据0FH

DELAY_LOOP1:

MOVBX,0FFFFH

DELAY_LOOP2:

DECBX

NOP

JNZDELAY_LOOP2

LOOPDELAY_LOOP1

POPFD

POPAD

RET

DELAY1ENDP

CODEENDS

ENDSTART

(3)实验1-3:

扩展多中断应用实验

实验要求:

说明:

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

按单脉冲请求一次中断,屏幕上显示相应的中断请求号。

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

接线图:

说明:

接线图如图1-5所示,以逻辑电平开关模拟单次脉冲,开关置高电平,代表一次脉冲,8259模块相应管脚分别与系统总线、I/O地址单元和+5V相连。

图1-58259实验3接线图

参考流程图:

图1-68259实验3程序流程图

源程序代码:

;*****************************************************************

;8259中断查询方式应用实验

;*****************************************************************

I8259_1EQU2B0H;8259的ICW1端口地址

I8259_2EQU2B1H;8259的ICW2端口地址

I8259_3EQU2B1H;8259的ICW3端口地址

I8259_4EQU2B1H;8259的ICW4端口地址

O8259_1EQU2B1H;8259的OCW1端口地址

O8259_2EQU2B0H;8259的OCW2端口地址

O8259_3EQU2B0H;8259的OCW3端口地址

DATASEGMENT

MES1DB'YOUCANPLAYAKEYONTHEKEYBOARD!

',0DH,0AH,24H

MES2DDMES1

MESS1DB'HELLO!

THISISINTERRUPT*0*!

',0DH,0AH,'$'

MESS2DB'HELLO!

THISISINTERRUPT*1*!

',0DH,0AH,'$'

MESS3DB'HELLO!

THISISINTERRUPT*2*!

',0DH,0AH,'$'

MESS4DB'HELLO!

THISISINTERRUPT*3*!

',0DH,0AH,'$'

MESS5DB'HELLO!

THISISINTERRUPT*4*!

',0DH,0AH,'$'

MESS6DB'HELLO!

THISISINTERRUPT*5*!

',0DH,0AH,'$'

MESS7DB'HELLO!

THISISINTERRUPT*6*!

',0DH,0AH,'$'

MESS8DB'HELLO!

THISISINTERRUPT*7*!

',0DH,0AH,'$'

DATAENDS

STACKSSEGMENT

DB100DUP(?

STACKSENDS

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACKS,ES:

DATA

.386;伪指令,告诉编译器在本程序中使用的指令集为80386指令集

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,STACKS

MOVSS,AX

MOVDX,I8259_1;初始化8259的ICW1

MOVAL,13H;边沿触发、单片8259、需要ICW4

OUTDX,AL

MOVDX,I8259_2;初始化8259的ICW2

MOVAL,0B0H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVDX,O8259_1;初始化8259的OCW1

MOVAL,00H;打开屏蔽位

OUTDX,AL

QUERY:

MOVAH,1;判断是否有按键按下

INT16H

JNZQUIT;有按键则退出

MOVDX,O8259_3;向8259的OCW3发送查询命令

MOVAL,0CH

OUTDX,AL

INAL,DX;读出查询字

MOVAH,AL

ANDAL,80H

TESTAL,80H;判断中断是否已响应

JZQUERY

MOVAL,AH;没有响应则继续查询

ANDAL,07H;取出查询字的末三位

;通过下面的比较判断程序,判断中断请求来自哪个优先级

CMPAL,00H;将查询字末三位与00H比较,相等,为IR0请求

JEIR0ISR;若为IR0请求,跳到IR0处理程序

CMPAL,01H

JEIR1ISR;若为IR1请求,跳到IR1处理程序

CMPAL,02H

JEIR2ISR;若为IR2请求,跳到IR2处理程序

CMPAL,03H

JEIR3ISR;若为IR3请求,跳到IR3处理程序

CMPAL,04H

JEIR4ISR;若为IR4请求,跳到IR4处理程序

CMPAL,05H

JEIR5ISR;若为IR5请求,跳到IR5处理程序

CMPAL,06H

JEIR6ISR;若为IR6请求,跳到IR6处理程序

CMPAL,07H

JEIR7ISR;若为IR7请求,跳到IR7处理程序

JMPQUERY

IR0ISR:

MOVAX,DATA;将数据段首地址放入ax寄存器

MOVDS,AX

MOVDX,OFFSETMESS1;显示提示信息

MOVAH,09

INT21H

JMPEOI

IR1ISR:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS2;显示提示信息

MOVAH,09

INT21H

JMPEOI

IR2ISR:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS3;显示提示信息

MOVAH,09

INT21H

JMPEOI

IR3ISR:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS4;显示提示信息

MOVAH,09

INT21H

JMPEOI

IR4ISR:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS5;显示提示信息

MOVAH,09

INT21H

JMPEOI

IR5ISR:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS6;显示提示信息

MOVAH,09

INT21H

JMPEOI

IR6ISR:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS7;显示提示信息

MOVAH,09

INT21H

JMPEOI

IR7ISR:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS8;显示提示信息

MOVAH,09

INT21H

EOI:

MOVDX,O8259_2;向8259发送中断结束命令

MOVAL,20H

OUTDX,AL

JMPQUERY

QUIT:

MOVAX,4C00H;结束程序退出

INT21H

CODEENDS

ENDSTART

四、思考题

1.单中断与多中断有何不同?

2.如何改变中断优先级的顺序?

3.可编程中断控制器8259A在协助CPU处理中断事务中起哪些作用?

4.可屏蔽中断与8259A是什么关系?

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

一、实验目的

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

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

二、实验内容

1.基本输入输出实验。

编写程序,使8255的B口为输入,A口为输出,完成拨动开关到数据灯的数据传输。

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

2.流水灯显示实验。

编写程序,使8255的A口为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示。

三、实验原理与步骤

1.8255简介

并行接

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

当前位置:首页 > 高等教育 > 艺术

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

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