微型计算机原理与接口技术实验学生用.docx

上传人:b****6 文档编号:8913516 上传时间:2023-02-02 格式:DOCX 页数:58 大小:596.48KB
下载 相关 举报
微型计算机原理与接口技术实验学生用.docx_第1页
第1页 / 共58页
微型计算机原理与接口技术实验学生用.docx_第2页
第2页 / 共58页
微型计算机原理与接口技术实验学生用.docx_第3页
第3页 / 共58页
微型计算机原理与接口技术实验学生用.docx_第4页
第4页 / 共58页
微型计算机原理与接口技术实验学生用.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

微型计算机原理与接口技术实验学生用.docx

《微型计算机原理与接口技术实验学生用.docx》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术实验学生用.docx(58页珍藏版)》请在冰豆网上搜索。

微型计算机原理与接口技术实验学生用.docx

微型计算机原理与接口技术实验学生用

 

《微型计算机原理与接口技术》

实验指导书

 

信息工程学院电子信息

2015.10.12

 

1.Dais-8086H+实验平台系统介绍

1.1系统组成

Dais系列微机仿真实验系统由管理CPU、目标CPU和通用电路、接口实验电路及稳压电源组成,通过RS232C串行接口与PC微机相连,系统硬件主要内容如下:

CPU

管理CPU、目标CPU8032/78E438/STC系列单片机

系统存储器

监控管理程序在管理CPU的FLASH中、RAM61256二片(64K)、BPRAM61256(32K)。

接口芯片

及单元实验

8251、8253、8255、8259、ADC0809、DAC0832、164、74LS273、74LS244、电子发声单元,电机控制单元,开关及发光二极管、单脉冲触发器、继电器控制等

外设接口

打印接口,RS232C串口、51仿真接口

显示器

6位LED、二路双踪示波器

键盘

32键自定义键盘

EPROM编程器

对EPROM2764/27128快速读出

系统电源

+5V/2A,±12V/0.5A

1.2系统功能与特点

⑴自带键盘、显示器,能独立运行,也可以PC机为操作平台。

两种工作方式任意选择。

⑵系统采用紧耦合多CPU技术,用STC89C58作为系统管理CPU,8032/78E438/STC系列单片机作为目标机仿真与实验CPU,其软硬件资源100%出借。

⑶目标CPU采用主频为11.0592MHz,支持扩展仿真(即RAM仿真),亦支持ROM仿真(即FLASH下载式仿真)。

在ROM仿真模式下,可实现对P0、P2的I/O口功能。

⑷配有二片61C256静态存储器构成系统的64K程序空间,地址范围为0000H~0FFFFH,还配一片61C256(32K)作为用户设置的断点区(BPRAM)。

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

⑹具有最丰富的调试手段,系统全面支持硬件断点,可无限制设置断点,同时具有单步、宏单步、连续运行及无限制暂停等功能,100%保护用户现场,返回监控。

⑺向用户提供ISA总线接口及PARK板接口,为研发与创新实验的实施创造了必备的拓展环境。

1.3系统资源分配

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

空间地址

器件选用

用途与说明

0000H~7FFFH

6116

监控程序空间

0000H~0FFFFH

PROM

目标机程序空间

0000H~0FFFFH

实验接口电路

数据及IO空间

系统已定义的I/O地址如下(本学期实验所用的端口地址):

接口芯片

口地址

用途

74LS273

0FFDDH

字位口

74LS273

0FFDCH

字形口

74LS245

0FFDEH

键入口

8255A口

0FFD8H

EP总线

8255B口

0FFD9H

EP地址

8255C口

0FFDAH

EP控制

8255口

0FFDBH

控制字

2安装与使用

2.1硬件安装

⑴电源连接:

通过随机所配的三芯电源线接入AC220V电网。

⑵打开电源开关系统应显示闪动的“P.”,若否应按下RESET键,如仍不显示闪动的“P.”,应立即切断电源,检查后重新进行或与本公司驻当地销售服务中心联系。

⑶系统功能自检

在闪动的“P.”状态下按键:

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

2.2快捷使用

2.2.1Windows环境

⑴在桌面上点击图标

然后选择以实验系统所插串口一致的选项,点击“确定”便进入Dais集成调试环境。

⑵点击工具条中“

”图标,在打开对话框中双击LED51.asm文件,进入实验源程序的编辑窗口。

⑶点击工具条中“

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

⑷在工具条中点击所需的运行方式:

”单步、“

”宏单步、“

”运行。

⑸若需要以断点方式运行,可直接点击源语句行前的“

”图标来完成所需断点的设置与清除,然后再点击“

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

⑹系统一旦进入运行状态后若需终止该程序的运行请点击“

”图标退出当前操作返回待令状态。

 

软件实验

本节共编了9个软件实验,通过这些程序的调试使学生熟悉8088/86的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。

 

实验一 程序设计实验

(一)

1、清零程序

一、实验目的

掌握8088汇编语言程序设计和调试方法,熟悉键盘操作。

二、实验内容

把RAM区内4000H~40FFH单元的内容清零。

三、程序流程

四、实验步骤

用连续或单步方式运行程序,检查4000~40FFH中执行程序前后的内容变化。

五、实验思考

假使把4000H~40FFH中的内容改成FFh,如何修改程序。

六、实验程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3000H

S1:

MOVBX,4000H

MOVAX,0000H

MOVCX,0080H

L1:

MOV[BX],AX

INCBX

INCBX

LOOPL1

JMP$

CODEENDS

ENDS1

 

2、 拆字程序

一、实验目的

掌握汇编语言设计和调试方法。

二、实验内容

把4000H的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H高位清零,一般本程序用于把数据送显示缓冲区时用。

三、程序流程

四、实验步骤

用连续或单步方式运行程序,检查4000~4002H中内容变化情况。

五、实验程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3020H

S2:

MOVBX,4000H

MOVAL,[BX]

MOVAH,AL

MOVCL,4

SHRAH,CL

INCBX

MOV[BX],AH

ANDAL,0FH

INCBX

MOV[BX],AL

JMP$

CODEENDS

ENDS2

 

3、 拼字程序

一、实验目的

进一步掌握汇编语言设计和调试方法。

二、实验内容

把4000H、4001H的低位分别送入4002H高低四位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。

三、实验流程

四、实验步骤

单步或连续运行程序,检查4002h内容变化情况。

五、实验程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3040H

S3:

MOVBX,4000H

MOVAX,[BX]

ANDAL,0FH

MOVCL,4

SHLAL,CL

【】;屏蔽高4位

ORAL,AH

ADDBX,2

MOV[BX],AL

JMP$

CODEENDS

ENDS3

实验报告要求:

1、将程序补充完整;

2、详细注释所有程序。

3、完成实验思考

4、注明实验现象及结论。

 

实验二程序实验

(二)

4、 数据区移动

一、实验目的

掌握RAM中的数据操作。

二、实验内容

把4100H源RAM区首地址内的16字节数据传送到4200H目标RAM区。

三、设计思想

程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。

源数据块和目的数据块在存储器中可能有三种情况,如下图:

对于两个数据分离的情况,如图(a),数据的传送从数据块的首地址开始,或者从数据块的末地址开始均可。

但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。

可以得出如下结论:

当源数据首址>目的块首址时,从数据块首址开始传送数据。

当源数据首址<目的块首址时,从数据块末址开始传送数据。

四、程序流程

五、实验步骤

运行程序,检查4100~410Fh中内容是否和4200~420Fh中内容完全一致。

六、实验程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3060H

S4:

MOVCX,0010H

MOVSI,4100H

MOVDI,4200H

CMPSI,DI

JAA42

ADDSI,CX

ADDDI,CX

A41:

DECSI

DECDI

MOVAL,[SI]

MOV[DI],AL

LOOPA41

JMP$

A42:

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

LOOPA42

JMP$

CODEENDS

ENDS4

 

5、 数据排序实验

一、实验目的

熟悉8088指令系统,掌握程序设计方法。

二、实验内容

编写并调试一个排序子程序,其方法为用冒泡法将RAM中的几个单元字节无符号的正整数,按从小到大的次序重新排列。

三、程序流程

四、实验步骤

⑴从第一个数开始,依次把相邻的两个数进行比较,即第(N-2)个数与第(N-1)个数比较,第(N-1)个数与N个数比较等等;若第(N-1)个数不大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。

此时。

N个数中的最小数将被排在N个数的最后。

⑵对剩下的(N-1)个数重复第⑴步,找到(N-1)个数中的最小数。

⑶重复第⑵步,直到N个数全部排序好为止。

五、实验步骤

在4000H~400AH中通过键盘命令输入不等的10个数,运行本实验程序后检查4000H~400AH中内容是否按从大到小排列。

在和PC机联机时,用连续单步方式,可很清楚地看出数据排序时数据移动变化情况。

六、实验思考

编一程序把4000H~400AH中内容按从大到小排列。

七、实验程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3090H

S5:

MOVCX,000AH

A53:

MOVBX,4000H

PUSHCX

A52:

MOVAX,[BX]

【】;两数比较

JCA51

A54:

INCBX

LOOPA52

POPCX

LOOPA53

JMP$

A51:

XCHGAL,AH

MOV[BX],AX

JMPA54

CODEENDS

ENDS5

 

6、 找“零”个数

一、实验目的

熟悉汇编语言编程,掌握串操作指令的使用。

二、实验内容

在4000~400Fh中查出有几个字节是00,把个数放在4100h中。

三、程序流程

四、实验步骤

在4000~400Fh的几个单元中填入零,运行本程序后检查4100h中是几个单元数。

五、实验思考

修改程序,查找其他内容。

如0FFH等

六、实验程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG30B0H

S6:

MOVBX,4100H;COUNT

MOVAX,0000

MOV[BX],AX

MOVCX,0010H

MOVDI,4000H

CLD

A62:

SCASB

【】;是0则转移计数

A63:

LOOPA62

JMP$

A61:

INCBYTEPTR[BX]

JMPA63

CODEENDS

ENDS6

实验报告要求:

1、将程序补充完整;

2、详细注释所有程序。

 

实验三程序实验(三)

7、 二进制转换到BCD

一、实验要求

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

二、实验目的

掌握简单的数值转换算法,基本了解数值的各种表达方法。

三、实验说明

计算机中的数值有各种表达方式,这是计算机的基础。

掌握各种数制之间的转换是一种基本功。

本实验将转换结果存入4000h为起始地址的三个单元。

四、程序流程

五、实验思考

如何将BCD转换成二进制码?

六、实验程序

codesegment

assumecs:

code

org1000h

Start:

movbx,4000h

movax,123

movcl,100

divcl

mov[bx],al;除以100,得百位数

moval,ah

movah,0

movcl,10

divcl

【】;余数除以10,得十位数

【】;余数为个位数

jmp$

codeends

endStart

8、多分支程序

一、实验目的

掌握汇编语言的编程,熟悉程序散转的设计方法。

二、实验内容

多分支结构相当于一个多路开关,在程序设计中通常是根据某寄存器或某单元的内容进行程序转移。

在设计多分支转移程序时,如果分支太多,则平均转移速度太慢,本实验采用转移地址表实现多分支转移,可以提高平均转移速度。

编写程序,根据送入的数据转移运行。

三、程序流程

四、编程提示

LED数码管0~F的字行代码:

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

C0

F9

A4

B0

99

92

82

F8

80

90

88

83

C6

A1

86

8E

FF

LED数码管的字位代码:

字位

1

2

3

4

5

6

代码

20

10

08

04

02

01

五、实验步骤

在4000h中分次输入00,01,02…0F,每次运行程序后观察数码管上数字循环情况。

六、实验程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3130H

S8:

JMPA81

TABDWLED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7

DWLED8,LED9,LEDA,LEDB,LEDC,LEDD,LEDE,LEDF

A81:

MOVBX,OFFSETTAB

MOVSI,4000H

MOVAL,[SI]

ANDAL,0FH

SHLAL,1

MOVAH,00H

ADDBX,AX

JMP[BX]

LED0:

MOVAL,0C0H

JMPLEDX

LED1:

MOVAL,0F9H

JMPLEDX

LED2:

MOVAL,0A4H

JMPLEDX

LED3:

MOVAL,0B0H

JMPLEDX

LED4:

MOVAL,99H

JMPLEDX

LED5:

MOVAL,92H

JMPLEDX

LED6:

MOVAL,82H

JMPLEDX

LED7:

MOVAL,0F8H

JMPLEDX

LED8:

MOVAL,80H

JMPLEDX

LED9:

MOVAL,90H

JMPLEDX

LEDA:

MOVAL,88H

JMPLEDX

LEDB:

MOVAL,83H

JMPLEDX

LEDC:

MOVAL,0C6H

JMPLEDX

LEDD:

MOVAL,0A1H

JMPLEDX

LEDE:

MOVAL,86H

JMPLEDX

LEDF:

MOVAL,8EH

JMPLEDX

LEDX:

MOVDX,0FFDCH

OUTDX,AL

MOVCL,20H

MOVDX,0FFDDH

LEDX1:

MOVAL,CL

OUTDX,AL

PUSHCX

CALLDLL

POPCX

RORCL,1

JMPLEDX1

DLL:

MOVBX,0020H

DL1:

DECBX

CMPBX,0000

JZDL3

MOVCX,04FFH

LOOP$

JMPDL1

DL3:

RET

CODEENDS

ENDS8

实验报告要求:

1、将程序补充完整;

2、详细注释所有程序。

9、 显示子程序

一、实验目的

熟悉LED显示器的显示过程。

二、实验内容

编写程序,依次闪动显示“dais88”、“good”。

三、程序流程

四、实验步骤

连续运行程序,观察数码管显示情况。

五、实验程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG31E0H

S9:

JMPSTART9

ZXKEQU0FFDCH

ZWKEQU0FFDDH

LEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H

BUFDB?

?

?

?

?

?

START9:

MOVCX,0005H;"dais88"ON/OFFLED,COUNT

A90:

PUSHCX

A91:

MOVBX,OFFSETBUF

MOVAX,0A0DH

MOV[BX],AX

ADDBX,2

MOVAX,0501H

MOV[BX],AX

ADDBX,2

MOVAX,0808H

MOV[BX],AX

MOVCX,0050H;ONLED,TIME

A92:

PUSHCX

CALLDIS

POPCX

LOOPA92

MOVCX,0003H

MOVAX,1010H

MOVBX,OFFSETBUF

A93:

MOV[BX],AX

INCBX

INCBX

LOOPA93

MOVCX,0020H;OFFSET,TIME

A94:

PUSHCX

CALLDIS

POPCX

LOOPA94

POPCX

LOOPA90

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

MOVCX,0005H;"good"ON/OFFLED-COUNT

A99:

PUSHCX

A95:

MOVBX,OFFSETBUF

MOVAX,0009H

MOV[BX],AX

ADDBX,2

MOVAX,0D00H

MOV[BX],AX

ADDBX,2

MOVAX,1010H

MOV[BX],AX

MOVCX,0050H;ONLED-TIME

A96:

PUSHCX

CALLDIS

POPCX

LOOPA96

MOVCX,0003H

MOVAX,1010H

MOVBX,OFFSETBUF

A97:

MOV[BX],AX

INCBX

INCBX

LOOPA97

MOVCX,0020H;OFFSET-TIME

A98:

PUSHCX

CALLDIS

POPCX

LOOPA98

POPCX

LOOPA99

JMPSTART9

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

DIS:

MOVCL,20H

MOVBX,OFFSETBUF

DIS1:

MOVAL,[BX]

PUSHBX

MOVBX,OFFSETLED

XLAT

POPBX

MOVDX,ZXK

OUTDX,AL

MOVAL,CL

MOVDX,ZWK

OUTDX,AL

PUSHCX

MOVCX,0100H

DELAY:

LOOP$

POPCX

CMPCL,01H

JZEXIT

INCBX

SHRCL,1

JMPDIS1

EXIT:

MOVAL,00H

MOVDX,ZWK

OUTDX,AL

RET

CODEENDS

ENDS9

知识补充:

LED(LightEmittingDiode)数码管的工作原理

由7段发光二极管按数字“8”排列组成LED数码管,主要用于显示数码0~9,也可以显示A~F等字符。

LED数码管有共阳极和共阴极两种结构。

共阳极,Di=0时灯亮;共阴极,Di=1时灯亮。

字型编码不同。

将一个数码在一个LED数码管上显示出来,需要驱动数码管。

这需要两个条件,一是通过字形代码端口输出字形代码(对应的LED的显示代码),二是通过位型代码端口输出位型代码。

数码管段选码(字形码):

LED显示器上显示某个字符时,必须在它的8位段选线上加上相应的电平组合,即一个8位数据(该字符的段选码)。

通常段选码的编码规则:

D7

D6

D5

D4

D3

D2

D1

D0

dp

g

f

e

d

c

b

a

这样的程序片段是:

 mov bx,1 ; BX←要显示的数字(这里假设为1)

 mov al,ledtb[bx] ; 换码为显示代码:

AL←LEBTB[BX]

 mov dx,port ; 假设port表示与数码管相接的端口地址

 out dx,al ; 输出显示 

系统已定义的I/O地址如下:

接口芯片

口地址

用途

74LS273

FFDDH

字位口/键扫口

74LS273

FFDCH

字形口

74LS245

FFDEH

键入口

LED静态显示接口电路连接图

LED动态显示接口电路连接图(实验箱方式)

实验箱键扫显示控制电路、字形/字位/键值表

键扫显示控制电路

字形表

代码

D7

D6

D5

D4

D3

D2

D1

D0

字形

H

h

g

f

e

d

c

b

a

C0

1

1

0

0

0

0

0

0

0

F9

1

1

1

1

1

0

0

1

1

A4

1

0

1

0

0

1

0

0

2

B0

1

0

1

1

0

0

0

0

3

99

1

0

0

1

1

0

0

1

4

92

1

0

0

1

0

0

1

0

5

82

1

0

0

0

0

0

1

0

6

F8

1

1

1

1

1

0

0

0

7

80

1

0

0

0

0

0

0

0

8

90

1

0

0

1

0

0

0

0

9

88

1

0

0

0

1

0

0

0

A

80

1

0

0

0

0

0

0

0

B

C6

1

1

0

0

0

1

1

0

C

C0

1

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

当前位置:首页 > 小学教育 > 数学

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

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