微型计算机原理与接口技术实验学生用.docx
- 文档编号:8913516
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:58
- 大小:596.48KB
微型计算机原理与接口技术实验学生用.docx
《微型计算机原理与接口技术实验学生用.docx》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术实验学生用.docx(58页珍藏版)》请在冰豆网上搜索。
微型计算机原理与接口技术实验学生用
《微型计算机原理与接口技术》
实验指导书
信息工程学院电子信息
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 接口 技术 实验 学生