微机原理与接口技术实验指导书Word格式.docx
《微机原理与接口技术实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验指导书Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
3、实验结果。
五、思考
假使4000H~40FFH中内容改成FF,如何修改程序?
附:
参考程序框图
参考程序
DATASEGMENT
ORG4000H
DB256DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,4000H
MOVAX,0000H
MOVCX,0080H
L1:
MOV[BX],AX
INCBX
LOOPL1
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验二数据区移动
掌握RAM中的数据操作。
把(数据段)4100H源RAM区首址内的16字节数据传送到(数据段)4200H目标RAM区。
程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。
源数据块和目的数据块在存储器中可能有三种情况,如下图:
对于两个数据块分离的情况,如图(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。
可以得出如下结论:
当源数据首址>
目的块首址时,从数据块首址开始传送数据。
当源数据块首址<
目的块首址时,从数据块末地址开始传送数据。
4、使用DEBUG用连续或单步方式运行程序,检查4200~420FH内容执行程序前后的变化。
采用串操作指令实现程序。
ORG4100H
STRING1DB16DUP(7)
ORG4200H
STRING2DB16DUP(6)
DATAENDS
CODESEGMENT
DATA,ES:
DATA
MOVAX,DATA
MOVES,AX
MOVCX,0010H
MOVSI,4100H
MOVDI,4200H
CMPSI,DI
JAA42
ADDSI,CX
ADDDI,CX
A41:
DECSI
DECDI
MOVAL,[SI]
MOV[DI],AL
LOOPA41
JMPEXIT
A42:
MOVAL,[SI]
INCSI
INCDI
LOOPA42
EXIT:
CODEENDSINT21H
ENDSTART
实验三数据排序实验
熟悉8088指令系统,掌握程序设计方法。
编写并调试一个排序子程序,其方法为用冒泡法将(数据段)RAM中4000H~400AH单节字节无符号的正整数,按从大到小的次序重新排列。
(1)从第一个数开始,依次把相邻的两个数进行比较,即第(N-2)个数与第(N-1)个数比较,第(N-1)个数与N个数比较等等;
若第(N-1)个数不大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。
此时,N个数中的最小数被排在N个数的最后。
(2)对剩下的(N-1)个数重复第
(1)步,找到(N-1)个数中的最小数。
(3)重复第
(2)步,直到N个数全部排序好为止。
4、使用DEBUG用连续或单步方式运行程序,检查内容执行程序前后的变化。
3、实验结果。
在4000H~400AH中通过键盘命令输入不等的10个数,运行本实验程序后检查4000H~400AH中内容是否按从大到小排列。
参考程序框图
ORG4000H
DB10DUP(?
ASSUMECS:
MOVCX,0009H
A53:
MOVBX,4000H
PUSHCX
A52:
MOVAX,[BX]
CMPAL,AH
JCA5l
A54:
INCBX
LOOPA52
POPCX
LOOPA53
A51:
XCHGAL,AH
AXMOV[BX],
JMPA54
EXIT:
MOVAH,4CH
实验四多分支程序设计
掌握汇编语言的编程,熟悉程序散转的设计方法。
变量x的符号函数如下所示:
1当x>
y=0当x=0
-1当x<
编程程序,根据x的值给y赋值。
参考程序
xDW?
yDW?
DATAENDS
STACKSEGMENTSTACK‘STACK’
DB100DUP(?
STACKENDS
CODESEGMENT
ASSUMECS:
DATA,SS:
STACK
START:
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,x
ANDAX,AX
JZZERO
JNSPLUS
MOVBX,0FFFFH
JMPDONE
ZERO:
MOVBX,0
PLUS:
MOVBX,1
DONE:
MOVy,BX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验五显示子程序
掌握显示器的显示过程。
编写程序,依次闪动显示“dais88”“good”。
4、观察屏幕显示情况。
实验六:
A/D转换实验
一、实验目的
了解模/数转换基本原理,掌握ADC0809(ADC0804)的使用方法、熟悉PROTEUS仿真平台的使用。
二、实验内容
将5V的直流电经过电阻分压后送入ADC0809(ADC0804),经过转换以后的8位数值由CPU送到8个LED显示。
1、搭建实验仿真用电路。
3、将源程序编译。
4、调节可变电阻,观察LED变化。
1、电路原理图。
2、程序流程图。
实验七:
D/A转换实验
了解数/模转换基本原理,掌握DAC0832的使用方法、熟悉PROTEUS仿真平台的使用。
由CPU依次送出数值为0-255(进制)的8位二进制数到DAC0832,经过转换后送示波器显示。
4、运行程序观察示波器显示。
实验八:
8255A并行口实验
了解数字接口芯片基本原理,掌握8255A的使用方法、熟悉PROTEUS仿真平台的使用。
由8255A的A口输入开关量,经过CPU处理后送8255A的B口。
由B口接的LED显示开关量。
4、运行程序改变开关量的输入,观查LED显示。
实验九:
中断控制器实验
了解数字接口芯片基本原理,掌握中断子程序的编写方法、熟悉PROTEUS仿真平台的使用。
由一外接点平信号触发非可屏蔽中断,调用相应的中断子程序。
由LED显示。
4、运行程序观查LED显示。