太原理工大学现代科技学院微机原理实验.docx
《太原理工大学现代科技学院微机原理实验.docx》由会员分享,可在线阅读,更多相关《太原理工大学现代科技学院微机原理实验.docx(39页珍藏版)》请在冰豆网上搜索。
![太原理工大学现代科技学院微机原理实验.docx](https://file1.bdocx.com/fileroot1/2023-2/23/f455572f-23de-4025-a412-f9e712afb877/f455572f-23de-4025-a412-f9e712afb8771.gif)
太原理工大学现代科技学院微机原理实验
太原理工大学现代科技学院
微机原理及接口技术课程实验报告
专业班级信息13-1班
学号2013101269
姓名陈凯
指导教师师卫
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称多位十进制数相加同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验一:
多位十进制数相加
1、实验目的:
学习数据传送和算数运算指令的用法。
2、实验内容:
将两个朵唯十进制数28056、47193相加,并显示加数、被加数、和。
要求两个家属均以ASCII码形式各自顺序存在DATA1和DATA2内存单元中,结果送回DATA1处(低位在前,高位在后)。
3、实验程序:
SHOWMACROB
MOVDL,B
MOVAH,02H
INT21H
ENDM
DATASEGMENT
DATA1DB33H,39H,31H,37H,34H
DATA2DB36H,35H,30H,38H,32H
DATA3DB'_',0DH,0AH,'$'
DATAENDS
STACKSEGMENTSTACK
STADB20DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
MOVSI,OFFSETDATA2
MOVBX,05
SHOW20H
CALLDISPL
SHOW0DH
SHOW0AH
MOVSI,OFFSETDATA1
MOVBX,05
SHOW2BH
CALLDISPL
SHOW0DH
SHOW0AH
MOVCL,7
S1:
SHOW2DH
LOOPS1
SHOW0DH
SHOW0AH
MOVSI,OFFSETDATA1
MOVDI,OFFSETDATA2
CALLADDA
MOVSI,OFFSETDATA1
MOVBX,05
SHOW20H
CALLDISPL
MOVAX,4C00H
INT21H
DISPLPROCNEAR
DS1:
SHOW[SI+BX-1]
DECBX
JNZDS1
RET
DISPLENDP
ADDAPROCNEAR
MOVDX,SI
MOVBP,DI
MOVBX,05
AD1:
SUBBYTEPTR[SI+BX-1],30H
SUBBYTEPTR[DI+BX-1],30H
DECBX
JNZAD1
MOVSI,DX
MOVDI,BP
MOVCX,05
CLC
AD2:
MOVAL,[SI]
MOVBL,[DI]
ADCAL,BL
AAA
MOV[SI],AL
INCSI
INCDI
LOOPAD2
MOVSI,DX
MOVDI,BP
MOVBX,05
AD3:
ADDBYTEPTR[SI+BX-1],30H
ADDBYTEPTR[DI+BX-1],30H
DECBX
JNZAD3
RET
ADDAENDP
CODEENDS
ENDSTART
四、实验截图
下图为实验程序及其编译截图:
正确结果:
实验名称两个十进制数的乘法同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验二:
两个十进制数的乘法
1、实验目的:
掌握乘法指令和循环指令的用法。
2、实验内容:
实现十进制数的乘法。
被乘数(29054)和乘数(3)均以ASCII码的形式存放在内存中,乘数、被乘数、积均在屏幕上显示出来。
3、实验程序
SHOWMACROB
MOVAH,02H
MOVDL,B
INT21H
ENDM
DATASEGMENT
DATA1DB32H,39H,30H,35H,34H
DATA2DB33H
RESULTDB6DUP(00H)
DATAENDS
STACKSEGMENT
STADB20DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
MOVSI,OFFSETDATA1
MOVCL,5
SHOW20H
CALLDISPL
SHOW0DH
SHOW0AH
SHOW2AH
MOVSI,OFFSETDATA2
MOVBL,[SI]
ANDBL,00001111B
MOVCL,1
CALLDISPL
SHOW0DH
SHOW0AH
MOVCL,7
S1:
SHOW2DH
LOOPS1
SHOW0DH
SHOW0AH
MOVSI,OFFSETDATA1
MOVDI,OFFSETRESULT
MOVAX,00H
MOVCX,05
LOOP1:
MOVAL,[SI]
ANDAL,00001111B
INCSI
MULBL
AAM
ADDAH,[DI]
AAA
MOV[DI],AH
INCDI
MOV[DI],AL
LOOPLOOP1
MOVSI,OFFSETRESULT
MOVCX,06
LOP:
MOVDL,[SI]
ADDDL,30H
MOV[SI],DL
INCSI
LOOPLOP
MOVSI,OFFSETRESULT
MOVCL,6
CALLDISPL
MOVAX,4C00H
INT21H
DISPLPROCNEAR
SD1:
SHOW[SI]
INCSI
LOOPSD1
RET
DISPLENDP
CODEENDS
ENDSTART
4、实验截图
实验程序与编译:
实验运行结果:
实验名称统计数据个数程序同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验三:
统计数据个数
1、实验目的:
掌握多位十六进制数转换成朵唯十进制数的ASCII码的方法。
2、实验内容:
统计内存数组中大于0和小于0的元素的个数,并将统计结果分别存放在LRESULT和HResult变量中,并显示个数。
3、实验程序:
DATASEGMENT
ARYDB1,3,-1,2,6,-9,-5,7,8,1,3,8,-6,8,-9,-7,2,4,-3,-3
DB-4,7,7,8,3,1,3,6,8,5,5,6,4,5,7,-4,2,4,5,-7,5,4
DB2,5,7,8,8,8,7,6,-5,4,3,2,1,-1,2,2,3,-4,5,6,7
N=$-ARY
LRESULTDW0
HRESULTDW0
TJJGDB'STATISTICSRESULT:
',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
SHOWMACROB
PUSHDX
PUSHAX
MOVDX,B
MOVAH,02H
INT21H
POPAX
POPDX
ENDM
XORCX,CX
MOVCX,N
LEASI,ARY
LOP:
MOVAL,[SI]
CMPAL,0
JNSPLUS
INCLRESULT
JMPCONT
PLUS:
INCHRESULT
CONT:
INCSI
LOOPLOP
LEADX,TJJG
MOVAH,09H
INT21H
SHOW'+'
MOVAX,HRESULT
CALLDISPL
SHOW0DH
SHOW0AH
SHOW'-'
MOVAX,LRESULT
CALLDISPL
MOVAX,4C00H
INT21H
DISPLPROC
PUSHDX
PUSHAX
MOVCX,10
MOVDX,00H
MOVBX,00H
DIVCX
MOVBX,DX
ADDAL,30H
DISPL1:
MOVDL,AL
MOVAH,02H
INT21H
MOVDL,BL
ADDDL,30H
MOVAH,02H
INT21H
POPAX
POPDX
RET
DISPLENDP
CODEENDS
ENDSTART
4、实验截图
实验调试编译程序:
实验运行结果:
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称8255与开关电路实验同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验四:
8255A与开关电路的实验
1、实验目地:
(1)掌握8255A并行接口芯片的原理及编程方法;
(2)掌握读取开关状态的方法。
2、实验内容:
编写程序,通过8255A接口芯片,读取开关状态,并在PC机屏幕上显示出来。
3、线路连接:
实验中共有8个逻辑开关,8255A端口C的8位连接8个,开关向上拨时,8255A相应的端口输出高电平‘1’;开关向下拨时,响应端口输出低电平’0‘。
4、实验程序
DATASEGMENT
IOPORTEQU0D880H-280H
IO8255CEQUIOPORT+282H
IO8255TEQUIOPORT+283H
TABDB'12345678',0DH,0AH,'$'
MESSDB'PLEASEENTERANYKEYWHENREADY!
',0DH,0AH,'$'
DATAENDS
STACKSEGMENTSTACK
STADW50DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAH,09H
MOVDX,OFFSETMESS
INT21H
MOVAH,01H
INT21H
MOVDX,IO8255T
MOVAL,99H
OUTDX,AL
MOVDX,IO8255C
INAL,DX
MOVBL,AL
MOVAH,09H
MOVDX,OFFSETTAB
INT21H
MOVCL,08H
BBB:
MOVDL,BL
CALLDISP
SHLBL,1
LOOPBBB
MOVAX,4C00H
INT21H
DISPPROCNEAR
PUSHAX
PUSHCX
MOVCL,07H
ANDDL,80H
SHRDL,CL
POPCX
ADDDL,30H
MOVAH,02H
INT21H
MOVDL,20H
INT21H
MOVDL,20H
INT21H
POPAX
RET
DISPENDP
CODEENDS
ENDSTART
5、实验截图
程序编译:
实验结果:
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称十字路口红绿灯闪烁实验同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验五:
十字路口红绿灯闪烁实验
1、实验目的:
通过对红绿黄灯的控制,熟练掌握8255A接口芯片的编程方法。
2、实验内容:
对8255A接口芯片进行编程使红黄绿发光二极管按照十字路口交通灯的形式点亮或熄灭。
3、线路连接:
发光二极管共8个,其中两组绿黄红灯用6个,L2,L3,L4为一组,L5,L6,L7为一组,高电平有效。
4、实验程序
DATASEGMENT
IOPORTEQU0D880H-280H
IO8255CEQUIOPORT+282H
IO8255TEQUIOPORT+283H
PBDB?
MESSDB'ENTERANYKEYCANEXITTODOS!
',0DH,0AH,'$'
DATAENDS
STACKSEGMENTSTACK
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DAT
MOVDS,AX
MOVES,AX
MOVAH,09H
MOVDX,OFFSETMESS
INT21H
MOVDX,IO8255T
MOVAL,81H
OUTDX,AL
MOVDX,IO8255C
INAL,DX
MOVPB,AL
MOVDX,IO8255T
MOVAL,80H
OUTDX,AL
MOVDX,IO8255C
MOVAL,PB
ORAL,0CH
OUTDX,AL
MOVAL,30H
OUTDX,AL
CALLDELAY10
LLL:
MOVDX,IO8255C
MOVAL,12H
OUTDX,AL
CALLDELAY10
CALLDELAY10
CALLDELAY10
CALLDELAY10
MOVAL,10H
OUTDX,AL
MOVCX,0040H
TTT:
MOVAL,0CH
OUTDX,AL
PUSHCX
MOVCX,80H
LOP1:
CALLDELAY1
LOOPLOP1
MOVAL,00H
OUTDX,AL
MOVCX,80H
LOP2:
CALLDELAY1
LOOPLOP2
POPCX
LOOPTTT
MOVAL,30H
OUTDX,AL
CALLDELAY10
MOVAL,21H
OUTDX,AL
CALLDELAY10
CALLDELAY10
CALLDELAY10
CALLDELAY10
MOVAL,20H
OUTDX,AL
MOVCX,0040H
GGG:
MOVAL,0CH
OUTDX,AL
PUSHCX
MOVCX,80H
LOP3:
CALLDELAY1
LOOPLOP3
MOVAL,00H
OUTDX,AL
MOVCX,80H
LOP4:
CALLDELAY1
LOOPLOP4
POPCX
LOOPGGG
MOVAL,30H
OUTDX,AL
CALLDELAY10
MOVAH,06H
MOVDL,0FFH
INT21H
JNZPPP
JMPLLL
PPP:
MOVAX,4C00H
INT21H
DELAY1PROCNEAR
PUSHCX
MOVCX,0FFFFH
CCC:
LOOPCCC
POPCX
RET
DELAY1ENDP
DELAY10PROCNEAR
PUSHAX
PUSHCX
MOVCX,0F00H
UUU:
CALLDELAY1
LOOPUUU
POPCX
POPAX
RET
DELAY10ENDP
CODEENDS
ENDSTART
5、实验结果及截图。
编译及连接
实验电路板显示部分截图:
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称直流电机测速实验同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验六:
直流电机测速实验
1、实验目的:
(1)掌握8254的工作原理编码方法。
(2)了解光电开关,掌握用光电传感器测量电机转速的方法。
2、实验内容。
光电测速的基本电路由光电传感器、计数器/定时器组成。
被测电机主轴固定一个圆盘,圆盘的边
缘上有小孔。
传感器的红外发射端口和接送端装在圆盘两侧,点击带动圆盘转到有孔的位置时,红外
光通过,接收管导通,输出低电平。
红外光被挡住时,接收截止,输出高电平。
用计数器/定时器记录
在一定时间内传感器发出的脉冲个数,就可以计算电机转速。
3、线路连接
8254计数器/定时器0和2作为定时器,确定测速时间,定时器0的clk0连1Mhz脉冲频率,out0
作为定时器2的输入,与clk2相连,输out2与8255的PA0端相连。
GATE2均接+5V,8254的定时计
数器1作为计数器,输入CLK1与电机计数端相连,GATE1与8255的PC0连接,电机DJ端与+5V~0
V模拟开关SW1相连。
4、实验程序
DATASEGMENT
IOPORTEQU0D880H-0280H
IO8255KEQUIOPORT+283H
IO8255AEQUIOPORT+280H
IO8255CEQUIOPORT+282H
IO8254KEQUIOPORT+28BH
IO82542EQUIOPORT+28AH
IO82541EQUIOPORT+289H
IO82540EQUIOPORT+288H
MESSDB'STRIKEANYKEY,RETURNTODOS!
',0AH,0DH,'$'
COUDB0
COU1DB0
COUNT1DB0
COUNT2DB0
COUNT3DB0
COUNT4DB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMESS
MOVAH,09H
INT21H
MOVDX,IO8254K
MOVAL,36H
OUTDX,AL
MOVDX,IO82540
MOVAX,50000
OUTDX,AL
NOP
NOP
MOVAL,AH
OUTDX,AL
MOVDX,IO8255K
MOVAL,90H
OUTDX,AL
MOVDX,IO8255C
MOVAL,00
OUTDX,AL
LL:
MOVAH,01H
INT16H
JNZQUIT1
MOVDX,IO8254K
MOVAL,70H
OUTDX,AL
MOVDX,IO82541
MOVAL,0FFH
OUTDX,AL
NOP
NOP
OUTDX,AL
MOVDX,IO8254K
MOVAL,90H
OUTDX,AL
MOVDX,IO82542
MOVAL,100
OUTDX,AL
MOVDX,IO8255C
MOVAL,01H
OUTDX,AL
JMPA0
QUIT1:
JMPQUIT
A0:
MOVDX,IO8255A
A1:
INAL,DX
ANDAL,01H
JZA1
MOVDX,IO8255C
MOVAL,00H
OUTDX,AL
MOVDX,IO8254K
MOVAL,70H
OUTDX,AL
MOVDX,IO82541
INAL,DX
MOVBL,AL
INAL,DX
MOVBH,AL
MOVAX,0FFFFH
SUBAX,BX
CALLDISP
MOVDL,0DH
MOVAH,02
INT21H
MOVDL,0AH
MOVAH,02
INT21H
JMPLL
DISPPROCNEAR
MOVDX,0000H
MOVCX,03E8H
DIVCX
MOVCOUNT1,AL
MOVAX,DX
MOVCL,64H
DIVCL
MOVCOUNT2,AL
MOVAL,AH
MOVAH,00H
MOVCL,10
DIVCL
MOVCOUNT3,AL
MOVCOUNT4,AH
MOVAL,COUNT1
CALLDISP1
MOVAL,COUNT2
CALLDISP1
MOVAL,COUNT3
CALLDISP1
MOVAL,COUNT4
CALLDISP1
RET
DISPENDP
DISP1PROCNEAR
ANDAL,0FH
CMPAL,09H
JLENUM
ADDAL,07H
NUM:
ADDAL,30H
MOVDL,AL
MOVAH,02
INT21H
RET
DISP1ENDP
QUIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
5、实验截图
…………………………………装……………………………………订………………………………………线……………………………………………
6、
…………………………………装……………………………………订………………………………………线……………………………………