接口实验.docx

上传人:b****6 文档编号:8561428 上传时间:2023-01-31 格式:DOCX 页数:24 大小:203.82KB
下载 相关 举报
接口实验.docx_第1页
第1页 / 共24页
接口实验.docx_第2页
第2页 / 共24页
接口实验.docx_第3页
第3页 / 共24页
接口实验.docx_第4页
第4页 / 共24页
接口实验.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

接口实验.docx

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

接口实验.docx

接口实验

计算机09级微机接口实验报告

 

班级:

09065801

学号:

0906840534

姓名:

温泉

实验一汇编语言程序设计实验

一、实验目的

熟悉汇编语言程序设计及TD-PITE80X86实验环境的使用。

二、实验设备

PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。

三、实验内容

2.在数据段的3000H开始的存储单元中写入“0-9”的ASCII码值,将它们传送到同一段的4000H开始的存储单元中。

四、实验步骤

(1)完成汇编程序格式,编写实验程序。

(2)编译、链接无误后装入系统。

(3)先运行程序,待程序运行停止。

(4)通过键入D命令查看程序运行的结果。

(5)可以反复测试几组数据,观察结果,验证程序的正确性。

五、实验代码

STACKSSEGMENTSTACK;堆栈段

DW128DUP(?

);注意这里只有128个字节

STACKSENDS

DATASSEGMENT;数据段

BUFFERDB'0','1','2','3','4','5''6','7','8','9'

DATASENDS

CODESSEGMENT;代码段

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS;初始化

MOVDS,AX

MOVES,AX

MOVSI,3000H

MOVCX,10

MOVDI,0

TEMP:

MOVAL,BUFFER[DI]

INCDI

MOV[SI],AL

INCSI

LOOPTEMP

MOVSI,3000H

MOVDI,4000H

MOVCX,10

REPMOVSB

MOVAX,4C00H;退出程序

INT21H

CODESENDS

ENDSTART

实验二8259中断控制实验

一、实验目的

1.掌握8259中断控制器的工作原理。

2.学习8259的应用编程方法。

3.掌握8259级联方式的使用方法。

二、实验设备

PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。

三、实验内容及步骤

1.中断控制器8259简介

在Intel386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。

该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。

从片的INT连接到主片的IR2信号上构成两片8259的级联。

在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。

8259的内部连接及外部管脚引出如图2.1:

图2。

18259内部连续及外部管脚引出图

表2.1列出了中断控制单元的寄存器相关信息。

表2.1ICU寄存器列表

寄存器

口地址

功能描述

ICW1(主)

ICW1(从)

(只写)

0020H

00A0H

初始化命令字1:

决定中断请求信号为电平触发还是边沿触发。

ICW2(主)

ICW2(从)

(只写)

0021H

00A1H

初始化命令字2:

包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。

ICW3(主)

(只写)

0021H

初始化命令字3:

用于识别从8259设备连接到主控制器的IR信号,内部的从8259连接到主8259的IR2信号上。

ICW3(从)

(只写)

00A1H

初始化命令字3:

表明内部从控制器级联到主片的IR2信号上。

ICW4(主)

ICW4(从)

(只写)

0021H

00A1H

初始化命令字4:

选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。

OCW1(主)

OCW1(从)

(读/写)

0021H

00A1H

操作命令字1:

中断屏蔽操作寄存器,可屏蔽相应的中断信号。

OCW2(主)

OCW2(从)

(只写)

0020H

00A0H

操作命令字2:

改变中断优先级和发送中断结束命令。

OCW3(主)

OCW3(从)

(只写)

0020H

00A0H

操作命令字3:

使能特殊屏蔽方式,设置中断查询方式,允许读出中断请求寄存器和当前中断服务寄存器。

IRR(主)

IRR(从)

(只读)

0020H

00A0H

中断请求:

指出挂起的中断请求。

ISR(主)

ISR(从)

(只读)

0020H

00A0H

当前中断服务:

指出当前正在被服务的中断请求。

POLL(主)

POLL(从)

(只读)

0020H

0021H

00A0H

00A1H

查询状态字:

表明连接到8259上的设备是否需要服务,如果有中断请求,该字表明当前优先级最高的中断请求。

初始化命令字1寄存器(ICW1)说明见图2.2所示。

图2.2初始化命令字1寄存器

初始化命令字2寄存器(ICW2)说明见图2.3所示。

图2.3初始化命令字2寄存器

初始化命令字3寄存器(ICW3)说明,主片见图2.4,从片见图2.5。

图2.4主片初始化命令字3寄存器

图2.5从片初始化命令字3寄存器

初始化命令字4寄存器(ICW4)说明见图2.6。

图2.6初始化命令字4寄存器

操作命令字1寄存器(OCW1)说明见图2.7。

图2.7操作命令字1寄存器

操作命令字2寄存器(OCW2)说明如图2.8所示。

图2.8操作命令字2寄存器

操作命令字3寄存器(OCW3)说明如图2.9所示。

图2.9操作命令字3寄存器

查询状态字(POLL)说明如图2.10所示。

图2.10程序状态字寄存器

在对8259进行编程时,首先必须进行初始化。

一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。

8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。

在初始化主片8259时,写入初始化命令字的顺序是:

ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。

系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。

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

主片中断序号

0

1

2

3

4

5

6

7

功能调用

08H

09H

0AH

0BH

0CH

0DH

0EH

0FH

矢量地址

20H~23H

24H~27H

28H~2BH

2CH~2FH

30H~33H

34H~37H

38H~3BH

3CH~3FH

说明

未开放

未开放

未开放

未开放

串口

未开放

可用

可用

从片中断序号

0

1

2

3

4

5

6

7

功能调用

30H

31H

32H

33H

34H

35H

36H

37H

矢量地址

C0H~C3H

C4H~C7H

C8H~CBH

CCH~CFH

D0H~D3H

D4H~D7H

D8H~DBH

DCH~DFH

说明

未开放

可用

未开放

未开放

未开放

未开放

未开放

未开放

2.8259单中断实验

实验接线图如图2.11所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。

2.118259单中断实验接线图

实验程序示例

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

PUSHDS

MOVAX,0000H

MOVDS,AX;取中断入口地址

;中断矢量地址

……;填IRQ7的偏移矢量

;段地址

;填IRQ7的段地址矢量

CLI

POPDS

……;初始化主片8259

STI

AA1:

NOP

JMPAA1

MIR7:

STI

CALLDELAY

……;有中断就在屏幕显示一个字符

IRET

CODEENDS

ENDSTART

实验步骤

(1)按图2.11连接实验线路。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符相应字符,说明响应了中断。

四、实验代码

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

DATASEGMENT

SDB'H','e','l','l','o','W','o','r','l','d','!

',0DH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVBX,38H;获取中断入口地址

MOVAX,OFFSETMIR7;中断适量地址

MOV[BX],AX;填IRQ7偏移

MOVAX,SEGMIR7;段地址

INCBX

INCBX

MOV[BX],AX;段地址矢量

POPDS

CLI

MOVDX,20H;初始化8259A

MOVAL,11H

OUTDX,AL;ICW1

MOVAL,08H

MOVDX,21H

OUTDX,AL;ICW2

MOVAL,04H

OUTDX,AL;ICW3

MOVAL,01H

OUTDX,AL;ICW4

MOVDX,21H

MOVAL,0BFH;OCW1

STI

AA1:

NOP

JMPAA1

MIR7:

;显示所定义的字符串

MOVDX,OFFSETS

MOVAH,09H

INT21H

MOVDX,20H

MOVAL,20H

OUTDX,AL

IRET

CODEENDS

ENDSTART

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

一、实验目的

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

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

二、实验设备

PC机一台,TD-PITE实验装置或TD-PITC实验装置一套,示波器一台。

三、实验内容

计数应用实验。

编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’N次后,产生一次计数中断,并在屏幕上显示一个字符。

四、实验原理

8254是Intel公司生产的可编程间隔定时器。

是8253的改进型,比8253具有更优良的性能。

8254具有以下基本功能:

(1)有3个独立的16位计数器。

(2)每个计数器可按二进制或十进制(BCD)计数。

(3)每个计数器可编程工作于6种不同工作方式。

(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。

(5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。

(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

计数初值公式为:

n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。

图3.1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。

8254的工作方式如下述:

(1)方式0:

计数到0结束输出正跃变信号方式。

(2)方式1:

硬件可重触发单稳方式。

(3)方式2:

频率发生器方式。

(4)方式3:

方波发生器。

(5)方式4:

软件触发选通方式。

(6)方式5:

硬件触发选通方式。

图3.18254的内部接口和引脚

8254的控制字有两个:

一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。

这两个控制字共用一个地址,由标识位来区分。

控制字格式如表3.1—3.3所示。

表3.18254的方式控制字格式

D7

D6

D5

D4

D3

D2

D1

D0

计数器选择

读/写格式选择

工作方式选择

计数码制选择

00-计数器0

01-计数器1

10-计数器2

11-读出控制

字标志

00-锁存计数值

01-读/写低8位

10-读/写高8位

11-先读/写低8位

再读/写高8位

000-方式0

001-方式1

010-方式2

011-方式3

100-方式4

101-方式5

0-二进制数

1-十进制数

表3.28254读出控制字格式

D7

D6

D5

D4

D3

D2

D1

D0

1

1

0-锁存计数值

0-锁存状态信息

计数器选择(同方式控制字)

0

表3.38254状态字格式

D7

D6

D5

D4

D3

D2

D1

D0

OUT引脚现行状态

1-高电平

0-低电平

计数初值是否装入

1-无效计数

0-计数有效

计数器方式(同方式控制字)

8254实验单元电路图如下图所示:

图3.28254实验电路原理图

五、实验步骤

1.计数应用实验

编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符。

实验步骤:

1.实验接线如图3.3所示。

2.编写实验程序,经编译、链接无误后装入系统。

3.运行程序,按动KK1+产生单次脉冲,观察实验现象。

4.改变计数值,验证8254的计数功能。

图3.38254计数应用实验接线图

实验程序示例

A8254EQU06C0H

B8254EQU06C2H

C8254EQU06C4H

CON8254EQU06C6H

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

SSTACK

START:

;8259

……

;中断8259初始化

;8254

……;计数器8254初始化

STI

AA1:

JMPAA1

IRQ7:

……;中断服务程序

 

IRET

CODEENDS

ENDSTART

六、实验代码

;========================================================

;文件名:

TIMER.ASM

;功能描述:

8254计数器,按动KK1+5次后产生中断请求,在屏幕上显示字符

;========================================================

SSTACKSEGMENTSTACK

DW64DUP(?

SSTACKENDS

DATASEGMENT

STRINGDB'ILNUDT','$'

LEN=$-STRING

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX;初始化

;INITIAL8259A

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETMIR6

MOVBX,38H

MOV[BX],AX

MOVBX,3AH

MOVAX,SEGMIR6

MOV[BX],AX

NOP

NOP

;VECTOR

POPDS

MOVSI,OFFSETSTRING

MOVAL,11H

MOVDX,20H

OUTDX,AL

INCDX

MOVAL,08H

OUTDX,AL

MOVAL,04H

OUTDX,AL

MOVAL,01H

OUTDX,AL

;INITIAL8254

MOVDX,646H;CONTROL

MOVAL,50H

OUTDX,AL

MOVDX,642H;1

MOVAL,5;计数5次

OUTDX,AL

NOP

NOP

MOVBX,0

AA1:

JMPAA1

MIR6:

MOVDL,[SI]

MOVAH,02H

INT21H

INCSI

INCBX

MOVCX,12

CMPBX,CX

JZB

JMPC

B:

MOVSI,OFFSETSTRING

MOVBX,0

C:

MOVDX,642H;1

MOVAL,5

OUTDX,AL

NOP

MOVDX,20H

MOVAL,20H

OUTDX,AL

IRET

MOVAX,4C00H

INT21H;程序终止

CODEENDS

ENDSTART

 

实验四8255并行接口实验

一、实验目的

1.学习并掌握8255的工作方式及其应用。

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

二、实验设备

PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。

三、实验内容

1.基本输入输出实验。

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

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

2.流水灯显示实验。

编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

3.驱动数码管显示字符”0-9”。

编写程序,选择一个或多个数码管来显示0到9十个数字字符。

四、实验原理

图4.18255内部结构及外部引脚图

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:

方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。

8255的内部结构及引脚如图4.1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图4.2所示。

图4.28255控制字格式

8255实验单元电路图如图4.3所示:

图4.38255实验单元电路图

五、实验步骤

1.基本输入输出实验

本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。

用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。

具体实验步骤如下述:

(1)实验接线图如图4.34所示,按图连接实验线路图。

(2)编写实验程序,经编译、连接无误后装入系统。

(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。

图4.48255基本输入输出实验接线图

2.流水灯显示实验

使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

实验接线图如图4.5所示。

实验步骤如下所述:

(1)按图4.5连接实验线路图。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,观察LED灯的显示,验证程序功能。

(4)自己改变流水灯的方式,编写程序。

图4.58255流水灯实验接线图

3.驱动数码管显示“0-5”

(1)根据要求,自行连接实验线路图。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,观察数码管的显示,验证程序功能。

(4)改变数码管的显示方式,编写程序。

 

六、实验代码

SSTACKSEGMENTSTACK

DW64DUP(?

SSTACKENDS

DATASEGMENT

SDB3FH,06H,5BH,4FH,66H,6DH;0、1、2、3、4、5的字型码

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

;INITIAL

MOVDX,646H;CONTROL

MOVAL,80H;AOUT,B,OUTA、B口输出的方式

OUTDX,AL

MOVDX,640H

NOP

MOVAL,00H

OUTDX,AL

MOVDX,642H

MOVAL,0FEH

OUTDX,AL

MOVDX,640H;A口

B:

MOVCX,6;0、1、2、3、4、5共循环显示6次

MOVSI,OFFSETS

A:

MOVAL,[SI]

MOVDX,640H

OUTDX,AL

INCSI;显示下一个字形

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

LOOPA

JMPB;一直循环显示

MOVAL,00H

MOVAX,4C00H

INT21H;程序终止

DELAYPROC;供调用的延时子程序

PUSHCX

MOVCX,0FFFFH

M:

NOP

LOOPM

POPCX

RET

DELAYENDP

CODEENDS

ENDSTART

 

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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