微机实验指导书08091.docx

上传人:b****7 文档编号:25558788 上传时间:2023-06-09 格式:DOCX 页数:114 大小:401.67KB
下载 相关 举报
微机实验指导书08091.docx_第1页
第1页 / 共114页
微机实验指导书08091.docx_第2页
第2页 / 共114页
微机实验指导书08091.docx_第3页
第3页 / 共114页
微机实验指导书08091.docx_第4页
第4页 / 共114页
微机实验指导书08091.docx_第5页
第5页 / 共114页
点击查看更多>>
下载资源
资源描述

微机实验指导书08091.docx

《微机实验指导书08091.docx》由会员分享,可在线阅读,更多相关《微机实验指导书08091.docx(114页珍藏版)》请在冰豆网上搜索。

微机实验指导书08091.docx

微机实验指导书08091

 

微机原理与接口

实验指导书

 

广州大学

实验中心

物理与电子工程学院

 

目录

一.伟福实验系统组成和结构

1.1实验系统主机的硬件组成

1.2实验系统的EX88B仿真板简介

1.3实验系统的使用方法

二.8088/86CPU系列实验说明

2.1系统的启动

2.28088/8086CPU系列实验软件设置

三.实验项目

实验一熟悉Lab6000实验系统,初级程序的编写与调试

实验二简单程序的编写与调试

实验三分支程序设计

实验四循环程序设计

实验五子程序设计

实验六8255输入、输出实验

实验七8251A串行通讯实验

实验八8253计数器实验

实验九8259外部中断实验

实验十8237DMA实验

实验十一D/A转换与A/D转换实验

实验十二多功能I/O接口扩充设计

实验十三电子时钟设计

实验十四数据采集系统设计

四.附录

4.1八段数码管显示

4.2键盘扫描显示实验

4.3DMA控制器Intel8237

 

一.伟福实验系统组成和结构

Lab6000实验系统可根据教学实践的需要实现MCS51/MCS196单片机原理与接口、8088/8086微机原理与接口的一系列实验,并在硬件上预留了自主开发实验的空间。

对基本实验仅需连少量连接线就可完成,减轻学生工作量。

同时也提供了需较多连线的扩展性实验,以进一步锻炼学生的实践开发能力。

此外,系统还为学生提供了强大的软、硬件调试手段。

1.1实验系统主机的硬件组成

本实验系统主机上有丰富的实验电路模块和灵活的组成方法,既可以和MCS51、MCS96CPU也可以和8088/8086CPU组合完成各种实验。

本实验箱拥有高档通用仿真器所具有的逻辑分析仪、波形发生器和程序跟踪器等强大的分析功能,让学生在做实验时不仅能了解程序的执行过程,更能直观地看到程序运行时的时序或者电路上的信号。

1、逻辑电平开关电路

图1:

逻辑电平开关电路

实验箱上有8只开关K0―K7,并有与之相对应的K0―K7引线孔为逻辑电平输出端。

开关向上拨相应插孔输出高电平“1”,向下拨相应插孔输出低电平“0”。

2、LED电平显示电路

图2:

LED电平显示电路

 

实验箱上装有8只发光二极管及相应驱动电路。

见图2,L0-L7为相应发光二极管驱动信号输入端,该输入端为高电压电平“1”时发光二极管点亮。

我们可以通过P1口对其直接进行控制,点亮或者熄灭发光二极管。

3、单脉冲电路

单脉冲电路由按键(PULSE)和去抖动电路组成,每按一次(PULSE)键产生一个单脉冲。

板上有单脉冲的输出信号插孔,图为“”和“”,分别为正脉冲和负脉冲。

图3:

单脉冲发生电路

4、逻辑门电路

或门与门非门

图4:

逻辑门电路

本实验箱提供系列门电路:

非门,或门,与门,D触发器。

逻辑门电路由7400和7404组合实现。

5、逻辑测量(逻辑笔)电路

本实验箱上有逻辑测量电路,如图5。

可用于测量各种电平,其中红灯亮表示高电平,绿灯亮表示低电平。

如果两灯同时闪动,表示有脉冲信号;两灯都不亮时,表示浮空(高阻态)。

图5:

逻辑笔电路

6、4 MHz脉冲信号源和多级分频电路

下图是4MHz脉冲信号输出电路。

可将4MHz脉冲信号接到分频电路上,经过分频后,能得到2M、1M、500K、250K、125K、62.5KHz多种频率的脉冲信号。

图6-1:

4 MHz脉冲产生电路

 

7、可调模拟量输入电路

图7:

电位器

电位器电路用于产生可变的模拟量(0-5V)。

8、串口通信程序实验插孔

做串行通信实验时,如果不需要将TTL电平转到RS232电平,可直接将POD51/96仿真板或POD8086仿真板上的TXD、RXD与通信对方交叉对接,并且共地即可。

单片机与标准的串行设备通信,需要将TTL电平转到RS232电平或将RS232电平转成TTL电平。

本实验箱提供用户串行通信接口,可以用这两个插孔进行RS232通信程序实验,经电平转换后,再通过实验箱的“用户串口”接到PC机或其它RS232设备,实现数据互传。

9、六位LED数码显示器和4×6键盘电路

本实验箱的LED显示电路和键盘电路如图8。

显示控制的位码由74HC374输出,经ULN2003反向驱动后,做LED的位选通信号。

位选通信号也可做为键盘列扫描码,键盘扫描的行数据从74HC245读回,374输出的列扫描码经245读入后,用来判断是否有键被按

下,以及按下的是什么键。

如果没有键按下,由于上拉电阻的作用,经245读回的值为高,如果有键按下,374输出的低电平经过按键被接到245的端口上,这样从245读回的数据就会有低位,根据374输出的列信号和245读回的行信号,就可以判断哪个键被按下。

LED显示的段码由另一个74HC374输出。

键盘和LED显示电路的地址译码见图8,做键盘和LED实验时,需将KEY/LEDCS接到相应的地址译码上。

位码输出地址为0X002H,段码输出地址为0X004H,键盘行码读回地址为0X001H,此处X是由KEY/LEDCS决定。

例如将KEY/LEDCS接到地址译码的CS0上,那么位码输出地址就为08002H,段码输出地址就是08004H,键盘行码读回地址为08001H。

 

图8:

键盘及LED显示电路

 

10、存储器电路

本实验箱上有一片32K存储器61256。

提供给学生做存储器实验,由于地址译码为4K一段,所以只能提供4K容量使用,地址从0000H~0FFFH。

用RAMCS来选择不同的地址段,以适应不同的应用电路。

图9:

8255端口扩展电路

11、8255端口扩展电路

12、A/D转换电路

实验箱上有一个0~5V的可调电位器,将可变电压输出端接入A/D转换电路的输入端,通过CPU软件处理,读进A/D转换值,再将转换值送数码管显示。

我们可以调节电位器,使之输出不同电压值,通过数码管的显示,检验A/D转换正确与否。

图10:

A/D转换电路

13、D/A转换电路

图11:

D/A转换电路

我们可以通过软件编程控制D/A转换芯片DAC0832,输出相应电流值,经过采样电路取出模拟量电压值,用电压表测量电压输出端子,读出电压值。

14、16×16LED点阵电路

15、8251A串行口扩展电路

 

16、8253定时器/计数器扩展电路

17、8259中断扩展电路

18、8237DMA扩展电路

19、4-16译码器

20、实验电路插座

本实验箱具有1个40芯通用电路插座,每个插座的全部引脚都被引出到相应的插孔,40芯通用插座可兼容28芯、24芯、16芯和14芯插座。

利用这个插座,可对双列直插式的各种微机芯片进行实验。

21、总线插孔

本实验箱上有三排总线插座,用于引出各种总线信号,其中AD0~AD7为8根数据总线,A0~A15为16根地址总线。

另外ALE,RD,WR为控制总线。

与CPU相关的一些控制信号和I/O信号例如P1口、RXD、TXD等信号在相应的仿真板上。

22、地址译码插孔

片选号

地址范围

CS0

08000H~08FFFH

CS1

09000H~09FFFH

CS2

0A000H~0AFFFH

CS3

0B000H~0BFFFH

CS4

0C000H~0CFFFH

CS5

0D000H~0DFFFH

CS6

0E000H~0EFFFH

CS7

0F000H~0FFFFH

1.2实验系统的EX88B仿真板简介

进行8088/86的实验时,需将EX88B仿真板插在实验箱上,EX88B仿真板如图:

 

IO/M:

用于选择访问外设还是存储器

1.3实验系统的使用方法

本实验系统具有三种使用方法:

1、无系统机,仅用实验箱的板上仿真器进行仿真和实验。

2、有系统机,用系统机上的集成调试软件驱动板上仿真器进行仿真和实验。

3、无实验箱、无仿真器,仅在系统机上采用软件模拟方式进行仿真。

 

二.8088/86CPU系列实验说明

2.1系统的启动

进行8088/86CPU实验时,并插上EX88B仿真板。

将配套的串行通讯电缆的一端与实验台的RS2329芯D形插座相连,另一端与PC相的串行口相连。

将实验台的电源线与220V电源相连。

(实验结束后应拔下)

打开实验台电源开关,红色电源指示灯亮。

仿真开发器初始化成功后,会在LED上显示‘8088’。

打开计算机电源,执行WAVE集成调试软件。

注意:

无论是集成电路的插拔、通讯电缆的连接、跳线器的设置还是实验线路的连接,都应确保在断电情况下进行,否则可能造成对设备的损坏。

实验线路连接完成后,应仔细检查无误后再接通电源。

2.28088/8086CPU系列实验软件设置

WAVE集成调试环境应设置如下:

仿真器型号:

伟福Lab6000实验箱

仿真头型号:

8088/86实验(8088/86)

语言设置对话框各命令行应设置如下:

编译器路径:

一般情况下为C:

\COMP86,也可设为你自己的安装路径。

ASM命令行:

‘/zi/l’

C命令行:

‘-mt-v-y-c’

LINK命令行:

‘/m/l/v’

 

三.实验项目

 实验一熟悉Lab6000实验系统,初级程序的编写与调试

一、   实验目的

1.掌握Lab6000实验系统的使用。

2.练习初级程序的编写与调试。

二、实验内容:

指定存储器中某块的起始地址和长度,要求能将其内容清零。

三、实验说明

通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程,调试方法。

如何将存储器块的内容置成某固定值(例全填充为0FFH)?

请学生修改程序,完成此操作。

四、参考程序

S1.asm

datasegment

Blockdb256dup(55h)

dataends

codesegment

assumecs:

code,ds:

data

startprocnear

movax,data

movds,ax

movbx,offsetBlock;起始地址

movcx,256;清256字节

Again:

mov[bx],byteptr0

incbx;地址+1

LoopAgain;记数减一

jmp$;死循环

codeends

endstart

 

五、实验步骤

(1)进入Wave6000,输入程序并检查,保存程序。

(2)“编译”程序。

(3)“全速执行”程序。

(4)“暂停”程序运行,在“数据窗口(MEMOREY)”查看0400H起始的单元内容,并记录。

(5)在指令“jmp$”处设断点。

“全速执行”程序。

(6)在“数据窗口(MEMOREY)”查看0400H起始的单元内容,记录并分析实验结果。

实验二简单程序的编写与调试

一、实验目的

1.掌握存储器读写方法

2.了解存储器的块操作方法

3.了解内存的移动方法。

二.实验内容:

1.将指定源地址和长度的存储块移到指定目标位置

2.将给定的一个二进制数转换成二十进制(BCD)码。

三、参考程序S2a.asm

datasegment

Sourcedb256dup(055h)

Targetdb256dup(0aah)

dataends

codesegment

assumecs:

code,ds:

data,es:

data

startprocnear

movax,data

movds,ax

moves,ax

movsi,offsetSource

movdi,offsetTarget

movcx,256

repmovsb

jmp$

codeends

endstart

S2b.asm

;将AX拆为三个BCD码,并存入Result开始的三个单元。

datasegment

Resultdb3dup(?

dataends

codesegment

assumecs:

code,ds:

data

startprocnear

movax,data

movds,ax

movax,123

movcl,100

divcl

movResult,al;ax除以100,得百位置Result

moval,ah;余数ah除以10,得十位置Result+1l

movah,0

movcl,10

divcl;余数ah为个位置Result+2

movResult+1,al

movResult+2,ah

结束

jmp$

codeends

endstart

 

四、实验步骤

1.进入Wave6000,输入程序,并检查,保存程序。

2.“编译”程序。

3.在指令“jmp$”处设断点。

4.“全速执行”程序。

5.在“数据窗口(MEMOREY)”查看:

a)0400H、0401H、0402H三个单元的内容,记录并分析实验结果。

b)分别查看0400H、0500H开始256个单元的内容,记录并分析实验结果。

实验三分支程序设计

一、实验目的

1.熟悉条件转移指令的功能。

2.了解条件转移指令的使用方法。

二、实验预习要求

1.复习8086指令系统中的条件转移类指令。

2.按照题目要求在实验前编写好实验中的程序段。

三、实验内容

编制程序:

在三个连续的字单元中存放着彼此相等的代码,现知道其中一个字中的内容发生了变化,找出变化了的代码及其地址,并要求将此代码送入字变量A中,其地址送入字变量B中。

四、参考程序:

假定三个连续的字单元的首地址为BUF,先将BUF中的内容依此与BUF+2,BUF+4两个字单元中的内容进行比较,若均不相等,表明BUF中的代码发生了变化;若与其中的一个字单元中的内容相等,表明另一个字中的代码发生了变化。

S3.ASM

STACKSEGMENTSTACK

DB64DUP(0)

STACKENDS

DATASEGMENT

BUFDW550H,0AAAH,550H;三个被测代码

ADW0

BDW0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

BEGIN:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVAX,BUF

CMPAX,BUF+2;第一、二字单元内容相比

JNEL1

MOVAX,BUF+4;第一、二字单元内容相等时,第三字变化,送A

MOVA,AX

MOVB,OFFSETBUF+4;其地址送B后结束

JMPEXIT

L1:

CMPAX,BUF+4;第一、三字单元内容相比

JNEL2

MOVAX,BUF+2;第一、三字单元内容相等,第二字变化,送A

MOVA,AX

MOVBX,OFFSETBUF+2;其地址送B后结束

MOVB,BX

JMPEXIT

L2:

MOVA,AX;第一与二、三字单元内容不等,第一字变化,送A

MOVBX,OFFSETBUF

MOVB,BX;其地址送B后结束

EXIT:

MOVAH,4CH;返回操作系统

INT21H

CODEENDS

ENDBEGIN

五、实验步骤:

1.进入Wave6000,输入程序并检查,保存程序。

2.“编译”程序。

4.“全速执行”程序。

5.查看结果存储单元A、B的内容。

(窗口\CPU窗口\SFR窗口:

观察当前各寄存器的内容,确定A,B所在的段址,计算A,B的偏移量)

6.改变不同地址字单元的内容,分别执行,查看结果存储单元A、B的内容。

六、 实验报告要求

1.整理实验程序段和运行结果,对结果进行分析。

画出程序的流程图。

2.总结条件转移类指令的用途及使用方法。

实验四循环程序设计

一、   实验目的

1.熟悉循环控制指令的功能。

2.了解循环控制指令的使用方法。

二、   实验预习要求

1.复习8086指令系统中的循环控制类指令。

2.按照题目要求在实验前编写好实验中的程序段。

三、实验内容

编制程序:

 

1.设有n个数,连续存放在以BUF为首的字存储区中。

现需要统计其中最高6位为全1的数的个数,并将统计结果送入A。

用循环程序实现。

2.已知n个字符连续存放在以BUF为首址的字节区中,现需要在第P(1≤P≤n)个字符后插入10个空,并分别显示插入前后的字符串。

用循环程序实现。

实验步骤

(1)输入程序1并检查无误,经汇编、连接后装入系统;命令运行程序1;查看结果存储单元A的内容;改变BUF为首的字存储区中不同单元的内容,分别执行,每次执行后,查看结果存储单元A的内容。

(2)输入程序2并检查无误,经汇编、连接后装入系统;运行程序2;查看BUF为首址的字节区的内容;改变P取值,重新汇编、连接后装入系统,运行并查看结果。

四、   实验报告要求

1.整理实验程序段和运行结果,对结果进行分析。

画出上述程序的流程图。

2.总结循环控制类指令的用途及使用方法。

五、参考程序:

1.设有n个数,连续存放在以BUF为首的字存储区中。

现需要统计其中最高6位为全1的数的个数,并将统计结果送入A。

用循环程序实现。

寄存器分配如下:

SI:

取数指针,初值指向BUF,每循环一次之后增2。

CX:

循环记数器,初值为n,每循环一次之后减1。

AX:

存放统计结果。

初值为0。

BX:

暂存当前处理结果。

S4a.ASM

STACKSEGMENTSTACK

DB64DUP(0)

STACKENDS

DATASEGMENT

BUFDW0FC13H,0FD15H,6897H,0FAFFH,0FB11H,0FF00H,0FE22H,0FFH

N=($-BUF)/2;待统计数个数

ADW0;存放统计结果

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

BEGIN:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

LEASI,BUF

MOVCX,N

MOVAX,0

LOOPA:

MOVBX,[SI]

ANDBX,0FC00H;BX最高六位不变,其余清零

CMPBX,0FC00H;BX最高六位不全为1时转

JNENEXT

INCAX;BX最高六位全为1时AX+1

NEXT:

ADDSI,2

LOOPLOOPA

MOVA,AX

MOVAH,4CH

INT21H

CODEENDS

ENDBEGIN

2.已知n个字符连续存放在以BUF为首址的字节区中,现需要在第P个字

符后插入10个空格,并分别显示插入前后的字符串。

(1≤P≤n)

寄存器分配:

CX:

循环计数

SI:

取字符指针

DI:

送字符指针

AL:

存放当前要传送的字符

S4b.ASM

STACKSEGMENTSTACK

DB200DUP(0)

STACKENDS

DATASEGMENT

BUFDB'ABCDEFGHIJKLMNOPQRSTUVWXYZ$'

N=$-BUF;插入前字符个数

DB10DUP(0)

P=20;令P=20

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

BEGIN:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

LEADX,BUF;显示插入前字符串

MOVAH,9

INT21H

MOVSI,OFFSET[BUF+N-1]

MOVDI,SI

ADDDI,10

MOVCX,N-P;CX为需后移的字符个数

LOPA:

MOVAL,[SI];将CX个字符后移10

MOV[DI],AL

DECSI

DECDI

LOOPLOPA

MOVDI,OFFSETBUF+P;

MOVCX,10

MOVAL,''

LOPB:

MOV[DI],AL;插入10空格

INCDI

LOOPLOPB

MOVAH,2;显示回车

MOVDL,0DH

INT21H

MOVDL,0AH;显示换行

INT21H

LEADX,BUF;显示插入后字符串

MOVAH,9

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDBEGIN

 

实验五子程序设计

一、实验目的

熟悉掌握子程序的设计方法与调试方式,并能正确书写子程序说明。

要求在子程序设计中正确使用堆栈保护现场或保存中间结果。

准确确定主、子程序的参数并选择合适的传递方式,正确地完成子程序的调用。

二、   实验预习要求

1.复习8086指令系统中的子程序的调用与返回指令。

2.按照题目要求在实验前编写好实验中的程序段。

三、实验内容

编制程序:

编制子程序NF10T16,要求从键盘接受一个无符号十进制数(不大于65535),在显示器上以十六进制形式显示其值。

主程序反复调用子程序NF10T16,直到按ctrl+c结束。

四、实验步骤

(1)输入程序并检查无误,经汇编、连接后装入系统;

(2)运行程序;

(3)在DOS环境运行可执行文件。

五、实验报告要求

1.整理出完整的实验程序段和运行结果,对结果进行分析。

画出程序的流程图。

2.总结子程序的调用与返回指令的用途及使用方法。

六、参考程序

功能:

从键盘接受一个不大于65535的无符号十进制数,以十六进制形式显示其值。

入口参数:

出口参数:

寄存器:

SI待转换十进制数存储区指针

CL待转换十进制数位数

DL十六进制位数

DI输出缓冲区指针

S5.ASM

STACKSEGMENTSTACK

DB64DUP(0)

STACKENDS

DATASEGMENT

INPUTDB0DH,0AH,'PLEASEINPUTDATA:

$'

BUFINDB6;10号功能调用所需输入缓冲区(长度6)

DB?

;实际键入数字位数

DB6DUP(?

);键入数字的ASCII

DATDW10

BUFERDB0DH

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

当前位置:首页 > 初中教育 > 语文

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

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