微机原理及接口技术实验报告.docx
- 文档编号:17238507
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:28
- 大小:864.05KB
微机原理及接口技术实验报告.docx
《微机原理及接口技术实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术实验报告.docx(28页珍藏版)》请在冰点文库上搜索。
微机原理及接口技术实验报告
微机原理及接口技术
实验报告
学院:
信息科学与工程学院
专业班级:
通信工程
姓名:
学号:
实验一多位十进制数相加实验
一.实验目的
1.熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。
2.掌握数据传送和算术运算指令的用法。
二.实验内容
将两个多位十制数28056,47193相加,并显示加数,被加数,和。
要求加数和被加数均以ASCII码形式各自顺序存放在DATAl和DATA2内存单元中,结果送回DATA1处(低位在前,高位在后)。
3.程序流程图
显示加数和被加数
加数和被加数由ASCⅡ码表示转化为十六进制
计数值5-->CX
清除最低位进位
执行ADC带进位相加
AAA调整
结果送被加数存储区
调整偏移量
显示加数和被加数
N
将十六进制结果转化为ASCⅡ码表示的数字
Y
显示结果
四.参考程序
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
4.实验过程
进入DOS环境,进入E盘MASM子目录,键入:
E:
回车
CD:
MASM回车
EDIT*.ASM回车(*为程序名)
打开编辑窗口将汇编语言源程序输入
对源程序进行汇编链接,执行并调试可执行文件
六.思考题
不改变数据段DATA1和DATA2的内容,如何将加数与被加数分别由28056和47193变成65082和39174,并且相加
答:
源程序不变将
DATA1DB33H,39H,31H,37H,34H
DATA2DB36H,35H,30H,38H,32H
后加上
DATA4DB37H,34H,31H,39H,33H
DATA5DB32H,38H,30H,35H,36H
并将全部DATA1和DATA2全部改成DATA4和DATA5
就可以实现
七、实验感想:
通过本实验,基本学会了数据传送和算术运算指令的用法,熟悉了DOS环境,并且对微机原理及接口技术这门课程有了更深的了解和认识。
实验二统计数据个数实验
一.实验目的
掌握将多位十六进制数转换成多位十进制数ASCII码的方法
二.实验内容
统计内存数组中大于0和小于0的元素个数,并将统计结果分别存放在LRESULT和HRESULT变量中,并显示个数
3.程序流程图
数组元素个数---->CL
SI指向数组首地址
比较
HERSULT+1
Y
LERSULT+1
SI+1---->SI
N
显示提示信息
Y
显示正元素个数
显示负元素个数
4.参考程序
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
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
五.实验过程
进入E盘的MASM子目录,打开编辑窗口将汇编语言源程序输入,对源程序进行汇编链接,执行并调试可执行文件
6.思考题
试分析程序中语句“MOVCX,N”执行后,赋给CX寄存器的值是多少?
答:
赋给CX的值是63
七、实验感想:
通过本实验,基本学会了数据传送和算术运算指令的用法及将多位十六进制数转换为多位十进制数ASCII码得方法,熟悉了DOS环境,并且对微机原理及接口技术这门课程有了更深的了解和认识。
实验三直流电机测速实验
1.实验目的:
1.掌握8254的工作原理和编程方法
2.了解光电开关的使用方法,掌握用光电传感器测量电机转速的方法
二.实验内容
光电测速的基本电路由光电传感器、计数器和定时器组成。
测量时在被测电机主轴上固定一个圆盘,圆盘的边缘上打上小孔。
传感器的红外发射端和接收端装在圆盘的两测,电机带动圆盘转到有孔的位置时,红外光通过,红外接收管导通,输出低电平。
红外光被挡住时接收管截止,输出高电平。
用计数器记录在一定时间内传感器发出的脉冲个数就可以计算出电机转速。
三.线路连接
接线方法:
8254计数器/定时器0和2作为定时器,确定测速时间,定时器0的CLK0接1MHZ脉冲频率,OUT0作为定时器2的输入,与CLK2相连,输出OUT2与8255的PA0端相连。
GATE0、GATE2均接+5V,8254计数器/定时器1作为计数器,输入CLK1与直流电机计数端相连,GATE1与8255的PC0相连。
电机DJ端与+5V~0V模拟开关SW1相连。
四.编程提示
8254计数器/定时器1作为计数器,记录脉冲个数,计数器/定时器0和2作为定时器,组成10~60秒定时器,测量脉冲个数,算出电机每分钟的转速并显示在屏幕上。
8255的PA0根据OUT2的开始和结束时间,通过PC0向8254计数器/定时器1发出开始和停止计数信号。
5.流程图
六.参考程序
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
7.实验结果
8.思考题
关闭电机后,为什么8254计数不为0?
答:
关闭电机后,但主机未断电,计数值锁存在锁存器中,所以读数会一直为锁存器的值,8254计数不会显示0
九.实验感想
通过本实验,基本掌握了8254的工作原理和编程方法,了解了光电开关,掌握了用光电传感器测量电机转速的方法。
同时,也进一步提高了自己实践动手的能力,熟悉了DOS环境,并且对微机原理及接口技术这门课程有了更深的了解和认识。
实验四十字路口红绿灯闪烁实验
一.实验目的
通过对红、绿、黄灯的控制,熟练掌握8255A接口芯片的编程方法。
二.实验内容
对8255A接口芯片进行编程,使红,黄,绿发光二极管按照十字路口交通灯的形式点亮或熄灭。
三.线路连接
发光二极管共8个,其中两组绿,黄,红灯用6个,L2、L3、L4为一组,L5、L6、L7为一组;实验台连接如图4.3所示。
高电平“1”时,点亮。
4.流程图
五.参考程序
DATASEGMENT
IOPORTEQU0D880H-280H
IO8255CEQUIOPORT+282H
IO8255TEQUIOPORT+283H
PBDB?
MESSDB'ENTERANYKEYCANEXITTODOS!
',0DH,0AH,'$'
DATAENDS
STACKSEGMENTSTACK
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
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
六.实验结果
1、汇编成功
2、经测试灯是按照指定规律变化
七.实验现象
红黄绿变化的规律为:
两个路口红灯全亮;南北路口绿灯亮,东西路口红灯亮;南北路口绿灯灭,东西路口红灯亮;两个路口黄灯闪烁;两个路口红灯全亮;东西路口绿灯亮,南北路口红灯亮;东西路口绿灯灭,南北路口红灯亮;两个路口黄灯闪烁;依次从头到尾循环出现
八.思考题:
程序中红,绿,黄灯点亮和熄灭的延时时间是如何设定的?
答:
通过用延时子程序CALLDELAY10的次数来设定
九.实验感想
通过本实验,基本掌握了8255A接口芯片的编程方法,熟悉了DOS环境,同时,也进一步提高了自己的实践动手能力,并且对微机原理及接口技术这门课程有了更深的了解和认识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 报告