微机原理与接口技术硬件实验报告.docx
- 文档编号:7581725
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:16
- 大小:140.68KB
微机原理与接口技术硬件实验报告.docx
《微机原理与接口技术硬件实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术硬件实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术硬件实验报告
多位十进制数相加程序
一、实验目的
学习数据传送和算术运算指令
二、实验内容
将两个多位十进制数28056、47193相加,并显示加数、被加数、和。
要求两个加数均以ASCII码形式各自顺序存放在DATA1和DATA2内存单元中,结果送回DATA1处(低位在前,高位在后)。
三、程序流程图
四、参考程序
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
五、思考题
不改变数据段DATA1和DATA2的内容,如何将加数和被加数分别由28056和47198变成65082和39174,并且相加。
统计数据个数程序
一、实验目的
掌握将多位十六进制数转换成多位十进制数ASCII码的方法。
二、实验内容
统计内存数组中大于0和小于0的元素个数,并将统计结果分别存放在LRESULT和HRESULT变量中,并显示个数。
三、程序流程图
四、参考程序
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,DATA
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
五、思考题
试分析程序中语句“MOVCX,N”执行后,赋给CX寄存器的值是多少?
直流电机测速实验
一、实验目的
(1)掌握8254的工作原理和编程方法;
(2)了解光电开光,掌握光电传感器测量电机转速的方法。
二、实验内容
光电测速的基本电路由光电传感器、计数器/定时器组成。
被测电机主轴上固定一个圆盘,圆盘的边缘上有小孔。
传感器的红外发射端和接受端在圆盘的两侧,电机带动圆盘转到有空的位置时,红外光通过,接收管导通,输出低电平。
红外光被挡住时,接收截止,输出高电平。
用计数器/定时器记录在一定时间内传感器发出的脉冲个数,就可以算出电机的转速。
三、线路连接
线路连接如图所示,8254计数器/定时器0和2作为
DATASEGMENT
IOPORTEQU0D880H-280H
IO0809AEQUIOPORT+298H
CRTDB'SPIN"SW1"SWITCH,VIEWONTHEDISPLAY',0DH,0AH
DB'ENTERANYKEYCANEXITTODOS',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETCRT
MOVAH,09H
INT21H
LAB:
MOVDX,IO0809A
OUTDX,AL
MOVCX,0FFFFH
DELAY:
LOOPDELAY
INAL,DX
MOVBL,AL
MOVCL,4
SHRAL,CL
CALLDISP
MOVAL,BL
ANDAL,0FH
CALLDISP
MOVAH,02
MOVDL,20H
INT21H
INT21H
PUSHDX
MOVAH,06H
MOVDL,0FFH
INT21H
POPDX
JELAB
MOVAX,4C00H
INT21H
DISPPROCNEAR
MOVDL,AL
CMPDL,9
JLEDDD
ADDDL,7
DDD:
ADDDL,30H
MOVAH,02
INT21H
RET
DISPENDP
CODEENDS
ENDSTART
十字路口红绿灯闪烁实验
一、实验目的
通过对红|、绿、黄灯的控制,熟练掌握8255A芯片的编程方法。
二、实验内容
对8255A接口芯片进行编程,是红、黄、绿发光二极管按照十字路口交通灯的形式点亮或熄灭。
三、线路连接
发光二极管共8个,其中两组绿、黄、红灯用6个,L2、L3、L4为一组,L5、L6、L7为一组;实验台连接如图所示。
高电平“1”时,点亮。
四、编程提示
(1)红、黄、绿灯变化规律
设有一个十字路口,两组灯分别代表东西和南北两个方向,其红黄绿灯变化规律为:
两个路口红灯全亮;
南北路口绿灯亮,东西路口红灯亮;
南北路口绿灯灭,东西路口红灯亮;
两个路口黄灯闪烁;
两个路口红灯全亮;
东西路口绿灯亮,南北路口红灯亮;
东西路口绿灯灭,南北路口红灯亮;
两个路口黄灯闪烁;
转向循环执行。
(2)设置8255A方向控制字
设置8255A的端口C工作在方式0,为输出。
D0、D1控制绿灯,D2、D3控制黄灯,D4、D5控制红灯。
需要点亮哪一位指示灯时,8255A相应端口对应为就输出“1”。
五、流程图
六、参考程序
DATASEGMENT
IOPORTEQU0D880H-280H
IO0832AEQUIOPORT+2A0H
IO8255CEQUIOPORT+282H
IO8255TEQUIOPORT+283H
BUF1DW0
BUF2DW0
CRTDB'K0-K5ARESPEEDSWITCH',0DH,0AH
DB'K0ISLOWESTSPEED',0DH,0AH
DB'K5ISHIGHESTSPEED',0DH,0AH
DB'STIRANYSWHITCH,VIEWELECTRICMORTORSPEED',0DH,0AH
DB'ENTERANYKEYCANEXITTODOS',0DH,0AH,'$'
DATAENDS
STACKSSEGMENT
DB100DUP(?
)
STACKSENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACKS,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACKS
MOVSS,AX
MOVDX,OFFSETCRT
MOVAH,09H
INT21H
MOVDX,IO8255T
MOVAL,8BH
OUTDX,AL
LLL:
MOVAL,80H
MOVDX,IO0832A
OUTDX,AL
PUSHDX
MOVAH,06H
MOVDL,0FFH
INT21H
POPDX
JEINTK
MOVAH,4CH
INT21H
INTK:
MOVDX,IO8255C
INAL,DX
TESTAL,01H
JNZK0
TESTAL,02H
JNZK1
TESTAL,04H
JNZK2
TESTAL,08H
JNZK3
TESTAL,10H
JNZK4
TESTAL,20H
JNZK5
JMPLLL
K0:
MOVBUF1,0FFFFH
MOVBUF2,9000H
DELAY:
MOVCX,BUF1
DELAY1:
LOOPDELAY1
MOVAL,0FFH
MOVDX,IO0832A
OUTDX,AL
MOVCX,BUF2
DELAY2:
LOOPDELAY2
JMPLLL
K1:
MOVBUF1,0FFFFH
MOVBUF2,0A000H
JMPDELAY
K2:
MOVBUF1,0FFFFH
MOVBUF2,0B000H
JMPDELAY
K3:
MOVBUF1,0FFFFH
MOVBUF2,0E000H
JMPDELAY
K4:
MOVBUF1,0FFFFH
MOVBUF2,0F000H
JMPDELAY
K5:
MOVBUF1,0FFFFH
MOVBUF2,0FFFFH
JMPDELAY
CODEENDS
ENDSTART
七、思考题
程序中红、绿、黄灯点亮和熄灭的延时时间是如何设定的?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 硬件 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)