微机原理实验指导书

更新时间:2024-07-08 00:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机原理及其接口技术

实验 指 导 书

信息工程学院物理系

目 录

第一章 汇编语言程序上机实验快览 ......................... 1 1.1汇编语言程序上机应具备的工具软件 ................... 1 1.2 调试程序(DEBUG)功能简介 ......................... 1 1.3预习报告格式....................................... 3 1.4 实验报告格式 ...................................... 3 第二章 软件实验 ......................................... 4 实验一 Debug程序的使用 ................................ 4 实验二. 汇编语言上机环境及基本步骤 .................... 8 实验三 两个多位十进制数相加的实验 .................... 11 实验四 循环结构程序设计 .............................. 14 实验五 子程序设计 .................................... 16 第三章 硬件实验 ........................................ 18 3.1 DICE-8086K实验箱使用说明 ........................ 18 3.2 系统安装与使用 .................................. 19 实验一 存储器读写实验 ............................... 21 实验二 8259单级中断控制器实验 ....................... 24 实验三 8255A并行口实验 .............................. 29 实验四 定时器 / 计数器 .............................. 31 实验五 数码管显示实验 ............................... 33

第一章 汇编语言程序上机实验快览 微机原理及其接口技术实验

第一章 汇编语言程序上机实验快览

1.1汇编语言程序上机应具备的工具软件

汇编语言程序上机操作,必须经过文件的“建立-汇编-连接-执行”四个阶段。因此系统磁盘上还应具备下列工具软件。

1.全屏幕编辑程序。用以将程序键入内容,经编辑后生成源文件(.ASM)存盘。常用的编辑程序有EDIT.EXE,SK.EXE,WORD97。

2.宏汇编程序,如MS的MASM.EXE,用以将源文件(.ASM)汇编生成二进制代码的目标文件(.OBJ)、列表文件(.LST)、及符号交叉引用表文件(.CRF)。

3. 连接程序LINK.EXE。用以将目标文件(.OBJ)与欲使用的库文件(.LIB)及其它目标模块,连接装配生成一个可执行文件(.EXE)、及各段空间分配的列表文件(.MAP)。

4.调试程序DEBUG.COM。用以对.EXE或.COM文件进行调试,排错。

值得提出的是,人工输入的现成程序,或自编程序,难免不出现键入错误、疏漏错误、语法错误及逻辑错误。虽然在静态自查及汇编阶段均可被查出,但程序内在的逻辑功能性错误,还必须借助调试工具,在监测环境下动态运行程序时才能表露出来。因此程序调试这一环节必不可少。

1.2 调试程序(DEBUG)功能简介

<1>. A----行汇编

命令格式:A [起始地址]

(起始地址缺省时:前面未用过汇编命令,则从CS:100单元开始;前面已用过汇编命令,则仅紧接上述汇编的最后一个单元开始。) 退出A命令:+ 如:-A 0100 ↙

则可从CS:0100单元开始输入指令。

<2>. U----反汇编

命令格式:U [地址范围]

(如仅指定起始地址:则从指定的地址开始,反汇编32个字节;如未指定地址范围:则将上一个U命令的最后一个单元地址加1作为起始地址。) 如:-U 0030 ↙

则反汇编CS:0030单元开始的指令。

<3>. D----显示内存单元内容

(内容可为十六进制数或相应的ASCII 码字符) 命令格式:D [地址范围]

(显示指定内存单元中的十六进制数或相应的ASCII 码字符)。 如:-D 0010 ↙

则显示DS:0010单元的内容。 <4>. E----修改内存单元内容

1

第一章 汇编语言程序上机实验快览 微机原理及其接口技术实验

命令格式:E 始地址[字符串] 如:-E DS:100 AA BB ↙

则将AA、BB存入DS:0100――DS:0101单元。

<5>.R----检查修改寄存器内容 命令格式:R [寄存器名] 如:-R ↙

则显示所有寄存器内容、标志位状态及下一条指令。 如:-R AX ↙

则显示AX寄存器内容。如需修改,则输入1-4个十六进制数,再按回车。如不需修改,直接按回车。 如:-R F ↙

则显示八个标志位状态,如需修改,则输入此标志位的相应值,再按回车。如不需修改,直接按回车。

<6>.G----运行――连续运行或设断点运行

命令格式:G [=起始地址][断点地址] (断点地址必需是有效指令的第一个字节) 若缺省“=起始地址”,则以CS:IP(现行地址)为起始地址,程序执行到断点处,显示断点处所有寄存器内容和八个标志位状态,以及下一条指令。 如:-G 9 ↙

(断点地址为0009)若缺省“断定地址”,程序顺序执行完毕,显示:Program terminated normally (程序执行完毕)。 如:-G ↙

若前面已设过断点,然后程序再顺序执行完毕。

<7>.T----跟踪――单步运行 命令格式:T [=起始地址][N](指令条数)若缺省“=起始地址”,则以CS:IP(现行地址)为起始地址, 程序执行N条指令后,显示断点处所有寄存器内容和八个标志位状态,及下一条指令。 如:-T 5 ↙ 则执行5条指令。 如:-T ↙

则只执行一条指令。

注意:若调试程序中有过程调用(包括软中断调用INT N 指令),则需使用P命令。(如用T命令,程序进入调用子程序内。 如:-P ↙

则执行一条指令或一个子程序。

<8>.Q----退出 如:-Q↙

退出DEBUG返回DOS状态。

2

第一章 汇编语言程序上机实验快览 微机原理及其接口技术实验

1.3预习报告格式

1. 2. 3. 4. 5. 6. 7.

实验目的与要求 实验内容 实验仪器

实验原理(软件实验画流程图,硬件实验画电路图) 实验步骤 实验源程序

实验现象或结果记录

1.4 实验报告格式

1. 2. 3. 4. 5. 6. 7.

实验目的与要求 实验内容 实验仪器

实验原理(软件实验画流程图,硬件实验画电路图) 实验步骤 实验源程序

实验总结(实验现象或实验结果;实验过程遇到的问题如何解决?实验体会,思考题解答等)

3

第二章 软件实验 微机原理及其接口技术实验

第二章 软件实验

实验一 Debug程序的使用

一、实验目的

1. 学习使用DEBUG调试命令。 2. 学习用DEBUG调试简单程序。

3. 通过程序验证码制及其对标志位的影响。 4. 通过调试熟悉和掌握个寄存器的作用与特点。 二、实验内容

用DEBUG调试简单程序。 三、实验仪器

微机一台 四、实验步骤

1.由DOS进入DEBUG调试环境。 (1) C:>DEBUG将调试程序装入内存

注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG的状态提示符,表示可以接受调试子命令了。

(2) -R 显示CPU中各寄存器当前初始内容,请记录下列各项: AX= DS= OF BX= ES= DF IF CX= SS= SF DX= SP= ZF BP= CS= AF SI= IP= PF DI= CF FLAG寄存器中的8个标志位状态值是: 说明:

1) 此时,调试工作区的四个段值相同,指向同一起点,表明公用一个64KB空间;

2) SS:SP指向堆栈顶单元,SP为FFFE或FFEE,正好是本段的最高可用地址,表明堆

栈自动使用最高地址,栈区由底向上生长; 3) CS:IP为约定的调试工作区地点(IP=0100),可由此装入待调试程序代码,或汇编键

入的程序小段,工作区由低址往下使用;

4) DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。 标志位含义 OF溢出 DF方向 IF中断 SF符号 ZF全零 AF辅助进位 PF奇偶性 CF进位

‘1’的对应符号 OV有 DN递减 EI允许 NG负 ZR零 AC有 PE偶 CY有 4

‘0’的对应符号 NV无 UP递增 DI禁止 PL正 NZ非零 NA无 PO奇 NC无 第二章 软件实验 微机原理及其接口技术实验

(3) 结束程序,返回DOS。 -Q

2.用DEBUG调试简单程序

例1 -A CS:0106 MOV AX,1234

MOV BX,2345 MOV CX,0 ADD AX,BX MOV CX,AX INT 20

运行程序

(注:执行程序时IP应指向要执行的指令,需要修改时 -RIP 当前值

输入需要值 该处为0106

当然也可以在T或G命令中指出程序起始地址) -R 显示各寄存器当前内容及首条指令

-T3 跟踪执行三条赋值传送指令,记录寄存器及标志位变化 -T2跟踪执行相加及送和数指令,记录寄存器及标志位变化 -G 执行软件中断指令INT 20,机器将显示“程序正常终止”的信息,并显示“-”,表明仍处在DEBUG的调试控制状态下,注意未用T命令,因为我们不想进入到20H中断处理程序中去,P命令也可实现相同操作

实验现象记录:记录每条指令执行后各相关寄存器值及标志位状态

例2 -A CS:116

MOV AX,[0124] MOV BX ,[0126] ADD AX,BX MOV [0128],AX INT 20 DW 2222 DW 8888 DW 0

设置断点分段运行程序

-G=CS:116 11D 从指定入口运行程序,至断点11D停,可见两个数已取至AX,BX,但还没有求和

-G122 从上一断点运行至新断点停,已完成求和并存入指定结果单元 -G 完成程序 观看内存内容

-DCS:116 12A 显示本程序小段目标代码和数据单元内容 -UCS:116 12A 反汇编指定范围的内存内容-

5

第二章 软件实验 微机原理及其接口技术实验

实验现象记录:通过反汇编,记录程序执行前指定范围的内存内容,并记录每条指令执行后各相关寄存器值及指定范围的内存内容)

例3 -A CS:0192

MOV DX,19B MOV AH,9 INT 21 INT 20

DB ?HELLO,WORLD! $? -P 命令单步执行

实验现象记录:观察每条指令执行后各寄存器的变化,记录DX,AX的变化。

思考:根据程序输入情况,考虑‘HELLO,WORLD!$’在内存中的ASCⅡ码和地址范围

-D

ASCⅡ码为: ;

例4 自己设计一段小程序验证补码的加法、进位、溢出的概念; 参考程序(可对数据进行修改): -A CS:0100 MOV AL,74 ADD AL,70 MOV AL,7A ADD AL,94 MOV AL,43 ADC AL,65 INT 20

-P命令单步执行

实验现象记录:记录每条指令执行后AX及标志位变化

例5

1. 使用R命令,实现AX=0108,BX=F1AA -R -R

2.编辑下列程序 -A CS:0100 XCHG AL,BH SUB AX,BX AAS INT 20

-P 命令执行单步执行

实验现象记录:记录每条指令执行后,AX、BX以及标志位的变化。

6

第二章 软件实验 微机原理及其接口技术实验

例6 执行下列程序,用P命令或T命令跟踪 -A CS:0100 MOV AX,0200 MOV DX,1E4F

CALL AX ;调用子程序 MOV DX,167C ADD DH,DL MOV [0300],DX INT 20

;********下面是子程序段******** -A CS:0200 PUSH AX MOV AX, 010B POP AX RET

实验现象记录:1)跟踪执行程序,观察在子程序调用过程中

IP SP 堆栈区域内容 2)程序运行完毕后DS:[0300]中的内容为 3)如果去掉POP AX,程序执行后DS:[0300]中内容为

7

第二章 软件实验 微机原理及其接口技术实验

实验二. 汇编语言上机环境及基本步骤

一、实验目的:

1. 掌握编写汇编源程序的基本格式。 2. 熟悉汇编语言上机环境。

3. 掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。

4. 掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。 二、实验内容:

在屏幕上显示并打印字符串“This is a sample program.” 三、实验仪器

微机一台 四、实验步骤:

1.在E盘以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字符比如zhangsan),将文件MASM.EXE,LINK.EXE复制到该目录下,编辑的源文件也保存到该目录下。

从WINDOWS进入DOS环境:C:\\>

2.用EDIT编辑SW1.ASM源文件。 (1). 从当前目录进入自己的目录下,

C:\\>E: 回车

E:\\> CD zhangsan ↙回车 键入EDIT并回车: E:\\ zhangsan>EDIT

根据菜单提示进行各种操作。

(2)进入EDIT编辑------EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另存源程序非

常方便。

说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,不能选择文本文件(*.txt),否则在编译时会找不到源文件的。 (3).编辑新文件:

a、在EDIT编辑器中输入汇编源程序。 b、检查输入有无错误。

c、打开文件菜单FILE?选择另存为SAVE AS┅?输入文件名为:SW1.ASM?保存。 注意:保存到你自己的文件夹中

d、若需要修改此文件,用FILE菜单?选择打开OPEN?输入文件名SW1.ASM,即可修改。修改

后注意重新再存盘。

(4).编辑汇编源程序

a、在EDIT(或记事本)中输入源程序。 b、检查。

c、存盘。可保存为SW1.ASM

3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。 (1).一般简单程序只需生成.OBJ文件,可键入简化命令: E:\\zhangsan>MASM SW1;↙

8

第二章 软件实验 微机原理及其接口技术实验

实验四 循环结构程序设计

一 、实验目的

1. 掌握循环程序的结构及执行过程; 2. 掌握循环控制指令的功能;

3. 掌握循环程序设计方法与调试方法。 二、实验内容

1.单重循环程序设计。

已知当前数据段中DATA1和DATA2开始分别存放若干字节数据,数据个数相同,编制程序检查数据块中的数据是否相同,若相同,则在屏幕上显示1;否则显示0。 三、实验仪器

微机一台 四、实验原理

五、实验步骤

1.编辑、汇编、连接生成可执行文件; 2.在DOS状态下启动该程序;

3.在DEBUG状态下调试研究程序工作过程. 六、实验源程序 参考程序

;************EXAM.ASM***************** DSEG SEGMENT

DATA1 DB ?ABCDEFG3? DATA2 DB ?ABCDEF4G? CNT DW 8 DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG , DS:DSEG START: MOV AX, DSEG MOV DS, AX

MOV DL, 31H ;1的ASCII码送DL LEA SI, DATA1 LEA DI, DATA2 MOV CX, CNT DEC SI DEC DI AGAIN: INC SI INC DI

MOV AL, [SI] CMP AL, [DI] LOOPZ AGAIN JZ DISP DEC DL DISP: MOV AH, 2

14

第二章 软件实验 微机原理及其接口技术实验

INT 21H

MOV AH, 4CH ;返回DOS INT 21H CSEG ENDS

END START

2.双重循环程序设计

见教材p179 例题4-72

15

第二章 软件实验 微机原理及其接口技术实验

实验五 子程序设计

一、实验目的

1. 掌握子程序的结构和设计方法;

2. 掌握子程序的调用和返回指令的用法及执行情况; 3. 掌握在子程序调用时堆栈的变化情况; 4. 掌握主程序与子程序间参数传递的方法; 5. 掌握现场的保护与恢复方法。 二、实验内容

已知当前数据段中BUF开始分别存放若干二进制字节数据,编制程序将这些数据分别转换为十六进制数据在屏幕上显示出来,要求十六进制转换ASCII码用子程序实现。 三、实验仪器

微机一台 四、实验原理

五、实验步骤

1.编辑、汇编、连接生成可执行文件; 2.在DOS状态下启动该程序;

3.在DEBUG状态下调试研究程序工作过程. 六、实验源程序 ;CONV.ASM

DATA SEGMENT

BUF DB 0ABH,0CDH,0DEH,01H,02H,03H DB 3AH,4BH,5CH,6FH DATA ENDS

;***************************** CODE SEGMENT

ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV CX, 10 LEA BX, BUF AGAIN: MOV AL, [BX]

CALL HEX2ASC ;调用十六进制转换ASCII码子程序 ;******显示ASCII码******* PUSH CX MOV CX, DX

MOV DL, CH ;显示高位 MOV AH, 2 INT 21H

MOV DL,CL ;显示低位 MOV AH, 2 INT 21H

16

第二章 软件实验 微机原理及其接口技术实验

MOV DL,' ' ;显示空格 MOV AH,2 INT 21H POP CX INC BX

LOOP AGAIN

;******************************** MOV AH, 4CH ;返回dos INT 21H

;*******十六进制转换ASCII码子程序******** HEX2ASC PROC NEAR MOV DH,AL PUSH CX MOV CL,4 SHR DH,CL CMP DH,9 JBE NEXT1 ADD DH,7 NEXT1: ADD DH,30H MOV DL,AL AND DL,0FH CMP DL,9 JBE NEXT2 ADD DL,7

NEXT2: ADD DL,30H POP CX RET

HEX2ASC ENDP

;******************************** CODE ENDS

END START

17

第三章 硬件实验 微机原理及其接口技术实验

第三章 硬件实验

3.1 DICE-8086K实验箱使用说明

为了更好地满足微机原理与接口的教学与实验,启动计算机总厂有限公司成功开发了DICE-8086K超强型实验系统。8086K实验系统软、硬件配置完善,实验内容丰富,可进行四十多个实验项目。实验电路采用分模块、开放性设计,使实验电路配置灵活,所有实验程序全部调试通过,用户可直接运用。 3.1.1系统主要特点

1.采用主频为14.77MHZ的8088CPU为主CPU,并以最小工作方式构成系统。

2.配有二片61C256静态RAM构成系统的64K基本内存,地址范围为00000H-0FFFFH,其中00000H-0FFFFH监控占用。另配一片W27C512(64K)EP1存放监控程序,地址范围F0000H-FFFFF。

还配有一片W27C512 EP2存放实验程序,为实验系统独立运行进下载实验程序提供方便。 3.自带键盘、显示器,能独立运行,为实验程序调试带来方便。

4.配备Windows仿真调试软件,支持机器码、汇编、C等三种评议的开发和调试。 5.提供RS232异步通讯口,以连接IBM-PC机。

6.配有各种微机常用I/O接口芯片,定时/计数接口芯片8253、A/D转换接口芯片0809、D/A转换接口芯片0832、中断控制器8259、键盘显示接口8279、并行I/O接口芯片8255、通讯接口芯片8250、8251、485和DMA控制器8237等。

7.配备键盘、数码显示、发光二极管显示、开关量、LED16×16、LCD12864、温度压力、步进电机、直流电机、扬声器等入输出设备。

8.带有脉冲发生器、计数器电路、单脉冲发生器等常用电路。 9.可以单步、断点、全速调试各实验程序。

10.内置开关电源,为实验提供+5V/3A、±12V/0.5A直流稳压电源。 11.使用环境:环境温度0~+40℃ ,无明显潮湿,无明显振动碰撞。

12.配备USB接口的电子实验演示装置,通过编制程序,对模拟控制对象进行实时控制。 3.1.2 系统资源分配

8088有1兆存储空间,系统提供用户使用空间为00000H-OFFFFH,用于存放、调试实验程序。具体分配如下:

(1) 存贮器地址分配 系统监控程序区 监控/用户中断矢量 用户中断矢量 监控数据区 默认用户栈 用户数据/程序区

18

F0000H~FFFFFH 00000H~0000FH 00010H~OOOFFH 00100H~00FFFH 00683H 01000H~0FFFFH

第三章 硬件实验 微机原理及其接口技术实验

(2) I/O地址分配 地址 8000H~8FFFH 9000H~9FFFH 0FF20H 0FF21H 0FF22H 0FF23H 0FF28H 0FF29H 0FF2AH 0FF2BH 60H 70H 80H 扩展名称 自定义 自定义 8255PA口 8255PB口 8255PC口 8255控制口 8255PA口 8255PB口 8255PC口 8255控制口 EX1 EX4 EX6 用途 实验用口地址 实验用口地址 字位口 字形口 键入口 写方式字 扩展用 扩展用 扩展用 写方式字 实验用口地址 实验用口地址 实验用口地址 监控占用00004H-0000FH作为单步(T)、断点(INT3)、无条件暂停(NM1)中断矢量区,用户也可以更改这些矢量,指向用户的处理,但失去了相应的单步、断点、暂停等监控功能。 F0000H-FFFFFH监控程序区系统占用。 3.1.3系统配置

系统内含串行通讯和键盘显示监控的全部软硬件设施,典型配置如下: (1) 主机板+PC机 (2) 主机板

二种配置的使用特点如下:

配置一:主机板和PC机通过RS232串行口相连。这种配置形式可以充分利用 IBM PC机的软硬件资源,实现源程序的编辑、汇编和链接和调试。实验程序源文件(·ASM)、执行文件(·EXE)、都在随机光盘上,你可以利用PC机的键盘显示等输入输出设备完成各种软硬件实验。

配置二:为最经济配置,它不需要和IBM PC机联机,自成一体,通过一组键盘命令完成所有软硬件实验,每个实验程序固化在实验监控中。这种配置为没有PC机的用户带来极大方便。

3.2 系统安装与使用

1、把系统开关设置为出厂模式

(1)SW3、SW4、SW5:为键盘/显示选择开关,开关置ON(出厂模式),键盘/显示控制选择系统配置的8255接口芯片,反之由用户选择自定义的I/O接口芯片控制,在本机实验中,除8279实验外,键盘/显示为出厂模式。

(2)KB6:通讯选择开关,KB6->SYC-C为系统通讯(出厂模式),KB6-> EXT-C为扩展通讯。

2、将随机本着的串行通讯线,一端与实验仪的RS232D型控插座CZ1相连,另一端与PC机COM1或COM2串行口相连。

3、接通实验系统电源的,+5V LED指示灯应正常发光,实验仪数码应显示闪动P.,说明实验仪初始化成功,处于待命状态.(否则应及时关闭电源,等修正常后使用。)

19

第三章 硬件实验 微机原理及其接口技术实验

4、打开PC机电源,执行8086K的集成调试软件,关于该软件的详细说明参阅《第五章 8086K实验系统与PC机联机操作》。

20

第三章 硬件实验 微机原理及其接口技术实验

实验一 存储器读写实验

一、实验目的

1. 熟悉实验箱及集成开发环境的使用方法;

2. 熟悉静态RAM的使用方法,掌握8088微机系统扩展RAM的方法; 3. 掌握静态RAM读写数据编程方法。 二、实验内容

对指定地址区间的RAM(4000H~43FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~53FFH中。 三、实验接线图(系统中已连接好) 四、实验步骤

1. 2. 3. 4.

在PC机和实验系统联机状态下,编辑源程序。

从存储器窗口检查和记录4000H~43FFH中的内容和5000~53FFH中的内容。 对源程序进行编译和装载,生成可执行文件。

对可执行文件进行调试,调试方法有:单步,宏单步,自动单步,自动宏单步,注

意这些方法之间的区别。

5. 连续运行实验程序。

6. 从存储器窗口检查和记录4000H~43FFH中的内容和5000~53FFH中的内容,比

较程序运行前、后存储器内容的变化情况。 五、实验程序清单

CODE SEGMENT ;RAM.ASM ASSUME CS:CODE

PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 1850h

START: JMP START0 BUF DB ?,?,?,?,?,?

data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH ;共阳极段码 START0: MOV AX,0H MOV DS,AX MOV BX,4000H MOV AX,55AAH MOV CX,0200H RAMW1: MOV DS:[BX],AX

21

第三章 硬件实验 微机原理及其接口技术实验

ADD BX,0002H LOOP RAMW1 MOV AX,4000H MOV SI,AX MOV AX,5000H MOV DI,AX MOV CX,0400H CLD REP MOVSB call buf1 mov cx,0ffh con1: push cx call disp pop cx loop con1 call buf2 con2: call disp jmp con2

DISP: MOV AL,0FFH MOV DX,PA OUT DX,AL MOV CL,0DFH ;20H MOV BX,OFFSET BUF DIS1: MOV AL,[BX] MOV AH,00H PUSH BX MOV BX,OFFSET DATA1 ADD BX,AX MOV AL,[BX] POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX

DIS2: MOV CX,00A0H LOOP $ POP CX CMP CL,0FEH ;01H JZ LX1 INC BX ROR CL,1 ;SHR CL,1 JMP DIS1

;00H ;显示子程序 ,5ms 22

第三章 硬件实验 微机原理及其接口技术实验

LX1: MOV AL,0FFH MOV DX,PB OUT DX,AL RET

BUF1: MOV BUF,06H ; 显示“6” MOV BUF+1,02H ; 显示“2” MOV BUF+2,02H ; 显示“2” MOV BUF+3,05H ; 显示“5” MOV BUF+4,06H ; 显示“6” MOV BUF+5,17H ; 显示“-” RET

BUF2: MOV BUF,17H ;显示“-” MOV BUF+1,17H ;显示“-” MOV BUF+2,09H ;显示“g” MOV BUF+3,00H ;显示“o” MOV BUF+4,00H ; 显示“o” MOV BUF+5,0dH ; 显示“d” RET CODE ENDS END START

附:LED数码管接口电路

1. 8255口地址为:A口,

字位口,地址为0FF20H; B口,字形码(段码)口,地址为0FF21H; 控制口,地址为0FF23H 2. LED显示接口采用动

态显示方式。段码采用74LS240反向驱动,数码管为共阴极结构,故应向PB口送共阳极段码;字位口采用与门75451驱动,故字位码送PA口(0电平选通) 3. 共阳极段码如下表所示。 字形 段码

C0 F9 A4 B0 99 92 82 F8 80 90 88 83 C6 A1 86 8E FF 0C 89 7F BF 0 1 2 3 4 5 6 7 8 9 A B C D E F 灭 P. H . - 23

第三章 硬件实验 微机原理及其接口技术实验

实验二 8259单级中断控制器实验

一、实验目的

⒈ 掌握8259中断控制器的接口方法。 ⒉ 掌握8259中断控制器的应用编程。 二、实验内容

利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。 三、实验接线图

四、编程指南 ⑴ 8259芯片介绍

中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

⑵ 本实验中使用3号中断源IR3, “

”插孔和IR3相连,中断方式为边沿触发方

式,每拨二次AN开关产生一次中断,满5次中断,显示“8259——good”。

24

第三章 硬件实验 微机原理及其接口技术实验

五、 程序框图

IR3中断服务

六、实验步骤

1、按接线图连好实验线路图。 ⑴8259的INT连8088的INTR(Xl5); ⑵8259的INTA连8088的INTA(Xl2);

⑶“ ”插孔和8259的3号中断IR3插孔相连,“ ”端初始为低电平; ⑷8259的CS端接EX1;

⑸连JX4→JX17。

2、在系统处于命令提示符“P.”状态下,运行实验程序,系统显示8259-1。 3、来回拨动AN开关按钮, 按满l0次显示good。

七、实验程序清单

CODE SEGMENT ;H8259.ASM ASSUME CS:CODE

INTPORT1 EQU 0060H ;8259命令字偶地址 INTPORT2 EQU 0061H ;8259命令字奇地址 INTQ3 EQU INTREEUP3 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口

25

第三章 硬件实验 微机原理及其接口技术实验

ORG 12D0H

START: JMP START0

BUF DB ?,?,?,?,?,? ;要显示的字符送缓冲区 intcnt db ? ;中断次数

data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH ;数码管LED段码表 START0: CLD CALL BUF1 CALL WRINTVER ;写中断向量 MOV AL,13H ;写初始化命令字ICW1 MOV DX,INTPORT1 OUT DX,AL MOV AL,08H ;写初始化命令字ICW2,确定中断类型号 MOV DX,INTPORT2 OUT DX,AL MOV AL,09H ;写初始化命令字ICW4 OUT DX,AL MOV AL,0F7H ;写操作命令字OCW1,允许IR3中断,屏蔽其它中断 OUT DX,AL MOV intcnt,01H ;中断次数赋初值 STI ;开中断 WATING: CALL DISP ;显示字符 8259-1 JMP WATING

WRINTVER:MOV AX,0H ;向中断向量表写中断向量 MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSW MOV AX,0000h STOSW RET

INTREEUP3:CLI ;中断IR3服务程序 push ax push bx push cx push dx MOV AL,INTCNT CALL CONVERS ;中断次数送BUF MOV BX,OFFSET BUF MOV AL,10H MOV CX,05H

INTRE0: MOV [BX],AL INC BX LOOP INTRE0

26

第三章 硬件实验 微机原理及其接口技术实验

MOV AL,20H MOV DX,INTPORT1 OUT DX,AL ADD INTCNT,01H CMP INTCNT,06H JNA INTRE2

CALL BUF2 ;显示:good INTRE1: CALL DISP JMP INTRE1

CONVERS: AND AL,0FH MOV BX,offset buf ;077AH MOV [BX+5],AL RET

INTRE2: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL pop dx pop cx pop bx pop ax STI IRET

;*********显示子程序********** DISP: MOV AL,0FFH ;00H MOV DX,PA OUT DX,AL MOV CL,0DFH ;20H MOV BX,OFFSET BUF DIS1: MOV AL,[BX] MOV AH,00H PUSH BX MOV BX,OFFSET DATA1 ADD BX,AX MOV AL,[BX] POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX

DIS2: MOV CX,00A0H

;显示子程序 ,5ms 27

第三章 硬件实验 微机原理及其接口技术实验

LOOP $ POP CX CMP CL,0FEH ;01H JZ LX1 INC BX ROR CL,1 ;SHR CL,1 JMP DIS1

LX1: MOV AL,0FFH MOV DX,PB OUT DX,AL RET

;***********显示8259-1字符送BUF************* BUF1: MOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,09H MOV BUF+4,17H MOV BUF+5,01H RET

;***********显示good字符送BUF*********** BUF2: MOV BUF,09H MOV BUF+1,00H MOV BUF+2,00H MOV BUF+3,0dH MOV BUF+4,10H MOV BUF+5,10H RET

CODE ENDS END START

28

第三章 硬件实验 微机原理及其接口技术实验

四、实验程序框图

五、实验步骤

1. 在PC机和实验系统联机状态

下,编辑源程序。

2. 3. 4. 5.

对源程序进行编译和调试。 装载并运行实验程序。 观察和记录实验现象

对显示延时时间常数进行修改,将“MOV CX,00A0H”改为“MOV CX,0FFFFH”,并对源程序重新编译和运行,观察和记录实验现象。 6. 对两次实验现象进行比较和

分析,解释出现不同现象的原因。

六、实验程序清单

;*********** LED_DIS.ASM 显示\

CODE SEGMENT

ASSUME CS:CODE ORG 2DF0H START: JMP START0 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 BUF DB ?,?,?,?,?,? ;显示缓冲区

DATA1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH ;段码区 START0: CALL BUF1 ;调用子程序,给显示缓冲区送”DICE88”字符 CON1: CALL DISP ;调用显示子程序,显示”DICE88” JMP CON1

DISP: MOV AL,0FFH ; 熄灭段码送AL MOV DX,PA ; 字位口地址送DX OUT DX,AL ;关LED显示 MOV CL,0DFH ;字位码送CL

MOV BX,OFFSET BUF ;显示缓冲区首地址送BX DIS1: MOV AL,[BX] MOV AH,00H

34

第三章 硬件实验 微机原理及其接口技术实验

PUSH BX

MOV BX,OFFSET DATA1 ;段码区首地址送BX ADD BX,AX

MOV AL,[BX] ;形成对应字符的段码 POP BX

MOV DX,PB ;字形口地址 OUT DX,AL ;PB口送字形 MOV AL,CL MOV DX,PA

OUT DX,AL ;向字位口送字位码 PUSH CX

DIS2: MOV CX,00A0H ;显示时间常数送CX LOOP $ ;显示延时 POP CX

CMP CL,0FEH ;01H ;六位是否显示完 JZ LX1

MOV AL, OFFH ;关显示 MOV DX, PA OUT DX, AL INC BX

ROR CL,1 ;字位码循环移位 JMP DIS1

LX1: MOV AL,0FFH ;关显示 MOV DX,PB OUT DX,AL RET

BUF1: MOV BUF,0DH ;子程序,给显示缓冲区送”DICE88”字符 MOV BUF+1,01H MOV BUF+2,0CH MOV BUF+3,0EH MOV BUF+4,08H MOV BUF+5,08H RET CODE ENDS END START

35

本文来源:https://www.bwwdw.com/article/uui.html

Top