微机原理实验5Word文件下载.docx

上传人:b****6 文档编号:20221939 上传时间:2023-01-20 格式:DOCX 页数:31 大小:67.32KB
下载 相关 举报
微机原理实验5Word文件下载.docx_第1页
第1页 / 共31页
微机原理实验5Word文件下载.docx_第2页
第2页 / 共31页
微机原理实验5Word文件下载.docx_第3页
第3页 / 共31页
微机原理实验5Word文件下载.docx_第4页
第4页 / 共31页
微机原理实验5Word文件下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

微机原理实验5Word文件下载.docx

《微机原理实验5Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验5Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。

微机原理实验5Word文件下载.docx

从片

自动EOI

正常EOI

0DH

操作命令字OCW1~OCW3可根据需要随时进行设置,其命令字格式如下:

OCW1

置中断屏蔽位,0:

清除中断屏蔽位

OCW2

R

SL

EOI

L2

L1

L0

OCW3

00和01:

无意义

10:

撤销特殊屏蔽

11:

设定特殊屏蔽

P:

查询命令

读IRR

读ISR

其中对于OCW2命令字具体意义如下:

1L2~L0:

对应IRi的编码,取值从000~111

2R、SI、EOI组合编码

001

常规EOI命令

中断结束

011

特殊EOI命令

101

在常规EOI时循环

自动循环

100

在自动EOI时循环(置位)

000

在自动EOI时循环(复位)

111

在特殊EOI时循环

特殊循环

110

置优先权命令

010

无操作

 

2、系统中的8259A芯片

系统中的8259A芯片工作于单片方式,但可由用户扩展接成级联方式,线路如下所示。

图中的圈点表示此为排针形式引出脚。

8088

XD0

XD1

XD2

XD3

XD4

XD5

XD6

XD7

IOY1

XIOR

XIOW

XA0

INTR

INAQS1

D0IR0

D1IR1

D2IR2

D3IR2

D4IR2

D5IR2

D6IR2

D78259IR7

INT

INTASP/EN

CS

RDCAS0

WRCAS1

A0CAS2

IRQ0

IRQ1

IRQ2

IRQ3

IRQ4

IRQ5

IRQ6

IRQ7

CAS0

CAS1

CAS2

INTA

+5V

系统启动时,8259A被初始化,其初始化是通过系统中的初始化程序设置初始化命令字ICW来实现的。

系统初始化时,规定0#和4#中断源分别提供给实时时钟和与PC微机联机的串口通信使用,用户可以使用其余中断源。

在进入监控后,只有4#中断源处于开启状态,其他中断源都被屏蔽了。

中断矢量地址和中断号之间的关系如下表:

中断序号

2

3

4

5

6

7

功能调用

09H

0AH

0BH

0CH

0EH

0FH

矢量地址

-

23H

24H

27H

28H

2BH

2CH

2FH

30H

33H

34H

37H

38H

3BH

3CH

3FH

说明

时钟

可用

串口2

串口1

3、接口实验单元中的R-S触发器电路

7400

kk1+

kk1-

kk1

1k

KK2-

KK2+

KK1-

KK1+

8259A

图R-S触发器图实验

(1)线路

实验内容:

一、8259应用实验

(1)

按上右图所示实验线路编写程序,使每次响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。

主程序

修改IRQ7中断矢量

CX=00AH

CX=0?

开中断

屏蔽IRQ7

停机

显示“7”

CX=CX-1

关中断

返回

IRQ7中断服务处理

修正IMR,使IRQ7中断允许

STACKSEGMENTSTACK

DW64DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK

START:

PUSHDS

MOVAX,0000H

MOVDS,AX;

数据段段寄存器清零

MOVAX,OFFSETIRQ7;

取中断服务程序入口地址(相对地址)

ADDAX,2000H;

加装载时IP地址(绝对地址)

MOVSI,003CH;

填8259中断7中断矢量

MOV[SI],AX;

填偏移地址

MOVAX,0000H

MOVSI,003EH

填段地址

CLI;

POPDS

INAL,21H;

读8259中断屏蔽字

ANDAL,7FH;

开8259中断7

OUT21H,AL

MOVCX,000AH;

设置中断次数

A1:

CMPCX,0000H

JNZA2

ORAL,80H;

关8259中断7

STI

HLT

A2:

STI

JMPA1

IRQ7:

MOVAH,01H;

中断服务程序入口

MOVAL,37H

INT10H

MOVAL,20H;

“空格”

DECCX

MOVAL,20H

OUT20H,AL;

结束中断命令

CLI

IRET

CODEENDS

ENDSTART

实验步骤:

(1)按图连接试验线路,检查无误后打开实验箱电源。

(2)输入程序并检查无误,经汇编、连接后通过调试窗口装入系统0000:

2000处。

(3)G=0000:

2000运行程序。

(4)重复按KK2微动开关,观察显示屏上显示结果。

二、8259应用实验

(2)

编写程序实现:

⏹当无中断请求时,执行主程序,延时显示“main”,每显示一个空一格;

⏹若有中断请求,则执行其中断服务程序,显示对应中断号“6”或“7”;

⏹若正在执行较低级的中断服务程序,则允许比它优先级高的中断被相应(IRQ6>

IRQ7)。

实验程序如下:

DATASEGMENT

TABLEDB4DH,41H,49H,4EH,20H,00H

DATAENDS

MOVAX,DATA

MOVDS,AX

PUSHDS

MOVDS,AX

MOVAX,OFFSETIRQ6;

取中断服务程序入口地址

ADDAX,2000H

MOVSI,0038H;

填8259中断6中断矢量

MOV[SI],AX

MOVSI,003AH

MOVSI,003CH;

填8259中断7中断矢量

MOVSI,003EH

MOVAL,13H;

初始化ICW1

OUT20H,AL

MOVAL,08H;

初始化ICW2

OUT21H,AL

MOVAL,09H;

初始化ICW4

MOVAL,3DH;

配置OCW1

MOVCX,0007H

MOVAL,0DH

MOVAH,01H

INT10H;

显示回车

MOVAH,06H

MOVBX,OFFSETTABLE

显示main

CALLDALLY

LOOPA2;

循环显示main

JMPA1

IRQ6:

STI;

开中断

MOVAL,36H

MOVAH,01H

INT10H;

显示6

MOVAL,20H

OUT20H,AL

开中断

MOVAL,37H

显示7

OUT20H,AL

DALLY:

PUSHCX;

出栈CX

PUSHAX

MOVCX,0040H

A3:

MOVAX,056CH

A4:

DECAX

JNEA4

LOOPA3

POPAX

POPCX

RET

CODEENDS

ENDSTART

(1)画出以上程序流程图,并在程序后面填写相应注释。

Begin

把IRQ6的服务程序的地址,填入中断向量表中

把IRQ7的服务程序的地址,填入中断向量表中

初始化8259相关的寄存器(ICW1,ICW2,ICW3,ICW4)

开始程序,显示字符“main“

中断请求

无中断请求

有请求

等待

执行中断服务程序,显示“6“或”7“

执行完成

延时

完成

(2)按图连接实验电路,检查无误后打开实验箱电源。

(3)输入程序并检查无误,经汇编、连接后装入系统。

(4)G=0000:

2000运行实验程序,记录运行结果:

1没有按键时:

延时显示MAIN,每显示一个空一格

2单独按下KK1或KK2时:

按下KK1显示6,接着延时显示MAIN,每显示一个空一格

按下KK2显示7,接着延时显示MAIN,每显示一个空一格

3先按下KK1再按下KK2时:

延时显示6,接着延时显示MAIN,

4先按下KK2再按下KK1时:

延时显示67,接着延时显示MAIN

分析结果:

实验小结:

实验5主要是中断实验,通过这次实验:

1、掌握了8259A的工作原理;

2、掌握了编写中断服务程序的方法;

3、掌握了初始化中断向量的方法。

教师评语:

实验六8253定时/计数器应用实验

1、熟悉定时/计数器在系统中的典型接法。

2、掌握定时/计数器的工作方式及应用编程

一、8253可编程定时/计数器介绍

8253可编程定时/计数器是Intel公司生产的通用外围芯片之一。

它有3个独立的十六位计数器,计数频率范围为0-2MHz,所有计数方式和操作方式都通过编程进行控制。

1、8253的功能

在实际应用当中,8253可以在不同场合实现以下功能:

延时终端、可编程频率发生器、事件计数器、分频器、实时时钟、数字单稳、复杂的电机控制器。

2、8253的工作方式

方式0

计数结束产生中断

方式1

可重触发的单稳触发器

方式2

分频器

方式3

方波频率发生器

方式4

软件触发的选通信号

方式5

硬件触发的选通信号

3、8253的内部结构及引脚

4、8253的控制字格式

5、8253的初始化编程

送控制字到控制端口

(43H)

送计数初值到计数器端口

(40H、41H、42H)

系统总线

IOY2

XA1

8259-IRQ0

OPCLK

8251-TXCLK

1.8432MHz

二、系统中的8253芯片

系统中装有一片8253芯片,线路如上右图所示:

一、计数中断实验

8253的通道2工作于方式0,用于事件计数,当计数5次时,向8259A发出中断请求信号,显示“M”,实验线路如图所示:

KK1

8253

计数/定时器

GATE2

CLK2

OUT2

8259

中断控制器

DW64DUP(?

CODESEGMENT

INAL,21H

ANDAL,7FH;

OCW1,开IRQ7中断

OUT21H,AL

MOVAL,90H

OUT43h,AL;

设置8253控制字

A1:

MOVAL,5H

OUT42h,AL;

设置计数初值

HLT

STI;

开外部中断(cpu)

JMPA1

MOVAX,014DH;

中断服务子程序

INT10H

MOVAX,0120H

MOVAL,20H;

OCW2,常规EOI命令

OUT20H,AL

IRET

(1)关闭电源,按图接线,接通电源。

(2)输入程序并检查无误,经汇编、连接后装入系统。

(3)用U2000命令查看“MOVAX,014DH”指令的偏移地址为2012。

(4)在0000:

003CH单元填入中断矢量,即0000:

003C12200000。

(5)运行程序,并按动KK1键,在按动5次后,屏幕上显示一个“M”,这是因为当计数超过5的时候,就会产生中断,然后运行中断程序:

显示“M“。

二、定时中断实验

利用8253的通道0工作于方式2来产生定时中断(IRQ0),循环显示“0”-“9”十个数,系统默认线路如下。

1.19MHz

GATE0

CLK0

OUT0

DW64DUP(?

PUSHDS

MOVDS,AX

MOVAX,OFFSETIRQ0

ADDAX,2000H

MOVSI,0020H;

填中断矢量表中的IP

MOV[SI],AX

MOVSI,0021H;

填中断矢量表中的CS

POPDS

MOVAL,FEh;

OCW1,开IRQ0中断

MOVAL,1Dh;

OUT43H,AL

MOVAL,0FFH;

设置8253计数初值低8位

OUT40H,AL

MOVDL,30H;

设置起始字符‘0’

JMPA1;

等待中断

IRQ0:

MOVAH,01H;

MOVAL,DL

CMPAL,3AH;

字符9,比较

JNZA2;

未完毕时转A2继续显示

MOVAL,0DH;

显示完毕后换行

MOVAL,30H;

重新设置起始字符

A2:

INT10H

INCAX

MOVDL,AL

CALLDALLY

MOVAL,20H;

MOVCX,0100H;

延时

A3:

MOVBX,0560H

A4:

DECBX

JNZA4

LOOPA3

(1)输入程序并检查无误,经汇编、连接后装入系统。

(2)运行程序,显示屏上出现现象为0123456789。

(3)修改8253的时常数为0FH,再运行程序,显示速度明显变快。

三、电子发声实验

系统的OPCLK(1.1625MHz)作为音乐节拍,从表格TABLE中查出每个音符对应的时常数送给计数器2(工作在方式3:

方波频率发生器),以确定音调,驱动扬声器产生音乐,实验线路图如下:

1.1625MHz

SPKUNIT

SPK

注意:

SPK接线要在装入程序并运行后进行。

DATASEGMENT

TABLEDB33H,33H,3DH,33H,26H,26H,26H,26H,2DH,2DH,26H,2DH,33H

DB33H,33H,33H,33H,33H,4DH,45H,3DH,3DH,3DH,45H,4DH,45H

DB45H,45H,45H,45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H

DB26H,28H,2DH,2DH,26H,26H,33H,33H,33H,33H,45H,3DH,39H

DB39H,39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,2DH,2DH

DB26H,26H,26H,26H,26H,26H,28H,28H,2DH,28H,26H,26H,26H

DB26H,2DH,28H,26H,2DH,2DH,33H,3DH,4DH,45H,45H,45H,45H

DB45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H,26H,28H,2DH

DB2DH,26H,2DH,33H,33H,33H,33H,33H,33H,45H,3DH,39H,39H

DB39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,00H

DATAENDS

STACK,DS:

DATA

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETTABLE

MOVAL,[BX]

MOVAH,00H

MOVDL,25H;

时常数*25H作为计数值保存于AX中

MULDL;

发音频率=1.1625MHz/37=314Hz

PUSHAX

MOVAL,B7;

计数器2,方式3,写16位BCD初值

OUT43H,AL

POPAX

OUT42H,AL;

设置低八位计数初值

MOVAL,AH

设置高八位计数初值

INCBX

MOVAL,[BX];

取下一个时常数

TESTAL,0FFH;

测试是否为最后一个00H

JZA3

MOVCX,77FFH;

延时播放当前音符

PUSHAX

LOOPA2

JMPA1;

转A1播放下一个音符

MOVBX,OFFSETTABLE;

取第一个时常数,重新播放

(1)关闭电源,按图接线,检查无误后打开电源。

(3)运行程序,注意听扬声器发出的音乐声。

思考题:

1、在将计数初值赋给8253后,马上就可以启动并进行定时或计数吗?

答:

不会马上就可以启动并进行定时

2、假设8253的通道1输入时钟频率为2MHz,现在需要使用其作为分频器,输出62.5KHz频率的时钟,则应设置计数初值(分频系数)为多少?

应采用哪种工作方式?

请写出初始化程序。

MOVAL,57H

OUT27H,AL

MOVAL,32H

OUT25H,AL

通过本次实验,熟悉了8253定时器/计数

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

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

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

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