微机原理实验报告直流电机测速实验(共8页).doc
精选优质文档-倾情为你奉上本科实验报告课程名称: 微机原理及接口技术 课题项目: 直流电机测速实验 专业班级: 电科1201 学号: 学生姓名: 王天宇 指导教师: 任 光 龙 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端与+5V0V模拟开关SW1相连。如下图所示。四、编程提示8254计数器/定时器1作为计数器记录脉冲个数,计数器/定时器0和2作为定时器,组成1060秒定时器,测量脉冲个数,算出点击每分钟的转速并显示在屏幕上,8255的PA0根据OUT2的开始和结束时间,通过PC0向8254计数器/定时器1发出开始和停止计数信号。五、流程图开始结束PC0=1?有键按下8254定时器0置初值,周期50ms的方波8254定时器2置初值,周期10s的方波8255初始化,PA0输入,PC0输出PA0=0?技算并显示锁存计数值,去脉冲个数PC0输出“1”,GATE为高电平,开始计数8254计数器1置初值显示提示信息六、实验程序:DATA SEGMENTIOPORT EQU 0D880H-0280H IO8255K EQU IOPORT+283H IO8255A EQU IOPORT+280H IO8255C EQU IOPORT+282H IO8254K EQU IOPORT+28BH IO82542 EQU IOPORT+28AH IO82541 EQU IOPORT+289H IO82540 EQU IOPORT+288H MESS DB 'STRIKE ANY KEY,RETURN TO DOS!', 0AH, 0DH,'$'COU DB 0COU1 DB 0COUNT1 DB 0COUNT2 DB 0COUNT3 DB 0COUNT4 DB 0DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATASTART: MOV AX, DATA MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09H INT 21H MOV DX, IO8254K MOV AL, 36H OUT DX, AL MOV DX, IO82540 MOV AX, 50000 OUT DX, AL NOP NOP MOV AL, AH OUT DX, AL MOV DX, IO8255K MOV AL, 90H OUT DX, AL MOV DX, IO8255C MOV AL, 00 OUT DX, AL LL: MOV AH, 01H INT 16H JNZ QUIT1 MOV DX, IO8254K MOV AL, 70H OUT DX, AL MOV DX,IO82541 MOV AL,0FFH OUT DX,AL NOP NOP OUT DX, AL MOV DX, IO8254K MOV AL, 90H OUT DX, AL MOV DX, IO82542 MOV AL, 100 OUT DX, AL MOV DX, IO8255C MOV AL, 01H OUT DX, AL JMP A0QUIT1: JMP QUITA0: MOV DX, IO8255AA1: IN AL, DX AND AL, 01H JZ A1 MOV DX, IO8255C MOV AL, 00H OUT DX, AL MOV DX, IO8254K MOV AL, 70H OUT DX, AL MOV DX, IO82541 IN AL, DX MOV BL, AL IN AL, DX MOV BH, AL 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 MOV DX, 0000H MOV CX, 03E8H DIV CX MOV COUNT1, AL MOV AX, DX MOV CL, 64H DIV CL MOV COUNT2, AL MOV AL, AH MOV AH, 00H MOV CL, 10 DIV CL 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 RETDISP ENDPDISP1 PROC NEAR AND AL, 0FH CMP AL, 09H JLE NUM ADD AL, 07HNUM: ADD AL, 30H MOV DL, AL MOV AH,02 INT 21H RETDISP1 ENDPQUIT: MOV AH, 4CH INT 21HCODE ENDS END START七、实验步骤 1.连接试验电路 2.打开主机进入DOS环境:开始运行cmd确定 3.编辑、汇编、链接汇编语言程序 E: CD MASM (1)编辑汇编语言源程序:EDIT MA2.ASM,编辑源程序。 (2)汇编链接源程序:ML MA2.ASM 没有语法错误,继续下一步,有错,则返回上一部编辑状态,改错。 4.打开扩展卡I/O端口地址(1)进入DOS全屏模式:Alt+Enter(2)打开I/O端口地址:RUN 5.运行和调试汇编程序 试验箱通电(1)直接运行汇编、链接所产生的可执行的文件MA2(2)调试器运行汇编语言可执行文件。八、实验结果: 九、实验结果分析8254是一种可编程定时/计数器作为计数器,记录脉冲个数,计数器/定时器0和2作为定时器组成1060秒定时器,测量脉冲个数,算出点击每分钟的转速并显示在屏幕上,调节SW1可使转速在0在最大转速间变化。十、思考题: 1. 关闭电机后为什么8254计数不为零? 答:由于之前计数值即电机转速已经存储在锁存器中,关闭电机后,程序还是将之前的数值显示在屏幕上,所以不为零。十一、实验心得: 通过本次试验掌握8254的工作原理和编程方法,并了解光电开关,掌握光电传感器测速电机转速的方法。专心-专注-专业