微机原理实验报告直流电机测速实验.doc
《微机原理实验报告直流电机测速实验.doc》由会员分享,可在线阅读,更多相关《微机原理实验报告直流电机测速实验.doc(8页珍藏版)》请在冰点文库上搜索。
本科实验报告
课程名称:
微机原理及接口技术
课题项目:
直流电机测速实验
专业班级:
电科1201学号:
2012001610
学生姓名:
王天宇
指导教师:
任光龙
2015年5月24日
直流电机测速实验
一、实验目的
1.掌握8254的工作原理和编程方法
2.了解光电开关,掌握光电传感器测速电机转速的方法。
二、实验内容
光电测速的基本电路有光电传感器、计数器/定时器组成。
被测电机主轴上固定一个圆盘,圆盘的边缘上有小孔。
传感器的红外线发射端和接收端装在圆盘的两侧,电机带动圆盘转到有孔的位置时,红外线光通过,接收管导通,输出低电平。
红外线被挡住时,接收截止,输出高电平。
用计数器/定时器记录在一定时间内传感器发出的脉冲个数,就可以计算车电机的转速,
三、线路连接
线路连接:
8254计数器/定时器0和2作为定时器,确定测速时间,定时器0的CLK0连1MHZ脉冲频率,OUT0作为定时器2的输入,与CLK2相连,输出OUT2与8255的PA0端相连。
GATE0和GATE2均接+5V,8354计数器/定时器1作为计数器,,输入CLK1与直流电机计数端连接,GATE1与8254的PC0相连。
电机DJ端与+5V~0V模拟开关SW1相连。
如下图所示。
四、编程提示
8254计数器/定时器1作为计数器记录脉冲个数,计数器/定时器0和2作为定时器,组成10~60秒定时器,测量脉冲个数,算出点击每分钟的转速并显示在屏幕上,
8255的PA0根据OUT2的开始和结束时间,通过PC0向8254计数器/定时器1发出开始和停止计数信号。
五、流程图
开始
结束
PC0=1?
有键按下
8254定时器0置初值,周期50ms的方波
8254定时器2置初值,周期10s的方波
8255初始化,PA0输入,PC0输出
PA0=0?
技算并显示
锁存计数值,去脉冲个数
PC0输出“1”,GATE为高电平,开始计数
8254计数器1置初值
显示提示信息
六、实验程序:
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
七、实验步骤
1.连接试验电路
2.打开主机进入DOS环境:
开始—运行—cmd确定
3.编辑、汇编、链接汇编语言程序
E:
CDMASM
(1)编辑汇编语言源程序:
EDITMA2.ASM,编辑源程序。
(2)汇编链接源程序:
MLMA2.ASM
没有语法错误,继续下一步,有错,则返回上一部编辑状态,改错。
4.打开扩展卡I/O端口地址
(1)进入DOS全屏模式:
Alt+Enter
(2)打开I/O端口地址:
RUN
5.运行和调试汇编程序
试验箱通电
(1)直接运行汇编、链接所产生的可执行的文件
MA2
(2)调试器运行汇编语言可执行文件。
八、实验结果:
九、实验结果分析
8254是一种可编程定时/计数器作为计数器,记录脉冲个数,计数器/定时器0和2作为定时器组成10~60秒定时器,测量脉冲个数,算出点击每分钟的转速并显示在屏幕上,调节SW1可使转速在0在最大转速间变化。
十、思考题:
1. 关闭电机后为什么8254计数不为零?
答:
由于之前计数值即电机转速已经存储在锁存器中,关闭电机后,程序还是将之前的数值显示在屏幕上,所以不为零。
十一、实验心得:
通过本次试验掌握8254的工作原理和编程方法,并了解光电开关,掌握光电传感器测速电机转速的方法。