简易小直流电机测速
任务5.7 直流电机调速和测速
任务5.7 直流电机的调速和测速5.7.1 任务介绍在自动化控制领域,许多场合需要用到电机。
电机的种类繁多,直流电机由于控制简单,调速性能好在电机拖动中得到广泛的应用。
本节的任务是:用按键作为开关控制电机启停和调节电机转速。
系统有3个按键:按下按键A,电机正转,再次按下按键A,电机停;按下按键B,电机反转,再次按下按键B,电机停;当电机处于正或反转时,按键C用来调整电机转速(给定不同占空比的PWM),占空比分别为10%、20%和30%。
4位数码管显示,当电机停止时,数码管显示“- - - -”;当电机正转时,数码管显示“PXXX”;当电机反转时,数码管显示“LXXX”,其中“XXX”是电机的转速。
直流电机驱动板上的光电对管用来测量电机转速,测速使用测频法(1秒内电机轴转动圈数)。
5.7.2 知识准备1、直流电机模型直流电机电路模型如图5.7.1所示,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈abcd。
当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。
根据左手定则可知,当流过线圈中电流改变方向时,线圈的方向也将改变,因此通过改图5.7.1 直流电机电路模型图1.1 直流电机工作2、直流电机参数开发板上配置的直流电机属于有刷直流小电机,型号为R140,实用于电动玩具、家电等场合。
其具体参数如表5.7.1所示。
表5.7.1 R140电机参数根据R140电机的参数表得知,工作电压范围为3-6V,工作电流在50mA~150mA 。
我们给电机施加5V 的工作电压,电机驱动电路至少提供150mA 的电流。
3、直流电机换向原理在直流电机模型中提到改变电机线圈的电流方向,就可以改变电机的转动方向。
直流电机驱动电路中通常采用采用H 桥来改变电机的转向(如果不调速,也可以采用双刀双掷的继电器来改变电机的转向)。
H 桥是一个典型的直流电机控制电路,其电路简略示意图如图5.7.2所示,因为它的电路形状酷似字母H ,故得名与“H 桥”。
利用电动自行车后轮无刷直流电机霍尔信号的一种测速方法
利用电动自行车后轮无刷直流电机霍尔信号的测速方法包括以下步骤:
1. 硬件连接:首先,将电动自行车的后轮电机与无刷直流电机相连,以便从电机中获取霍尔信号。
2. 霍尔信号采集:在电机的霍尔位置上安装霍尔传感器,以便实时监测电机的转速。
霍尔传感器将转速信号转化为电信号,然后通过线路传输到控制器或仪表盘。
3. 信号处理:在控制器或仪表盘处,使用信号处理电路对霍尔信号进行放大、滤波和整形处理,以确保信号的稳定性和准确性。
4. 速度计算:处理后的霍尔信号被送入微处理器或单片机中进行处理。
微处理器或单片机通过计算单位时间内采集到的霍尔信号数量,再结合电机的极对数,即可计算出电机的转速。
5. 显示与存储:将计算出的速度信息实时显示在仪表盘上,或者通过无线传输模块将速度信息发送到其他设备上进行显示和存储。
6. 异常处理:在测速过程中,如果出现异常情况,如霍尔传感器故障、信号干扰等,系统会进行相应的故障诊断和处理,以确保系统的稳定性和可靠性。
以上是利用电动自行车后轮无刷直流电机霍尔信号的一种测速方法,具有简单、方便、准确等优点。
直流电机的测速实验
实验十四直流电机的测速实验一、实验目的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位的锁存器,把锁存的数据送给数码管显示,这样就来会因为在计数过程中,数据的变化而使数码管显示不断变化。
实验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计数不为零?。
简易小直流电机测速
科信学院课程设计说明(2012/2013学年第二学期)课程名称:单片机应用课程设计简易小直流电机测速专业班级:10级自动化三班学生姓名:师鑫源学号: 100412309指导教师:苗敬利高敬格王巍杨怡君设计周数:两周设计成绩:2013年6月27日摘要.....................1、课程设计目的..........2、课程设计要求........3、课程设计器材..........4、课程设计正文...........4.1 系统分析与实施.....4.2 硬件部分...........4.2.1 STC90C52AD4.2.2 时钟电路设计4.2.3 按键电路设计4.2.4 显示电路设计4.2.5 复位电路设计4.2.6 检测电机转速的电路设计..4.3 系统硬件调试......................4.3.1. 调试方案..................4.3.2. 仿真调试结果...............4.3.3 硬件调试结果................4.4 软件设计.........................4.4.1 软件系统分析................4.4.2 系统软件设计................4.4.3 系统软件实施与调试..........5、课程设计总结.........................6、课程设计经验.........................7、参考文献.............................附录一、protel 软件绘制的工作原理图附录二、P ROTUE软件绘制的仿真图…功能参数介绍摘要10 12 12 12 12 14 14 17 232324 24 .11 13直流电机转速作为直流电机的一项重要技术指标,在各个应用场合都有重要的研究价值,是其他大部分技术参数的计算来源,因此,准确测量直流电动机的转速具有重要的研究意义和理论价值。
直流电机测速控制总结
直流电机测速控制总结一.测速原理霍尔开关对垂直于器件且磁通密度达到其动作点Bopn或Bops以上,会使器件开关导通输出为低,此时器件可以吸收1mA的电流。
只要磁通密度降低到释放点Brpn或Brps以下,会使器件开关断开输出为高。
磁通密度动作点和释放点的差异称为器件的磁滞。
该磁滞特性可保证即使出现外部振动和电气噪声,器件的开关过程均无抖动。
利用霍尔开关输出电压与磁通密度的这种这种关系特性,在直流电机的转动轴上套上一个塑料齿轮,在轮子的一条直径上对称的放有两块相同的小磁铁块。
(如右图)将霍尔开关放置在齿轮下放合适处,使齿轮转动一周,霍尔开关就受到两次磁激励而产生两个脉冲。
霍尔开关将脉冲输入与P10(INT0)连接;每产生一个脉冲就进中断,对脉冲计数;到1秒将计数之值取出输出;同时将计数清零。
由此完成对直流电机的转速测定。
二.控制原理采用INT0 中断对转速脉冲CKMOT 计数,每1s 读一次计数值,将此值与预设的转速值比较,若大于预设的转速值则减小DAC0 的数值;若小于转速预设的转速值则增加DAC0 的值来调整直流电机的输入电压达到调整电机的转速直到转速值等于预设定的值。
由于D/A的输出电压范围有限,所以只能测出3转/s---54转/s; 为达到电机控制的稳定,可采用差动输入方法和PDI算法来实现。
本试验采用差动模式,下面是控制程序的部分段;sfr16 DAC0 = 0xd2; 设定DAC0的数据寄存器地址unsigned int iDAC0=2048; 设定变量用以初始化DAC0的数据寄存器void Timer0_ISR (void) interrupt 1 每到1秒进入中断{TH0 = (-SYSCLK/1000) >> 8;TL0 = -SYSCLK/1000;if (Count1ms) Count1ms--;if (Count1s) Count1s--;else 到1秒时开始取值{Count1s=1000;SaveMotorCount=MotorCount;把1秒内得到的脉冲数取出MotorCount=0; 重新记脉冲数SD=SaveMotorCount/2-SetSpeed; 将当前转速与设定值比较得到差动量if (SD){if ((SD>2)||(SD<-2))iDAC0-=SD;elseiDAC0-=SD; 改变D/A寄存器值以改变直流电机电压DAC0=iDAC0;}}}。
直流小电机测速系统
《电子技术综合设计》第八组 张正东、曾广湖、龙菲
一、问题的提出
在现代工业自 动化高速发展的时期, 几乎所有的机械装备都 离不开电机,形形色色 的电机在不同领域发挥 着重要的作用。与之而 来的问题是怎么控制好 电机转速,对于不同的 场合,对电机的转速要 求是不同的。
二、方案设计实现
测 速 模 块
驱 动 模 块
显 示 模 块
控 制 模 块
显示模块——Nokia5110
PCD8544 48×84点矩阵 点矩阵LCD 48×84点矩阵LCD
SDIN——串行数据输入 SCLK——串行时钟输入 D/C ——数据/命令 SCE ——芯片使能 OSC ——震荡器 RES ——外部复位输入
测 速 模 块
驱 动 模 块
显 示 模 块
控 制 模 块
控制模块
STC89C51RC 是 一 个 典 型 的 , 内部有8KROM,512字节RAM, 内带2K字节EEPROM存储空间, 可通过串口下载的单片机。
转速
• Thanks
测 速 模 块
驱 动 模 块
显 示 模 块
控 制 模 块
测速模块——TCRT5000
+10V +10V
1.5k
c
51k
uo 发光 二极管 b e 光电 三极管
H L
输出信号经LM324整形后,连接至单片机T1管脚
测 速 模 块
驱 动 模 块
显 示 模 块
控 制 模 块
驱动模块——L298N
L298N 内 部 包 含 4 通道逻辑驱动电路, 接 收标准TTL 逻辑电平信号, 可驱动 46V、2A以下的电 机。 由 L298N 构成, 通过单片机的接口,利用 PWM控制电机的转速及其加 减速。
小功率直流电机的测速和控制
小功率直流电机的测速和控制[摘要] 本设计采用两片MCU(AT89S52),完成了小型直流电机转速的采集、计算、显示、键盘设定,并将非均匀采样情况下的增量式积分分离PID控制算法应用于直流电机的PWM调速,实现了对电机转速的测量和控制,解决了通常低采样周期时系统的超调以及PID算法的积分饱和问题。
[关键词]转速PID控制mcu AT89S52 PWM目前见到的许多关于直流电机的测速与控制类文献中,虽然能实现直流电机的无级调速,但还存在一些问题,如无法与计算机直接接口,许多较为复杂的控制算法无法在不增加硬件成本的情况下实现,控制器的人机界面不理想。
总的来讲,控制器的智能化程度不高,可移植性差。
虽然采用PWM芯片来实现电机无级调速的方案成本较低,但当控制器针对不同的应用场合增加多种附加功能时,其灵活性不够,而且反而增加硬件的成本[5]。
还有一些使用PLC控制器或高档处理器芯片(如DSP器件)的文献,它们虽然具有较高的控制性能,但由于这些高档处理器价格过高,需要更多的外围器件,因此也不具备在通常情况下大规模使用的条件。
从发展趋势上看,总体的研究方向是提出质量更高的算法和调速方案,以及在考虑成本要求的前提下选择适合这种算法的核心控制器。
1设计方案论证根据设计任务,要求调速采用PID控制器,因此需要设计一个闭环直流电机控制系统。
该系统采用脉宽调速,使电机速度等于设定值,并且实时显示电极的转速值。
通过对设计功能分解,设计方案论证可以分为:系统结构方案论证,速度测量方案论证,电机驱动方案论证,键盘显示方案论证,PWM软件实现方案论证。
1.1系统结构方案论证方案一:采用一片单片机(AT89S52)完成系统所有测量、控制运算,并输出PWM控制信号。
方案二:采用两片单片机(AT89S52),其中一片做成PID控制器,专门进行PID运算和PWM 控制信号输出;另一片则系统主芯片,完成电机速度的键盘设定、测量、显示,并向PID控制器提供设定值和测量值,设定PID控制器的控制速度等。
直流电机测速
直流电机测速小功率直流电机的测速和控制参赛队员:朱尉、周贵成、杨俤班级:电气11002班1 总体方案设计根据设计任务,要求调速采用PID控制器,因此需要设计一个闭环直流电机控制系统。
该系统采用脉宽调速,使电机速度等于设定值,并且用LCD实时显示电极的转速值。
通过对设计功能分解,设计方案可以分为:系统结构方案,速度测量方案,电机驱动方案,键盘显示方案,PWM软件实现方案。
1.1 硬件方案论证要控制直流电机转速,硬件电路要求比较高,它决定直流电机调速的精度。
采用PID控制器,因此需要设计一个闭环直流电机控制系统。
该系统采用脉宽调速,使电机速度等于设定值,并且实时显示电极的转速值。
通过对设计功能分解,设计方案论证可以分为:系统结构方案论证,速度测量方案论证,电机驱动方案论证,键盘显示方案论证,PWM软件实现方案论证。
1.1.1 微处理器的选择采用一片单片机(AT89S52)完成系统所有测量、控制运算,并输出PWM控制信号。
1.1.2 测速传感器的选择在电机的转轴端开一小洞,利用红外光电耦合器,每转半圈OUT 端输出一个上脉冲。
可以采用记数的方法:具体是通过单片机记单位时间S(秒)内的脉冲数N,每分钟的转速:M=N/S×60。
也可以采用定时的方法:是通过定时器记录脉冲的周期T,这样每分钟的转速:M=60/T。
1.1.3 键盘显示方案采用4×4键盘,可直接输入设定值,显示部分使用LCD。
1.1.4 电机驱动方案采用H桥对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整。
1.1.5 PWM实现方案采用一片单片机(AT89S52)完成系统所有测量、控制运算,并输出PWM控制信号。
系统硬件简单,结构紧凑。
2 系统原理框图设计系统原理框图如图2.1所示,是一个带键盘输入和显示的闭环测量控制系统。
主体思想是通过系统设定信息和测量反馈信息计算输出控制信息。
图2.1 系统原理框图3各模块的分析、计算与硬件电路设计3.1转速/频率转换及整形电路的设计设计中将转速测量转化为电脉冲频率的测量。
利用电动自行车后轮无刷直流电机霍尔信号的一种测速方法
利用电动自行车后轮无刷直流电机霍尔信号的一种测速方法摘要:一、无刷直流电机霍尔测速原理二、电动自行车后轮无刷直流电机霍尔信号测速方法1.一路霍尔信号测速方法2.三路霍尔信号测速方法三、以STM32单片机为核心的转速测量系统四、总结正文:一、无刷直流电机霍尔测速原理无刷直流电机的工作原理本质上与有刷电机类似,不同之处在于无刷电机采用电子方式对绕组电流换向。
直流电机中的转矩是通过永磁体磁场和绕组中的电流相互作用产生的。
霍尔位置传感器探测转子旋转磁场的位置,通过逻辑与驱动电路,给相应的绕组激励。
二、电动自行车后轮无刷直流电机霍尔信号测速方法1.一路霍尔信号测速方法利用一路霍尔信号进行转速测量时,可以通过计算相同时间间隔内传感器输出的脉冲个数来获得转速。
设霍尔传感器输出的信号每转R个脉冲,对应的转速为N(r/min),则通过计算脉冲频率与60的比值,即可得到转速。
2.三路霍尔信号测速方法利用三路霍尔信号进行转速测量时,可以通过逻辑电路或算法产生六倍于一路霍尔信号频率的倍频信号,然后对其进行测量。
这种方法可以提高测速的准确性。
三、以STM32单片机为核心的转速测量系统以STM32单片机为核心搭建转速测量系统,可以实现对电动自行车后轮无刷直流电机的精确测速。
通过处理霍尔传感器输出的信号,实时监测电机转速,为用户提供准确的行驶速度信息。
四、总结利用电动自行车后轮无刷直流电机霍尔信号进行测速的方法具有较高的实用价值。
通过一路或三路霍尔信号的测量,可以实现对电机转速的准确监测。
以STM32单片机为核心的转速测量系统,进一步提高了测速的准确性和可靠性,为电动自行车用户提供实用的行驶速度信息。
单片机软件实现直流电机PWM以及电机测速
、摘要利用AT89C51设计一个直流电机地软件模拟PWMg动及测速系统•单片机读取键盘值来设定转速和正反转,并且通过红外对管来测量转速•本系统具有精度高,成本低,使用方便等优点•关键词:AT89C51 PWM测速.引言随着社会地发展,各种智能化地产品日益走入寻常百姓家•为了实现产品地便携性、低成品以及对电源地限制,小型直流电机应用相当广泛•对直流电机地速度调节,我们可以采用多种办法,本文给出一种用单片机软件实现PW碉速地方法及红外对管测转速•、直流电机调速知道通过调节直流电机地电压可以改变电机地转速,但是一般我们设计地电源大都是固定地电压,而且模拟可调电源不易于单片机控制,数字可调电源设计麻烦所以这里用脉宽调制<PWM来实现调速.方波地有效电压跟电压幅值和占空比有关,我们可以通过站空比实现改变有效电压• 一般用软件模拟PWM可以有延时和定时两种方法,延时方法占用大量地CPU所以这里采用定时方法.b5E2RGbCAP、直流电机旋转方向一般利用H桥电路来实现调速.H桥驱动电路:图4.12中所示为一个典型地直流电机控制电路.电路得名于“H桥驱动电路” 是因为它地形状酷似字母H.4个三极管组成H地4条垂直腿,而电机就是H中地横杠<注意:图4.12及随后地两个图都只是示意图,而不是完整地电路图,其中三极管地驱动电路没有画出来).如图所示,H桥式电机驱动电路包括4个三极管和一个电机.要使电机运转,必须导通对角线上地一对三极管.根据不同三极管对地导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机地转向.plEanqFDPw+ +图4.12 H桥驱动电路要使电机运转,必须使对角线上地一对三极管导通.例如,如图4.13所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极.按图中电流箭头所示,该流向地电流将驱动电机顺时针转动.当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动<电机周围地箭头指示为顺时针方向).DXDiTa9E3d图4.13 H桥电路驱动电机顺时针转动图4.14所示为另一对三极管Q2和Q3导通地情况,电流将从右至左流过电机.当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动<电机周围地箭头表示为逆时针方向).RTCrpUDGiT图4.14 H桥驱动电机逆时针转动可以把Q1跟Q4接在一起,Q3跟Q2接在一起,这样只要两个单片机I/O 口就行. 下面地程序中lun1 、lun2 就表单片机地两个I/O 口. 这个桥式电路图只用来说明原理,实际应用还要看电机地额定电压、电流•也可以用L293、L298直流地集成芯片. 5PCzVD7HxA四、PW程序void timer0(> interrupt 1{if(temp>{TH0=time_h_0。
直流电机测速
数字电路课程设计报告书课设名称:直流电机测速姓名:***学号:********学院:电控学院专业:自动化指导老师:完成日期:2012年3月目录一、题目名称及设计任务的选择(1)题目名称(2)设计任务的选择二、设计任务及设计要求(1)设计任务(2)设计要求(3)参考元件三、设计思路及设计原理(1)设计流程图(2)主要芯片说明(3)实验原理四、对设计方案的论证和比较五、电路所涉及的参数计算六、调试过程中的问题及解决方案七、心得体会八、附录(1)二极管的简易测试机管脚判别(2)电阻色环的识别及其色环对应表(3)题目所用电子元件清单九、实验照片十、参考文献一、题目名称及设计任务的选择(1)题目名称根据本专业的课程要求及需要和自己的兴趣,我们在此次课程设计中所选的题目是直流电机测速。
(2)设计任务的选择现代社会对电机的应用越来越广泛,利用电机可以带动很多的机器进行运转,这些机器为我们生产出必需的生活,工作和学习用品,可以说电机对我们的生活产生了很大的影响。
如果通过此次课程设计实践能设计出一个能对直流电机进行调速和测速的电路那我们将会受益匪浅,这是我们选择此题目的一个原因。
另外通过此次课设可以增进对电路的设计、操作和分析的技能,本题目涉及NE555定时器、计数器和逻辑与非们的应用,它们在以后的应用十分广泛,通过此次实践如果能把它们熟练掌握,这将为我以后的电子设计竞赛打下一定的基础。
综合以上我们决定做这个题目。
二、设计任务及设计要求(1)设计任务此次试验我们将要设计一个能对直流电动机运行速度进行调速和测速的电路。
(2)设计要求本题目的设计要求包括基本要求和扩展要求。
基本要求是设计一个脉宽调速电路,实现对直流电机转速的控制。
利用光电脉冲转换、整形、门控电路和计数电路测出直流电机的转速,并显示在数码管上。
要求转速可达到300转/分以下,越低越好。
扩展要求是在完成基础上加光电耦脉冲计数和相位判别电路,进而识别电机的转向,并由LED显示转向的正反。
直流电机测速并显示
可实现功能:1 可控制左右旋转2 可控制停止转动3 有测速功能,即时显示在液晶上4 有速度档位选择,分五个档次,但不能精确控速5 档位显示在液晶上用到的知识:1 用外部中断检测电机送来的下降沿,在一定时间里统计脉冲个数,进行算出转速。
2 通过改变占空比可改变电机速度,占空比的改变可以通过改变定时器的重装初值来实现。
3 要想精确控制速度,还需要用自动控制理论里的PID算法,但参数难以选定,故在此设计中没有涉及!#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit PW1=P1^0 ;sbit PW2=P1^1 ; //控制电机的两个输入sbit accelerate=P0^2 ; //调速按键sbit stop=P0^3 ; //停止按键sbit left=P0^4 ; //左转按键sbit right=P0^5 ; //右转按键sbit detect=P3^2; //检测脉冲sbit lcdrs=P0^0;sbit lcden=P0^1;#define Da P2uint temp; //保存检测到的电平数据以便比较uint count; //用于计数uint aa,bb; //用于计数uint speed; //用来计算转速uint a=25000;uint t0=25000,t1=25000; //初始时占空比为50%uchar flag=1; //此标志用于选择不同的装载初值uchar dflag; //左右转标志uchar sflag=1; //用来标志速度档位#define right_turn PW1=0;PW2=1 //顺时针转动#define left_turn PW1=1;PW2=0 //逆向转动#define end_turn PW1=1;PW2=1 //停转void keyscan(); //键盘扫描void delay(uchar z);void time_init(); //定时器的初始化void write_com(uchar com); //液晶写指令void write_data(uchar date); //液晶写数据void lcd_init(); //液晶初始化void display(uint rate); //显赫速度void int0_init(); //定时器0初始化void keyscan(); //键盘扫描程序void judge_derection();void main(){time_init(); //定时器的初始化lcd_init(); //液晶初始化int0_init(); //定时器0初始化while(1){}}void time_init(){TMOD=0x11; //两个定时器都设定为工作方式1 十六位定时计数器 EA=1; //开启总中断TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;TH1=(65536-a)/256;TL1=(65536-a)%256;ET1=1;TR1=0;}void int0_init(){EX0=1;//外部中断源可以申请中断IT0=1;//外部中断源下降沿触发}void timer0() interrupt 1 using 0{TH0=(65536-50000)/256;TL0=(65536-50000)%256; //装载初值keyscan(); //键盘扫描程序aa++;if(aa==5){aa=0;temp=count*0.5*60*2*2*100/24; //计算转速,每分转多少圈count=0; //重新开始计数脉冲数display(temp); //把计算得的结果显示出来}}void timer1() interrupt 3 using 0{if(flag){flag=0;end_turn;a=t0; //t0的大小决定着低电平延续时间TH1=(65536-a)/256;TL1=(65536-a)%256; //重装载初值}else{flag=1; //这个标志起到交替输出高低电平的作用if(dflag==0){right_turn; //右转}else{left_turn; //左转}a=t1; //t1的大小决定着高电平延续时间TH1=(65536-a)/256;TL1=(65536-a)%256; //重装载初值}}/*******外部中断*******************/void service_int0() interrupt 0{count++; //来一个下降沿沿就计一个脉冲数}/*******显示函数***********/void display(uint rate){uchar wan,qian, bai,shi,ge;wan=rate/10000;qian=rate/1000%10;bai=rate/100%10;shi=rate/10%10;ge=rate%10;write_com(0x80);write_data('0'+wan);write_data('0'+qian);write_data('0'+bai);write_data('.');write_data('0'+shi);write_data('0'+ge);}/******延时函数********/void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--) ;}/************写指令************/void write_com(uchar com){lcdrs=0;Da=com;delay(1);lcden=1;delay(1);lcden=0;}/************写数据**********/void write_data(uchar date){lcdrs=1;Da=date;delay(1);lcden=1;delay(1);lcden=0;}/************液晶初始化**********/void lcd_init(){lcden=0;write_com(0x38) ; //初始化write_com(0x0c) ; //打开光标 0x0c不显示光标 0x0e光标不闪,0x0f光标闪write_com(0x01) ; //清显示write_com(0x80+0x40);write_data('0');write_data(' ');write_data('G');write_data('e');write_data('a');write_data('r');}/***********键盘扫描程序**********/void keyscan(){if(stop==0){TR1=0; //关闭定时器0 即可停止转动end_turn; // 停止供电write_com(0x80+0x40);write_data('0');}if(left==0){TR1=1;dflag=1; //转向标志置位则左转write_com(0x80+0x40);write_data('0'+sflag);}if(right==0){TR1=1;dflag=0; //转向标志复位则右转write_com(0x80+0x40);write_data('0'+sflag);}if(accelerate==0)delay(10) ; //延时消抖if(accelerate==0){while(accelerate==0) ; //等待松手sflag++;if(sflag==2){t0=20000;t1=30000; //占空比为百分之60write_com(0x80+0x40);write_data('2');}if(sflag==3){t0=15000;t1=35000; //占空比为百分之70 write_com(0x80+0x40);write_data('3');}if(sflag==4){t0=10000;t1=40000; //占空比为百分之80 write_com(0x80+0x40);write_data('4');}if(sflag==5){t0=5000;t1=45000; //占空比为百分之90 write_com(0x80+0x40);write_data('5');}if(sflag>=6){sflag=0;t0=25000;t1=25000;write_com(0x80+0x40);write_data('1');}}} }。
微机原理实验小直流电机转速控制及测速实验
《微机综合实践》实验报告选题:小直流电机转速控制及测速实验程序语言:C/C++姓名:同组伙伴:班级:学号:实验环节任务和要求:实验七——小直流电机转速控制及测速实验,要求使用8253,8255芯片组成连接电路,实现对小直流电机转速的控制及转速的测量的功能。
利用开关K0—K6进行转速的设定,经过可编程并行接口芯片8253进行芯片的读写,通过可编程计数器8253进行转速的设定(改变转速和占空比)和转速的计数。
连接好电路以后,采用C语言或C++进行编程,使整个电路可以实现所要求的功能,包括硬件的检测,芯片的初始化,转速的控制以及小直流电机转速的测量等。
实验原理:小直流电机的转速是由输出脉冲的占空比(PWM: Pulse width modulation )来决定的,正向占空比越大转速越快,反之越慢。
8253是一个三通道16比特的可编程定时计数器,他的最高计数频率可达2MHz,主要包括三个计数器通道,一个控制寄存器,数据总线缓冲器及读/写逻辑电路。
8253共有六种不同的工作方式,在不同的方式下,计数过程的启动方式、out端的输出波形都不一样。
本实验采用的是方式0和方式3。
其中方式0为软件启动不自动重复计数的方式,该方式在第一个写信号WR有效时向计数器写入控制字CW,之后其输出端OUT就变低电平,在第二个WR有效时装入计数初值,然后经过一个CLK信号的上升沿和下降沿,初值进入计数器。
当计数减到零——计数结束后,OUT输出变为高电平。
8253的方式3是方波发生器,在这个方式下,计时器既可以用软件启动,也可以用硬件启动。
方式3也可以自动重复计数。
只是计数到N/2时,OUT变为低,再接着计数到0时,OUT又变为高,并开始新一轮计数。
试验中利用方式3产生一定频率的方波信号,并且将方波信号作为基准信号与另一信号相比较,进行转速的测量。
而另一个计数器采用方式0进行计数操作,并与方波信号相比较,从而得到小直流电机的真正转速。
直流电机测速实验
实验三直流电机测速实验一实验目的(1)掌握8254的工作原理和编程方法;(2)了解光电开关,掌握用光电传感器测量电机转速的方法。
二实验内容光电测速的基本电路由光电传感器、计数器/定时器组成。
被测电机主轴上固定一个圆盘,圆盘的边缘上有小孔。
传感器的红外发射端和接收端装在圆盘的两侧,电机带动圆盘转到有孔的位置时,红外光通过,接收管导通,输出低电平。
红外光被挡住时,接收截止,输出高电平。
用计数器/定时器记录在一定时间内传感器发出的脉冲个数,就可以计算出电机的转速。
三线路连接线路连接如图所示。
8254计数器/定时器0和2作为定时器,确定测速时间,定时器0的CLK0引脚输入1MHz脉冲,输出OUT0引脚作为定时器2的输入,与CLK2引脚相连,输出引脚OUT2与8255的PA0端相连。
GA TE0和GA TE2均接+5V电源。
8254计数器/定时器1作为计数器,输入引脚CLK1与直流电机计数端连接,GA TE1与8255的PC0相连。
电机DJ端与+5V~0V模拟开关SW1相连。
四编程提示8254计数器/定时器1作为计数器,记录脉冲个数,计数器/定时器0和2作为定时器,组成10~60秒定时器,测量脉冲个数,以此计算出电机每份钟的转速,并显示在计算机屏幕上。
8255的PA0根据OUT2的开始和结束时间,通过PC0向8254计数器/定时器1发出开始和停止计数信号。
五程序流程图六参考程序DA TA 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端口地址MESS DB 'STRIKE ANY KEY,RETURN TO DOS!',0AH,0DH,'$' ;提示信息COU DB 0 ;预留单元并清零COU1 DB 0COUNT1 DB 0COUNT2 DB 0COUNT3 DB 0COUNT4 DB 0DA TA ENDSCODE SEGMENT ;代码段ASSUME CS:CODE,DS:DA T AST ART:MOV AX,DA T A ;初始化,取段基址MOV DS,AXMOV DX,OFFSET MESS ;MESS首地址MOV AH,09H ;DOS 9号调用,INT 21H ;显示提示信息MOV DX,IO8254K ;DX←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输入,PA0输入;C口方式0输出,PC0输出MOV DX,IO8255C ;DX←8255 端口C口地址,MOV AL,00 ;AL=0OUT DX,AL ;PC0=0,则GA TE1为低电平,定时器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=70HOUT DX,AL ;设置计数器1,方式0,先读写低8位,再读写高8位MOV DX,IO82541 ;DX←8254计数器1地址IN AL,DX ;读入计数器1的内容MOV BL,AL ;BL←AL 先读入低8位IN AL,DX ;读入计数器1的内容MOV BH,AL ;BH←AL 后读高8位,16位计数值送BXMOV AX,0FFFFH ;AX=FFFFHSUB AX,BX ;AX-BX=计算脉冲个数CALL DISP ;调显示子程序MOV DL,0DH ;DL=0DH,“回车”的ASCII码MOV AH,02 ;DOS 2号调用INT 21HMOV DL,0AH ;DL=0AH,“换行”的ASCII码MOV AH,02 ;DOS 2号调用INT 21HJMP LL ;无条件转到标号LL ,继续检测DISP PROC NEAR ;十六进制数→BCD转换并显示子程序MOV DX,0000H ;DX=0MOV CX,03E8H ;CX=03E8H=1000DIV CX ;A X←DX ,AX÷1000商,D X←DX ,AX÷1000余数MOV COUNT1,AL ;COUNT1←AL,千位MOV AX,DX ;AX←DX余数MOV CL,64H ;CL=64H=100DIV CL ;AL←AX÷100商,AH←AX÷100余数MOV COUNT2,AL ;COUNT2←AL,百位MOV AL,AH ;AL←AH余数MOV AH,00H ;AH=0MOV CL,10 ;CL=10DIV CL ;AL←AX÷10商,AH←AX÷10余数MOV COUNT3,AL ;COUNT3←AL,十位MOV COUNT4,AH ;COUNT4←A L,个位MOV AL,COUNT1 ;AL← COUNT1CALL DISP1 ;调显示字符子程序MOV AL,COUNT2CALL DISP1MOV AL,COUNT3CALL DISP1MOV AL,COUNT4CALL DISP1RETDISP ENDPDISP1 PROC NEAR ;显示字符子程序AND AL,0FH ;“与”操作,屏蔽高4位,保留低4位CMP AL,09H ;AL与9比较JLE NUM ;AL≤9,转到标号NUMADD AL,07H ;D L>9,DL←DL+7NUM:ADD AL,30H ;AL←AL+30H,转换成ASCII码MOV DL,AL ;DL←ALMOV AH,02 ;DOS 2号调用INT 21H ;显示一个字符RETDISP1 ENDPQUIT:MOV AH,4CH ;返回DOS INT 21HCODE ENDSEND ST ART ;结束七上机操作相关数据截图八思考题关闭电机后,为什么8254计数不为零?。
直流电机速度丈量办法
直流电机速度丈量办法
直流电动机是最早呈现的电动机,也是最早结束调速的电动机。
长时刻以来,直流电动机一贯占有着调速操控的核算方位。
在进行直流电机调速前,首要要进行的是直流电机速度丈量作业,速度丈量首要有两种方法:1、光电测速法运用栅格圆盘和光电门构成测速体系。
当直流电机经过传动有些股动栅格圆回旋改动转时,测速光电门取得一系列脉冲信号。
这些脉冲信号经过单片机两个守时/计数器协作,一个计数,一个守时。
核算出单位时刻内的脉冲数m,经过单位换算,就能够算得直流电机旋转的速度。
2、霍尔效应原理测速法电动机转轴股动轴上的磁钢旋转,然后改动磁场巨细,经过霍尔电路将磁场改动改换为脉冲信号,经拓宽整形,输出矩形脉冲信号。
当转速改动时,输出脉冲的频率会发作改动,然后得到电机旋转的速度。
1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
科信学院课程设计说明书(2012/2013学年第二学期)课程名称:单片机应用课程设计题目:简易小直流电机测速专业班级:10级自动化三班****:***学号:*********指导教师:苗敬利高敬格王巍杨怡君设计周数:两周设计成绩:2013年6月27日目录摘要.......................................................................................................... ............................ (3)1、课程设计目的 (4)2、课程设计要求 (4)3、课程设计器材 (4)4、课程设计正文 (5)4.1系统分析与实施 (5)4.2硬件部分 (5)4.2.1 STC90C52AD功能参数介绍 (5)4.2.2时钟电路设计 (6)4.2.3按键电路设计 (8)4.2.4显示电路设计 (8)4.2.5复位电路设计 (9)4.2.6检测电机转速的电路设计 (10)4.3系统硬件调试 (12)4.3.1.调试方案 (12)4.3.2.仿真调试结果 (12)4.3.3硬件调试结果 (12)4.4 软件设计 (14)4.4.1软件系统分析 (14)4.4.2 系统软件设计 (17)4.4.3 系统软件实施与调试 (23)5、课程设计总结 (23)6、课程设计经验 (24)7、参考文献 (24)附录一、protel软件绘制的工作原理图 (11)附录二、PROTUES软件绘制的仿真图 (13)摘要直流电机转速作为直流电机的一项重要技术指标,在各个应用场合都有重要的研究价值,是其他大部分技术参数的计算来源,因此,准确测量直流电动机的转速具有重要的研究意义和理论价值。
目前,在工程实践中,经常会遇到各种需要测量转速的场合。
对于工业测试,水利,机械等方面,转速是重要的控制参数之一。
尤机在工业测试系统中,大部分旋转仪器需要测定目前的转速,对机械设备进行故障预防。
因此,如何利用先进的数字技术和计算机技术改造传统的工业技术,提高监控系统的准确性,安全性,方便性是当前工业测控系统必须解决的一个问题。
转速测量方法较多,而模拟量的采集和模拟处理一直是转速测量的主要方法,这种测量方技术已不能适应现代科技发展的要求,在测量范围和测量精度上,已不能满足大多数系统的使用。
随着大规模及超大规模集成电路技术的发展,数字系统测量得到普遍应用,特别是单片机对脉冲数字信号的强大处理能力,使得全数字量系统越来越普及,其转速测量系统也可以用全数字化处理。
在测量范围和测量精度方面都有极大的提高。
简易小直流电机测速一、设计目的电动机转速测量1. 实现对电动机转速的测量。
2. 实时显示直流电动机转速的实际测量值。
设计任务:利用单片机技术设计、制作一个显示电动机转速的速度测定系统。
测量范围约为750~3000r/s,尽可能地提高测量误差,用4位LED数码管显示速度。
二.设计要求1.用启动按键来启动单片机来检测电机的转速,用停止按键来停止检测。
2.用显示数码管来显示电机每秒中的转数。
三.设计器材注释;所用到的直流电机本身就自带测量转速的传感器,所以在设计器材中就不需要传感器与驱动放大器ULN2003芯片四.设计方案及分析总体方案设计思路:电机转动,利用电机本身自带的传感器采集信号并产生脉冲信号,送给单片机,单片机通过计数器计数计算,将采集到的信号用数码管显示出来,流程图如下:电机传感器信号转换单片机处理数码管显示4.1 STC90C52AD功能参数介绍图1 STC90C52ADSTC90C52AD 是由宏晶公司生产的高性能八位单片机。
如图一所示。
该芯片采用FLASH 存储技术,内部具有8KB 字节快闪存存储器,采用DIP 封装,是目前在中小系统中应用最为普及的单片机。
STC90C52AD 可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。
只要程序长度小于8K,四个I/O 口全部提供给用户。
可用5V 电压编程,而且擦写时间仅需10 毫秒,仅为8751/87C51 的擦除时间的百分之一,与8751/87C51 的12V 电压擦写相比,易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
工作电压范围(2.7V~6V),全静态工作,工作频率宽在0Hz~24MHz 之间,比8751/87C51 等51 系列的6MHz~12MHz 更具有灵活性,系统能快能慢。
STC90C52AD 芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
P0 口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
STC90C52AD 单片机为40 引脚芯片如图1所示,在本设计中,主要用到P0 口、P2 口、P1.0 口及P3.0、P3.1、P3.2、P3.3 口。
P0 口:P0 口可作为通用I/O 口,但须外接上拉电阻,所以在设计显示数码管我们避免了使用P0 口这样大大简化了动态显示电路。
P1 口:8 位、双向I/0 口,内部含有上拉电阻。
P1 口可作普通I/O 口。
输出缓冲器可驱动四个TTL 负载;用作输入时,先将引脚置1,由片内上拉电阻将其抬到高电平。
P1 口的引脚可由外部负载拉到低电平,通过上拉电阻提供电流。
在FLASH 并行编程和校验时,P1 口可输入低字节地址。
在串行编程和效验时,P1.5/MOSI,P1.6/MISO 和P1.7/SCK 分别是串行数据输入、输出和移位脉冲引脚。
P2 口:具有内部上拉电阻的8 位双向I/O 口。
P2 口用做输出口时,可驱动4 各TTL 负载;用做输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。
若负载为低电平,则通过内部上拉电阻向外部输出电流。
在FLASH 并行编程和校验时,P2 口可输入高字节地址和某些控制信号。
单片机使用宏晶公司支持串口下载程序(ISP)的单片机,为STC90C52AD 课程设计配发的小电路板(ISP-MCU Basic circuit)电路原理图见图二。
该板作为课程设计的核心电路板使用,板上有单片机及附属电路,RS-232 通信驱动电路,高低电平测试电路等。
课程设计电路中需要的其他电路在此基础上扩展,通过插孔或导线连接。
4.2 硬件设计4.2.1 方案设计系统硬件部分包含输入模块,显示模块,控制模块,测速模块等,通过proteus进行硬件仿真实现。
图2 单片机系统测量转速原理图4.2.2单元电路设计1.时钟电路系统采用12M晶振与两个30pF的电容组成震荡电路,接AT89C51的XTAL1与XTAL2的引脚,为微控制器提供时钟,MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。
AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。
2.按键电路两个按键来分别控制电机的启动与停止,启动键来启动单片机来检测电机的转速,而停止键来停止单片机检测电机的转速,启动键连接单片机的P1.0口,停止键连接单片机的P1.1口。
3.显示电路该系统采用4位共阴极数码管实现转速显示,并且用动态显示方式。
所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态,每个数码管轮流显示。
当数码管处于动态显示时,所有位选线分离,而每个数码管的各条段选线相连。
当需要显示数字或字符时,需要将所有数码管轮流点亮,这时对每个数码管的点亮周期有了一个较严格的要求:由于发光体从通入电流开始点亮到完全发光需要一定的时间,叫做响应时间,这个时间对于不同的发光材质是不同的,通常情况下为几百微秒,所以数码管的刷新周期(所有数码管被轮流点亮一次的时间)不要过短,这也与数码管的数量有关,一般的数码管的刷新周期应控制在5ms~10ms,即刷新率为200Hz~100Hz,这样既保证了数码管每一次刷新都被完全点亮,同时又不会产生闪烁现象。
动态显示的优点是:硬件电路简单(数码管越多,这个优势越明显),由于每个时刻只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管亮度不如静态显示时的亮度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象;如果数码管直接与单片机连接,软件控制上会比较麻烦,所以在连接时用C4511显示译码器来控制共阴极数码管。
并且CD4511的输出直接与数码管七段来连接,而输入的部分与单片机的PO口的高四位来显示,而在要连接的过程中,由于是连接在单片机的P0口,所以在硬件连接时得需要接四个10k的上拉电阻。
此外,还需要用P2口的低四位分别来控制数码管的位选,而在实际的焊接的电路时,数码管的位选端得需要焊接三极管,否则数码管的显示亮度将会非常暗。
4.复位电路计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。
MCS-51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。
此时ALE、PSEN、P0、P1、P2、P3口都输出高电平。
RST变为低电平后,退出复位,CPU从初始状态开始工作。
该系统采用的是按键手动复位电平方式,是通过RST端经电阻与电源Vcc接通而实现的。
5.检测电机转速的电路由于所给的电机本身自带传感器,并且自身的就能够产生脉冲信号,并且脉冲信号的引脚直接接在单片机的P3.4口,所以在PROTEUS中用脉冲发生器来代替实际中的检测电机转速的脉冲信号。
并且在实际的焊接电路中电机是有六个引线接出,其中黑线接在单片机的第二十引脚,白线接在单片机接在单片机的第四十引脚,红线不接,黄线接在单片机的P3.4口,绿线接电源,橙线接地。
6.电路原理图注释:由于在PROTEL中没有电机,所以我在PROTEL中用八个输出端来代替电机。
4.3 系统硬件调试4.3.1.调试方案:调试包含仿真调试和硬件调试两个部分仿真调试指使用PROTEUS对系统进行仿真调试。
主要调试系统电路的设计和验证程序逻辑的正确性。
硬件调试指系统搭建后对硬件电气性能的测试。
主要测试各功能的完整性可靠性,一集系统电气性能的稳定性。
测试工具为示波器万用表等。
4.3.2.仿真调试结果:真调试中,系统运行正常,程序逻辑正确,按键输入正确,数码管显示正确。
P3.4管脚接受脉冲正常。