8086软硬件实验报告微机原理与接口技术上机实验.docx
- 文档编号:25008923
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:29
- 大小:353.08KB
8086软硬件实验报告微机原理与接口技术上机实验.docx
《8086软硬件实验报告微机原理与接口技术上机实验.docx》由会员分享,可在线阅读,更多相关《8086软硬件实验报告微机原理与接口技术上机实验.docx(29页珍藏版)》请在冰豆网上搜索。
8086软硬件实验报告微机原理与接口技术上机实验
实验一实验环境熟悉与简单程序设计
实验目的
(1)掌握DEBUG调试程序的使用方法。
(2)掌握简单程序的设计方法。
实验内容
编程将BH中的数分成高半字节和低半字节两部分,把其中的高半字节放到DH中的低4位(高4位补零),把其中的低半字节放到DL中的低4位(高4位补零)。
如:
BH=10110010B
则运行程序后
DH=00001011B
DL=00000010B
实验准备
(1)熟练掌握所学过的指令。
(2)根据实验内容,要求预先编好程序。
实验步骤
(1)利用DEBUG程序输入、调试程序。
(2)按下表要求不断地修改BH的内容,然后记录下DX的内容。
BH
10011101
11011001
00111111
DH
DL
实验报告
(1)给出程序清单。
(2)详细说明程序调试过程。
程序:
CODESEGMENT
START:
MOVBH,00111111B
MOVAL,BH
MOVCL,4
SHRAL,CL
MOVDH,AL
MOVAL,BH
ANDAL,00001111B
MOVDL,AL
MOVCL,0
CODEENDS
ENDSTART
实验二简单程序设计
实验目的
(3)掌握DEBUG调试程序的使用方法。
(4)掌握简单程序的设计方法。
实验内容
试编写一个汇编语言程序,要求实现功能:
在屏幕上显示:
Helloworld
MynameisLiJianguo
参考程序如下:
(有错)
datasegment
out1db'Helloworld'
axdb'MynameisLiJianguo'
dataens
codesegment
assumecs:
code;ds:
data
leadx,out1
movah,2
int21h
movdl,0ah
movah,2
int21h
movdl,0dh
mooah,2
int21h
leadx,ax
movah,
int21h
codeends
实验步骤
(3)利用IDE86程序输入、调试程序。
实验报告
(3)给出正确的程序清单。
(4)详细说明程序调试过程。
程序:
DATASSEGMENT
STRING1DB13,10,'HelloWorld!
',13,10,'$';13为回车,10为换行,$为结束符
STRING2DB13,10,'MynameisLIJianguo',13,10,'$'
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
LEADX,STRING1
MOVAH,9
INT21H
LEADX,STRING2
MOVAH,9
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
实验三循环程序设计
实验目的
(1)掌握在PC机上建立、连接、调试和运行8086汇编语言程序的过程。
(2)掌握数据传送和算术运算指令的使用方法。
(3)了解部分DOS系统调用的使用方法。
实验内容
将两个5位十进制数相加。
要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首地址的5个内存单元中(低位在前),结果送回DATA1处。
另外,程序利用DOS的9号调用功能完成将被加数、加数和最后的和在显示器上的显示。
参考程序如下:
datasegment
data1db32h,38h,30h,36h,37h,'$'
data2db33h,35h,33h,38h,32h,'$'
dataends
stacsegment
stadb100dup(?
)
stacends
codesegment
assumecs:
code,ds:
data,ss:
stac,es:
data
startprocfar
pushds
xorax,ax
pushax
movax,data
movds,ax
moves,ax
movah,9
movdx,offsetdata1
int21h
movah,2
movdl,'+'
int21h
movah,9
movdx,offsetdata2
int21h
movsi,offsetdata1
movdi,offsetdata2
movbx,5
pushbx
pushsi
conv1:
andbyteptr[si+bx-1],0fh
andbyteptr[di+bx-1],0fh
decbx
jnzconv1
movcx,5
xorax,ax
add1:
moval,[si+4]
movbl,[di+4]
adcal,bl
aaa
mov[si+4],al
decsi
decdi
loopadd1
popsi
popbx
conv2:
orbyteptr[si+bx-1],30h
decbx
jnzconv2
movah,2
movdl,'='
int21h
movah,9
movdx,si
int21h
ret
startendp
codeends
endstart
实验准备
(1)仔细阅读本书第一章,掌握源程序的编辑、汇编、连接和调试方法。
(2)阅读教材,熟练掌握数据传送和算术运算指令的使用方法。
(3)阅读有关DOS系统调用的参考书,掌握1号调用、2号调用、7号调用、8号调用和9号调调用的使用方法。
(4)仔细阅读参考程序。
实验步骤
(1)首先用IDE86软件输入汇编语言源程序,然后对此源程序进行汇编,再用LINK程序进行连接,最后执行。
如果程序运行结果不正确:
1重复以上过程,并记录下修改经过,直至程序正确运行为止。
2在步骤
(1)中,如果程序运行结果不正确,可使用DEBUG程序进行动态调试,直到程序正确运行为止。
(2)利用DEBUG程序修改被加数和加数,运行程序,并记录下程序运行结果。
将被加数修改为:
31H,32H,33H,34H,35H
将加数修改为:
35H,34H,33H,38H,39H
程序运行后,请照实写出屏幕显示结果。
(3)修改你编写的或前面给出的参考程序。
利用DOS系统功能完成5位被加数和加数的键盘输入,程序完成加法后,输出相加的和,记录下程序运行过程及结果。
实验四子程序及分支结构程序设计
实验目的
(1)掌握分支程序及子程序设计的方法。
(2)进一步熟悉汇编语言源程序的上机过程。
实验内容
设有10个学生的成绩分别为:
76、69、84、90、73、88、99、63、100、80,试编制一个程序统计60到69、70到79、80到89、90到99和100分的人数,分别放到五个存储单元中,然后在屏幕上显示。
统计部分和显示部分要求用子程序实现。
要求用堆栈进行参量传递。
实验准备
(1)认真阅读教材,掌握分支程序的编程方法。
(2)绘制程序流程图,编写程序。
实验步骤
(1)完成汇编语言源程序的编辑和连接过程。
(2)利用DEBUG进行程序调试和运行。
(3)撰写实验报告。
DATASSEGMENT
SCOREdb76,69,84,90,73,88,99,63,100,80
STR1db'THENUMBEROF100IS:
','$'
STR2db'THENUMBEROF90-100IS:
','$'
STR3db'THENUMBEROF80-90IS:
','$'
STR4db'THENUMBEROF70-80IS:
','$'
STR5db'THENUMBEROF60-70IS:
','$'
COUNTEQU10
GRADEAdb?
GRADEBdb?
GRADECdb?
GRADEDdb?
GRADEEdb?
DATASENDS
STACKSSEGMENT
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
LEABX,SCORE
MOVCX,COUNT
A1:
MOVAL,[BX]
CALLCOMPARE
INCBX
LOOPA1
CALLOUTPUT
MOVAH,4CH
INT21H
COMPAREPROC
PUSHBX
CMPAL,100
JEL1
CMPAL,90
JAEL2
CMPAL,80
JAEL3
CMPAL,70
JAEL4
CMPAL,60
JAEL5
L1:
INCGRADEA
JMPDONE
L2:
INCGRADEB
JMPDONE
L3:
INCGRADEC
JMPDONE
L4:
INCGRADED
JMPDONE
L5:
INCGRADEE
JMPDONE
DONE:
POPBX
RET
COMPAREENDP
OUTPUTPROC
LEADX,STR1
MOVAH,9
INT21H
ADDGRADEA,30H
MOVDL,GRADEA
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
LEADX,STR2
MOVAH,9
INT21H
ADDGRADEB,30H
MOVDL,GRADEB
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
LEADX,STR3
MOVAH,9
INT21H
ADDGRADEC,30H
MOVDL,GRADEC
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
LEADX,STR4
MOVAH,9
INT21H
ADDGRADED,30H
MOVAH,2
MOVDL,GRADED
INT21H
MOVDL,0AH
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
LEADX,STR5
MOVAH,9
INT21H
ADDGRADEE,30H
MOVDL,GRADEE
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
RET
OUTPUTENDP
CODESENDS
ENDSTART
实验五简单I/O口扩展实验
一、实验目的
1、利用74LS273,74LS244扩展I/0。
2、掌握用锁存器、三态门扩展简单的并行输入、输出口的方法。
二、实验内容
1.熟悉74LS273,74LS244的应用接口方法。
2.掌握用锁存器(74LS273)、三态门扩展简单的并行输入。
3.扩展的方法:
a.逻辑电平开关(CZ1)作为74LS244(U10)的输入。
b.发光二极管(CZ2)作为74LS273的输出,
c.编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。
三、实验原理图:
四、实验步骤
1、连线:
a.将74LS244(IC25)的输入SI0~SI7分别与逻辑电平开关电路的K1~K8相连。
b.从I/O地址片选信号CS0\~CS7\中任选一个与74LS244的片选信号相连。
(例如CS0\)。
c.将74LS273(IC24)的输出S00\~S07分别与发光二极管电路的L1~L8相连。
d.从I/O地址片选信号CS0\~CS7\中任选一个与74LS273的片选信号(CSU8\)相连。
(如CS1\)。
2、打开计算机上已安装的DB86软件,参照.软件的使用
a.编写程序。
b.编译连接。
c.调试程序。
d.单步运行。
e.如果调试通过后,全速运行,观察实验结果。
3、全速运行后拔动开关,其变化反应的到发光二极管上。
当作为信号输入量的开关任意位拔上时,对应的发光二极管点亮、拔下时熄灭。
4.编写实验报告
五、实验说明
用逻辑电平开关(CZ1)作为74LS244(IC25)的输入,用发光二极管(CZ2)作为74LS273(IC24)的输出。
编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。
逻辑电平开关拔上时为5V,拔下时为0V。
发光二极管输入‘1’为亮、‘0’为灭。
从74LS244读入的数据后从输出口输出。
在8086CPU中有四个16位通用数字寄存器,其中仅AX(AH,AL)有输入输出功能。
本实验通过输入语句(IN),将开关量输入存到AL中,在通过输出语句(OUT)将AL值输出到发光二极管,从而实现开关控制发光二极管。
当开关量换作其他形式控制输入,发光二极管换作其他形式控制对象,输入数据后对输入量做一定的运算处理再输出时,就实现了计算机控制,同时这些输入输出点均为I/O扩展口,当输入输出点较多时,这种扩展十分必要
六、程序框图
实验六8255并行口实验
一、实验目的
利用8255A实现并行接口实验
二、实验内容
1.掌握8255A的编程原理。
2.熟悉计算机并行接口的使用方法
三、实验原理图:
四、实验步骤:
1.连线:
a.8255A(IC37)的PA0—PA7分别与逻辑电平开关电路的K1--K8相连。
b.PB0—PB7分别与发光二极管电路的L1—L8相连。
c.从CS0\—CS7\中任选一个与8255A的片选(CS8255)端相连。
(如CS0\)其他线路均已连好。
2.软件:
与实验一相同
3.编写实验程序。
五、实验说明:
逻辑电平开关拨上时5V,拨下时0V;发光二极管输入为1时亮,输入为0时灭。
拨动开关,观察发光二极管(CZ2)的变化。
当开关(CZ1)某位拨上时,对应的发光二极管点亮,拨下时熄灭。
8255A是并行接口电路中比较常用的一种芯片,8255A有三个8位的输入输出端口,由于内部电路原因,通常将A端口(PA0—PA7)作输入用,B端口(PB0—PB7)作输出用,C端口作辅助控制用,本实验也是如此。
本实验中,输入输出都比较简单,控制相对简单,因此可选择在基本输入输出方式(方式0,即输入输出设置与上相同)下工作。
在设计程序时,先设置8255的工作方式(控制端口地址为04A6H),然后循环读PA端口开关状态(地址为04A0H),输出至PB端口发光二极管(地址为04A2H)。
A_portEQU04A0H
B_portEQU04A2H
C_portEQU04A4H
ctrc_portEQU04A6H
CODESSEGMENT
ASSUMECS:
CODES
org100h
START:
movdx,ctrc_port
moval,90h
outdx,al
add1:
movdx,04a0h
inal,dx
movdx,B_port
outdx,al
jmpadd1
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
六、程序框图
实验七8253定时器/计数器接口实验
一、实验目的
掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。
二、实验内容
编程将计数器0,1,2设置为模式2(分频方式),并观察其输出波形。
三、实验原理图
四、实验步骤
1、连线:
a.从CS0\~CS7\中任选一个(如CS0\)与8253的片选信号(CS8253)相连,8253的OUT0与CLK2相连,
b.OUT2与发光二极管L1相连,
c.OUT1接示波器,其他未提信号均已接好或无需连接。
2.软件:
同实验一。
3.编写实验报告。
五、实验说明
8253的时钟端CLK0,CLK1均为1/8M。
CLK2的时钟由OUT0来控制。
8253位8086系统中常用的可编程定时器/计数器,内部有三个相互独立的计数器,发别称为计数器0,计数器1、计数器2。
8253有多种工作模式,其中模式2为方波方式。
当给定初值后,自动将所设周期平分为两个部分,前一部分保持为高电平“1”,后一部分保持为低电平“0”,输出为一方波。
CLK0、CLK1的频率均为1M/8,设计数器0的初值为0F24H(十进制为62500)时,方波周期为0.5s。
在计数器2中设置不同的初值2n时,可的周期n×0.5s的方波,n的最大值为7FFFH(十进制为32767)时,周期最长为16383.5s(4小时33分3.5秒),此时的初值为7FFEH。
因此,采用两级计数叠加后,输出周期范围可大幅度提高。
如能合理设置初值,这种广域范围的周期设定在实际控制中非常有用。
CODESSEGMENT
ASSUMECS:
CODES
ORG100H
START:
MOVAL,00110110B
MOVDX,04A6H
OUTDX,AL
MOVAX,750
MOVDX,04A0H
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAL,10110110B
MOVDX,04A6H
OUTDX,AL
MOVAX,1000
MOVDX,04A4H
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAL,01110110B
MOVDX,04A6H
OUTDX,AL
MOVAX,750
MOVDX,04A2H
OUTDX,AL
MOVAL,AH
OUTDX,AL
CODESENDS
ENDSTART
六、程序框图
实验八A/D实验
一、实验目的
熟悉A/D转换的基本原理,掌握ADC0809的使用方法。
二、实验内容
按查询方式采样三路A/D转换数据,用简单输入口(U10)查询EOC信号。
每循环一次0,1,2通道各采样一次。
采样结果是0通道放入CX中,CL有效,1通道放入BX中,BL有效,2通道放入AX中AL有效。
三、实验原理图
三、实验步骤
1、连线:
a.将可变电位器KB1,KB2,KB3分别与ADC0809的IN0、IN1、IN2相连。
b.从CS0\…CS3\中任选一个(如CS1\)与ADC0809的片选端相连。
c.将ADC0809的EOC与IC25(74LS244)的SI0相连。
d.从CS0\…CS7\中任选一个(如CS1\)与U10的片选端相连。
2、软件:
同实验一。
3、编写实验报告。
四、实验说明
1、实验电路中启动信号START与地址锁存信号相连,所以启动A/D转换的方法为:
MOVDX,PADC;PADC是ADC0809的端口地址
OUTAL,DX;发片选及IOW信号,这是0通道
;启动1通道时,DX应加1
程序:
CODESEGMENT
ASSUMECS:
CODE
ORG100H
START:
MOVDX,04A0H
OUTDX,AL
XORAH,AH
DAC:
MOVDX,04B0H
INAL,DX
TESTAL,01H
JZDAC
MOVDX,04A0H
INAL,DX
MOVCL,AL
JMPDAC
CODEENDS
ENDSTART
五、程序框图
实验九D\A实验
一、实验目的
熟悉数模转换的基本原理,掌握DAC0832的使用方法。
二、实验内容
看懂接口电路后连好硬件线路,并编制程序以产生以下两种波形并用示波器。
1、锯齿波形
2、三角波
三、实验原理图
四、实验方法
1、连线:
a.从CS0\…CS7\中任选一个(如CS0\)与DAC0832的片选端相连。
b.将示波器接至DAC0832的输出端OUT相连。
2、进行调零(KB5)和调满偏(KB4)。
3、软件:
同实验一。
4、编写实验报告。
五、实验说明
DAC0832在图所示的接口电路中,KB6调节参考电压VREF,KB5调节DA的零点,KB4调节DA的满偏。
工作在双缓冲接口方式下。
当A1=0时可锁存输入数据,当A1=1时,可起动转换输出。
所以要进行D\A转换,需分二步进行,方法如下:
MOVDX,DACPORT;DAC0832片选信号偶地址
MOVAL,DACPORT
OUTDL,AL;锁存数据
ADDDX,2
OUTDX,AL;启动转换
锯齿波:
CODESSEGMENT
ASSUMECS:
CODES
org100h
START:
XORAX,AX
Y1:
MOVDX,04A0H
OUTDX,AL
ADDDX,2
OUTDX,AL
INCAL
CMPAL,0FFH
JNZYI
JMPSTART
CODESENDS
ENDSTART
三角波:
CODESSEGMENT
ASSUMECS:
CODES
org100h
START:
XORAX,AX
X1:
MOVDX,04A0H
OUTDX,AL
ADDDX,2
OUTDX,AL
INCAL
CMPAL,0FFH
JNZX1
X2:
OUTDX,AL
ADDDX,2
OUTDX,AL
DECAL
CMPAL,0
JNZX2
JMPSTART
CODESENDS
ENDSTART
六、程序框图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8086 软硬件 实验 报告 微机 原理 接口 技术 上机