东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx

上传人:b****4 文档编号:6498616 上传时间:2023-05-06 格式:DOCX 页数:53 大小:1.10MB
下载 相关 举报
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第1页
第1页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第2页
第2页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第3页
第3页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第4页
第4页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第5页
第5页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第6页
第6页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第7页
第7页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第8页
第8页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第9页
第9页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第10页
第10页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第11页
第11页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第12页
第12页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第13页
第13页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第14页
第14页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第15页
第15页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第16页
第16页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第17页
第17页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第18页
第18页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第19页
第19页 / 共53页
东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx

《东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx(53页珍藏版)》请在冰点文库上搜索。

东北大学秦皇岛分校计算机接口技术实验报告Word文档下载推荐.docx

SP/EN

CAS0CAS1CAS2

/INTA

INT

 

CPU

Vcc

D7~D0

系统上电时,ROMBIOS对8259A的主片和从片要执行初始化命令、惊醒初始化操作。

【注意】:

从系统安全性考虑,用户在使用系统中断资源时不应当在对其初始化,更不能擅自修改初始化设计。

使用者只有严格遵守这些协议和约定才能有效的开发出用户的中断资源。

2.中断向量和中断向量表:

当CPU响应某一个中断请求并转向对应的服务程序时是如何从主程序“准确”地跳转到对应的服务程序入口中的呢?

答案便是:

依靠“中断向量表”实现的。

为了方便中断的处理,将所有的中断入口地址存放在一个连续的存储区域,并按照中断类型号的顺序依次排放。

这样类似于一个数据表格的存储空间就称之为“中断向量表”。

在这个表中,每一个中断向量要占用4个连续的存储单元。

前两个单元(低地址)存放中断入口的偏移量;

后两个单元(高地址)存放段地址,这样256个中断向量攻占用了1024个存储单元。

8086/8088中断向量表的结构

类型0

类型1

类型255

0:

00000H

00004H

00008H

003FCH

IP偏移地址低位

IP偏移地址高位

CS段地址低位

CS段地址高位

类型码x4=向量首址

类型2

3.CPU获取中断类型码的方法:

(1).CPU内部中断时,由硬件电路自动提供;

(2).软中断INTn在指令的代码中提供;

(3).可屏蔽的外中断INTR通过硬件(8259A)提供;

可见不同类型的中断其类型码的获取方式各不相同

【小结】当CPU响应某一中断时,首先要将标志寄存器(16位)、当前的段寄存器CS和指令指针寄存器的内容压入堆栈(占用6个栈单元),然后根据中断类型码重新组装CS、IP值(即中断向量表的地址),通过中断向量表提供的中断服务程序入口地址(CS值和IP值),准确的跳转到中断服务程序的入口。

4.对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源:

中断源

中断类型号

中断功能

IRQ0

08H

时钟

IRQ1

09H

键盘

IRQ2

0AH

保留

IRQ3

0BH

串行口2

IRQ4

0CH

串行口1

IRQ5

0DH

硬盘

IRQ6

0EH

软盘

IRQ7

0FH

并行打印机

IRQ8

70H

实时时钟

IRQ9

71H

用户中断

IRQ10

72H

IRQ11

73H

IRQ12

74H

IRQ13

75H

协处理器

IRQ14

76H

IRQ15

77H

5.实验内容:

实验电路如图,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。

要求每按一次开关产生一次中断,在屏幕上显示一次“TPCAInterrupt!

”,中断10次后程序退出。

6.接线:

总线/MIRQx接单脉冲1/正脉冲

总线/SIRQx接单脉冲2/正脉冲

4.实验步骤及结果分析

代码如下:

datasegment

info1db'

masterIR3!

$'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,code

movds,ax

movdx,offsetint3

moval,0bh

movah,25h

int21h

inal,21h

andal,11110111b

out21h,al

here:

jmphere

int3procnear

pushax

pushds

pushdx

sti

movax,data

movdx,offsetinfo1

movah,9

moval,20h

out20h,al

cli

popdx

popds

popax

iret

int3endp

codeends

endstart

5.实验心得疑问建议

1.主片和从片的IMR地址是多少?

主片:

21h从片:

0a1h

2.主片和从片的ocw2地址是多少?

20h从片:

0a0h

3.主片和从片的ocw1地址是多少?

4.主片IR3的中断类型号和从片IR2的中断类型号是多少?

0bh0000:

002c从片:

72h0000:

01c8

5.如果只将主片的IR3的中断屏蔽打开,我们应该对哪个寄存器进行设置,设置的值应该是什么?

应该对控制寄存器进行设置设置的值为:

21h0f7h

6.如果只将从片的IR2的中断屏蔽打开,我们应该对哪个寄存器进行设置,设置的值应该是什么?

0a1h0fch

姓名:

班内序号:

实验日期:

计算机与通信工程学院专业:

计算机科学与技术

2实验名称:

8254计数器、定时器实验

掌握8254工作方式的基本工作原理、计数特点和编程方法。

TPC-ZK-II集成开发环境

计数器实验:

8253/8254内部结构:

1.三个16位“减一”计数单元:

分别称为CNT0、CNT1和CNT2。

三个计数器相互独立、可以工作在不同的方式。

每一个计数器都有对应的三条输入、输出信号线:

CLK外部计数脉冲输入线,OUT计数器溢出信号线和GATE门控输入信号线(控制计数器是否工作)。

2.控制寄存器:

芯片内部四个寄存器之一,占用一个寄存器单元的地址,由三个计数器共用。

只能写入不能读出,用于设定计数器的工作方式。

编程时在程序的初始化部分中,通过对该寄存器写入相应的命令字来设定对应计数器的工作方式。

124

223

322

421

520

6825319

718

817

916

1015

1114

1213

D0

D1

D2

D3

D4

D5

D6

D7

CLK0

GATE

OUT0

/WR

/RD

/CS

A1

A0

CLK2

GATE2

OUT2

8253/8254芯片引脚图

8253/8254的内部结构图

定时器0

GATE0

定时器1

CLK1

GATE1

OUT1

定时器2

数据

三态

缓冲

读写

逻辑

D0~D7

控制

寄存器

0010100000000

280h

283h

3.内部寄存器的地址定义:

芯片内部具有四个寄存器,CNT0、CNT1、CNT2和控制寄存器,它们都有不同的地址。

这些地址是由芯片的引脚A1、A0来设定,在系统中如果将A1、A0与地址总线的A1、A0连接,那么就会对应四个独立的I/O地址(参见表)

表存器的地址定义

A1A0

对应的寄存器

00

11

20

11

选中CNT0进行读写

选中CNT1进行读写

选中CNT2进行读写

选中控制寄存器进行写

4.8253/8254的编程命令:

作为可编程器件,8253/8254是通过命令字来控制其工作方式的,命令字有两类:

●初始化编程命令:

用于设定计数器的功能、工作方式;

●锁存读出命令:

用于读出计数器中的计数值,或计数器的状态(8254)。

(1)、8253/8254的初始化控制字:

用于设定8253/8254内部三个定时计数器的6中工作方式、计数模式和读写指示(参见图)。

01010100

54

14h

(2)、8253/8254的初始化编程:

在8253/8254工作之前,必须确定其工作方式、计数模式和读写指示等,这些都是通过向8253控制寄存器写入命令字来实现的。

对8253/8254初始化所包含的内容有:

●设置命令字:

命令字中包含了计数器的工作方式、计数模式等相关的设定等,是使用输出指令将对应的命令字写入8253的控制寄存器中来实现的;

●设置计数器的初值:

8253/8253为16位计数器。

16位初值的设定分为8位或16位设定两种方式,初值的设定应紧跟在“设置命令字”后。

在写入计数初值时应当与前面命令字中相关设定位(WR1、WR0)保持一致。

如:

当使用16位初值设定时(WR1、WR0=11),必须使用两条指令完成初值的写入,即先写低8位初值后再写高8位初值:

若采用8位初值设定时,当只写入高8位(WR1、WR0=10)时,则低8位自动清零;

同理若只写入低8位(WR1、WR0=01),则高8位自动清零(参见上图)。

●8253是一个可编程的定时计数器;

●8253具有三个计数器:

CNT0、CNT1和CNT2,还有一个控制寄存器,它们各占一个地址(由引脚A1、A0确定);

●在每一个计数器CNTi中,有三个部分构成:

初值寄存器CR、减一计数器CE和输出锁存器OL;

●初始化编程是8253正常工作的必要条件。

初始化编程操作的顺序是:

先想控制寄存器写入命令字,然后写入初值。

如果是16位初值时,必须是先写入低8位初值,然后再写入高8位初值;

●输出锁存命令(读计数器的计数值),将当前的计数器的计数值捕捉到“输出锁存器OL”中。

读命令对计数器的工作状态不会产生任何有影响。

5.按图连接电路,将计数器0设置为方式2,计数器初值为N(N<

=0FH),用手逐个输入单脉冲,编程使计数值在屏幕上显示,用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

并将计数过程记录下来。

6.接线:

8254/CLK0接单脉冲/正脉冲

8254/CS接I/O译码/Y0(280H---287H)

8254/OUT0接LED显示/L7

8254/GATE0接+5V

定时器实验:

1.按下图连接电路,将计数器0、计数器1分别设置工作方式,CLK0连接时钟1MHZ,由T01000分频后变为1000HZ,再由T1进行1000分频后得1HZ。

2.接线:

8254/CLK0接时钟/1MHz

8254/OUT0接8254/CLK1

8254/GATE0,GATE1接+5V

8254/OUT1接逻辑笔

计数器实验

c8253equ283h

z8253equ280h

movdx,c8253

moval,14h

outdx,al

movdx,z8253

moval,9

s:

inal,dx

addal,30h

movdl,al

movah,2

jmps

结果截图:

定时器实验

k8253equ283h

o8253equ281h

infodb'

MasterIr3!

inal,21h

andal,11110111b

out21h,al

movdx,k8253

moval,36h

movax,1000

moval,ah

moval,77h

movax,1000h

movdx,o8253

here:

int3proc

movdx,offsetinfo

endstart3

1.计数器0的初值寄存器和计数寄存器的端口地址?

280h,283h

2.控制寄存器的的端口地址,以及应该设置的值为多少?

281h,9

3.L7灯怎么变化?

计数从9到2时亮,到1时灭

__________姓名:

___________班内序号:

_________实验日期:

_____________

___计算机与通信工程学院___专业:

_____计算机科学与技术__________

___3____实验名称:

_8255并行I/O输入/输出实验,8255方式1选通实验,8255方式1中断输出实验,8255方式1中断输入实验__

1、了解8255芯片结构及编程方法。

2、了解8255输入/输出实验方法。

8255并行I/O输入/输出实验:

8255是Intel公司生产的可编程外围接口电路,简称PPI。

它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。

这24根端口线全部为双向三态。

三个端口可分二组来使用,可分别工作于三种不同的工作方式。

1、将实验的线路连接好后,编程,将8255的C口作为输入,输入信号由8个逻辑电平开关提供,A口作为输出,其内容由发光二极管来显示。

2、编程从8255C口输入数据,再从A口输出。

3、接线:

8255/JP8(PC7---PC0)接逻辑开关/JP1(K7---K0)

8255/JP6(PA7---PA0)接LED显示/JP2(L7---L0)

8255/CS接I/O译码/Y1(288H---28FH)

8255方式1选通实验:

8255方式1是一种具有专用联络线的选通输入输出方式。

只有A口和B口作为数据口,C口的位线分别做A口和B口的联络线。

C口联络线的定义是固定的,编程者必须按照要求使用、不能改变。

此方式常用于“中断”或“查询”方式进行数据传送。

方式1输入:

当A口或B口被设定为方式1输入时,两个口各指定C口的3根线作为为8255与外设之间的联络信号,这些信号线的定义是固定的。

联络线的定义如下:

/STB---选通输入信号,低电平有效。

当外设发来有效信号时,就把外设送来的数据锁存到端口的数据缓冲器中;

IBF---输入缓冲器“满”信号输出信号,高电平有效。

此信号可以向外设表明一个状态:

即外部的数据已经被8255A锁存到缓冲器中、但还没有被CPU取走,在这种情况下外设是不能再向8255A发送数据了。

只有当CPU执行INAL,DX指令读走数据后,IBF回零,外设才可发送下一个数据;

INTR---中断请求输出端,高电平有效。

此信号可以作为向CPU发出的申请信号,CPU可以利用中断服务程序将8255A中的数据读走。

当然INTR信号的产生是有条件的:

8255A中的INTE=1(中断允许位有效)。

INTE---中断允许位,在A口或B口被设定为方式1输入时,规定了PC4和PC2做端口A和端口B的中断允许位,可事先使用对C口“按位置位、复位”控制字来设定PC4和PC2的电平。

端口A的方式1输入结构及引脚定义

PA7~PA0

INTEA

IBFA

/STBA

INTRA

PC5

PC4

PC3

PC7

PC6

端口B的方式1输入结构及引脚定义

PB7~PB0

INTEB

IBFB

/STBB

INTRB

PC1

PC2

PC0

方式1输入方式的时序图详见下图。

a)当外设数据准备好、并检测到IBF为空时(IBF=0),将8位的并行数据送出,并发出“输入选通”信号/STB,8255A利用此信号将数据线上的并行数据进行锁存;

b)数据的锁存导致IBF=1(输入缓冲器满),该信号可以阻止外部设备继续向8255A输入数据,避免数据丢失;

c)如果中断是允许的(INTE=1),8255A则会向外部发出中断申请新号(INTR=1)。

当CPU检测到该信号,且利用中断服务程序将8255A中的数据使用INAL,DX指令读走后中断申请信号INTR=0、缓冲器满标志IBF=0;

d)外部设备检测到IBF=0后,就可以发送下一个字节的并行数据……。

方式1输出:

当A口或B口被设定为方式1输出时,两个口各指定C口的3根线作为为8255与外设之间的联络信号,这些信号线的定义是固定的。

/OBF---缓冲器满信号,低电平有效。

当8255A接收到CPU由OUTDX,AL指令送来的数据时,就通过该信号通知外部设备准备接收数据;

/ACK---外设送来的“应答”信号,低电平有效。

此信号表明外设已经收到了8255A发出的数据信号,它是对/OBF的一个应答信号;

此信号可以作为向CPU发出的申请信号,CPU可以利用中断服务程序向8255A发送下一个字节的数据。

8255A中的INTE=1(中断允许位有效),且输出缓冲器空(/OBF=1)和/ACK=1。

INTE---中断允许位(设置同方式1输入)。

方式1的输出方式时序图详见下图:

a)CPU通过执行指令OUTDX,AL将数据写入8255A,此时指令会产生/IOW信号,在/IOW信号的上升沿时/OBF=1,向外设通知8255A的输出缓冲期已满。

在/IOW上升沿时使INTR变低、撤销中断请求;

b)8255A的/OBF信号触发了外部设备对数据的读取,并产生一个应答信号负脉冲(/ACK=0)以表明外设已收到数据,在/ACK的上升沿时使8255A的中断请求信号有效(INTR=1);

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2