您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页微机原理实验指导

微机原理实验指导

来源:百家汽车网
实验一 汇编语言上机基本步骤

一、实验目的:

熟悉汇编语言的上机过程,掌握各项工具软件的使用方法

二、实验环境:

1. 硬件:PC微机

2. 软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE

三、实验内容:

1. 前期准备:

在开始进行汇编语言上机练习之前,建立并进入自己的工作子目录,准备好相关工具软件如MASM.EXE、LINK.EXE等,其后所有工作均在自己的子目录中进行,以避免因路径概念不清而导致的文件存取错误,以及对系统其它部分造成影响。

1) 建立自己的工作子目录(例如MYTEST):

C:\\>MD MYTEST 2) 进入自己的工作子目录:

C:\\>CD MYTEST

3) 将所需工具软件从其它地方(如C:\\MASM)拷贝进自己的工作子目录:

C:\\MYTEST>COPY C:\\MASM\\MASM.EXE C:\\MYTEST>COPY C:\\MASM\\LINK.EXE 2. 编写源程序:

原则上可以用任何文字处理软件(如EDIT、写字板、甚至WORD)编写源程序,但必须注意,源程序应为ASCII码文件(或称纯文本文件),扩展名一般为.ASM。因此,建议使用DOS环境下的EDIT软件。

1) 在DOS系统操作提示符下键入EDIT并回车,即可进入EDIT文本编辑环境。如果

没有进入,检查当前路径下是否存在EDIT.EXE文件,以及文件是否完整等。 2) 从键盘输入下列程序(不必输入注释部分):

CODE SEGMENT ;定义一个CODE段

ASSUME CS:CODE ;定义CODE段为代码段

START: ;可执行语句起始处

MOV AH,02H ;以下三条语句将显示字母a

MOV DL,’a’

INT 21H

MOV AH,4CH INT 21H

;以下二条语句将返回DOS

CODE ENDS END START ;CODE段结束 ;整个程序结束

该程序的功能是仅在CRT屏上显示一个字母a,完成功能的只有其中的三条语句,但其它部分则是一个完整的汇编语言源程序必不可少的部分。

3) 存盘退出EDIT文本编辑环境。在存盘时应将文件的扩展名确定为.ASM(如

TEST.ASM),并注意存盘的路径,最好与EDIT、MASM、LINK等软件相同。 4) 在DOS系统提示符下利用DIR命令检查TEST.ASM文件是否确实产生。 3. 汇编:

利用MASM.EXE宏汇编程序,将已经存盘的ASCII码源程序翻译成二进制目标程序,其扩展名一般为.OBJ。

1) 操作方法:假定当前工作路径为C:\\MYTEST>,且所需文件均存在于当前路径,则

针对源程序TEST.ASM的汇编有以下三种方法(其中斜体部分由键盘输入):

a) C:\\MYTEST>MASM.EXE↘

Microsoft (R) Macro Assembler Version 5.00

Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Source filename [.ASM]:TEST↘

Object filename [TEST.OBJ]:↘ Source listing [NUL.LST]:↘

Cross-reference [NUL.CRF]:↘

51524 + 435132 Bytes symbol space free 0 Warning Errors 0 Severe Errors b) C:\\ MYTEST >MASM TEST.ASM↘

Microsoft (R) Macro Assembler Version 5.00

Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved. Object filename [TEST.OBJ]:↘ Source listing [NUL.LST]:↘ Cross-reference [NUL.CRF]:↘

51524 + 435132 Bytes symbol space free 0 Warning Errors 0 Severe Errors

c) C:\\ MYTEST >MASM TEST;↘

Microsoft (R) Macro Assembler Version 5.00

Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved. 51524 + 435132 Bytes symbol space free 0 Warning Errors 0 Severe Errors

2) 在上述三种方法中,推荐使用第三种,但是必须满足以下要求: a) 所有文件均位于当前工作路径下。

b) 源程序扩展名为.ASM,目标程序扩展名为.OBJ。

3) 若源程序有语法错误,则汇编结束将给出提示信息,并依次列出错误出现的行号及

性质。这时,应重新进入EDIT文本编辑环境中,根据提示对源程序进行修改,然后重新存盘、汇编。只有所有错误为0,才能得到正确的目标文件。注意该步骤只能检查出语法错误,对设计思想上的错误,应通过调试才能检查出来。 4) 汇编结束后,检查是否产生相应目标程序TEST.OBJ。 4. 连接:

利用LINK.EXE连接程序,将二进制目标程序整理成DOS系统下的可执行程序,其扩展名必须为.EXE。

1) 操作方法:与汇编相似,可有多种形式,一般使用:

C:\\ MYTEST >LINK TEST;↘

但需注意这时的TEST应是.TEST.OBJ文件。

2) 在得到正确的.OBJ文件后,该步骤一般不会出现问题,但可能会出现下列提示:

LINK:warning L4021:no stack segment

针对该提示,可不予理会。

3) 连接结束后,检查是否产生相应的可执行程序TEST.EXE。 5. 运行:

1) 如果没有问题,生成的可执行程序TEST.EXE即可以象其它DOS外部命令一样,

直接在DOS系统下运行,整个编程工作完成。如在本实验中: C:\\ MYTEST >TEST↘

2) 一般在编写较复杂的程序时,可能出现设计上的错误。如果不能在源程序中检查出

错误,则必须通过DEBUG调试,才能检查出错误所在,然后再回到前面的各个步骤中重复操作。在本实验中,由于程序简单,可以不必调试。

四、练习

1、对实验程序进行由浅及深的修改,领会上机的各个步骤及注意事项。 2、从键盘输入一个字符,进行大小写互换后显示。 3、从键盘输入两个个位数,相加,显示其和。

实验二 用DEBUG调试程序

一、实验目的

学习利用DEBUG调试程序的基本思想及方法

二、实验环境:

1. 硬件:PC微机

2. 软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE

三、实验内容

利用DEBUG调试程序,可以将一个可执行程序(如.EXE、.COM等)装入内存中,并接管对程序运行的控制权,通过采取如反汇编、断点运行、单步执行、寄存器内容修改等方法,对可执行程序进行跟踪、调试,以找出其中的设计错误,然后再对源程序进行相应修改,重新生成正确的可执行程序。 1. 准备被调试程序:

假定所有有关文件均在当前路径C:\\MYTEST>下,按照实验一的步骤生成一个被调试的可执行程序(如TEST.EXE),参考程序如下:

DATA SEGMENT

STR DB ‘Hello,World!$’

DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET STR MOV AH,09H

INT 21H MOV AH,4CH

INT 21H CODE ENDS END START

2. 进入DEBUG环境:(其中斜体部分由键盘输入。)

C:\\ MYTEST>DEBUG TEST.EXE↘ -

其中,短线‘-’作为DEBUG环境的操作提示符,在此提示符下,可以输入各种DEBUG

命令,对可执行程序TEST.EXE进行跟踪调试。 3. 主要调试命令:

1) 反汇编命令U:将存储器中的二进制数据翻译成较有意义的助记符形式,以帮助理

解。一般常用以下格式: a) -U↘:从当前IP处开始,对连续约32字节内容反汇编。如对TEST.EXE,刚装

入DEBUG时的IP=0000,则在输入U命令后有如下显示: -U↘

12B7:0000 B8B612 MOV AX,12B6 12B7:0003 8ED8 MOV DS,AX 12B7:0005 BA0000 MOV DX,0000 12B7:0008 B409 MOV AH,09 12B7:000A CD21 INT 21

12B7:000C B44C MOV AH,4C 12B7:000E CD21 INT 21 12B7:0010 EB51 JMP 0063

12B7:0012 8B867AF MOV AX,[BP+FF7A] „„ „„ „„

12B7:001F 8B4604 MOV AX,[BP+04]

-

在上例中,12B7:0000表示CS:IP的内容(其中CS的值是动态值);B8B612代表该处存放的二进制数据,亦即指令MOV AX,12B6的机器代码;当连续约32字节的数据反汇编完后,重新回到DEBUG提示符“-”下,如果再键入U命令,则将继续对后面的内存区反汇编。

特别应该注意的是,由于反汇编命令针对内存区的二进制数据,而被调试程序仅占内存区的某一部分,故反汇编出来的内容并非全是被调试程序的代码,如上例中的JMP 0063以后的部分,显然不是TEST.EXE的内容。另外还需注意,DEBUG默认使用十六进制。

b) –U 0123↘:从指定的IP=0123处开始,对连续约32字节内容反汇编。

c) –U 0123 0143↘:从指定的IP=0123处开始反汇编,直至指定的0143处结束。 2) 显示寄存器命令R:显示或修改寄存器的内容。一般常用以下形式:

a) -R↘:显示所有寄存器当前的内容及当前将执行的指令。如对TEST.EXE,在程

序运行之前,键入R命令: -R↘

AX=0000 BX=0000 CX=0020 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=12A6 ES=12A6 SS=12B6 CS=12B7 IP=0000 NV UP EI PL NZ NA PO NC 12B7:0000 B8B612 MOV AX, 12B6 -

在显示寄存器内容时,标志寄存器F(或程序状态字寄存器PSW)表示成各个分离的标志位,其意义如下表所示: 0 1 溢出 NV OV 方向 UP DN 中断 DI EI 符号 PL NG 零 NZ ZR 辅助进位 NA AC 奇偶 PO PE 进位 NC CY b) -R AX↘:显示指定的AX寄存器当前的内容,并等待键入新值;如果不作修改,

可直接回车。如: -R AX↘ AX 0000 :1234↘ -

c) -R F↘:显示标志寄存器F各个标志位的内容,并等待键入新的标志位;如果不

作修改,可直接回车。如: -R F↘

NV UP EI PL NZ NA PO NC -ZR↘ -

3) 运行命令G:使程序在DEBUG控制下运行,一般有全程、断点运行两种方式。 a) -G↘:控制程序由当前IP处运行,直至程序结束。如果当前IP为初始值,其作

用则相当于直接在DOS下运行程序,一般用于快速观察程序的运行情况。 b) -G 0123↘:控制程序由当前IP处运行,直至指定的断点IP=0123H处,程序暂

停,显示各个寄存器的当前值及断点处指令,然后返回DEBUG提示符“-”下。如对TEST.EXE,若想观察字符串显示的入口参数是否设置好,则可以断点运行至000A处: -G 000A↘

AX=09B6 BX=0000 CX=0020 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=12B6 ES=12A6 SS=12B6 CS=12B7 IP=000A NV UP EI PL NZ NA PO NC 12B7:000A CD21 INT 21 -

断点一般选取在需要观察的地方,当程序停下来后,可以根据各方面的情况(如寄存器、缓冲区、标志等)来判断程序是否运行正确。

4) 单步命令T:控制程序运行一条指令后暂停,显示各个寄存器的当前值及断点处指

令,然后返回DEBUG提示符“-”下。如对TEST.EXE,若当前IP为初始值,则键入T命令后有如下显示: -T↘

AX=12B6 BX=0000 CX=0020 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=12A6 ES=12A6 SS=12B6 CS=12B7 IP=0003 NV UP EI PL NZ NA PO NC 12B7:0003 8ED8 MOV DS,AX -

单步命令一般用于需对程序运行作仔细分析的地方,如判断分支转移、观察运算结果等。若能综合运用断点及单步指令,则可大大提高DEBUG 调试的速度及效率。但应注意,当IP指针位于INT 21H一类指令处时,执行T命令将会使程序进入该功能调用子程序中,因此,这种情况下最好不用T命令,而用断点运行命令跳过该类功能调用指令。

5) 显示内存命令D:以十六进制及ASCII两种方式显示内存区的二进制数据,通常

用来观察数据段内的缓冲区内容。一般常用以下二种形式:

a) -D↘:从0000单元开始,连续显示128个内存单元的内容,如果继续键入D命

令,则继续显示后128个单元内容。如对TEST.EXE,若想观察字符串显示时的字符串内容是否正确,则可在程序断点运行至000A处,键入D命令: -D DS:0↘

12B6:0000 48 65 6C 6C 6F 2C 57 6F-72 6C 21 24 00 00 00 Hello,World!$... 12B6:0010 B8 B6 12 8E D8 BA 00 00-B4 09 CD 21 B4 4C CD 21 ...........!.L.! 12B6:0020 EB 51 8B 86 7A FF 2B C6-40 50 8A 46 08 98 50 8B .Q..z.+.@P.F..P. „„ „„

12B6:0070 83 C4 02 8B 5E 04 8A 07-2A E4 86 7A FF 3B C6 ....^...*...z.;. -

在上例中,128个单元分成8行,每行16个单元,每个单元的内容分别以十六进制形式和ASCII码形式显示。如果该单元的内容不是可显示字符,则在ASCII区内显示为“.”。

b) –D 0123 0143↘:从指定的0123单元开始显示,直至指定的0143单元结束。 6) 汇编命令A:用于在DEBUG环境下直接键入汇编语言语句、生成较简单的可执行

代码而不必经过完整的汇编语言编程步骤,或者用来在调试过程中临时修改某条指令。如: -A↘

127D:0100 MOV AH,02↘ 127D:0102 MOV AL,6A↘ 127D:0104 INT 21↘ 127D:0106 ↘ -A 0102↘

127D:0102 MOV DL,6A↘ 127D:0104 ↘ -

当键入汇编命令A后,将从当前IP或指定地址处提示输入汇编语句,每输入一条语句,DEBUG将其汇编成机器码,并存入相应的存储单元中,然后地址自动增加,继续提示输入下一条语句;如果直接回车,则结束汇编命令。特别应注意的是,DEBUG默认使用十六进制,故在输入时不能使用H。

7) 装载命令L:用来将被调试程序重新装载进内存中,一般用于程序运行结束后需继

续调试程序时,或需从头开始调试程序时。如对TEST.EXE: -G↘

Hello,World!

Program terminated normally -L↘-

8)退出命令Q:键入此命令,即退出DEBUG状态,返回DOS。

4.练习:将内存数据段从2000H开始的连续100个字节的内容传送到附加段3000H开始的内存区域,在DEBUG下调试程序并查询运行的结果。

Dais实验系统概述

1.1系统组成

Dais系列微机仿真实验系统的8088/8086微机接口实验由管理CPU C52单元、目标CPU 8088/8086单元、接口实验单元和内置稳压电源组成,通过RS232C串行接口与PC微机相连,系统硬件主要配置如下: 系统管理 系统存储器 管理CPU C52(控制板/内置仿真器)、目标CPU 8088 监控在C52片内E2PROM(8K)、RAM62、RAM61256 1片(32K)、BPRAM 61256(32K) 8253、8255、8259、ADC0809、DAC0832、62、1、273、244、393分频、电子发声单元、电机控制单元、开关及发光二极管、单脉冲触发器、继电器控制、16×16点阵、8155扩展3×3键盘及四位LED显示、以及8251、8250串行通信等。 打印接口、RS232C串口、D/A驱动接口、步进电机驱动接口、音频驱动接口、PC总线接口、2×16 LCD液晶显示接口 6位/8位LED、双通道虚拟PC示波器 32键自定义键盘 对EPROM 27/27128快速读出 +5V/2A,±12V/0.5A 接口芯片及单元实验 外设接口 显示输出 键盘 EPROM操作 系统电源 1.2 系统功能与特点

1、自带键盘、显示器,能运行,也可以PC微机为操作台。两种工作方式任意选择,全面支持《微机原理及应用》、《微型计算机技术》等课程的实验教学。

2、系统采用紧耦合多CPU技术,用C52作为系统管理CPU,8088/8086作为目标机接口扩展实验CPU。

3、目标CPU 8088/8086采用主频为14.3818MHz,系统以最小工作方式构成。

4、配有1片62构成系统的8K基本内存,地址范围0F000:0000~07FFH,作为监控程序区和数据区:另配1片61C256(32K)作为实验程序空间,地址从0000:0000H~FFFFH(其中0~003FFH作为目标机中断向量区),还配一片61C256(32K)作为用户设置的断点区(BPRAM)。

5、实验项目完整丰富,与课程教学紧密结合,同时配有机电、温压、音响等实验对象,可支持控制应用类综合实验。

6、系统接口实验电路为单元电路方式,电路简捷明快,8位数据总线以排线或8芯扁平线形式引出,这样既减轻繁琐的连线工作,又提高学生的实验工作能力。

7、通过RS232通信接口,在Windows/DOS集成软件的支持下,利用上位机丰富的软件、硬件资源,实现用户程序的编辑、编译、调试运行,提高实验效率。

8、具有最丰富的调试手段,系统全面支持硬件断点,可无设置断点,同时具有单

步、宏单步、连续运行及无暂停等功能。

9、集EPROM操作功能,可对27/27128快速读出(软硬件实验所需的代码文件)。

1.3系统资源分配

实验系统寻址范围定义如下:

系统数据区 系统堆栈区 系统程序区 用户程序/数据区 用户堆栈区 中断向量区 系统已定义的I/O地址如下:

接口芯片 74LS273 74LS273 74LS245 8255A口 8255B口 8255C口 8255控制口 口地址 FFDDH FFDCH FFDEH FFD8H FFD9H FFDAH FFDBH 用途 字位口 字形口 键入口 EP总线 EP地址 EP控制 控制字 F000:0000~00FFH F000:0100~01FFH F000:0200~07FFH F000:1000~7FFFH F000:0600~0400H F000:0000~03FFH 1.4硬件设置

1、CPU选择开关

本系统为通用型一体机,设有3×2 CPU选择开关,通常情况下开机前应正确选择当前CPU类型,―96‖表示MCS-196KB/KC、―88‖表示8088/8086、―51‖表示MCS-8032/8052,在通电状态下,亦可拨动选择开关改变当前CPU类型,但在改变当前CPU类型后要用RESET系统复位命令加以确认,若不按复位命令按钮会引发―死机‖。本书所有实验都应将CPU选择开关拨至88位置。

2、串行口选择及通信波特率选择开关

本系统设有串行口选择开关,从左到右依次为2400、9600和57600,选择2400表示选择8251串口通信实验,选择9600和57600为系统与PC机通信波特率选择位,在PC机配置较低的场合或DOS操作环境下通常选择9600常规波特率,要提高通信效率则选择57600。

3、打开电源开关,系统应显示闪动的―P.‖,处于待命状态;否则按下RESET键,如仍不显示,应立即切断电源,检查后重新进行。

4、系统功能自检

在闪动的―P.‖状态下按键:【MOVE】→1000→【STEP】→【EXEC】,系统将连续运行―8‖字循环移位程序,若LED出现循环移位显示的―8‖,说明系统已进入正常工作状态,可按RESET键返回―P.‖待命。

实验三 8259中断控制器实验

一、实验目的

⑴掌握8259中断控制器的接口方法。 ⑵掌握8259中断控制器的应用编程。

二、实验内容

编制程序,利用8259芯片的IR作为中断源,产生单一中断,系统显示中断号―7‖。

三、程序流程

四、实验电路

五、编程提示

⑴8259芯片介绍

中断控制器8259A是专业性为控制优先级中断设计的芯片。它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达级的矢量中断系统。 中断号 0 1 24~27h 2 3 4 5 34~37h 6 7 矢量地址 20~23h 28~2Bh 2C~2Fh 30~33h 38~3Bh 3C~3Fh ⑵本实验中使用7号中断源IR7,―SP‖插孔和IR7相连,中断方式为边沿触发方式,每按二次AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符―7‖,满―7‖次后显示―P.‖继续等待中断。

六、实验连线

Dais系列实验箱连线 连接位置1 138 A,B,C 138 G 8259 CS 8259 IR7 8259 D0…D7 连接位置2 A2,A3,A4 G 138 Y0 SP(初始化为低电平) 系统数据总线D0…D7 七、实验步骤

编写源程序,编译、装载,连续运行程序,按动AN按钮,LED数码管从最高位开始

依次显示―7‖,显示满后,最高位显示―P.‖,继续等待中断。

八、实验参考程序

CODE SEGMENT

ASSUME CS:CODE, DS:CODE, ES:CODE ORG 3400H Start: JMP P8259 ZXK EQU 0FFDCH ZWK EQU 0FFDDH

LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H

BUF DB ?,?,?,?,?,? Port0 EQU 0FFE0H Port1 EQU 0FFE1H P8259: CLI

CALL WP ;初始化显示―P.‖

MOV AX,OFFSET INT8259 ;设置中断向量 MOV BX,003CH MOV [BX],AX MOV BX,003EH MOV AX,0000H MOV [BX],AX CALL FOR8259 MOV SI,0000H STI

CON8: CALL DIS JMP CON8

;------------------------------------ INT8259: CLI

MOV BX,OFFSET BUF

MOV BYTE PTR [BX+SI],07H INC SI

CMP SI,0007H JZ X59

XX59: MOV AL,20H ;发中断结束命令 MOV DX,Port0 OUT DX,AL mov cx,0050h xxx59: push cx call dis pop cx loop xxx59 pop cx

mov cx,3438h push cx STI IRET

X59: MOV SI,0000H CALL WP JMP XX59

;============================== FOR8259:MOV AL,13H ;初始化8259 MOV DX,Port0 OUT DX,AL MOV AL,08H

MOV DX,Port1 OUT DX,AL MOV AL,09H OUT DX,AL

MOV AL,7FH ;IRQ7 OUT DX,AL RET

;---------------------------

WP: MOV BUF,11H ;初始化显示―P.‖ MOV BUF+1,10H MOV BUF+2,10H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET

;-------------------------------- DIS: MOV CL,20H

MOV BX,OFFSET BUF DIS1: MOV AL,[BX] PUSH BX

MOV BX,OFFSET LED XLAT POP BX

MOV DX,ZXK ;显示相应数字 OUT DX,AL MOV AL,CL

MOV DX,ZWK ;选择显示的数码管 OUT DX,AL PUSH CX

MOV CX,0100H DELAY: LOOP $ POP CX

CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1 EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET

;-------------------------- CODE ENDS END Start

九、思考题

若改用其他中断源,应怎样修改连线及程序?

实验四 8255并行接口实验

一、实验目的

⑴掌握可编程I/O接口芯片8255的接口原理,熟悉对8255初始化编程和输入、输出软件的设计方法。

⑵掌握8255A和微机接口方法、工作方式和编程原理。

二、实验内容及步骤

1、A、B、C口输出方波

⑴程序流程

⑵实验步骤

编译、装载,连续运行程序,用示波器测量8255A、B、C口并观察其波形。

⑶实验参考程序

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE ORG 32C0H START: JMP STARTP1 PA EQU 0FFD8H PB EQU 0FFD9H PC EQU 0FFDAH PCTL EQU 0FFDBH STARTP1: MOV DX,PCTL MOV AL,80H OUT DX,AL MOV AL,55H P11: MOV DX,PA

OUT DX,AL INC DX OUT DX,AL INC DX

OUT DX,AL MOV CX,0800H LOOP $ NOT AL JMP P11 CODE ENDS

END START

2、PA口控制PB口

用8255 PA作开关量输入口,PB作开关量输出口。 ⑴程序流程

⑵实验电路

⑶编程提示

8255A可编程外围接口芯片是Intel公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V电源供电,能在以下三种方式下工作: 方式0:基本输入/输出方式 方式1:选通输入/输出方式 方式2:双向选通工作方式

使8255A端口A工作在方式0并作为输入口,读取K1—K8八个开关量,送PB口显示。PB口工作在方式0作为输出口。 ⑷实验连线

Dais系列实验箱连线

连接位置1 8255 PA0…PA7 8255 PB0…PB7 连接位置2 K1…K8 L1…L8 ⑸实验步骤

编译、装载,连续运行程序,拨动K1~K8,观察L1~L8亮灭情况。 ⑹实验参考程序

CODE SEGMENT

ASSUME CS:CODE, DS:CODE, ES:CODE ORG 32E0H PA EQU 0FFD8H PB EQU 0FFD9H PC EQU 0FFDAH PCTL EQU 0FFDBH H2: MOV DX,PCTL MOV AL,90H OUT DX,AL P2: MOV DX,PA IN AL,DX INC DX OUT DX,AL JMP P2 CODE ENDS END H2

三、思考题

1、在实验(2)的基础上,选择端口C的PC2成为选通信号输入端STBB,连接到AN按键的SP,PC0成为中断请求信号输出端INTRB,连至8259的IRQ7,当B口数据就绪后,按动AN按键,发STBB信号来请求CPU读取端口B数据,并送端口A输出显示。请按以上要求设计连线和程序。

2、在实验2中,假定每次输入开关组中只有一位为―1‖,若要求使用LED数码管显示该位的序号,应如何连线、编程?

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务