直流电机测速实验

  • 格式:doc
  • 大小:72.50 KB
  • 文档页数:6

直流电机测速实验
一、实验目的和要求
1.掌握8254的工作原理和编程方法
2.了解光电开关,掌握光电传感器测速电机转速的方法。
二、实验内容和原理
1.实验内容
光电测速的基本电路有光电传感器、计数器/定时器组成。被测电机主轴上固定一个圆
盘,圆盘的边缘上有小孔。传感器的红外线发射端和接收端装在圆盘的两侧,电机带动圆盘
转到有孔的位置时,红外线光通过,接收管导通,输出低电平。红外线被挡住时,接收截止,
输出高电平。用计数器/定时器记录在一定时间内传感器发出的脉冲个数,就可以计算车电
机的转速,
流程图:如图1所示
开始

显示提示信息

8254定时器2置初值,周期10s的方波
8254定时器0置初值,周期50ms的方波

8255初始化,PA0输入,PC0输出
有键按下

8254计数器1置初值
PA0=0?

PC0输出“1”,GATE为高电平,开始计数
PC0=1?
锁存计数值,去脉冲个数
技算并显示

结束
线路连接:线路连接如图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发出开始和
停止计数信号。
程序:
DATA SEGMENT
IOPORT EQU 0D880H-0280H
IO8255K EQU IOPORT+283H ;8255控制口
IO8255A EQU IOPORT+280H ;8255A口
IO8255C EQU IOPORT+282H ;8255C口
IO8254K EQU IOPORT+28BH ;8254控制
IO82542 EQU IOPORT+28AH ;8254计数器2
IO82541 EQU IOPORT+289H ;8254计数器1
IO82540 EQU IOPORT+288H ;8254计数器0
MESS DB 'STRIKE ANY KEY,RETURN TO DOS!', 0AH, 0DH,'$'
COU DB 0
COU1 DB 0
COUNT1 DB 0
COUNT2 DB 0
COUNT3 DB 0
COUNT4 DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET MESS
MOV AH, 09H
INT 21H ;显示提示信息
MOV DX, IO8254K
MOV AL, 36H ;计数器0,方式3,先读写低8位,再读写高8位
OUT DX, AL ;输入时钟,1MHZ
MOV DX, IO82540
MOV AX, 50000 ;初值50000,输出时钟周期50MS
OUT DX, AL
NOP
NOP
MOV AL, AH
OUT DX, AL
MOV DX, IO8255K ;8255,PA0通道输入,PC0输出
MOV AL, 90H
OUT DX, AL
MOV DX, IO8255C
MOV AL, 00
OUT DX, AL ;PC0(GATE1)低电平,定时器1禁
止计数
LL: MOV AH, 01H ;有无键入
INT 16H
JNZ QUIT1 ;有键,返回
MOV DX, IO8254K
MOV AL, 70H
OUT DX, AL ;计数器1,方式0,先读写低8位,再读写高8位
MOV DX,IO82541 ;输入时钟为光电开关输出
MOV AL,0FFH
OUT DX,AL
NOP
NOP
OUT DX, AL
MOV DX, IO8254K
MOV AL, 90H
OUT DX, AL ;计数器2,方式0,只读写低8位
MOV DX, IO82542
MOV AL, 100
OUT DX, AL ;初值100,检测5S
MOV DX, IO8255C
MOV AL, 01H
OUT DX, AL ;PC0输出为1
JMP A0
QUIT1: JMP QUIT
A0: MOV DX, IO8255A
A1: IN AL, DX
AND AL, 01H
JZ A1 ;8255PA0是否为0
MOV DX, IO8255C
MOV AL, 00H
OUT DX, AL ;定时器1停止计数
MOV DX, IO8254K
MOV AL, 70H
OUT DX, AL
MOV DX, IO82541
IN AL, DX
MOV BL, AL
IN AL, DX
MOV BH, AL ;16位计数值送BX
MOV AX, 0FFFFH
SUB AX, BX ;计算脉冲个数
CALL DISP ;显示
MOV DL, 0DH
MOV AH,02
INT 21H
MOV DL, 0AH
MOV AH, 02
INT 21H
JMP LL ;无键,测量
DISP PROC NEAR ;BCD转换并显示子程序
MOV DX, 0000H
MOV CX, 03E8H ;除1000
DIV CX
MOV COUNT1, AL ;千位
MOV AX, DX
MOV CL, 64H
DIV CL ;除100
MOV COUNT2, AL ;百位
MOV AL, AH
MOV AH, 00H
MOV CL, 10
DIV CL ;除10
MOV COUNT3, AL ;十位
MOV COUNT4, AH ;个位
MOV AL, COUNT1
CALL DISP1
MOV AL, COUNT2
CALL DISP1
MOV AL, COUNT3
CALL DISP1
MOV AL, COUNT4
CALL DISP1
RET
DISP ENDP
DISP1 PROC NEAR ;显示一个字符
AND AL, 0FH
CMP AL, 09H
JLE NUM
ADD AL, 07H
NUM: ADD AL, 30H
MOV DL, AL
MOV AH,02
INT 21H
RET
DISP1 ENDP
QUIT: MOV AH, 4CH ;返回DOS
INT 21H
CODE ENDS
END START
2.实验原理
8254是一种可编程定时/计数器接口芯片,片内有3个独立的16位计数器,每个计数器可编
程设定为6种不同的工作方式。它有读回命令,可以读出寄存器的状态。
三、主要仪器设备
1.TPC-2003A实验系统
2.计算机
四、实验方法及实验步骤
1.连接试验电路
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相连。
2.打开主机进入DOS环境:开始—运行—cmd确定
3.编辑、汇编、链接汇编语言程序
E:
CD MASM
(1)编辑汇编语言源程序:
EDIT cesu.ASM
编辑源程序。
(2)汇编链接源程序:
ML cesu.ASM
没有语法错误,继续下一步,有错,则返回上一部编辑状态,改错。
4.打开扩展卡I/O端口地址
(1)进入DOS全屏模式:
Alt+Enter
(2)打开I/O端口地址:
RUN
5.运行和调试汇编程序
试验箱通电
(1)直接运行汇编、链接所产生的可执行的文件
cesu
(2)调试器运行汇编语言可执行文件。
五、实验数据记录及处理

六、实验结果与分析
8254是一种可编程定时/计数器作为计数器,记录脉冲个数,计数器/定时器0和2作为
定时器组成10~60秒定时器,测量脉冲个数,算出点击每分钟的转速并显示在屏幕上,调节
SW1可使转速在0在最大转速间变化。
七、讨论、心得
通过本次试验掌握8254的工作原理和编程方法,并了解光电开关,掌握光电传感器测
速电机转速的方法。