《微机原理及应用》实验指导书2012.3.30

更新时间:2024-03-18 07:48:01 阅读量: 综合文库 文档下载

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

《微机原理与接口》

实验指导书

郑 州 轻 工 业 学 院 计算机与通信工程学院

1 第一章 实验概述 ........................................................................ 3 第二章 基于PC的8086汇编程序实验 .......................................

2.1 实验一 调试程序debug.exe的使用 ................................................................................... 3 2.2 实验二 汇编与宏汇编程序 ................................................................................................... 12 2.3 实验三 汇编程序设计1 ........................................................................................................ 14 2.4 实验四 汇编程序设计2 ........................................................................................................ 15 2.5 实验五 汇编程序设计3 ........................................................................................................ 16

........................................ 17 第三章 基于Dais实验箱的实验说明

第四章 基于Dais实验箱的硬件实验 ......................................... 21

4.1 实验一 8255并行口实验(一):A.B.C口输出方波 ....................................................... 21 4.2 实验二 8255并行口实验㈡:PA口控制PB口 ................................................................... 22 4.3 实验三 8255并行口实验㈢:控制交通灯 .......................................................................... 24 4.4 实验四 简单I/O口扩展 ....................................................................................................... 26 4.5 实验五 A/D转换实验 ............................................................................................................ 28 4.6 实验六 D/A转换实验㈠:输出方波 .................................................................................... 30 4.7 实验七 D/A转换实验㈡:输出锯齿波 ................................................................................ 32 4.8 实验八 8259中断控制器实验 .............................................................................................. 34 4.9 实验九 定时/计数器:8253方波 ...................................................................................... 36 4.10 实验十 继电器控制 ............................................................................................................. 38 4.11 实验十一 8251串行通信实验(一):自发自收 ............................................................ 40 4.12 实验十二 8251串行通信实验(二):与PC通信 .......................................................... 42 4.13 实验十三 步进电机控制 ..................................................................................................... 45 4.14 实验十四 小直流电机调速实验 ......................................................................................... 46 4.15 实验十五 16×16点阵显示实验 ........................................................................................ 48 4.16 实验十六 外部存储器扩展实验 ......................................................................................... 50 4.17 实验十七 音频驱动实验 ..................................................................................................... 52 4.18 实验十八 8237可编程DMA控制器实验(一) ................................................................ 53 4.19 实验十九 8237可编程DMA控制器实验(二) ................................................................ 55 4.20 实验二十 2×16LCD液晶显示接口实验 ............................................................................ 57

第一章 实验概述

《微机原理及应用》的实验项目由两大部分组成:

(一):第一部分是基于PC的8086汇编程序实验,这一部分的实验不需要使用实验箱,直接在PC机上进行。进行汇编程序实验,需要PC机安装相应的汇编程序软件包,例如microsoft的宏汇编或其它类似汇编软件。通过这一部分的实验使学生掌握汇编程序的编写、汇编、连接与调试过程,同时进行一些基于PC的汇编源程序的编写。在汇编源程序中,可以使用微机的BIOS功能调用与DOS功能调用。

(二):第二部分是采用Dais实验箱进行软件与硬件实验,这一部分实验需要使用Dais微机实验箱才能完成。编写的汇编程序直接在CPU上运行,没有操作系统的支持。

1.1 实验箱的系统组成

Dais 8088/8086微机接口实验箱由管理CPU、目标CPU 8088单元和通用电路、接口实验电路及稳压电源组成。实验箱通过RS232C串行接口与PC微机相连,实验箱硬件主要内容如下: CPU 系统存储器 管理CPU、目标CPU准16位8088 监控管理程序在管理CPU的FLASH中、由RAM器件61256二片构成最小系统(寻址范围64K)、BPRAM 61256(32K)。 8251、8253、8255、8259、8237、ADC0809、DAC0832、164、273、244、393分频、电子发声单元,电机控制单元,开关及发光二极管、单脉冲触发器、继电器控制、16×16点阵、2×16LCD及PCI桥接单元等。 打印接口,RS232C串口、D/A驱动接口、步进电机驱动接口、音频驱动接口、ISA总线接口 6位LED、二路双路跟踪示波器 32键自定义键盘 接口芯片 及单元实验 外设接口 显示器 键盘 EPROM编程 对EPROM 2764/27128快速读出 系统电源 +5V/2A,±12V/0.5A 1.2实验箱的系统组成功能与特点

(1)实验箱自带键盘、显示设备,可以脱离PC独立运行,也可以与PC联机进行操作。

两种工作方式任意选择。全面支持《微机原理与接口》、《微机控制应用》等课程的实验教学。

(2)实验箱采用紧耦合多CPU技术,用STC89C58作为实验箱的管理CPU,实验箱中运行目标代码的CPU为8088。

(3)运行目标代码的CPU8088采用主频为14.3818MHz,8088采用最小工作方式。 (4)配有1片6116构成系统的4K基本BIOS,另配2片61C256(64K)作为实验程序与数据空间,地址从0000:0000H~0FFFFH(其中0~03FFH作为目标机中断向量区),还配一片61C256(32K)作为用户设置的断点区(BPRAM)。

1

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

(6)系统接口实验电路为单元电路方式,电路简捷明快,采用扁平线、排线、双头实验导线相结合的办法,进一步简化了实验电路连接环节,既减轻繁琐的连线工作,又提高学生的实验工作能力。

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

(8)具有最丰富的调试手段,系统全面支持硬件断点,可无限制设置断点,同时具有单步、宏单步、连续运行及无限制暂停等功能。

(9)选配Dais-PCI总线适配卡,可实现PC与实验系统的连接,支持实模式、保护模式下的I/O设备、存储器及中断访问,支持汇编语言及高级语言编程。

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 0000:1000~0FFFFH 0000:0600~0400H 0000:0000~03FFH

2

第二章 基于PC的8086汇编程序实验

本章将介绍PC机上的debug.exe的使用,以及采用宏汇编软件的使用。在掌握这两个软件使用的基础上,进行汇编源程序的设计。宏汇编软件采用microsoft的MASM 5.0或MASM 6.0。这些软件在DOS环境运行,学生可以采用命令行的形式使用。当然,现在也有运行在Windows系统的集成开发软件。学生在掌握汇编过程的基础上,可以选用该类Windows环境的汇编集成开发软件。

2.1 实验一 调试程序debug.exe的使用

DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。

它的功能包括以下几个方面。

1,直接输入,更改,跟踪,运行汇编语言源程序; 2,观察操作系统的内容; 3,查看ROM BIOS的内容;

4,观察更改RAM内部的设置值; 5,以扇区或文件的方式读写软盘数据

DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据: 十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASCⅡ码字符。

在DEBUG中输入数据有两种方法: 提示方法和非提示方法。在用提示方法时,用户可以输入要求输入数据的命令,后跟数据所要输入的地址。然后用户就可以看到该地之中已有内容及一个冒号提示符。此时用户可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到短横(-)提示符。在运用非提示方法时,用户可以输入要输入数据的内存地址以及要输入的字节。但与使用字处理程序或正文编辑程序时不一样,在使用DEBUG时,用户不能直接移动光标到一入口点输入或修改数据,而要一次输入一个或几个字节。

在使用DEBUG时可以只涉及内存中的数据,从而一般都要指定所要处理的内存地址,地址的输入格式是: [段地址]: [位移]。如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用,这一专用区域用于建立DOS与程序之间的联系。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。

调用了DEBUG程序,就会出现一个短横提示符,用户就可以在这一短横后输入DEBUG程序的命令。有些DEBUG命令会显示一个内存地址并产生一个作为提示符的冒号。在这些提示符后,用户可以输入一个新值以改变所显示位置原来的值。如果用户不输入一个新值而是按下回车或CTRL+C,那么原来的值不会改变。

一般用不着把地址和命令名字分开。例如,用转储命令D察看100号地址的数据,那么这个命令可以用以下任一种形势输入:

D100 D 100

如果输入的命令中出现了错误,DEBUG将在下一行对着错误的位置标记出来,例如: -S100 d 12 ^Error

DEBUG的命令及功能如下:

3

汇编命令 :A[地址] ;ADDRESS 功能: 将指令直接汇编成机器码输入到内存中。

说明: 用于小段程序的汇编及修改目标程序,所有输入的数字均采用十六进制, 用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,改语句被汇编到 CS:0100区域。

例A:>DEBUG -a 0100

08F1:0100 MOV AH,09 08F1:0102 MOV DX,107 08F1:0105 INT 21H

08F1:0107 db 'May I help you $' 08F1:0117←直接,回车,离开a状态 -g =100 107←运行

May I help you ;运行结果

Program terminated normally ;表示运行正常

转储命令(数据显示):D

D[地址] 或D[起始地址][截止地址]

功能: 以内存映象方式显示内存中的信息。

说明: 转储用左中右三部分显示内存映象内容,左面是内存地址(段地址:偏移,表示后面的内存区16字节的首地址),中间以十六进制显示数据,右边以ASCII字符显示(所有不可打印字符用句号 . 表示)。每行显示16个字节的内容,在第八和第九个字节之间有一个连字符 - 。此命令隐含的段地址为DS的值。若未指定起始地址,则D命令从上次显示的最后一个单元的下一个单元开始显示,若以前没有使用给D命令, 则从初始化的段寄存器的内容,加上地址偏移量 0100H 开始显示。

例:-d 10 4f即为显示DS:10 — DS:4f的内容。在D命令中如不指出段地址,则其默认为DS段。

4

如指明段地址,则从指明的段地址列出指定的范围 如:-d fff:00 0f

我们也可以指定长度来列出所需要内存内容

如:-d 100 L20即为显示由DS:100-DS:11F的内容,共20H(32)个字节:

修改内存命令 E[地址] [字节串) ;EDIT 功能: 从指定的地址开始修改内存值。 格式:E起始地址[数据行]

(1)用给定内容代替指定范围的单元内容 -E地址 内容表 例:

-E 100 41 42 43 44 48 47 46 45 -D 100 L08 显示:

08F1:0100 41 42 43 44 48 47 46 45 ABCDHGFE? (2)逐个内存内容 例:

-E 100:

08F1:0100 76 42 ;42是操作员键入

此命令是将原100号内存内容76修改为42,用D命令可察看

F[地址范围] [字节或字节串] 填写命令

功能: 将要填写的字节或字节串填入由地址范围指定的存储器中。 例:-f100 11f 61 62 63 64 -d100 11f

08F1:0100 61 62 63 64 61 62 63 64 -61 62 63 64 61 62 63 abcd abcd abcd abcd 08F1:0110 61 62 63 64 61 62 63 64 -61 62 63 64 61 62 63 abcd abcd abcd abcd

如果数据行超出指定的范围,则填不下的数值会被忽略。 例:

-f 100 107 41 43 43 44 45 46 47 48 49 4A 4B 4C 4D -d 100 10f

08F1:0100 41 42 43 44 45 46 47 64 -61 62 63 64 ABCDEFGdabcdabcd 由上例可看出,超出范围的数据被忽略 另外,F和E命令都可填入字符串: 如:-F 100 105 \-d 100 l0f

5

08F1:0100 4D 53 44 4F 53 46 47 64 -61 62 63 64 MS DOS FGabcd abcd

执行命令:G[=起始地址] [[断点]??]

功能: 执行正在调试的程序,当达到断点时停止执行, 并且显示寄存器标志和下一条要执行的命令。

说明: 如果没有指定起始地址,那么当前指令地址由CS:IP寄存器的内容来决定,如果用户指定起始地址就从指定的起始地址开始执行。如果指定断点,当指令到达指令地址时停止执行,并显示各寄存器标志位的内容和下一条要执行的命令,最多允许用户设定10个断点。

进程命令:P[=地址] [数据]

功能: 将一个 子程序调用指令,循环指令,中断指令或一个重复字符串指令,停止在下一条指令上。

说明: 在执行一条 子程序调用指令,循环指令,中断指令或一个重复字符串指令时,发出P命令去执行有关指令,并且返回到要执行的下一条指令。 P命令和T一样选用来跟踪程序运行过程用的命令,我们可以在P命令中指定程序运行的起始地址,指令个数,如未指定,则从CS:IP所指定程序的地址开始,一次运行一条指令。

P与T命令的差别在于P命令把CALL/INT当成一条指令来执行。

R[寄存器] 寄存器命令 功能:

一、显示单个寄存器的内容,并提供修改功能

二、显示所有寄存器内容, 再加上标志位状态以及要执行的下一条指令 三、显示8个标志位状态, 并提供修改功能。若不想改变则回车即可。 例: -r bx

bx 0050 :51 -r

AX=0000 BX=0051 CX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0003 ES=0CD3 SS=0CD3 IP=0100 NV UP EI PL NZ NA OP NC 0CD3:0100 0F DB OF

若想改变标志寄存器,用-RF回车,则DEBUG会将标志内容显示出来。若想改变任一标志,只要输入该标志的名称即可。

溢出 OV(溢出) NV(未溢出) 零位 ZR(等于零) NZ(不等于零) 方向 DN(减少) UP(增加) 辅助进位 AC NA(无进位) 中断 EI(许可) DI(禁止) 奇偶标志 PE(偶) PO(奇) 符号 NG(负) PL(正) 进位 CY NC(清除进位) 例:-Rf

NV UP EI PL NZ NA PO NC :-OV DI← 输入值

T[=地址][指令条数] 跟踪命令

功能: 逐条跟踪程序的执行,每条指令执行后都将显示各寄存器的内容。

6

说明: 通常采用跟踪一条指令,但用户也可以用指令条数设定一次跟踪多条指令, 每执行一条指令之后,显示所有寄存器的内容和标志状态。

逐条指令跟踪 -T[=起始地址]

从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值,如来指定地址则从当前CS:IP开始执行。

A:\\>DEBUG -A

08F1:0100 MOV DL,03 08F1:0102 MOV AH,02 08F1:0104 INT 21H

08F1:0106 INT 20H ;退出指令 08F1:0108 -T

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=08F1 ES=08F1 SS=08F1 CS=08F1 1P=0105 NV UP EI PL NZ PO CY 09F1:0102 B402 MOV AH,02

若指定起始地址,则T命令会从指定的地址开始跟踪,我们还可以指定跟踪一次所运行指令的个数,用Ctrl+S暂停屏幕的显示,以便观察。

-t=100 10;由CS:100开始跟踪10条指令

反汇编指令:U[起始地址]或者[地址范围] 功能: 将内存中的内容转换为汇编语句。

说明: 反汇编的字节数取决与用户的系统显示形式,以及在U命令中使用的可选项。 (1)从指定地址开始编译,反汇编32个字节 -U[地址]←从CS:100开始,其反汇编32个字节

如果地址被省略,则从一个U命令的最后一条指令的下一条单元开始汇编32个字节。 (2)对指定的存贮范围进行反汇编 -u起始地址 终止地址(L 长度) 例:-U 100 109

08F1:0100 CD20 INT 20

08F1:0102 FF9F009A CALL FA12[BX+9A00] 08F1:0106 F0 LOCK

08F1:0107 FE1D CALL FAR [DI] 08F1:0109 F0 LOCK

说明:如指定了范围则整个范围全都会被反编译

7

一、实验目的

掌握debug.exe功能,通过debug.exe练习并掌握汇编指令,可以调试简单的程序。 二、实验内容

DEBUG启动 运行—打开—debug

DEBUG[盘符:][路径][.扩展名][参数1][参数2] 其中参数1、参数2是指定文件所带的参数。例如: DEBUG DISKCOPY.COM A: B: 中的A:和B:即为参数。

进入DEBUG的提示符是符号‘-’。用户可以通过DEBUG的名令输入汇编源程序,并用相应命令将其汇编为机器语言;然后调试并运行该程序。

DEBUG命令 1.汇编命令A

格式:(1)A <段寄存器名>:<位移量>

(2)A <段地址>:<位移量> (3)A <位移量> (4)A

功能:键人该命令后,显示段地址和位移并等待用户从键盘逐条键入汇编命令,逐条汇编成代码指令。用户最后直接键人回车键返回到提示符“-”。

其中(1)用指定段寄存器内容作段地址(2)以<段地址>内容作段地址(3)用CS内容作段地址(4)以CS:10O作地址。以后命令中提及的各种‘地址’形式,均指(1)、(2)、(3)中A后的地址形式。 2.比较命令C

格式:C <源地址范围>,<目标地址>

其中<源地址范围>是由<起始地址><终止地址>指出的一片连续单元,或<起始地址>L<长度>。

功能:从<源地址范围>的起始地址单元起逐个与目标起始地址以后的单元顺序比较单元的内容,直至源终止地址为止。遇有不一致时,以<源地址><源内容><目标内容><目标地址>的形式显示失配单元及内容c 3.显示内存命令D

格式:(1)D <地址> (2)D <范围> (3)D

功能:以两种形式显示指定内存范围内容。一种形式为十六进制内容,一种形式为相应字节的ASCII码字符,对不可见字符以‘.’代替。

其中(1、2)以CS为段寄存器。(3)显示CS:100起始的一片内容。 4.修改内存命令E

格式 (1)E <起始地址><单元内容> (2)E <起始地址><单元内容表> (3)E <起始地址>

其中<单元内容>是一个十六进制数,或用引号′或″括起来的字符串;<单元内容表>是以‘空格’分隔的十六进制数,或用′或〃括起来的字符串,或者是二者的组合。

功能:(1)将指定内容写人指定单元后显示下一地址,可连续键人修改内容,直至新地址出现后键人回车止。(2)将<单元内容表>逐一写人由<地址>开始的一片单元。

5.填充内存命令F

格式:F <范围><单元内容表>

功能:将单元内容表中的值逐个填入指定范围,单元内容表中内容用完后重复使用。

例如:

8

-F 100 L10 B2,’XYZ’,3C -d100

6.执行命令G

格式:(1)G

(2)G=<地址>

(3)G=<地址>,<断点> 功能: (1)从CS:P开始执行 (2) 从指定地址开始执行

(3)从指定地址开始执行,到断点自动停止

7.十六进制算术运算指令H

格式:H <值1><值2>

功能:求十六进制数(值1〉和〈值2〉的和与差并显示结果。

8.端口输入命令I

格式:I <口地址>

功能:将从指定端口输人的内容显示出来。

9.读盘命令L

格式:L <地址><盘号><起始逻辑扇区><所读扇区个数n>

其中〈地址〉缺省值为CS:10O。逻辑扇区可由物理扇区号换算得到,以双面双密度盘为例:物理扇区是按O面O道1区,O面O道2区,??O面O道9区,O面1道1区,??O面39道9区,1面O道1区,?1面39道9区排列。而逻辑扇区与物理扇区号的对应关系为物理扇区O面O道1扇区至9扇区,逻辑扇区号为O~8;物理扇区1面O道1扇区至9扇区,逻辑扇区号为9~11H;物理扇区O面1道1扇区至9扇区,逻辑扇区号为12~1AH??这样每道先O面后1面一直排下去。

其中〈盘号〉为0、1或2,O表示A盘,1表示B盘,2表示硬盘。

功能:将〈盘号〉指定的盘上,从〈起始逻辑扇区)起,共n个逻辑扇区上的所有字节顺序读人指定内存地址的一片连续单元。当L后的参数缺省时,必须在L之前由N命令指定(或进入DEBUG时一并指出)所读盘文件名。此时L执行后将该文件装人内存。

例如: —N EXAMPLE 一L

将当前盘上的EXAMPLE文件装入CS:lO0起始的一片内存单元。

10.内存搬家命令M

格式:M <源地址范围><目标起始地址>

其中源及目标地址若仅输人偏移量,则隐含段为DS。

功能:把〈源地址范围〉中的内容顺序搬至〈目标起始地址)起的一片连续单元。 例如: M CS:100 110 600

把从CS:lOO起至CS:110止17个字节搬至DS:600至DS:610的一片单元。

11.命名待读文件命令N

格式:N 文件名说明

功能:为L命令指定待装人文件 注:其它形式参考DOS手册

9

12.端口输出命令0

格式:O <端口地址><字节>

功能:将该<字节>从指定<端口地址>输出。 例如: O 2F 4F 将4FH从2FH口输出

13.结束debug返回DOS命令Q

格式:Q

14.显示寄存器命令R

格式:(1) R

(2) R <寄存器名>

功能:(1)显示当前所有寄存器内容、状态标志及将要执行的下一指令的地址、代码及汇编语句形式。其中对状态标志FLAG以每位的形式显示,详见表

状态标志显示形式 标志位 状 态 显示形式 溢出标志OF 有/无 OV/NV 方向标志DF 减/增 DN/UP 中断标志IF 开/关 EI/DI 符号标志SF 负/正 NG/PL 零标志ZF 零/非 ZR/NZ 辅助标志AF 有/无 AC/NA 奇偶标志PF 偶/奇 PE/PO 进位标志CF 有/无 CY/NC (2)显示指定存储器内容 例如: R AX R F

15.搜索指定内存命令S

格式:S <地址范围><表>

功能:在指定范围搜索表中内容,找到后显示表中元素所在地址 例如: S CS:100 110 41 显示 O4BA:O1O4 04BA:01OD

表示在位移100H至11OH间的上述两处有41H。又如: S CS:100 L11 41“AB”E

表示在当前代码段位移100H至111H处找 连续4个字节内容为41H、41H、42H、0EH的地址。

16.执行并显示系统环境命令T

格式:T [=〈地址)][〈条数〉]

功能:<地址>的缺省值是当前IP值,<条数>的缺省值是一条。执行由指定地址起始的、由<条数>指定的若干条命令。

例如: T 执行当前指令并显示状态 T 10 从当前指令始执行10H条指令 17.反汇编命令U

格式:(1)U <地址> (2)U <地址范围>

功能:将指定范围内的代码以汇编语句形式显示,同时显示地址及代码。注意,反

10

汇编时一定确认指令的起始地址后再作,否则将得不到正确结果。地址及范围的缺省值是上次U指令后下一地址的值。这样可以连续反汇编。

18.写盘命令W

格式:W 〈地址〉〈盘号〉〈起始逻辑扇区〉〈所写逻辑扇区数n〉

功能:与L命令不同的地方是将内存〈地址)起始的一片单元内容写人指定扇区。只有W而没有参数时,与N命令配合使用写盘文件。

三、实验步骤

1.启动DEBUG,用“R”命令显示各寄存器值,记录并说明DEBUG的初始工作环境。 2 认真学习\命令、“E”命令、“R”命令的功能、应用、命令格式、各种显示信息及含义,自行设计操作进行,掌握它们的用法,要求做到能对不同地址中的内容和寄存器进行熟练的检查和修改。记录练习的操作和过程,解释结果;说明各个寄存器的初值以及段地址、偏移地址的意义,确实掌握地址与其中存放的数据之间的关系。

3. 阅读下列源程序指令,用铅笔填写运行结果。再用“A”命令输入这些源程序指令(运行结果部分不输入):

地址 目标代码 源程序指令 运行结果 _________ _________ MOV AX, 1234H ;AX:______ _________ _________ INC AX ;AX:______ CF:__ ZF:__ SF:__ _________ _________ DEC AH ;AH____ CF:__ ZF:__ SF:__

_________ _________ ADD AH,78H ;AH____CF:__ ZF:__ OF:__ SF:__ _________ _________ AND AH,0C8H ;AH:__ PF:__ ZF:__ _________ _________ OR AL,9FH ;AL: ____ PF:__ ZF:__ _________ _________ XOR AL,59H ; AL: ____ PF:__ ZF:__ _________ _________ MOV BX,000EH ; BX:______ _________ _________ MOV [BX],AX ;DS:000EH______

_________ _________ INT 20H ;结果:______________ 说明:程序中的段地址CS和DS,由DEBUG确定,不另外设置。

A. 用“U”命令反汇编这段程序,再与原输入指令对照检查,记录并解释两者差别。

B. 根据汇编结果,将各条指令的存放地址及目标代码分别填入上面的地址和目标代码栏中,分析目标代码,体会操作码与操作数之间的关系。

C. 用“T”命令单步执行这段程序,核对运行结果和各标志位的设置,熟悉它们的表示形式。

D. 设置IP到程序开始地址,用“G”命令设置断点(任选),执行这段程序,检测运行结果。改变不同断点方式多次重复这一步,总结体会断点选择的目的性与应用技巧。

E. 将 OR AL,9FH 指令修改为 SUB AL,9FH,比较指令代码和运行结果的不同。 F. 根据反汇编和程序运行过程IP的变化,详细分析指令地址、目标代码、程序指令、指令代码存放规律之间的关系,深入理解程序存储原理与控制器自动控制执行的机理。

4.自编指令段,学习每一种寻址方式的传送指令,算术、逻辑运算指令及对标志位的影响。记录指令的设计、目的及结果。

5.用“E”命令从cs:0100开始设置一段字符数据“0123456789ABCDEF0000”,再用“U”命令反汇编这一段数据,分析并体会计算机中程序与数据之间、数据与字符之间的关系。

11

2.2 实验二 汇编与宏汇编程序

一、实验目的

通过实验,了解汇编就是把用汇编语言编写的源程序翻译(汇编)成机器语言的目标程序。汇编程序可以使用小汇编程序(ASM)也可以用宏汇编程序(MASM),由于宏汇编程序不但可以代替ASM,而且可以汇编具有宏定义的汇编程序,因此我们在汇编程序时使用宏汇编程序(MASM)。

二、实验内容 执行宏汇编程序 三、实验过程

检查电脑上是否有汇编软件,采用的是微软的宏汇编程序包MASM。如果电脑上没有,可以从下面地址下载ftp://202.196.5.3/程序设计/MASM,下载其中的MASM5.0文件夹,存放到电脑C盘根目录下。

1.单击电脑“开始”菜单,单击“运行(R)...”,键入“command”,出现一个DOS窗口,键入“CD \\MASM5.0”,然后进行下面操作。

1.输入汇编源程序

打开“附件”里面的“记事本”,输入汇编源程序,代码如后所示。输入完毕,单击“文件”菜单的“保存”菜单项,出现“另存为”窗口,在“另存为”后面输入:“C:\\MASM5.0”。在“文件名字”后输入自己拟定的文件名字(如SAM1),在“保存类型”后选择“所有文件”。

2.汇编

在DOS状态下,键入MASM则调入宏汇编程序,假定汇编源文件为sam1.asm,则屏幕显示与操作如下:

masm sam1.asm↙

Microsoft (R) Macro AssembLe Version 5.00

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

50678+410090 Bytes symbol space free 0 Warning Errors 0 Severe Errors 上述过程中,汇编源文件为sam1.asm,经过汇编过程,自动生产一个新文件sam1.obj。

2.连接

在DOS状态下,键入LINK sam1.obj则系统调入LINK程序,屏幕显示操作如下: link sam1.obj↙

IBM Personal Computer Linker

Version 2.00(C) Copyright IBM Corp 1981,1982,1983 Object Modules [.OBJ]:↙ Run File [EX2.EXE]:↙ List File[NUL.MAP]:↙ Libraries[.LIB]:↙

在连接过程,将自动产生一个新文件sam1.exe。连接过程可能产生警告之类的信息,可以忽略。

12

3.执行程序

当用连接程序LINK将目标程序(.OBJ)连接定位后,可产生可执行文件(.EXE),可以在DOS状态下执行该程序。

sam1.exe↙

四、实验报告(写出上机结果及现象)

汇编源程序: DATA SEGMENT

MSG DB ′HOW ARE YOU $′ DATA ENDS

CODE SEGMENT

ASSUME CS:CODE , DS:DATA

START: MOV AX,DAta MOV DS,AX

MOV DX, OFFSET MSG MOV AH,09 INT 21H

MOV AH,4CH INT 21H

CODE ENDS END START

13

2.3 实验三 汇编程序设计1

一、实验目的

熟练掌握汇编语言源程序编写。 二、实验内容

在数据段从TABLE开始定义10个无符号的数据,每个数据为一个字节,计算这10个数的和,结果放到SUM字单元之中。

三、实验过程。

学生编写汇编程序,在PC上进行汇编、连接及运行。 四、实验报告

写出上机结果及现象。

参考程序:

DATA SEGMENT

TABLE DB 12H,23H,34H,45H,56H

DB 67H,78H,89H,9AH,0FDH

SUM DW ? DATA ENDS

STACK SEGMENT

DB 50 DUP (?) STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START:

MOV AX , DATA

MOV DS , AX MOV ES , AX

MOV AX , STACK MOV SS , AX LEA SI , TABLE MOV CX , 10 XOR AX , AX

NEXT:ADD AL , [SI] ADC AH , 0 INC SI

LOOP NEXT

MOV SUM ,AX

MOV AH ,4CH INT 21H CODE ENDS

END START

14

2.4 实验四 汇编程序设计2

一、实验目的

熟练掌握汇编语言源程序编写。 二、实验内容

在数据段自TABLE开始的连续10个单元中有放在0~9的平方值,查表求任意数X(0<=X<=9)的平方值,并将结果放到RESULT中。

三、实验过程。

学生编写汇编程序,在PC上进行汇编、连接及运行。 四、实验报告

写出上机结果及现象。

参考程序:

DSEG SEGMENT

TABLE DB 0,1,4,9,16,25,36,49,64,81 X DB 4 ;假定求4的平方 RESULT DB ? DSEG ENDS

SSEG SEGMENT

DB 100 DUP (?) SSEG ENDS

CSEG SEGMENT

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

LEA BX ,TABLE MOV AH ,0 MOV AL ,X ADD BX ,AX MOV AL ,[BX] MOV RESULT,AL

MOV AH,4CH INT 21H

CSEG ENDS

END START

15

2.5 实验五 汇编程序设计3

一、实验目的

熟练掌握汇编语言源程序编写。 二、实验内容

在数据段定义2个数据,每个数据占有若干字节,按照低地址存储低数据位的原则存储,这2个数据的长度一样。计算这2个数据的和,并将结果放到RESULT中。

三、实验过程。

学生编写汇编程序,在PC上进行汇编、连接及运行。 四、实验报告

写出上机结果及现象。

参考程序:

DATA SEGMENT

BUFF1 DB 4FH,0B6H,7CH,34H,56H,1FH BUFF2 DB 13H,24H, 57H,68H,0FDH,9AH SUM DB 6 DUP(?) CONT DB 3 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX

MOV SI,OFFSET BUFF1 MOV DI,OFFEST BUFF2 MOV BX,OFFEST SUM MOV CL,CONT MOV CH,0 CLC

NEXT:MOV AX,[SI] ADC AX,[DI] ADD SI,2 ADD DI,2

MOV [BX],AX ADD BX,2 LOOP NEXT

MOV AH,4CH INT 21H CODE ENDS

END START

16

第三章 基于Dais实验箱的实验说明

3.1 实验方式:

本章的实验需要使用Dais实验箱。实验时可以采用2种方式:

(1)实验箱不与PC连接,实验箱就是一个独立的简易的微机。本章所列的实验程序代码已经固化在一个监控管理CPU中,在试验箱的数码管显示“P.”状态下,从试验箱的键盘上按动“0”→再按“EV/UN”,即可将某个实验程序的代码装载到RAM中,然后由目标CPU 8088运行在RAM中的代码。因为实验程序中采用子程序形式较多,要互相调。需要学生通过实验箱的键盘输入各种命令将各个子程序装载到RAM中。程序的运行结果可以通过数码管进行显示。该方式也称为监控方式。

在这种方式下,学生不能进行源程序的编辑、汇编、连接。只能全速运行固化的二进制程序,或者单步运行,通过数码管显示运行的情况。

(2)实验箱与PC通过串口通信方式连接。学生在PC机的软件上对源程序进行编辑、汇编、连接,通过实验箱提供的手段将二进制代码下载到RAM中,然后由CPU 8088运行该代码。学生可以提供PC机的软件控制程序的执行,进行调试。该方式也称为联机方式。

显然,这种方式比第一种方式提供了更灵活的功能。

3.2 硬件安装

(1)通过随实验箱配置的三芯电源线,将实验箱接入交流220V电源。警告:注意安全!

(2)打开实验箱上的电源开关,一切正常的话,实验箱的数码管应显示闪动的“P.”。如果没有显示,应该按一下RESET键,重新启动。复位后,如果数码管仍然不显示闪动的“P.”,则表明存在硬件故障,应立即切断交流电源,与实验室管理人员联系。

(3)实验箱功能自检

在闪动的“P.”状态下,按键:[MOVE]→1000→[STEP]→[EXEC],实验箱以连续方式运行“8”字循环右移程序,若6位LED出现跑“8”显示,说明实验箱已进入正常工作状态,可按RESET键返“P.”待令。

3.3 键盘显示

(1)实验箱配备6位LED显示器,左边4位显示地址,右边2位显示该地址内容。 (2)实验箱具有一个4×8键盘,左边16个是数字键,右边16个是功能键。 在键盘监控状态下,用户可以通过一组键命令完成下列操作: ·读写寄存器内容

·读写存储器内容 ·读写EPROM内容 ·数据块移动 ·I/O端口读写 ·断点设置与清除

·通过单步断点连续等功能来调试运行实验程序

3.4 初始化状态

8实验箱上电或者按RESET键以后,数码管显示监控提示符 “P.”,CPU 8088各寄存器的初始化值如下:

SP=0600H,CS=0000H,DS=0000H,SS=0000H,ES=0000H, IP=1000H,FL=0000H

17

注意:

·所有命令均在提示符“P.”状态输入。 ·在键盘监控状态,用户段地址为0000H。

3.5 联机方式下Windows软件安装

做实验前,需要检查电脑上是否安装有需要的软件,该软件为“Intel8086集成开发环境”,其图标如下所示。如果电脑上没有安装该软件,可以自己安装该软件。安装完成,电脑桌面出现该应用程序图标。

(1)在桌面上点击图标,出现如下屏幕,选择“串口1”及波特率为“57600”,单击“确认”。

(2)点击工具条中“”图标,在打开对话框中双击某个实验的汇编源代码文件,进入实验源程序的编辑窗口。

(3)点击工具条中“”图标,进行源文件的编译、装载,在出现编译成功的对话框后,点击“OK”框自动进入源文件调试状态。

(4)在工具条中点击所需的运行方式:“”单步、“”宏单步、“”运行。 (5)若需要以断点方式运行,可直接点击源语句行前的“”图标来完成所需断点的设置与清除,然后再点击“

”图标进入断点运行状态。

”图标退出当

(6)系统一旦进入运行状态后,若需终止该程序的运行,请点击“前操作,返回待令状态。

3.6 监控方式下操作:

(1)在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 (2)在“P.”状态下,键入实验项目所需的程序入口地址,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

18

(3)若需要以断点方式运行,请在“P.”状态下键入断点地址然后按“SRB”键确认,再键入实验程序入口地址按“EXEC”进入实验项目的断点运行。

(4)系统一旦进入运行状态后,若需终止该程序的运行,请按“STOP”退出当前操作,返回待令状态。

3.7 实验项目

使用实验箱进行的实验可以分为2部分:一部分是基于Dais实验箱的软件实验,另一部分是基于Dais实验箱的硬件实验。所有实验都是相互独立的,次序上也没有固定的先后关系。其中,在进行硬件实验时,需要学生用导线将某些器件连接起来。需要学生连接的导线在实验接线图上用粗实线表示。

实验箱中固化了所有实验项目的二进制代码,学生可以在监控方式下运行或调试。这些实验项目的实验名称、程序入口地址如下表所示。

硬件部分实验 实验序号 实验一 实验二 实验三 实验四 实验五 实验六 实验七 实验八 实验九 实验十 实验十一 硬件实验名称 8255ABC口 输出方波 8255PA口控制PB口 8255控制交通灯 简单I/O口扩展 A/D转换实验 D/A转换实验(一) D/A转换实验(二) 8259中断实验 8253方波实验 继电器控制 8251串行口实验(一)自发自收 入口地址 32C0H 32E0H 32F0H 3380H 3390H 3480H(调零) 33E0H(方波) 33F0H 3400H 3490H 34B0H 35C0H 3FD0H(接收) 3FD8H(发送) 3620H 3670H 3AD2H 联机操作 实验十二 实验十三 实验十四 实验十五 实验十六 8251串行口实验(二)与PC机通信 步进电机控制 小直流电机调速实验 16×16点阵显示实验 外部存储器扩展实验 19

实验十七 实验十八 实验十九 实验二十 音频控制 8237A可编程DMA控制实验(一) 8237A可编程DMA控制实验(二) 2×16LCD液晶显示实验 联机操作 3900H 联机操作 3B38 在与PC机联机状态,学生可以在PC机的Windows集成环境编写实验项目的源程序,并进行编译、连接后,将二进制代码下载到实验系统RAM中,由CPU 8088运行或进行调试。

20

第四章 基于Dais实验箱的硬件实验

硬件实验可使学生能进一步掌握8088微机系统扩展和输入输出程序的设计方法,熟悉对扩展系统的软件、硬件设计、调试方法和技巧。

4.1 实验一 8255并行口实验(一):A.B.C口输出方波

一、实验目的

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

二、实验内容

在8255 A.B.C口用示波器测出波形。

三、程序流程

四、实验步骤

1、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。

?在“P.”状态下键入32C0,然后按“EXEC”进入实验项目的运行。 2、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he01.asm,用连续方式运行程序。 3、观察运行结果

在连续运行方式下,用万用表测量8255 A.B.C口应有高低电平变化(或用8255 A.B.C口分别用插针连至L1~L8,观察发光二极管变化情况)。

4、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

21

4.2 实验二 8255并行口实验㈡:PA口控制PB口

一、实验目的

?掌握8255和微机接口方法。 ?掌握8255的工作方式和编程原理。

二、实验内容

用8255 PA作开关量输入口,PB作输出口。

三、程序流程

四、实验电路

五、编程提示

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

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

22

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

六、实验步骤

1、实验连线

8255 PA口接K1~K8,PB口接L1~L8。 2、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 ?在“P.”状态下键入32E0,然后按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he02.asm,用连续方式运行程序。 4、观察运行结果

在连续运行方式下,按K1~K8,观察L1~L8发光二极管是否对应点亮。 5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

23

4.3 实验三 8255并行口实验㈢:控制交通灯

一、实验目的

掌握通过8255并行口传输数据的方法,以控制发光二极管的亮与灭。

二、实验内容

用8255作输出口,控制12个发光二极管燃灭,模拟交通灯管理。

三、程序流程

四、实验电路

五、编程提示

?通过8255控制发光二极管PB3、PB0、PA5、PA2对应黄灯,PB1、PA6、PA3、PA0对应红灯,PB2、PA7、PA4、PA1对应绿灯,以模拟交通灯的管理。

?要完成本实验,必须先了解交通路灯的亮灭规律:东西路口的绿灯亮南北路口的红

24

灯亮,东西路口方向通车。延时等待后,东西路口的绿灯熄灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时等待后,南北路口的绿灯熄灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,之后重复以上过程。

?程序中设定好8255的工作模式,及三个端口均工作在方式0,并处于输出状态。 ?系统使用的发光二极管为共阴极,逻辑0点亮、逻辑1熄灭。

六、实验步骤

1、实验连线

8255PA口接L12~L5,PB0~PB3接L4~L1。 2、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 ?在“P.”状态下键入32F0,然后按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he03.asm,用连续方式运行程序。 4、观察运行结果

在连续运行方式下,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。延时一段时间后东西路口的绿灯熄灭,黄灯开始闪耀。闪耀若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。闪耀若干次后,再切换到东西路口方向,之后重复以上过程。

5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

25

4.4 实验四 简单I/O口扩展

一、实验目的

学习微机系统中扩展简单I/O口的硬件实现及编程方法。

二、实验内容

利用74LS244作为输入口,读取开关状态,通过74LS273驱动发光二极管显示出来。

三、程序流程

四、实验电路

五、实验步骤

1、实验连线

26

?74LS244的输入端PI0-PI7接K1-K8,74LS273的输出端PO0-PO7接L1-L8。用8芯扁平电缆将I/O IN区、I/O OUT区的数据总线插座与数据总线单元任一插座相连。

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。

?74LS02门电路的①脚接缓冲输出单元的CLK,02门电路②脚接系统单元IOW,02门电路的③脚接译码单元的Y0;02门电路的④脚与⑨脚相连,02门电路的的⑤脚接译码单元的Y0,02门电路⑥脚接系统单元IOR,02门电路的⑧脚接GND,02门电路的⑩脚接缓冲输入单元的G。

2、LED环境

(1)在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 (2)在“P.”状态下键入3380,然后按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he04.asm,用连续方式运行程序。 4、观察运行结果

以连续方式运行程序,拨动K1-K8,观察L1-L8点亮情况。 5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

27

4.5 实验五 A/D转换实验

一、实验目的

了解模/数转换基本原理,掌握ADC0809的使用方法。

二、实验内容

利用实验系统上的0809作为A/D转换器,实验系统的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。

三、程序流程

四、实验电路

五、实验步骤

1、实验连线

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。

28

?74LS02门电路的①脚接模数转换单元的SC/ALE,02门电路②、⑥脚接译码单元的Y0,02门电路的③脚系统单元的IOW,02门电路的④脚接模数转换单元的OE,02门电路的⑤接系统单元的IOR。

?用8芯扁平电缆将I/O OUT区的数据总线插座与数据总线单元任一插座相连。 ?模数转换单元的的CLK插孔与系统单元的ALE相连。

?把模数转换单元的模拟量调节输出端与模数转换单元的IN0相连。 2、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 ?在“P.”状态下键入3390,然后按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he05.asm,用连续方式运行程序。 4、观察运行结果

以连续方式运行程序,一旦进入A/D程序的运行,显示器显示“0809XX”,旋动模拟电压电位器,改变IN0的模拟量“XX”显示缓冲区,应随之变化。

5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

29

4.6 实验六 D/A转换实验㈠:输出方波

一、实验目的

了解数/模转换的基本原理,掌握DAC0832芯片的使用方法。

二、实验内容

编制程序,利用0832芯片输出方波。

三、程序流程

四、实验电路

五、编程提示

①首先须由CS片选信号确定DAC寄存器的端口地址,然后锁存一个数据通过0832输出,典型程序如下:

MOV DX,DAPORT MOV AL,DATA OUT DX,AL

30

;0832地址

;输出数据到0832

②产生方波信号的周期由延时间常数确定。

六、实验步骤

1、实验连线

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。

?数模转换单元的CS与译码单元Y0相连,数模转换单元的WR与系统单元的IOW相连。

?用8芯扁平电缆将数模转换驱动单元的数据总线插座与数据总线单元任一插座相连。 2、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。

?在“P.”状态下键入3480,按“EXEC”键开始执行调零程序,然后调节位于DA单元的调基准电位器,使数模转换单元的AUTO输出电压为0V,按复位按钮返回“P.”状态。

?在“P.”状态下键入33E0,按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\da_0V.asm,执行调零程序,然后调节位于DA单元的调基准电位器,使数模转换单元的AUTO输出电压为0V,按“暂停图标”返回“P.”状态,用连续方式运行PH88\\he06.asm程序。

4、观察运行结果

以连续方式运行程序,D/A输出端“AUTO”输出方波。 5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

31

4.7 实验七 D/A转换实验㈡:输出锯齿波

一、实验目的

进一步掌握数/模转换的基本原理。

二、实验内容

编制程序,将AL初始为00,并输出到0832端口,AL从00逐渐增加到FF产生溢出,再从00增大到FF,不断循环,从而产生连续不断的锯齿波。

三、程序流程

四、实验电路

(同实验六)

五、编程提示

产生锯齿波程序

0832芯片输出产生锯齿波,只须由AL中存放数据的增减来控制。当AL中数据从00逐渐啬到FF产生溢出,再从00增大到FF,不断循环,从而产生连续不断的锯齿波。

六、实验步骤

1、实验连线

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。

?数模转换单元的CS与译码单元Y0相连,数模转换单元的WR与系统单元的IOW相连。

?用8芯扁平电缆将数模转换驱动单元的数据总线插座与数据总线单元任一插座相连。

32

2、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。

?在“P.”状态下键入3480,按“EXEC”键开始执行调零程序,然后调节位于DA单元的调基准电位器,使数模转换单元的AUTO输出电压为0V,按复位按钮返回“P.”状态。

?在“P.”状态下键入33F0,按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\da_0V.asm,执行调零程序,然后调节位于DA单元的调基准电位器,使数模转换单元的AUTO输出电压为0V,按“暂停图标”返回“P.”状态,用连续方式运行PH88\\he07.asm程序。

4、观察运行结果

用示波器观测D/A的AOUT插孔,应有锯齿波输出。 5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

33

4.8 实验八 8259中断控制器实验

一、实验目的

掌握8259中断控制器的接口方法与程序设计。

二、实验内容

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

三、程序流程

四、实验电路

五、编程提示

8259中断控制器是专为控制优先级中断设计的芯片。它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设

34

定。同时,在不需要增加其它电路的情况下,通过多片8259的级联,能构成多达64级的矢量中断系统。 中断序号 0 1 2 3 4 5 6 7 变量地址 20~23h 24~27h 28~2Bh 2C~2Fh 30~33h 34~37h 38~3Bh 3C~3Fh 本实验中使用7号中断源IR7,中断方式为边沿触发方式,按动AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符“7”,显示满以后清空显示“P.”继续等待中断。

六、实验步骤

1、实验连线

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。

?将8259CS插孔与译码单元的Y0相连,中断源IR7与单脉冲单元的SP插孔相连。 ?用8芯扁平电缆将8259中断控制单元的数据总线插座与数据总线单元任一插座相连。 2、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 ?在“P.”状态下键入3400,然后按“EXEC”进入实验项目的运行。 3、PC环境

在连续运行下,编译、连接、下载PH88\\he08.asm,用连续方式运行程序。 4、观察运行结果

在连续运行方式下,按动AN按钮,LED数码管从最高位开始依次显示“7”显示满后,最高位显示“P.”继续等待中断。

5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

35

4.9 实验九 定时/计数器:8253方波

一、实验目的

学习8253芯片和微机接口的方法,掌握8253定时器/计数器的工作方式和编程原理。

二、实验内容

8253是一种可编程定时/计数器,有3个16位计数器,其计数频率范围为0~2MHz,用+5V单电源供电。

8253的功能用途: ?延时中断 ?可编程频率发生器 ?事件计数器 ?二进制倍频器 ?实时时钟 ?数字单稳 ?复杂的电机控制器 8253的6种工作方式: ?方式0:计数结束中断 ?方式1:可编程频率发生 ?方式2:频率发生器 ?方式3:方波频率发生器 ?方式4:软件触发的选通信号 ?方式5:硬件触发的选通信号 本实验设8253的0通道工作在方式3,产生方波。

三、程序流程

四、实验电路

五、实验步骤

1、实验连线

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端

36

G与总线单元上方的GS相连。

?定时计数单元CLK0与分频单元T2相连,GATE0与5V相连,8253CS与译码单元Y0相连。

?用8芯扁平电缆将8251串行通信单元的数据总线插座与数据总线单元任一插座相连。

2、LED环境

(1)在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 (2)在“P.”状态下键入3490,然后按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he09.asm,用连续方式运行程序。 4、观察运行结果

以连续方式运行程序,用示波器观察OUT0应有方波输出。 5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

37

4.10 实验十 继电器控制

一、实验目的

自动化控制设备中都存在一个电子与电气电路的互相联结问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等),一方面又要为电子提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便起到这一桥梁作用。

通过本实验掌握用继电器控制的基本方法和编程。

二、实验内容

利用8255 PC0输出高低电平,控制继电器的开合,以实现对外部装置的控制。

三、程序流程

四、实验电路

38

五、实验步骤

1、实验连线

8255的PC0与继电器单元JIN相连,继电器单元JZ、JK、JB分别接GND、发光二极管L2、L1。

2、LED环境

(1)在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 (2)在“P.”状态下键入34B0,然后按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he10.asm,用连续方式运行程序。 4、观察运行结果

以连续方式运行程序,观察8255 PC0电平变化,高电平时继电器吸和,常开触点接上L2点亮,L1熄灭,低电平时继电器不工作,常闭触点闭合,L2熄灭,L1点亮。

5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

39

4.11 实验十一 8251串行通信实验(一):自发自收

一、实验目的

了解串行通信的实现原理,掌握8251的工作方式和编程方法。

二、实验内容

利用本实验系统内的8251接口芯片,采用自发自收的方法,实现数据收发通信实验。发送的数据为4000H开始的16个源RAM区单元内容,接收到的数据放在5000H开始的RAM单元中,核对接收的数据是否和发送的数据一致。

三、编程提示

?数据发送与接收字节均采用查询方式;

?8251接口芯片的端口地址:命令状态口=FFE1h,数据口=FFE0h;

?设置方式字:异步方式,8个数据位,1位起始位,1个停止位,波特率因子为16。 ?TXC、RXC时钟速率一致,可选速率F:38.4KHz、76.8KHz、153.6KHz、307.2KHz,波特率bps=TXC÷16,相应可选bps:2400、4800、9600、19200。

四、程序流程

五、实验电路

40

六、实验步骤

1、实验连线

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。

?将8251串行通信单元的T/RXC与分频单元的T6相连,CLK与分频单元的T0相连,8251CS与译码单元的Y0相连,将8251串行通信单元RXD与TXD相连。

?用8芯扁平电缆将8251串行通信单元的数据总线插座与数据总线单元任一插座相连。 2、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 ?在4000~400Fh内存单元中填入16个数据。

?在“P.”状态下键入35C0,然后按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he11.asm,用连续方式运行程序。 4、观察运行结果

在连续运行下,8251开始将4000~400Fh内存单元的数据发送串行口,再从串行口接收数据并存到5000~500Fh内存单元,当LED显示“P.”则表示操作完成。用复位命令结束程序,检查5000~500Fh内存单元的数据,应与4000~400Fh一致。 5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

41

4.12 实验十二 8251串行通信实验(二):与PC通信

一、实验目的

?了解实现串行通信的硬环境,数据格式的协议,数据交换的协议。 ?掌握8251芯片的工作方式和编程方法。

二、实验内容

?利用本实验系统内的8251接口芯片,实现与PC机通信。

?本实验实现以下功能:从PC上发送字符(0~F)显示到实验仪的数码管上;从实验箱/实验装置上发送字符(0~F),显示到PC机上。

三、程序流程

42

四、实验电路

五、实验步骤

1、实验连线

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。

?将8251串行通信单元的T/RXC与分频单元的T6相连,CLK与分频单元的T1相连,片选信号CS与译码单元的Y0相连,将8251串行通信单元的RXD、TXD分别与串行口的RX0、TX0相连。

?用8芯扁平电缆将8251串行通信单元的数据总线插座与数据总线单元任一插座相连。 2、PC机发送,实验箱接收

?把实验仪位于串行口区通信选择开关拨至右侧系统状态,在与PC联机状态下,编译、连接、下载PH88\\he12_R.asm,退出系统联机状态,释放串口;把实验仪位于串行口区通信选择开关拨至左侧用户状态,键入3FD0,按“EXEC”键运行程序;

?打开Dais软件工作目录(如:C:\\Dais),找到并运行“PC发送程序”,设置波特率为2400bps,单击“打开串口”按钮;

?从“PC发送程序”单击0~F发送数字,实验箱接收后将数字送LED显示。

43

3、实验箱发送,PC机接收

?把实验仪位于串行口区通信选择开关拨至右侧系统状态,在与PC联机状态下,编译、连接、下载PH88\\he12_T.asm,退出系统联机状态,释放串口;把实验仪位于串行口区通信选择开关拨至左侧用户状态,键入3FD8,按“EXEC”键运行程序。

?打开Dais软件工作目录(如:C:\\Dais),找到并运行“PC接收程序”,设置波特率为2400bps,单击“打开串口”按钮;

?在实验箱键盘上输入数字键0~F,“PC接收程序”将数字送PC屏幕显示。

4、观察运行结果

在连续运行下,观察PC机与实验仪之间收发数据是否无误。 5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

44

4.13 实验十三 步进电机控制

一、实验目的

了解步进电机控制的基本原理,掌握步进电机转动编程方法。

二、实验内容

用8255 PA0~PA3输出脉冲信号,驱动步进电机转动。

三、实验预备知识

步进电机驱动原理是通过对它每组线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号为控制,所以调节脉冲信号的频率便可改变步进电机的转速。微电脑控制步进电机最适合。

四、实验电路

五、实验步骤

1、实验连线

8255 PA0~PA3依次连到步进电机驱动单元的BA~BD插孔。 2、LED环境

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。

?在“P.”状态下键入3620,然后按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\he13.asm,用连续方式运行程序。 4、观察运行结果

在连续运行方式下,观察步进电机转动情况。 5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

45

4.14 实验十四 小直流电机调速实验

一、实验目的

(1)掌握直流电机的驱动原理。 (2)了解直流电机的调速方法。

二、实验内容

(1)用0832 D/A转换电路的输出经放大后驱动直流电机。

(2)编制程序改变0832输出经放大后方波信号的占空比来控制电机转速。

三、实验电路

四、实验步骤

1、实验连线

?连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。

?数模转换单元的CS与译码单元Y0相连,数模转换单元的WR与系统单元的IOW相连。

?用8芯扁平电缆将数模转换驱动单元的数据总线插座与数据总线单元任一插座相连。 2、LED环境

46

?在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。

?在“P.”状态下键入3480,按“EXEC”键开始执行调零程序,然后调节位于DA单元的调基准电位器,使数模转换单元的AUTO输出电压为0,按复位按钮返回“P.”状态。

?在“P.”状态下键入3670,按“EXEC”进入实验项目的运行。 3、PC环境

在与PC联机状态下,编译、连接、下载PH88\\da_0V.asm,执行调零程序,然后调节位于DA单元的调基准电位器,使数模转换单元的AUTO输出电压为0,按“暂停图标”返回“P.”状态,用连续方式运行PH88\\he14.asm程序。

4、观察运行结果

以连续方式运行程序,直流电机应在“停止”、“反转”、“停止”、“正转”的状态下循环工作。

5、终止运行

按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

47

4.15 实验十五 16×16点阵显示实验

一、实验目的

(1)利用微机扩展锁存器的方式控制点阵显示。

(2)掌握微机与16×16点阵块之间接口电路设计及编程。

二、实验内容

利用实验系统16×16点阵实验单元,以扩展锁存方式控制点阵显示。要求编制程序实现汉字点阵循环显示。

三、I/O口地址分配 扩展名称 273(4) 273(1) 273(3) 口地址 0FFE3H 0FFE0H 0FFE2H 用处 列代码1 列代码2 行扫描1 控制方式 扩展锁存器 扩展锁存器 扩展锁存器 273(2) 行扫描2 扩展锁存器 0FFE1H I/O口分别提供字形代码(列码)、扫描信号(行码),凡字形代码位为“1”、行扫描信号为“1”点亮该点,否则熄灭;通过逐行扫描循环点亮字形或曲线。

四、实验电路

48

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

Top