微机原理及接口技术实验指导书10级.docx
- 文档编号:13816962
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:29
- 大小:661.06KB
微机原理及接口技术实验指导书10级.docx
《微机原理及接口技术实验指导书10级.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术实验指导书10级.docx(29页珍藏版)》请在冰点文库上搜索。
微机原理及接口技术实验指导书10级
第一部分软件程序设计(共8学时)
一、实验环境wave6000简介
1、软件安装
以安装在C盘为例:
将WAVE文件夹拷贝到C盘根目录下,再将WAVE文件夹下的ICESOFT文件夹拷贝到C盘根目录下。
图1安装文件
然后双击图标INSTALL.EXE开始安装,进入界面:
图2安装wave6000仿真环境
点击安装WAVE6000仿真开发环境,点击安装,开始安装过程,安装结束后出现:
图3安装过程
再点击安装Lab6000/2000P实验例子:
图4安装Lab6000/2000P实验例子
出现界面:
图5实验例子安装过程
电机OK开始安装,直到安装结束。
安装成功后,会在桌面上出现图标:
,双击即可进入编辑环境。
图6编辑环境
2、编辑环境设置
图7仿真器设置a
图8仿真器设置b
图9勾选使用伟福软件模拟器
图10语言设置
图11目标文件设置
2、①新建文件
图12新建文件
②打开已有文件
图13打开文件
双击选择要打开的文件即可。
3、文件保存:
文件名为英文字母,不超过8个字符,扩展名为ASM,保存在C:
\WAVE6000下,注意保存路径中不能出现中文字符。
图14保存文件
4、源程序的汇编链接及程序调试
①源程序输入完毕或打开已有文件后,单击图标
程序进入编译链接状态,若程序无语法错误,则显示:
图15汇编链接状态a
程序中出现语法错误时的编译结果是:
图16汇编链接状态b
双击错误处即可定位到出现错误的语句上,
图17汇编链接状态及错误定位
错误语句逐句修改后,再重新编译连接,直到通过编译。
②程序调试:
方法有:
复位(CTRL-F2)设置断点(CTR+F8)、跟踪(F7)、单步运行(F8)、连续运行(CTR+F9)等方法。
断点的设置和取消:
光标置预设断点行,按CTRL_F8,即可,在已设断点行再次按下CTRL_F8即可取消断点设置。
图18设置断点后的情况
③实验结果查看
可以通过查看寄存器内容、数据段内容、观察窗口内容、DOS显示结果等判断程序执行是否正常。
图19设置观察窗口图20数据段内容查看
图21查看DOS显示结果
图22查看寄存器内容
软件实验一
实验内容
在数据区定义字母数字串,分别统计数字、大写字母、小写字母个数,分别存放在SHUZI、DAXIE、XIAOXIE单元中。
多次统计,记录统计结果。
实验要求
在熟悉wave6000编程环境的基础上,完成上述源程序的输入、汇编、修改、运行等实验步骤,直到程序执行得到正确结果为止。
熟练掌握单步运行、断点设置、自动运行、寄存器内容,数据区内容查看等程序调试技术。
软件实验二
实验内容
将内存区定义的字母数字串的统计结果以16进制形式显示出来,显示格式为:
TheNembersofDigitalis:
XXH
TheNembersofCapitalLettersis:
XXH
TheNembersofSmallLettersis:
XXH
程序要求:
1、二进制转十六进制并显示的功能由BTOHDSP实现
2、回车换行用CRLF宏指令实现
3、字符H的显示用OUTPUT宏指令实现
4、提示信息的显示用宏INOUT宏指令实现
实验要求:
调试程序,直到正确实现所要求的功能。
软件实验三
实验内容
从键盘键入字母数字串,统计各类字符个数并以十进制形式在显示器上显示出来。
显示格式要求
1、在显示器上显示提示信息:
Pleaceinputanydigitalandletterstring
2、在显示器上显示
Thestringyouinputedis:
XXXXXXXXXX
3、在显示器上分行显示十进制统计结果
TheNembersofDigitalis:
XX
TheNembersofCapitalLettersis:
XX
TheNembersofSmallLettersis:
XX
4、在显示器上显示提示信息
Areyoucontinue?
(Y/N)
按Y继续1~3的统计显示过程,按N或其它字符均退出统计返回DOS。
这里建议:
不区分输入Y或N的大小写,均为有效。
程序要求:
1、提示字符串的显示功能用宏指令INOUT实现
2、回车换行用CRLF宏指令实现
3、单个字符输入用INPUT宏指令实现
4、分类统计功能由子程序TONGJI实现
5、二进制转十进制并显示功能由子程序BTOD实现
软件实验四(选做)
实验内容
在数据区定义30个学生的成绩(0~100之间),统计不及格(<60)、及格(60~69)、中等(70~79)、良好(80~89)、优秀(90~100)学生的个数和平均分,分类以十进制形式显示出来(平均分仅显示整数即可)。
显示格式要求
分行在各相关提示信息下,以十进制形式显示各统计结果的数值。
第二部分硬件实验(8学时)
一、仿真器设置:
(Lab6000实验箱为绿色箱子、Lab2000实验箱为黑色箱子)
1、
通信设置:
将用来做软件仿真的“使用伟福软件模拟器”选项取消,勾选“使用USB通信
图23Lab6000通信设置图24Lab2000通信设置
其中Lab2000实验箱上的COM口选择要与配套计算机上的串口标签一致,点击“测试串行口“可测试串口是否正常。
2、仿真器设置
图25Lab6000仿真器设置图26Lab2000仿真器设置
二、硬件布局图
首先根据硬件布局图熟悉各接口芯片、译码电路、开关、LED指示灯、单脉冲输入、电位器等常用输入输出器件所处位置。
各片选译码起始地址如下:
CS0:
8000HCS1:
9000HCS2:
A000HCS3:
B000H
CS4:
C000HCS5:
D000HCS6:
E000HCS7:
F000H
图27硬件实验布局图
三、实验选择:
图28实验选择
此时按“实验要求”即可看到本次实验的要求、按“实验目的”可看到本次实验的目的等等。
按“连线”可根据指示将所需连线连接好。
按“汇编程序”即可将实验程序装入wave6000环境进行编译连接和下载。
实验四、8259中断实验
选择8259外部中断试验,按图接线后,点“汇编程序”装入实验程序,阅读并理解试验程序后编译链接下载程序,观察实验现象。
然后按如下要求对程序进行修改;实验原程序如下:
(行号是为描述方便而后加的)
1modeequ82h;8255工作方式
2PA8255equ8000h;8255PA口输出地址
3CTL8255equ8003h
4ICW1equ00010011b;单片8259,上升沿中断,要写ICW4
5ICW2equ00100000b;中断号为20H
6ICW4equ00000001b;工作在8086/88方式
7OCW1equ11111110b;只响应INT0中断
8CS8259Aequ09000h;8259地址
9CS8259Bequ09001h
10datasegment
11CNTdb0
12dataends
13codesegment
14assumecs:
code,ds:
data
15IEnterprocnear
16pushax
17pushdx
18movdx,PA8255
19incCNT
20moval,CNT
21outdx,al;输出计数值
22movdx,CS8259A
23moval,20h;中断服务程序结束指令
24outdx,al
25popdx
26popax
27iret
28IEnterendp
29IInitproc
30movdx,CS8259A
31moval,ICW1
32outdx,al
33movdx,CS8259B
34moval,ICW2
35outdx,al
36moval,ICW4
37outdx,al
38moval,OCW1
39outdx,al
40ret
41IInitendp
42startprocnear
43movdx,CTL8255
44moval,mode
45outdx,al
46cli
47movax,0
48movds,ax
49movbx,4*ICW2;中断号
50movax,code
51shlax,4;x16
52addax,offsetIEnter;中断入口地址(段地址为0)
53mov[bx],ax
54movax,0
55incbx
56incbx
57mov[bx],ax;代码段地址为0
58callIInit
59movax,data
60movds,ax
61movCNT,0;计数值初始为0
62moval,CNT
63movdx,PA8255
64outdx,al
65sti
66LP:
;等待中断,并计数。
67nop
68jmpLP
69startendp
70codeends
71endstart
①将65行的sti指令用分号;注释掉,再重新编译链接下载程序,运行,观察实验现象并正确解释实验现象,然后取消注释。
②将第7行的OCW1改为11111111b,再重新编译链接下载程序,运行,观察并正确解释实验现象,然后改回原来的值。
正确理解OCW1的作用。
③将24行的outdx,al指令注释掉,再重新编译链接下载程序,运行,观察并正确解释实验现象,然后取消注释。
④将27行的iret注释掉,再重新编译链接下载程序,运行,观察并正确解释实验现象,然后取消注释。
正确理解IRET指令的作用。
⑤将40行的ret注释掉,再重新编译链接下载程序,运行,观察并正确解释实验现象,然后取消注释。
正确理解RET指令的作用
⑥程序在哪个片段内等待中断?
⑦修改程序,使按下单脉冲10次后,程序结束退出。
实验五定时器/计数器8253实验
1、选择8253计数器实验,按图接线后,点“汇编程序”装入实验程序,阅读并理解试验程序后编译链接下载程序,观察实验现象。
实验原参考程序如下:
CONTROLequ08003h
COUNT0equ08000h
COUNT1equ08001h
COUNT2equ08002h
codesegment
assumecs:
code
startprocnear
moval,30h;通道0,方式0
movdx,CONTROL
outdx,al
moval,5;计数器初始值。
movdx,COUNT0
outdx,al;低八位
moval,0
outdx,al;高八位
Again:
moval,00000000B;锁存计数器值
movdx,CONTROL
outdx,al
movdx,COUNT0
inal,dx;读入计数值低八位
movbl,al
inal,dx;读入计数值高八位
movah,al
moval,bl
jmpAgain
startendp
codeends
endstart
①运行程序,观察实验现象,体会按单脉冲次数与信号输出之间的关系。
②注释掉或删除从标号AGAIN开始到JMPAGAIN的程序段,再重新编译链接下载,观察对实验结果有无影响,解释此程序片段的作用是什么,在本实验条件下能否观察到实验现象?
③改变计数初值为10,观察实验现象。
实验拓展:
结合并行接口8255,将计数值在B口输出至8个LED灯上,观察每按一次单脉冲,LED灯的变化情况。
修改程序,加上8255初始化片段,修改从标号AGAIN开始到JMPAGAIN的程序段完成此功能。
2、选择8253定时器实验,按图接线后,点“汇编程序”装入实验程序,阅读并理解试验程序后编译链接下载程序,观察实验现象。
实验原参考程序如下:
CONTROLequ0c003h
COUNT0equ0c000h
COUNT1equ0c001h
COUNT2equ0c002h
codesegment
assumecs:
code
startprocnear
moval,36h;00110110B;计数器0,16位,方式3,二进制
movdx,CONTROL
outdx,al
movax,1000
movdx,COUNT0
outdx,al;计数器低字节
moval,ah
outdx,al;计数器高字节
moval,76h;01110110B;计数器1,16位,方式3,二进制
movdx,CONTROL
outdx,al
movax,1000
movdx,COUNT1
outdx,al;计数器低字节
moval,ah
outdx,al;计数器高字节
jmp$
startendp
codeends
endstart
完成基本实验后,修改程序,改变各通道的计数初值,将定时时间分别改为1分钟和5分钟,再重新编译链接下载,观察实验结果是否达到要求。
拓展实验:
8259、8253和8255的综合应用
用8253产生1分钟定时中断,在中断服务程序中向8255的B口输出中断次数至LED灯,10次中断后程序退出。
要求:
分别将8259的有效中断请求信号设为边沿触发和高电平触发,8253工作方式选择片段和中断服务程序片段该如何编写,分析并观察中断重入现象及防止对策。
实验六并行接口8255实验
1、选择8255输入输出实验,按图接线后,点“汇编程序”装入实验程序,阅读并理解试验程序后编译链接下载程序,观察实验现象。
实验原参考程序如下:
modeequ082h;方式0,PA,PC输出,PB输入
PortAequ8000h;PortA
PortBequ8001h;PortB
PortCequ8002h;PortC
CAddrequ8003h;控制字地址
codesegment
assumecs:
code
startprocnear
Start:
moval,mode
movdx,CAddr
outdx,al;输出控制字
;实验1:
PortA输出
moval,80H
movcx,08H
OutA:
movdx,PortA
outdx,al;输出PortA
movdx,PortC
outdx,al
shral,1;移位
movah,100
calldelay;延时
loopOutA
;实验2:
PortB输入PortA输出
movdx,PortB
inal,dx;读入PortB
movdx,PortC
outdx,al
movdx,PortA
outdx,al;输出到PortA
movah,200
calldelay
jmpStart
startendp
delayprocnear
pushax
moval,0
pushcx
movcx,ax
loop$
popcx
popax
ret
delayendp
codeends
endstart
1阅读程序,观察实验1程序的实验结果,回答问题:
movdx,PortC
outdx,al
这两条指令的实验现象能否观察到,为什么?
对这两条指令做相应处理。
2修改程序,使程序在实验1范围内运行,不进入实验2。
3在②的基础上修改程序,使LED灯的点亮顺序与原来的相反。
4删除实验1的内容或修改程序使初始化后程序直接进入实验2,完成B口输入开关状态,A口显示开关状态的功能。
拓展实验:
根据8255的B口输入的K1~K8的状态,在A口输出LED灯的不同显示组合。
要求Ki的i值越大,相应的图案显示的优先级越高(例如在K1按键置1显示相应图案时,K4置1,则按K4相应的图案显示)。
例如:
K1置1:
灯从左至右依次单个灯点亮,图案如下:
K2置1:
灯从右至左依次单个灯点亮,图案如下:
K3置1:
右侧四个灯和左侧四个灯轮番同时点亮,图案如下:
K4置1:
按如下图案将灯循环间隔点亮,
在没有任何开关置1时,按如下图案循环同时点亮LED灯(即8个灯同时亮或者灭。
在完成上述功能的情况下,还可增加K5~K8的显示图案。
实验七A/D和D/A实验
1、A/D实验
选择“A/D转换实验”,按图接线后,点“汇编程序”装入实验程序,阅读并理解试验程序后编译链接下载程序,观察实验现象。
实验原参考程序如下:
modeequ082h
PAequ09000h
CTLequ09003h
CS0809equ08000h
codesegment
assumecs:
code
startprocnear
moval,mode
movdx,CTL
outdx,al
again:
moval,0
movdx,CS0809
outdx,al;起动A/D
movcx,40h
loop$;延时>100us
inal,dx;读入结果
movdx,PA
outdx,al
jmpagain
codeends
endstart
完成上述基础实验后,回答问题:
本程序采用什么方法实现A/D转换后的数据读取的(软件定时?
查询?
中断?
)
拓展实验
①要求以查询方式输入A/D转换后的数据,并在LED上显示转换的数字值。
②要求以中断方式输入A/D转换后的数据,并在LED上显示转换的数字值。
③8253、8259、8255、0809综合应用,进行软硬件设计,实现每隔1秒钟采集一次数据并在LED灯上显示数字值。
分别进行相应的软件和硬件设计后,调试程序直到达到实验要求。
2、D/A转换实验
选择“D/A转换实验”,按图接线后,点“汇编程序”装入实验程序,实验原参考程序如下:
CS0832equ0a000h
codesegment
assumecs:
code
startprocnear
moval,0
movdx,CS0832
outdx,al
moval,80h
outdx,al
moval,0ffh
outdx,al
jmp$
startendp
codeends
endstart
修改程序,分别实现锯齿波、三角波、梯形波(其中梯形波要求输出的高电平为3.5V,低电平为1.5V),在示波器上观察相关波形。
拓展实验(8255、D/A转换综合)
1、根据开关K1~K4的置1情况,分别实现不同波形的产生和示波器上的显示。
①K1置1,产生并显示正锯齿波;
②K2置1,产生并显示倒锯齿波;
③K3置1,产生并显示三角波
④K4置1,产生并显示指定幅值的梯形波
⑤K1~K4均未置1的情况下,显示方波。
要求:
Ki置1产生相关波形的优先级为K1>K2>K3>K4(即如果K1置1显示正锯齿波后,K4也置1了,则不予理睬;若K4先置1产生梯形波后,K1置1,则立即产生正锯齿波,其它情况类推)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 指导书 10