课程设计实验报告-直流电机测速 (1)

合集下载

直流电机测速系统课程设计

直流电机测速系统课程设计

西安邮电学院单片机课程设计报告书题目:电机测速系统院系名称:自动化学院学生姓名:专业名称:自动化班级:自动XXXX班时间:20XX年X月X日至 X月XX日电机测速系统一、设计目的随着科技的飞速发展,计算机应用技术日益渗透到社会生产生活的各个领域,而单片机的应用则起到了举足轻重的作用。

在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、机床主轴等旋转设备的试验运转和控制中,常需要分时或连续测量、显示其转速及瞬时速度。

为了能精确地测量转速,还要保证测量的实时性,要求能测得瞬时转速。

因此设计一种较为理想的电机测速控制系统是非常有价值的。

二、设计要求1.用按键控制电机起停;2.电机有两种速度,通过按键来改变速度;3.通过数码管显示每分钟或每秒的转速。

四、设计方案及分析(包含设计电路图)1. STC89C52单片机介绍STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。

该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

(1)单片机最小系统单片机最小系统电路如图所示,由主控器STC89C52、时钟电路和复位电路三部分组成。

单片机STC89C52作为核心控制器控制着整个系统的工作,而时钟电路负责产生单片机工作所必需的时钟信号,复位电路使得单片机能够正常、有序、稳定地工作。

图单片机最小系统(2)晶振电路(3)复位电路复位是单片机的初始化操作。

其主要功能是把PC 初始化为0000H ,使单片机从0000H 单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。

2. ST151光电转速传感器是根据光敏二极管工作原理制造的一种感应接收光强度变化的电子器件,当它发出的光被目标反射或阻断时,则接收器感应出相应的电信号。

直流电动机实验报告

直流电动机实验报告

直流电动机实验报告实验报告:直流电动机实验引言:直流电动机是一种将直流电能转化为机械能的装置,广泛应用于各个领域。

在本实验中,我们将通过对直流电动机的实验研究,探究其工作原理和性能特点。

一、实验目的:1. 了解直流电动机的组成结构和工作原理;2. 掌握直流电动机的启动、制动和运行过程;3. 学习使用实验仪器测量电动机的性能参数。

二、实验原理:直流电动机是由电枢和磁极组成。

当电枢通过外部直流电源供电时,在电磁场的作用下,电枢会受到电磁力的作用而产生旋转。

电动机的工作原理可以通过右手定则来解释。

在电动机的实验中,我们还需要了解几个重要的性能参数:1. 电压常数Kv:表示电动机转速和电压之间的关系;2. 转矩常数Kt:表示电动机转矩和电流之间的关系;3. 电动机的机械功率:指电动机转动时所做的功。

三、实验步骤:1. 连接电动机与电源,并确认电路连接正确;2. 使用电压表和电流表对电动机的电压和电流进行测量,并记录数据;3. 测量不同电压下电动机的转速,并记录数据;4. 根据测得的数据计算电动机的转矩常数Kt和电压常数Kv;5. 测量不同电压和负载下电动机的功率,并进行数据分析。

四、实验结果及分析:1. 测量数据的记录表格:电压(V)电流(A)转速(rpm)10 0.5 100020 1.0 200030 1.5 300040 2.0 400050 2.5 50002. 通过数据计算得到的电压常数Kv为200 rpm/V,转矩常数Kt为0.04 Nm/A;3. 在不同电压和负载下测量的功率随电压和负载增加而增加。

实验中我们观察到,当电压增加时,电动机的转速也随之增加。

这符合电压常数Kv的定义。

而转速的增加会带动机械负载的旋转,从而转矩也相应增加。

而转矩的增大会使得电流增加,因此电压和转矩之间的关系可以通过转矩常数Kt来表示。

实验结果进一步说明了直流电动机的工作原理,即通过外部直流电源提供电能,电枢在电磁场的作用下转动。

电机速度评测实验报告

电机速度评测实验报告

电机速度评测实验报告引言在机械传动系统中,电机的速度是一个重要的参数,它直接影响到整个系统的运行效果及稳定性。

为了评估电机的速度性能,我们进行了速度评测实验。

本实验旨在通过测量电机转速与输入电压之间的关系,分析电机的速度特性。

实验装置和方法实验装置本实验所需的装置如下:1. 直流电机2. 变压器3. 电动机测速仪4. 遥控器5. 示波器6. 计算机实验方法1. 将电机用螺栓固定在实验台上,使其轴线与台面平行。

2. 使用变压器将交流电压转换为直流电压,并通过遥控器调节电压大小。

3. 将电动机测速仪连接到电机上,以获得电机的转速。

4. 将示波器连接到电机的转子上,以测量电机的转速波形。

5. 将计算机连接到电机测速仪和示波器,以记录和分析数据。

实验流程1. 将实验装置连接好,并将电动机测速仪和示波器打开。

2. 将电机轴上的示波器传感器放置到电机转子上,确保传感器与转子的接触良好。

3. 打开计算机软件,开始记录数据。

4. 使用遥控器逐步调节电压大小,从0V增加到最大值,分别记录每个电压下的电机转速。

5. 将记录的数据导出到计算机,进行数据分析。

实验结果我们将记录的数据进行了分析,并绘制了电机转速与输入电压之间的曲线图。

以下是我们的实验结果:![曲线图](speed_vs_voltage.png)从曲线图可以看出,电机的转速随着输入电压的增加而线性增加。

这符合我们对电机速度特性的预期。

同时,我们还计算了电机的转速斜率,即每增加1V电压对应的转速变化。

通过斜率的分析,我们可以了解电机的发力能力以及转速增长的快慢。

结论本实验我们通过测量电机转速与输入电压之间的关系,评估了电机的速度性能。

实验结果表明,电机的转速与输入电压呈线性关系,整体速度特性良好。

通过斜率分析,我们可以进一步了解电机的发力能力和转速增长的快慢。

该实验为电机的速度评测提供了一种有效的方法和实验数据支持。

在实际应用中,可以根据实验结果来调节电机的输入电压,以满足不同转速要求的应用场景。

直流电机实验报告

直流电机实验报告

直流电机实验报告直流电机实验报告引言直流电机是一种常见的电动机,其工作原理基于直流电流的流动。

本次实验旨在通过对直流电机的实际操作和观察,深入了解其结构、特性和应用。

实验装置和步骤实验所用的装置包括直流电机、电源、电流表、电压表和转速计。

实验步骤如下:1. 将直流电机与电源连接,确保电源的极性正确。

2. 将电流表和电压表分别连接到电机的电源端和负载端。

3. 打开电源,逐渐增加电流,记录电流表和电压表的读数。

4. 使用转速计测量电机的转速,并记录下来。

实验结果和分析通过实验,我们得到了电流表和电压表的读数以及电机的转速。

根据这些数据,我们可以分析直流电机的特性。

1. 电流和电压之间的关系我们可以观察到,随着电流的增加,电压也相应增加。

这是因为直流电机的电阻和电动势之间存在一定的关系,电流增加时,电机内部的电压降也会增加。

2. 转速和电压之间的关系我们还可以发现,随着电压的增加,电机的转速也增加。

这是因为电压的增加会导致电机受到更大的驱动力,从而加速转动。

3. 转速和负载之间的关系在实验中,我们可以通过改变负载来观察电机的转速变化。

当负载增加时,电机的转速会减小。

这是因为负载的增加会增加电机的负载转矩,使电机更难以转动。

应用领域和意义直流电机广泛应用于各个领域,包括工业、交通、家用电器等。

其主要应用包括:1. 工业自动化:直流电机可用于驱动机械设备,如输送带、机床等。

2. 交通运输:直流电机可用于汽车、电动自行车等交通工具的驱动系统。

3. 家用电器:直流电机可用于吸尘器、洗衣机等家用电器的驱动。

直流电机的实验研究对于深入了解其特性和应用具有重要意义。

通过实际操作和观察,我们可以更好地理解电机的工作原理和性能特点。

同时,对于电机的应用领域和改进也提供了一定的参考和指导。

结论通过本次实验,我们对直流电机的结构、特性和应用有了更深入的了解。

我们观察到了电流和电压、转速和电压、转速和负载之间的关系,并分析了这些关系的原因。

直流电机的测速实验

直流电机的测速实验

实验十四直流电机的测速实验一、实验目的1、掌握直流电机的工作原理。

2、了解开关型霍尔传感器的工作原理和使用方法。

3、掌握电机测速的原理。

二、实验原理直流电机是我们生活当中常用的一种电子设备。

其内部结构如下图14-1所示:图14-1 直流电机结构图下面就上图来说明直流电机的工作原理。

将直流电源通过电刷接通电枢绕组,使电枢导体有电流流过,由于电磁作用,这样电枢导体将会产生磁场。

同时产生的磁场与主磁极的的磁场产生电磁力,这个电磁力作用于转子,使转子以一定的速度开始旋转。

这样电机就开始工作。

为了能够测定出电机在单位时间内转子旋转了多少个周期,我们在电机的外部电路中加入了一个开关型的霍尔原件(44E),同时在电子转子上的转盘上加入了一个能够使霍尔原件产生输出的带有磁场的磁钢片。

当电机旋转时,带动转盘是的磁钢片一起旋转,当磁钢片旋转到霍尔器件的上方时,可以导致霍尔器件的输出端高电平变为低电平。

当磁钢片转过霍尔器件上方后,霍尔器件的输出端又恢复高电平输出。

这样电机每旋转一周,则会使霍尔器件的输出端产生一个低脉冲,我们就可以通过检测单位时间内霍尔器件输出端低脉冲的个数来推算出直流电机在单位时间内的转速。

直流电机和开关型霍尔器件的电路原理图如下图14-2所示:图14-2 直流电机、霍尔器件电路图电机的转速通常是指每分钟电机的转速,也就是单位为rpm,实际测量过程中,为了减少转速刷新的时间,通常都是5~10秒刷新一次。

如果每6秒钟刷新一次,那么相当于只记录了6秒钟内的电机转数,把记录的数据乘10即得到一分钟的转速。

最后将这个数据在数码管上显示出来。

最后显示的数据因为是将数据乘以10,也就是将个位数据的后面加上一位来做个位即可,这一位将一直为0。

如:45*10变为450,即为在“45”个位后加了一位“0”。

由此可知,这个电机的转速的误差将是20以内。

为了使显示的数据能够在数码管是显示稳定,在这个数据的输出时加入了一个16位的锁存器,把锁存的数据送给数码管显示,这样就来会因为在计数过程中,数据的变化而使数码管显示不断变化。

北京工业大学大二下直流电机测速实验报告

北京工业大学大二下直流电机测速实验报告

北京工业大学大二下直流电机测速实验报告北京工业大学课程设计报告学院:__df_电控学院___专业:_电子科学与技术__班级:_120231_组号_16_题目:1_直流电机测速___2_小型温度控制系统_姓名:__王宁______学号:__12023110____指导教师:___杨旭东__成绩___________目录一、前言﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍3(一)设计题目﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍3(二)课题背景 (3)二、设计要求 (3)(一)设计任务 (3)(二)设计框架图 (4)(三)参考元器件﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍4 (四)设计要求 (4)1、电源模块 (4)2、信号处理模块 (4)3、功率放大模块 (4)(五)发挥部分 (5)三、设计原理 (5)(一)设计原理说明 (5)(二)电源模块 (5)1、方案选择 (5)2、原理分析 (6)(三)变送器模块 (9)1、方案选择...............................................................................................- 9 -2、原理分析 (10)(四)驱动器 (11)1、方案选择 (11)2、原理分析 (11)四、系统调试及实物图 (11)(一)调试顺序说明 (11)(二)电源模块调试 (11)(三)变送器模块调试 (12)(四)驱动器模块调试 (12)五、实物图﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍13六、实验中问题分析及解决 (14)(一)稳压电源电路板 (14)(二)变送器电路板 (14)(三)驱动电路板 (15)七、数据与误差分析 (15)(一)稳压电源电路板 (15)(二)变送器电路板 (16)(三)驱动器模块电路板 (16)八、附录 (17)(一)系统电路的工作原理图 (17)(二)元器件识别方法和检测方法 (17)(三)参考资料 (18)九、心得体会 (19)一、前言(一)设计题目小型闭环温度控制系统(二)课题背景电子工程设计的任务是完成一套小型的温度测量与控制系统,其中包含有三个阶段。

实验13--直流电机测速实验

实验13--直流电机测速实验

4562、由DAC0832经功放电路驱动直流电机,计数光电开关通关次数并经过换算得出直流电机的转速,并将转速显示在LED上。

3、G5区的0、1号按键控制直流电机转速快慢, (最大转速≈96r/s,5V,误差±1r/s)六、演示程序(完整程序见目录SPEED);键盘、LED显示子程序请参阅综合实验一.MODEL TINYEXTRN CMD_8279:WORD, DATA_8279:WORDEXTRN Display8:NEAR, SCAN_KEY:NEAR,GetKeyA:NEARPCIBAR1 EQU 14H ;PCI9052 I/O基地址(用于访问局部配置寄存器)PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址,;也为DMA & 32 BIT RAM板卡上的8237提供基地址) PCIIPR EQU 3CH ;IRQ号INTCSR EQU 4CH ;PCI9052 INTCSR地址mask_int_9052 EQU 24HVendor_ID EQU 10EBH ;厂商ID号Device_ID EQU 8376 ;设备ID号VoltageOffset EQU 5 ;0832调整幅度.STACK 200.DATAIO8259_0 DW 00F0HIO8259_1 DW 00F1HRD_IO8259 DW 0000HCon_8253 DW 00E3HT0_8253 DW 00E0HT1_8253 DW 00E1HDA0832 DW 00D0HIO_Bit8_BaseAddress DW ?PCI_IO_BaseAddress0 DW ?PCI_IRQ_NUMBER DB ?INT_MASK DB ?INT_Vector DB ?INT_CS DW ? ;保护原中断入口地址INT_IP DW ?msg0 DB 'BIOS不支持访问PCI $'msg1 DB '找不到Star PCI9052板卡 $'msg2 DB '读PCI9052 I/O基地址时出错$'msg3 DB '读8位I/O空间基地址时出错$'msg4 DB '读IRQ号出错$'buffer DB 8 DUP(0) ;显示缓冲区,8个字节buffer1 DB 8 DUP(0) ;显示缓冲区,8个字节VOLTAGE DB 0 ;转换电压数字量Count DW 0 ;一秒转动次数NowCount DW 0 ;当前计数值kpTime DW 0 ;保存上一次采样时定时器的值bNeedDisplay DB 0 ;需要刷新显示.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPCALL InitPCICALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址CALL ModifyVector ;修改中断向量、允许中断MOV bNeedDisplay,1 ;显示初始值MOV VOLTAGE,99H ;初始化转换电压输入值,99H-3.0VMOV Count,0 ;一秒转动次数MOV NowCount,0 ;当前计数值MOV kpTime,0 ;保存上一次采样时定时器的值CALL DAC0832 ;初始D/ACALL Init8253CALL Init8259STIMAIN: CALL IfExitCALL GetKeyA ;按键扫描JNB Main1JNZ Key1Key0: MOV AL,VoltageOffset ;0号键按下,转速提高ADD AL,VOLTAGECMP AL,VOLTAGEJNB Key0_1MOV AL,0FFH ;最大Key0_1: MOV VOLTAGE,AL ;D/ACALL DAC0832JMP Main2Key1: MOV AL,VOLTAGE ;1号键按下,转速降低SUB AL,VoltageOffsetJNB Key1_1XOR AL,AL ;最小Key1_1: MOV VOLTAGE,ALCALL DAC0832 ;D/AJMP Main2Main1: CMP bNeedDisplay,0JZ MAINMOV bNeedDisplay,0 ;1s定时到刷新转速Main2: CALL RateTest ;计算转速/显示JMP MAIN ;循环进行实验内容介绍与测速功能测试;转速测量/显示RateTest: MOV AX,CountMOV BL,10DIV BLCMP AL,0JNZ RateTest1MOV AL,10H ;高位为0,不需要显示RateTest1: MOV buffer,AHMOV buffer+1,ALMOV AL,VOLTAGE ;给0832送的数据AND AL,0FHMOV buffer+4,ALMOV AL,VOLTAGEAND AL,0F0HROR AL,4MOV buffer+5,ALMOV buffer+2,10H ;不显示MOV buffer+3,10HMOV buffer+6,10HMOV buffer+7,10HLEA SI,bufferLEA DI,buffer1MOV CX,8REP MOVSBLEA SI,bufferCALL Display8 ;显示转换结果RETTimer0Int: MOV bNeedDisplay,1MOV AX,NowCountSHR AX,1SHR AX,1MOV Count,AX ;转一圈,产生四个脉冲,Count = NowCount/4MOV NowCount,0RETIntProc: PUSH AXPUSH DXCALL ClearIntMOV DX,RD_IO8259IN AL,DXIN AL,DX ;判断由哪个中断源引起的中断CMP AL,08HJNZ IntProc1CALL Timer0IntJMP IntProc2IntProc1: CMP AL,0FHJNZ IntProc2CALL CountIntIntProc2: MOV DX,IO8259_0MOV AL,20HOUT DX,ALPOP DXPOP AXIRETCountInt: MOV DX,Con_8253MOV AL,40HOUT DX,AL ;锁存MOV DX,T1_8253IN AL,DXMOV AH,ALIN AL,DXXCHG AL,AH ;T1的当前值XCHG AX,kpTimeSUB AX,kpTimeCMP AX,100JB CountInt1 ;前后二次采样时间差小于100,判断是干扰INC NowCountCountInt1: RETInit8253 PROC NEARMOV DX,Con_8253MOV AL,34HOUT DX,AL ;计数器T0设置在模式2状态,HEX计数MOV DX,T0_8253MOV AL,12HOUT DX,ALMOV AL,7AHOUT DX,AL ;CLK0=31250Hz,1s定时MOV DX,Con_8253MOV AL,74HOUT DX,AL ;计数器T1设置在模式2状态,HEX计数MOV DX,T1_8253MOV AL,0FFHOUT DX,ALMOV AL,0FFHOUT DX,AL ;作定时器使用RETInit8253 ENDPInit8259 PROC NEARMOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HOUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7EHOUT DX,ALRETInit8259 ENDP;数模转换,A-转换数字量DAC0832 PROC NEARMOV DX,DA0832MOV AL,VOLTAGEOUT DX,ALRETDAC0832 ENDP;IfExit、InitPCI、ModifyAddress、ModifyVector、ClearInt、Exit子程序请参阅8259实验END START七.实验扩展及思考题实验内容:在日光灯或白炽灯下,将转速调节到25、50、75,观察转盘有什么现象出来。

直流电机测速实验

直流电机测速实验

实验三直流电机测速实验一实验目的(1) 掌握8254的工作原理和编程方法;(2) 了解光电开关,掌握用光电传感器测量电机转速的方法。

二实验内容光电测速的基本电路由光电传感器、计数器/定时器组成。

被测电机主轴上固定一 个圆盘,圆盘的边缘上有小孔。

传感器的红外发射端和接收端装在圆盘的两侧,电机 带动圆盘转到有孔的位置时,红外光通过,接收管导通,输出低电平。

红外光被挡住 时,接收截止,输出高电平。

用计数器/定时器记录在一定时间内传感器发出的脉冲个 数,就可以计算出电机的转速。

三线路连接线路连接如图所示。

8254计数器/定时器0和2作为定时器,确定测速时间,定时 器0的CLK o 引脚输入1MHz 脉冲,输出OUT o 引脚作为定时器2的输入,与CLK 2 引脚相连,输出引脚OUT 2与8255的PA o 端相连。

GATE o 和GATE 2均接+5V 电源。

8254计数器/定时器1作为计数器,输入引脚CLK 1与直流电机计数端连接,GATE 1 与8255的PC 0相连。

电机DJ 端与+5V~0V 模拟开关SW 1相连。

8254图直流电机测速实验接线图四编程提示8254计数器/定时器1作为计数器,记录脉冲个数,计数器/定时器0和2作为定 时器,组成10~60秒定时器,测量脉冲个数,以此计算出电机每份钟的转速,并显示 在计算机屏幕上。

8255的PA 0根据OUT 2的开始和结束时间,通过PC 0向8254计数器/定时器1发 出开始和停止计数信号。

288H~28FH f - *— 280H~287H f - OUT 。

GATE 0CLK 0• +5V OUT 1GATE 1CLK 1OUT 2GATE 2CLK 2 CSPA 08255PC 0 CS «- +5V +5V SW1五程序流程图译码器端口六参考程序DATA SEGMENT ;数据段IOPORT EQU 0D880H-0280H ;8255端口基地址IO8255K EQU IOPORT+283H ; 8255控制口地址IO8255A EQU IOPORT+280H ;8255 A 口地址IO8255C EQU IOPORT+282H ;8255 C 口地址IO8254K EQU IOPORT+28BH ;8254控制口地址IO82542 EQU IOPORT+28AH ;8254计数器2端口地址IO82541 EQU IOPORT+289H ;8254计数器1端口地址IO82540 EQU IOPORT+288H ;8254计数器0端口地址ODH, '$;提示信息MESS DB 'STRIKE ANY KEY,RETURN TO DOS!; 0AH,COU DB 0 ;预留单元并清零COU1 DB 0COUNT1 DB 0COUNT2 DB 0COUNT3 DB 0COUNT4 DB 0DATA ENDSCODE SEGMENT ;代码段ASSUME CS: CODE,DS:DATASTART : MOV AX,DATA ;初始化,取段基址MOV DS,AXMOV DX,OFFSET MESS ;MESS首地址MOV AH,09H ;DOS 9号调用,INT 21H ;显示提示信息MOV DX,IO8254K ;D& 8254控制口地址MOV AL,36H ;AL=36H , 控制字OUT DX,AL ;设置计数器0 ,方式3,先读写低8 位,再读写高8 位MOV DX,IO82540 ;DX^ 8254计数器0端口地址MOV AX,50000 ;初始值为50000,输入时钟为1MHz ,则输出时钟周期50msOUT DX,AL ;输出低8 位NOP ;空操作NOPMOV AL,AH ;AL —AHOUT DX,AL ;输出高8 位MOV DX,IO8255K ;DX—8255控制口地址MOV AL,90H, ;AL=90H,控制字OUT DX,AL ;A 口方式0输入,PA o输入;C 口方式0输出,PC o输出MOV DX,IO8255C ;DX—8255 端口C 口地址,MOV AL,00 ;AL=0OUT DX,AL ;PG=0,则GATE1为低电平,定时器1禁止计数LL:MOV AH,01H ;DOS 1号调用,判断是否有键按下?INT 16HJNZ QUIT1 ;ZF=0,有键按下,转到标号QUIT1MOV DX,IO8254K ;DX—8254控制口地址MOV AL,70H ;AL=70H,控制字OUT DX,AL ;设置计数器1,方式0,先读写低8位,再读写高8位MOV DX,IO82541 ;DX—8254计数器1 地址MOV AL,0FFH ;定时常数,实际为FFFFHOUT DX,AL ;输出低8位NOP ;空操作NOPOUT DX,AL ;输出高8位,开始计数MOV DX,IO8254K ;DX—8254控制口地址MOV AL,90H ;AL=90H,控制字OUT DX,AL ;计数器2,方式0,只读写低8 位MOV DX,IO82542 ;DX—8254计数器2地址MOV AL,100 ;AL=100,定时常数OUT DX,AL ;CLK2=50ms定时常数为100则OUT2定时时间即检测时间为5秒MOV DX,IO8255C ;DX—8255 端口C 地址MOV AL,01H ;AL=01HOUT DX,AL ;PC0输出1,即为高电平,定时器1开始计数JMP A0 ;无条件转移到标号A0QUIT1:JMP QUIT ;无条件转移到标号QUITA0:MOV DX,IO8255A ;DX—8255端口A 地址A1:IN AL,DX ;读入PA0的值,进行检测AND AL,01H ;判断PA0是否为高电平1 ?JZ A1 ;ZF=1即PA0=0为低电平,转到标号A1,继续检测MOV DX,IO8255C ;ZF=0即PA0=1为高电平,定时器2定时5秒结束OUT2输出高电平MOV AL,00H ;AL=00HOUT DX,AL ;8255端口C输出0,定时器1停止计数MOV DX,IO8254K DX—8254控制口地址MOV AL,70H AL=70H;设置计数器1,方式0,先读写低8位,再读写高 8位 ;DX^ 8254计数器1地址 ;读入计数器 1 的内容 ;BL ・AL 先读入低8位 ;读入计数器 1 的内容 ;BH J AL 后读高8位,16位计数值送BX ; AX=FFFFH ;AX - BX=计算脉冲个数 ;调显示子程序 ;DL=ODH ,“回车”的 ASCII 码 ; DOS 2号调用 ;DL=OAH ,“换行”的 ASCII 码 ; DOS 2号调用 ;无条件转到标号 LL ,继续检测 ;十六进制数-BCD 转换并显示子程序 ; DX=O ; CX=O3E8H=1OOO ;AX J DX ,AX-^1000商, DX J DX ,AX £000余数 ;COUNTJ1 AL ,千位 ;AXJDX 余数 ;CL=64H=100 ;AL J AX -100商,AH J AX - 100余数 ;COUNT2JAL ,百位 ;AL JAH 余数 ;AH=0 ;CL=10 ; AL J AX £ 10商, AH J AX £ 10余数 ;COUNT3JAL ,十位 ;COUNT4JA L ,个位 AL J COUNT1 调显示字符子程序 RET DISP ENDPDISP1 PROCNEAR 显示字符子程序ANDAL , 0FH “与”操作,屏蔽高 4位,保留低 4位 CMPAL , 09H AL 与 9 比较 JLENUM ;AL <9,转到标号NUMADDAL , 07H ;DL>9, DLJDL+7 NUM : ADDAL , 30H ;AL JAL+30H ,转换成 ASCII 码MOVDL , AL DLJAL MOV AH , 02 DOS 2号调用OUT MOV IN MOV IN MOV MOV SUB CALL MOV MOV INT MOV MOV INT JMP DISP PROC MOV MOV DIV MOV MOV MOV DIV MOV MOVMOVMOVDIVMOVMOVMOVCALLMOVCALL MOVCALLMOVCALLDX ,AL DX ,IO82541 AL ,DXBL ,AL AL ,DX BH ,AL AX ,0FFFFH AX ,BX DISP DL ,0DHAH ,02 21H DL ,0AHAH ,02 21H LLNEAR DX ,0000HCX ,03E8H CXCOUNT1,AL AX ,DXCL ,64H CLCOUNT2,AL AL ,AHAH ,00H CL ,10 CLCOUNT3,ALCOUNT4,AH AL ,COUNT1 DISP1 AL ,COUNT2 DISP1AL ,COUNT3DISP1AL ,COUNT4DISP1INTRET21H ;显示一个字符DISP1 ENDPQUIT:MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START ;结束七上机操作相关数据截图八思考题关闭电机后,为什么8254计数不为零?。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

直流电机测速摘要设计一种直流电机调速系统,以STC89C52 为控制核心,通过ULN2003 驱动电机,使用ST151 测量转速,实现了按键输入、电机驱动、转速控制、转速显示等功能。

关键词:直流电机, 80C51, ULN2003, 转速控制第一章题目描述直流小电机调速系统:采用单片机、ul n2003 为主要器件,设计直流电机调速系统,实现电机速度开环可调。

要求:1、电机速度分30r /m、60r /m、100r /m共3 档;2、通过按选择速度;3、检测并显示各档速度。

所需器件:实验板(中号)、直流电机、STC89C52、电容(30pFⅹ2、10uF ⅹ2)、数码管(共阳、四位一体)、晶振(12M H z )、小按键(4 个)、ST151、电阻、发光二极管等。

第二章方案论述按照题给要求,我们最终设计了如下的解决方案:用户通过键盘键入控制指令(开关),微控制器在收到指令后改变输出的 PW M波,最终在 U LN2003 的驱动下电机转速发生改变。

通过 ST151 传感器测量电机扇叶的旋转情况,将转速显示在数码管上。

在程序主循环中实现按键扫描与转速显示,将定时器0 作为计数器,计数ST151 产生的下降沿,可算出转速,并送至数码管显示。

第三章硬件部分设计系统硬件部分包含输入模块、显示模块、控制模块、测速模块等。

在硬件搭建前,先通过Pr ot eus Pr o 7. 5 进行硬件仿真实现。

1. 时钟电路系统采用12M 晶振与两个30pF 电容组成震荡电路,接STC89C52 的 XTAL1 与 XTAL2 引脚,为微控制器提供时钟源2. 按键电路四个按键分别控制电机的不同转速,即控制 PW M波高电平的占空比,以实现电机的速度控制,采用开环控制方法,不是十分精确,但控制简单,易实现,代码编写简单3. 显示部分系统采用4 位共阴极数码管实现转速显示。

数码管的位选端1~4 分别接STC89C52 的P2. 0~P2. 3 管脚,端选段A~G与 D P分别接 STC89C52 的 P0. 0~P0. 7 管脚。

需要说明的是:实际焊接电路时,数码管的位选端需要焊接三极管,否则数码管显示亮度将会非常暗。

4. 电机控制与驱动部分电机的运行通过 PWM波控制。

PWM波通过 STC89C52 的 P2. 4 口输出。

说明:测速部分用的是 Mot r o- encode 电机,实际用ST151 实现测速,焊接电路如下图:其中R1=510Ω ,R2=4. 7KΩST 内部电路:5. 其他电路复位电路如下所示:完整仿真电路图:第四章软件部分设计1. 开发环境系统软件采用Ke i l 集成开发环境开发程序代码如下(带注释):#i ncl ude <r eg51. h>s bi t P2_0=P2^0; //数码管选定位s bi t P2_1=P2^1;s bi t P2_2=P2^2;s bi t P2_3=P2^3;s bi t P2_4=P2^4; //电机控制位s bi t keys p0=P1^0; //电机转速为 0 的控制键 sbi t keys p30=P1^1; //电机转速为 30 的控制键s bi t keys p60=P1^2; //电机转速为 60 的控制键s bi t keys p100=P1^3; //电机转速为 100 的控制键uns i gned char code t abl e [ ] ={0xc 0, 0xf 9, 0xa 4, 0xb0, 0x99, 0x92, 0x82, 0xf 8, 0x80, 0x90, 0x88, 0x83, 0xc 6, 0xa 1, 0x86, 0x8e};uns i gned i nt mot or s p eed; //电机转速uns i gned char G E,SHI , BAI , Q I A N;//电机转速 mot or s peed 的各个位uns i gned i nt count er =0; //光电传感器脉冲数uns i gned i nt pwm; //pwm占空比uns i gned i nt m i d; //占空比设置值uns i gned i nt cal s p; //设定多长时间计算一次速度voi d di s pl ay( ) ; //数码管显示电机速度voi d del ay( ) ; //延迟函数voi d cont r ol pwm( ) ; //控制电机占空比voi d cal s peed( ) ; //计算电机速度,放于 mot or s peed 变量中voi d keys can( ) ; //按键扫描voi d m a i n( ){P2=P2&0x0f ;m i d=0;EA=1; //开启总中断EX0=1; //开启外部中断 0I T0=1; //设置成下降沿触发方式TMOD=0x01; //设置定时器 0 为模式 1,即 16 位计数模式TH0=( 65536- 10000) /256; //计数时间为 10msTL0=( 65536- 10000) %256;ET0=1; //开启定时器 0 中断TR0=1; //启动定时器 0whi l e( 1){keys can( ) ;di s pl ay( ) ;cont r ol pwm( ) ;cal s peed( ) ;}}voi d keys can( ) //键盘扫描i f ( keys p0 == 0){del ay( ) ; //延迟防止抖动i f ( keys p0 == 0)m i d=0;}i f ( keys p30 == 0){del ay( ) ;i f ( keys p30 == 0)m i d=1;}i f ( keys p60 == 0){del ay( ) ;i f ( keys p60 == 0)m i d=3;}i f ( keys p100 == 0){del ay( ) ;i f ( keys p100 == 0)m i d=5;}}voi d cal s peed( ){i f ( cal s p>=100) //100* 10ms =1s 计算一次电机转速{mot or s peed=c ount er /3; //转的圈数除以时间count er =0; //清零脉冲数cal s p=0; //清零标志}}voi d cont r ol pwm( ){i f ( pwm>=0 && p w m<m i d){P2_4=1; //电机加速}e l s e if ( p w m>=m i d && pwm<10){P2_4=0; //电机不加速e l s e pwm=0;}voi d _TI MER0( ) i nt er r upt 1{TH0=( 65536- 10000) /256; //重新装入初值,计数时间为 10ms TL0=( 65536- 10000) %256;pwm++;cal s p++;}voi d _I NT0( ) i nt er r upt 0{count er ++; //接受脉冲数}voi d di s pl ay( ) //数码管显示函数{G E=m ot or s peed%10;SH I=m ot or s peed/10%10;BA I=m ot or s peed/100%10;QI A N=mo t or s peed/1000%10;P2_0=0;P0=t abl e [ Q I A N] ;del ay( ) ;P0=0xf f ;P2_0=1;P2_1=0;P0=t abl e [ BAI ] ;del ay( ) ;P0=0xf f ;P2_1=1;P2_2=0;P0=t abl e [ SHI ] ;del ay( ) ;P0=0xf f ;P2_2=1;P2_3=0;P0=t abl e [ G E];del ay( ) ;P0=0xf f ;P2_3=1;}voi d del ay( ) //延迟函数{uns i gned char i =10;whi l e( i - - );}第五章系统测试测试方案:测试包含仿真测试和硬件测试两个部分。

仿真测试指使用 Pr ot eus Pr o 7. 5 对系统进行仿真测试。

主要测试系统电路的设计和验证程序逻辑的正确性。

硬件测试指系统搭建后对硬件电气性能的测试。

主要测试各功能的完整性可靠性,以及系统电气性能的稳定性。

测试工具为示波器万用表等。

仿真测试结果:真测试中,系统运行正常,程序逻辑正确。

按键输入正常、数码管显示正确。

P2. 4 管脚间输出PWM波正常。

硬件测试结果:系统硬件搭建完毕后,进行硬件测试。

系统加电后,振荡电路正常起振,STC89C52 在时钟源电路的驱动下运行正常。

系统可在复位电路的作用下正常复位。

系统按键输入正常,并能够正确消除抖动。

系统 PWM波输出正常。

将示波器接 STC89C52 的 P2. 4 管脚,可观察到峰峰值 5V左右的方波,频率与调速要求一致。

ST151 传感器测量正常。

数码管转速显示正常,数码管可正确显示并正确显示电机转速。

第六章实验总结这次课程设计我主要负责硬件方面,从刚开始到图书馆查资料、上网查资料、软件仿真、再到后来的硬件焊接,整个过程下来感觉还是挺不容易的。

到最后成功的完成了设计,还是有点成就感的。

在整个过程中学到了很多东西,更加巩固了单片机方面的知识,掌握了pr ot ues , kei l 等软件的使用。

熟悉了硬件方面测试,焊接等知识,回想这次实习,还是有很大收获的。

对以后学习有很大的帮助。

通过这次课设,我了解了直流电机调速系统,熟悉了单片机在控制系统的应用,掌握了 Pr ot eus 和 kei l 环境和应用。

实际硬件做出来后效果和仿真的相差甚远,经过反复的检查,我们发现我们的程序效率太差,其运行时间比设定的计时还要长,以至于占空比的调节范围太小,经多次调试最终的效果还是比较理想,当然,我们做的还有不足之处,比如说:测速模块,准确度不太高,而且数码管的显示总是不稳定(+/- 20 震荡)。

总之,通过这次课设,我觉得对待知识一定要严谨认真,细微之处见水平此次课程设计使用 80C51 作为核心,在十分有限的性能和硬件资源上实现一定的功能,虽然是一个十分简单的系统,但很好的体现了对嵌入式工程师的要求,也纠正了我们以往思维的很多错误,让我们认识到嵌入式系统开发的关键正是在有限的成本和硬件资源下实现所需的功能,更加扎实了我们的设计功底。

相关文档
最新文档