Wmd86实验指导书(简)

更新时间:2024-03-05 14:47:01 阅读量: 综合文库 文档下载

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

第 1 章 TD-PITE实验系统简介

1.1 实验系统配置

TD-PITE实验系统由I386EX系统板和接口实验平台两部分组成。其配置情况如表1-1所列。

表1-1 TD-PITE系统的主要配置

项 目 最小系统 基本接口芯片 内 容 I386EX系统板 8254 8255 8237 8251 DAC0832 ADC0809 74LS245 74LS573 控制存储器 62256SRAM FLASH 液晶(选) 点 阵 面包板 实验用连线 图形液晶 8×8LED点阵 连接用排线一套

数量 1 1 1 1 1 1 1 6 1 2 1 1 1 1 项 目 键 盘 数码显示 电子音响 单次脉冲 逻辑开关 显示灯 驱动接口 步进电机(选) 直流电机 串行口 机内电源 通信电缆 箱体 内 容 4×4键阵 共阴极数码管 扬声器 微动开关 拨动开关 LED ULN2803 35BYJ46型 DC12V,1.1W DB9插座 5V、±12V RS-232 数量 1 4 1 2 16 16 1 1 1 1 1 1 1 1.2 实验系统总线

系统总线以排针的形式引出。实验时,与实验单元相连可完成相应的实验。系统引出信号线说明见表1-2。

表1-2 80X86微机系统信号线

信 号 线 XD0~XD15 XA1~XA20 BHE#、BLE# ADS# MY0、MY1 IOY0~IOY3 HOLD HLDA 说 明 系统数据线(输入/输出) 系统地址线(输出) 字节使能信号(输出) 地址状态信号(输出) 存储器待扩展信号(输出) 信 号 线 MIR6、MIR7 SIR1 R/W# MRD#、MWR# IOR#、IOW# 说 明 主8259请求信号(输入) 从8259请求信号(输入) 读、写信号(输出) 存储器读、写信号(输出) I/O读、写信号(输出) 复位信号(输出) 1MHz时钟输出 1.8432MHz时钟输出 I/O接口待扩展信号(输出) RST、RST# 总线保持请求(输入) 总线保持应答(输出) CLK PCLK 注:#号表示低电平有效

1

1.3 实验系统软件

实验系统软件Wmd86.exe已安装在PC机开始菜单的程序选项中,一般在桌面上建立了名为Wmd86 4.1的快捷方式。它为集编辑、编译、链接、执行、调试及监视与输出于一体的集成开发软件,下面简单介绍该软件的使用方法。

运行该软件和其它应用软件唯一不同的是:要保证实验箱电源接通。即PC机与实验箱保持通信状态。运行该软件后,在PC机屏幕上出现Wmd86主窗口,如图1-1所示。

窗口分成四部分:菜单与工具栏区、程序编辑区、寄存器/变量/堆栈区和输出区。

程序编辑区

图1-1 Wmd86集成开发环境

1.菜单与工具栏区

操作方法同其它菜单和工具栏的使用,故不予介绍。仅介绍一些本系统特有的工具按钮。 其中,编译工具栏图标含义如下:

为编译按钮:当实验程序调入或写入程序编辑区时该按钮有效。编译当前实验程序,在源程序所在目录下生成同名的目标文件。

为链接按钮:当实验程序编译完成后有效。在源程序所在目录下生成同名的可执行文件。 为加载按钮:当实验程序链接完成后有效。把链接生成的可执行文件传送到下位机中,即实验系统的存储器中。

2

为编译、链接和加载:当实验程序调入或写入程序编辑区时有效。依次执行编译、链接和加载。

调试工具栏的所有按钮只仅在实验程序加载完成后有效。图标含义如下:

为监视变量按钮:设置要观察的全局变量。设置后才能在集成环境中的变量区出现要观察的变量。

为堆栈监视按钮:选择要监视堆栈后,才能在集成环境中的堆栈区观察堆栈的变化情况。 为设置起点按钮:当前光标所在行为当前行,此命令把当前行设置为程序的起点,即程序开始执行的行。寄存器区的CS和IP的值刷新后执行此行。 为单步执行按钮:从程序起点开始执行一行指令。

为跳过按钮:从程序起点开始执行一行指令。与单步执行按钮不同的是将子程序视为一个命令行。

为设置/删除断点按钮:为当前行设置断点或删除已设的断点。最多设置8个断点。 清除所有断点按钮:清除源程序中设置的全部断点。

为执行按钮:从程序起点执行到结束。除非遇到断点,会停止,再按此按钮会从断点处继续执行,直到再次遇到断点或程序结束。

为停止按钮:点击此按钮使程序停止执行。 2.程序编辑区

实验时的程序调入或写入此区,可通过文件菜单的打开或新建实现。可同时打开或新建多个实验程序。但只有一个实验程序被汇编、链接、执行和调试。通过点击标签实现实验程序的切换。

实验程序通过文件菜单的保存或另存存储到磁盘中。

3.寄存器/变量/堆栈区

通过点击该区下方的标签,选择寄存器、变量或堆栈区,以监视相应值的变化。其中寄存器和变量区还可修改。用鼠标左键单击某寄存器或变量,当寄存器或变量值的区域变为蓝色后输入修改后的值,然后回车。如果修改的是寄存器,输入值的长度必须与寄存器的长度相同,否则寄存器的值没有被修改。寄存器的值发生变化时,显示为红色。变量或堆栈区总是显示蓝色。

4.输出区

位于窗口的下部,通过点击该区下方的标签,选择编译、调试或结果区。从而显示相应

3

的输出信息。结果区中有“加载中,请稍候.....”的字样,表示实验系统软件正在把可执行文件加载到下位机(实验箱)中,用户此时应等待直到“加载成功”字样的出现。程序中用“INT 10H”输出的结果也显示在此区。软件或硬件复位成功后,结果区才显示“复位成功!”

4

第2章 实验项目

2.1微机原理及其程序设计实验

通过实验进一步学习80X86指令系统、寻址方式及程序的设计方法。同时掌握实验系统软件的使用。

2.1.1 系统认识实验

1.实验目的

掌握TD-PITE实验系统的操作,熟悉Wmd86软件的操作环境,为后续的实验奠定基础。 2.实验内容

已有实验程序:计算四个两位压缩BCD数之和,并将和保存到存储器中。 3.实验步骤

(1)运行Wmd86软件,进入Wmd86窗口,即Wmd86集成开发环境。

(2)根据程序设计使用语言的不同,通过“设置”菜单选择需要的语言。如图2-1所示。

图2-1 选择程序设计语言

(3)点击新建按钮或文件菜单的新建,如图2-2所示。实验程序的默认文件名为Wmd861.asm。

图2-2 新建程序

5

(4)编写实验程序并以1.asm为名保存,如图2-3所示。

图2-3 程序编辑实例

实验程序如下:

SSTACK SEGMENT STACK

DW 64 DUP(?)

SSTACK ENDS DATA A

SEGMENT

DB 56H,78H,32H,26H

SUM DW 0 DATA CODE

ENDS SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX, DATA

MOV DS, AX MOV AX, OFFSET A MOV SI, AX MOV CX, 3

MOV AL,0 L1:

ADD AL,[SI]

6

JNC L2 INC SUM+1 l2: INC SI LOOP L1

MOV BYTE PTR SUM,AL L3: JMP L3 CODE ENDS

END START

(5)点击

,编译程序。若程序无错,则输出图2-4所示的输出信息。然后点击,进

行链接。若无错输出图2-5所示的输出信息。若有错应重复(4),此时对程序进行修改,直到编译和链接无错,进入(6)。

图2-4 编译输出信息

图2-5 链接输出信息

(6)打开实验系统电源。 (7)点击

,加载程序。点击

为编译、链接、加载一次完成。加载成功后,在输出

区会显示“加载成功!”,表示程序已正确下载。起始执行语句上会有一条绿色的背景。如图2-6所示。有时加载不成功时,硬件复位——按动实验系统I386EX扩展卡上的复位按钮 ,出现复位成功字样后再加载。

7

图2-6 加载成功输出信息

(8)加载成功后,点击单步按钮执行两行命令,注意寄存器区中DS等寄存器值的变化。将输出区切换到调试窗口,使用DDS:0004,0005H命令查看存储器0004H、0005H两个单元中的内容。注意DS要用寄存器区中DS的实际值代替。如图2-7(a)、图2-7(b)和图2-7(c)所示,图中DS的值为0208。

图2-7(a) 单步执行 图2-7(b)D命令

8

图2-7(c) 显示存储器单元中数据

(9)点击执行按钮连续执行程序,然后点击停止按钮,停止程序的执行,检查程序执行结果。仍然使用DDS:0004,0005H命令观察数据变化。

(10)也可点击,在语句 L3: JMP L3处设置断点。再执行程序,进行观察。 当程序被执行后,若要重新执行,需重新设置起点;也可硬件复位。

此外可利用E命令修改存储器某个/些单元的内容。格式为:E <段址>:<偏移>。有关D、E等调试命令的详细说明请参阅有关的参考书。

4.操作练习

(1)建立下列程序,以LX.ASM为名保存。程序的功能为将00H~0FH共16个数写入1000H开始的连续16个存储单元中。

DATA SEGMENT ORG 1000H

DW 16 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DS,AX MOV SI,1000H MOV CX,10H MOV AL,0 L1: MOV [SI],AL INC AL

9

INC SI LOOP L1 L2: JMP L2 CODE ENDS END START

(2)对程序进行编译、链接、加载、执行、断点执行、单步执行等操作。

(3)利用D命令查看程序执行前后存储器单元的内容。并利用E命令修改存储器单元的内容。

2.1.2 数制转换实验

计算机的输入/输出设备处理数据或字符通常用ASCII、BCD码(十进制)及显示码等表示,而计算机的CPU处理的是二进制数。故数制间的转换会经常发生。各种数制及代码之间的对应关系如表2-1所示。

表2-1 数制及代码之间的对应关系

十六进制 BCD码 二进制 ASCII码 七段码 共阳极 共阴极 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 67H 77H 0 1 2 3 4 5 6 7 8 9 A 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 41H 40H 79H 24H 30H 19H 12H 02H 78H 00H 18H 08H 10

2.1.9 显示程序实验

1.实验目的

(1)了解INT 10H各功能模块的作用及用法。 (2)掌握字符方式下PC机显示器显示控制。 2.实验内容

设计一个程序: 在显示器上的输出窗口显示A~Z共26个大写英文字母(INT 10H的使用说明见附录2)。

3.实验步骤

(1)绘制流程图,编写实验程序,进行编译、链接无误后,加载到实验系统。 (2)执行程序,观察执行结果。

(3)修改实验程序,在显示器上显示“WELCOME TO OUR LAB”。 4.思考题

(1)对于实验步骤(3),用显示一串字符的功能调用了吗?

(2)实验程序能用功能调用INT 21H的显示一个字符或字符串实现吗?

16

2.2微机接口技术实验

2.2.1 FLASH存储器扩展实验

在计算机系统中,闪存主要用于保存系统引导程序和系统参数等需要长期保存的重要信息。各种智能系统中经常使用闪存。本实验所用的闪存AT29C010A为5V在线可编程可擦写只读存储器,存储容量为128×8,引脚见图2-7所示。其中:

A0~A16:地址信号

A12 A15 A16 NC VccWWE# NC CE#:芯片使能信号 OE#:输出使能信号

4 3 2 1 32 31 30 WE#:写使能信号 I/O0~I/O7:数据输入/输出信号 NC:空脚,不连接 1.实验目的

(1)熟悉FLASH的的使用方法。 (2)了解AT29C010A的编程特性。 2.实验内容 (1)芯片擦除程序。 (2)设置数据保护功能。

(3)数据编程:向FLASH中全部写入55。 (4)清除数据保护功能。 3.实验原理

数据编程/写方法:AT29C010A的数据编程以扇区为单位进行操作。共有1024个扇区,每个扇区有128个字节。对扇区的编程一般需要10ms,接下来才能对下一个扇区进行编程。在对一个扇区进行编程前,存储器会自动擦除该扇区内的全部数据,然后才进行编程。

软件数据保护:AT29C010A提供软件数据保护功能。在编程之前写入三个连续的程序命令,便可以启动软件数据保护功能,见流程框图图2-8所示。在启动该功能后,每次编程之前都需要加上这三条命令,否则数据不能写入芯片。断电不会影响该功能。如果要清除软件数据保护功能,可以用同样的方法写入六个连续的程序命令,见流程框图图2-9所示。

芯片擦除:对AT29C010A整个芯片可以进行擦除。通过六个连续的命令实现,命令序列见流程框图图2-10所示。

17

A7 A6 A5 A4 A3 A2 A1 A0 I/O0 5 6 7 8 9 10 11 12 13 29 28 27 26 25 24 23 22 21 A14 A13 A8 A9 A11 OE# A10 CE# I/O7 I/O1 I/O2 GNDI/I/O3 I/O4 I/O5 I/O6 14 15 16 17 18 19 20 图2-7 引脚图

3.

4.实验步骤

(1)按图2-11所示完成实验接线。 (2)编写实验程序,进行编译、链接。

(3)用D命令查看FLASH中的内容,若全为FF,执行数据保护功能程序。 (4)数据编程程序。用D命令查看FLASH中的内容。 (5)执行清除数据保护功能程序。

5.思考题

(1)执行第(4)步后,FLASH的前128个字节内容为多少?

18

图2-11 FALSH ROM实验接线

XA1 · 系 · XA17 统 XD0 · 总 · XD7 线 MWR# MRD# MY1 · · · · A0 · · A16 D0 FLASH · ROM · 单元 D7 WR RD CS 将128字节数据写入扇区 将命令20H写入AAAAH单元 将命令10H写入AAAAH单元 将命令55H写入5554H单元 将命令55H写入5554H单元 将命令AAH写入AAAAH单元 将命令AAH写入AAAAH单元 将命令80H写入AAAAH单元 将命令80H写入AAAAH单元 将命令55H写入5554H单元 将命令55H写入5554H单元 将命令AAH写入AAAAH单元 将命令AAH写入AAAAH单元 图2-9软件数据保护禁止流程框图 图2-10芯片擦除流程框图

(2)若将实验步骤的(4)与(5)调换,FLASH的前128个字节内容为多少?

2.2.2 8259中断控制实验

1.实验目的

(1)掌握8259中断控制器的工作原理。 (2)掌握8259的应用编程方法。 (3)掌握8259级联方式的使用方法。 2.实验原理

在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含两个级联中断控制器:一个为主控制器,一个为从控制器。从片的INT连接到主片的IR2信号上构成两片8259的级联。主片8259的中断请求信号IR6和IR7开放,从片的中断请求信号IR1开放,以供实验使用。

3.实验内容

(1)8259中断实验:实验接线图如图2-12所示。每按动一次单次脉冲KK1+,产生一次外部中断,在显示器上输出一个字符“7”。

(2)8259级联实验:实验接线图如图2-13所示。当按动一次KK1+时,显示器上显示字符“M7”,按动一次KK2+时,显示器上显示字符“S1”。

系 统 MIR7 总 主8259 线 单 次 KK1+ 脉 冲 单 元 MIR7 系 主8259 统 总 SIR1 线 从8259 单 KK1+ 次 脉 冲 KK2+ 单 元 图2-12 8259中断实验

图2-13 8259级联实验

4.实验步骤

(1)编写实验程序,按实验接线图接线。

(2)对实验程序进行编译、链接无误后,加载到实验系统。

(3)执行程序。并按动单次脉冲输入KK1+或KK2+,观察程序执行结果。 (4)若同时按动单次脉冲输入KK1+和KK2+,观察程序执行结果。 5.思考题

(1)在显示器的何处输出字符?

(2)图2-13的单次脉冲输入KK1和KK2可以交换吗?

19

(3)解释实验步骤(4)的实验结果。

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

1.实验目的

(1)掌握8254的工作方式及应用编程。 (2)掌握8254的典型应用电路的接法。 2.实验原理

8254共有三个独立的定时/计数器,其中0号和1号定时/计数器开放供实验使用,2号定时/计数器为串行通信单元提供收发时钟。定时/计数器0的GATE信号连接好了上拉电阻,若不对GATE信号进行控制,可以在实验中不连接此信号。

3.实验内容

(1)计数应用实验:使用单次脉冲模拟计数,使每当按动“KK1+”5次后,产生一次计数中断,并在显示器上显示一个字符“M”。

(2)定时应用实验:产生一个5ms的方波。

4.7K XA1 XA2 系 统 XD0 · 总 · XD7 线 IOW# IOR# IOY3 MIR7 A0 A1 GATE0 D0 8254 · 单元 · D7 CLK0 WR RD CS OUT0 VCC · · KK1+单次 脉冲单元 图2-14 8254计数应用实验

4.实验步骤

(1)编写实验程序,按实验接线图2-14或图2-15接线。 (2)对实验程序进行编译、链接无误后,加载到实验系统。 (3)执行程序。并按动单次脉冲输入KK1+,观察程序执行结果。 (4)改变程序中的定时/计数值,验证8254的定时/计数功能。

20

XA1 XA2 系 统 XD0 · 总 · XD7 线 IOW# IOR# IOY3 · · A0 A1 GATE0 D0 8254 · 单元 · D7 CLK0 WR RD CS OUT0 VCC CLK系 统总线 波形输出 图2-15 8254定时应用实验

5.思考题

(1)执行实验步骤(3)时,程序的执行结果和按动KK1+的速度有关吗? (2)你改变的计数值为多少。

2.2.4 8255并行接口实验

1.实验目的

(1)掌握8255的工作方式及其应用。 (2)掌握8255典型应用电路的接法。 2.实验内容

(1)基本输入输出实验:使8255的A口为输入,B口为输出。实现拨动开关到数据灯的数据传输。即只要开关拨动,数据灯的显示就发生相应的改变。

(2)流水灯显示实验:使 8255的A口、B口均为输出。数据灯D7~D0由左向右,每次仅亮一个灯,循环显示;数据灯D15~D8与D7~D0正相反,由右向左,每次仅亮一个灯,循环显示。

XA1 XA2 系 统 XD0 · 总 · XD7 线 IOW# IOR# IOY1 · · A0 A1 PA0 · D0 8255 · · 单元 PA7 · D7 PB0 · WR · RD PB7 CS · · K0 开 · 关 · 及 K7 LED 显 D0 示 · 单 · 元 D7 图2-16 8255基本输入输出实验

21

XA1 XA2 系 统 XD0 · 总 · XD7 线 IOW# IOR# IOY1 · · A0 A1 PA0 · D0 8255 · · 单元 PA7 · D7 PB0 · WR · RD PB7 CS · · D0 开 · 关 · 及 D7 LED 显 D8 示 · 单 · 元 D15 图2-17 8255流水灯实验

3.实验步骤

(1)编写实验程序,按实验接线图2-16或图2-17接线。 (2)对实验程序进行编译、链接无误后,加载到实验系统。 (3)执行程序。并拨动开关,观察发光二极管(数据灯)显示。 4.思考题

用C口和B口完成上述实验,应如何接线。并编写相应的程序。

2.2.5 A/D转换实验

1.实验目的

(1)了解ADC转换器的组成和原理。 (2)掌握A/D转换的一般编程步骤。

(3)掌握分A/D转换器ADC0809的使用方法。 2.实验内容

将ADC单元中提供的0~5V信号源作为ADC0809的模拟输入量,进行A/D转换,转换结果通过变量进行显示。

3.实验步骤

(1)编写实验程序,按实验接线图2-18接线。

(2)对实验程序进行编译、链接无误后,加载到实验系统。 (3)在程序的适当位置设置断点。

(4)执行程序。分别用D命令和变量监视两种方法检查转换结果。 (5)调节电位器(ADJ),重复步骤(4)。

22

系 统 XD0 · 总 · XD7 线 IOW# IOR# IOY1 · · A B CLK C D0 ADC · 单元 · D7 IN0 · WR · RD IN7 CS 系统CLK 5V ADJ 10K 图2-18 A/D转换实验

4.思考题

ADC转换需要一定的时间,有几种方法实现转换结果的读取。实验程序中采用了何种方法等待转换结束。

2.2.6 D/A转换实验

1.实验目的

(1)了解DAC转换器的组成和原理。 (2)掌握D/A转换的一般编程步骤。

(3)掌握分D/A转换器DAC0832的使用方法。 2.实验内容

用D/A转换产生锯齿波、脉冲波,并用示波器观察输出波形。

图2-19 D/A转换实验

系 XD0 统 · · · · 总 XD7 线 IOW# IOY0 D0 DAC 单元 · · OUT D7 WR CS 示波器测量

3.实验步骤

23

(1)编写实验程序,按实验接线图2-19接线。

(2)对实验程序进行编译、链接无误后,加载到实验系统。 (3)执行程序。 用示波器测量DAC的输出,观察输出波形。 4.思考题

编写程序:用D/A转换产生三角波形、方波。

2.2.7. 键盘扫描及显示设计实验

1.实验目的

了解键盘扫描及数码显示的基本原理,进一步熟悉8255编程。 2.实验原理

将8255单元与键盘及数码管显示单元连接,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0~F共16个数。实验接线图如图2-20所示。

A 键 · 盘 · 扫 Dp 描 及 X1 数 · 码 X4 显 示 Y1 单 · 元 Y4 XA1 XA2 系 统 XD0 · 总 · XD7 线 IOW# IOR# IOY0 · · A0 PB0 A1 · · PB7 D0 8255 · 单元 PA0 · · D7 PA3 WR PC0 RD · CS PC3 · · · · 图2-20 8255键盘扫描及数码管显示实验

3.实验内容

将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编码号在一个数码管上显示出来,当再按下一个按键时,便将这个按键对应的编码号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编码号。

4.实验步骤

(1)编写实验程序,按实验接线图2-20接线。

(2)对实验程序进行编译、链接无误后,加载到实验系统。 (3)执行程序。按下16个按键的任意一个按键,观察数码管的显示。 5.思考题

24

每个按键对应的编码号(数码管显示值)是一定的吗?为什么。

2.2.8 点阵LED显示设计实验

1.实验目的

(1)了解LED点阵的基本结构和显示原理。 (2)学习LED点阵扫描显示程序的设计方法。 2.实验原理

通过8255单元控制点阵的扫描显示。R1~R8为行控制,L1~L8为列控制,给行送一个“1”,给列送一个“0”,则相应的LED点亮。实验接线图如图2-21所示。

3.实验内容

使8×8LED点阵由大到小循环显示符号“?”。

XA1 XA2 系 统 XD0 · 总 · XD7 线 IOW# IOR# IOY1 · · A0 A1 PA0 · D0 8255 · · 单元 PA7 · D7 PB0 · WR · RD PB7 CS · · L1 点 · 阵 · LED L8 显 示 R1 单 · 元 · R8 图2-21 点阵显示实验

4.实验步骤

(1)编写实验程序,按实验接线图2-21接线。

(2)对实验程序进行编译、链接无误后,加载到实验系统。 (3)执行程序。观察LED点阵的显示。 5.思考题

使8×8LED点阵由小到大循环显示符号“?”。

25

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

Top