基于单片机控制的步进电机控制器论文.docx
- 文档编号:12441352
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:20
- 大小:183.71KB
基于单片机控制的步进电机控制器论文.docx
《基于单片机控制的步进电机控制器论文.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的步进电机控制器论文.docx(20页珍藏版)》请在冰点文库上搜索。
基于单片机控制的步进电机控制器论文
毕业设计(论文)报告
题目基于单片机控制的步进电
机控制器
基于单片机控制的步进电机控制器
摘要:
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
本系统采用AT89S51单片机来控制步进电机,不仅可以实现电机的正反转,还可以实现17级调速,以及LED状态显示功能,电路设计可靠且易于实现,程序设计简单易懂。
本系统主要由按键电路、单片机最小系统、AT89S51单片机、步进电机状态显示电路、驱动电路以及步进电机等几部分组成。
输出驱动电路采用一个六非门芯片74LS04和四个三极管,来驱动步进电机的四相绕组。
短路保护采用一个0.4A的保险管,防止因绕组短路而烧毁烧毁电机。
关键词:
步进电机单片机单片机最小系统子程序
Basedonthesinglechipmicrocomputertocontrolthestepmotorcontroller
Abstract:
Steppermotoriselectricalpulsesignalintoangularorlineardisplacementofopen-loopcontrolsteppingparts.Innon-overloadofsituationXia,motorofspeed,andstopoflocationonlydependsonpulsesignaloffrequencyandpulsenumber,anddoesnotbyloadchangesofeffect,dangstepintodrivereceivedtoapulsesignal,itondrivestepintomotorbysetofdirectionturnsafixedofangle,called"stepfromangle",itofrotatingistofixedofangleastepasteprunof.Bycontrollingthenumberofpulsestocontroltheamountofangulardisplacement,soastoachieveaccuratepositioningofpurpose;atthesametimeyoucancontrolpulsefrequencycontrolledmotorrotationspeedandAcceleration,soastoachievethepurposeofspeed.
ThesystemusesAT89S51single-chipmicrocomputertocontrolthesteppermotor,whichcannotonlyrealizethemotorpositiveinversion,canalsorealizethe17stepspeedregulation,andtheLEDstatedisplayfunction,circuitdesignandreliableandeasytorealize,theprogramdesignissimpleandeasytounderstand.Thissystemismainlycomposedofakeycircuit,MCUminimumsystem,AT89S51MCU,stepmotorstatusdisplaycircuit,drivingcircuitandstepmotoretc..TheoutputdrivercircuitusesasixNANDchip74LS04andfourthreetransistor,todrivethesteppermotorfourphasewinding.Shortcircuitprotectionusinga0.4Ainsurancetube,preventthewindingshortcircuitandburndownmotor.
KeyWords:
SteppingmotorSinglechipmicrocomputerThesmallestsingle-chipsystemSubroutine
引言
步进电机能将输入的电脉冲信号转换成输出轴的角位移或直线位移。
这种电机每输入一个脉冲信号,输出轴便转动一定的角度或前进一步,因此又被称作脉冲电机或步级电机。
步进电机输出轴的角位移量与输入脉冲数成正比,不受电压以及环境温度的影响,也没有累积的定位误差,因此控制输入的数字脉冲数即可实现电机的精确定位;而步进电机输出轴的转速与输入的脉冲频率成正比,控制输入的脉冲频率就能准确的控制步进电机的转速,可以实现在宽广的范围内精确调速。
由于步进电机的这一特点正好符合数字控制系统的要求,同时电子技术的发展也解决了步进电机的电源问题。
因此随着计算机技术和数字控制技术的发展,步进电机的应用也日益广泛。
目前,步进电机应用于磁盘驱动器、数控机床、轧钢机、机器人、以及自动化仪表等方面。
第一章设计方案
1.1设计思路
本系统主要由按键电路、单片机最小系统、AT89S51单片机、步进电机电机电路、驱动电路以及步进电机等几部分组成。
驱动电路可以采用FT5754芯片来实现,芯片内部有四组3A、5W、100V的PNP达林斯顿电路及四个二极管,输出四个管脚
、
、
、
分别与步进电机的四相绕组向连接。
但考虑到所采用的步进电机功率和额定电流都较小,以及经济性方面,本设计直接采用四个NPN型三极管来作为驱动电路。
步进电机的控制主要通过5个按键来实现,这5个按键分别表示“正转”、“反转”、“加速”、“减速”和“停止”。
单片机输出四路脉冲信号触发驱动电路的四个NPN型三极管,其中触发导通的三极管可驱动步进电机的相应绕组得电,即步进电机获得脉冲,而产生一定的角位移。
单片机循序不断的输出时序脉冲,就可以实现步进电机的旋转了。
1.2总体设计框图
总体设计框图如图1所示。
图1总体设计框图
第二章设计原理分析
2.1步进电机
2.1.1概述
步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器
虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。
您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
2.1.2优点
●电机旋转的角度正比于脉冲数;
●电机停转的时候具有最大的转矩(当绕组激磁时);
●由于每步的精度在百分之三到百分之五,而且不会将一步的误差积累到下一步因而有较好的位置精度和运动的重复性;
●优秀的起停和反转响应;
●由于没有电刷,可靠性较高,因此电机的寿命仅仅取决于轴承的寿命;
●电机的响应仅由数字输入脉冲确定,因而可以采用开环控制,这使得电机的结构可以比较简单而且控制成本;
●仅仅将负载直接连接到电机的转轴上也可以极低速的同步旋转。
●由于速度正比于脉冲频率,因而有比较宽的转速范围。
2.1.3驱动方法
步进电机不能直接接到工频交流或直流电源上工作,而必须使用专用的步进电动机驱动器,如图2所示,它由脉冲发生控制单元、功率驱动单元、保护单元等组成。
图中点划线所包围的二个单元可以用微机控制来实现。
驱动单元与步进电动机直接耦合,也可理解成步进电动机微机控制器的功率接口。
图2
本系统采用25Y48H01型步进电机,其相关参数如表1所示,内部接线图如图3所示。
表125Y48H01型步进电机的相关参数
型号
步距角
相数
电压(V)
电流(A)
电阻(Ω)
最大静止转矩(g·cn)
转子转动惯量(g·cm2)
重量(g)
25Y48H01
7.5
4
5
0.5
10
100
1.0
35
图325Y48H01型步进电机内部接线图
绕组脉冲
1
2
3
4
5
6
7
8
9
10
A
1
0
0
1
1
0
0
1
1
0
B
1
1
0
0
1
1
0
0
1
1
C
0
1
1
0
0
1
1
0
0
1
D
0
0
1
1
0
0
1
1
0
0
表2步进电机四相绕组的励磁时序
步进电机的励磁方式有1相励磁、2相励磁和1-2相励磁3种。
由于2相励磁具有转矩大、振动小等优点,在目前使用较为普遍,本系统的设计也采用这种励磁方式。
步进电机各相绕组的励磁时序如表2所示。
2.2AT89S51单片机及其最小系统
Atmel公司的生产的89C51单片机是一种低功耗/低电压、高性能的8位单片机,它采用CMOS和高密度非易失性存储器技术,而且其输出引脚和指令系统都与MCS-51兼容;片内的FlashROM允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,还包括256字节RAM,4K字节的ROM,4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器。
89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。
2.2.1结构
●4kBytesFlash片内程序存储器;
●128bytes的随机存取数据存储器(RAM);
●2个外部双向输入/输出(I/O)口;
●5个中断优先级、2层中断嵌套中断;
●6个中断源;
●2个16位可编程定时器/计数器;
●2个全双工串行通信口;
●看门狗(WDT)电路;
●片内振荡器和时钟电路;
●与MCS-51兼容;
●全静态工作:
0Hz-33MHz;
●三级程序存储器保密锁定;
●可编程串行通道;
●低功耗的闲置和掉电模式。
2.2.2功能
VCC:
电源电压输入端。
GND:
电源地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
图4
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通I/O口,还有第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(T0定时器的外部计数输入)
P3.5T1(T1定时器的外部计数输入)
P3.6/WR(外部数据存储器的写选通)
P3.7/RD(外部数据存储器的读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
89C51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有其他的功能。
RST:
复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
地址锁存允许/编程脉冲信号端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号,低电平有效。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
外部程序存储器访问允许。
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
片内振荡器反相放大器和时钟发生器的输入端。
XTAL2:
片内振荡器反相放大器的输出端。
单片机最小系统包括振荡电路和复位电路两部分。
振荡电路用12M晶振,这样一个机器周期
。
复位电路采用手动复位,当按下RESET按键,电阻R1、R2接通5V电源,此时R2分得电压大约为4V,为高电平,即置单片机RST脚为高电平,单片机复位。
2.3按键电路
采用5个按键用来控制步进电机的5种状态,即“正转”、“反转”、“加速”、“减速”和“停止”。
当按下其中一个按键时,电源通过上拉电阻和按键到地形成通路,使相应输入管脚接地,即给单片机送入一个低电平,此低电平即为有效电平。
按键电路如图4所示。
2.4步进电机状态显示电路
状态指示采用三种颜色的发光二极管,“绿色”、“黄色”和“红色”分别表示步进电机的“正转”、“反转”和“停止”状态。
限流电阻选择1K的电阻,使发光二极管的压降为3V左右。
2.5步进电机驱动电路
从单片机输出四路脉冲信号,经过非门和限流电阻,送到四个NPN型三极管的基极。
如果从单片机输出的是高电平,经过非门变成低电平,送入三极管,使三极管截止;如果从单片机输出的是低电平,经过非门变成高电平,此高电平使三极管导通。
步进电机的每相绕组并上一个二极管,目的是防止在三极管瞬间截止时,绕组电感所产生很高的感应电动势击穿三极管。
非门采用74LS04芯片,其内部共有六个独立的非门,这里只用了其中的四个。
驱动电路如图6所示。
图5按键控制电路
图6步进电机驱动电路
第三章程序原理分析
3.1程序设计思路
根据外围电路的设计,单片机的输入为P1口的前五个管脚,输出为P1口的后三个管脚和P2口的前四个管脚。
主程序部分首先向驱动电路输出四路高电平,使电机停转,然后设置定时器T0的工作方式以及给允许中断位置高电平,点亮“停转”的状态显示,接下来进行按键扫描,如果有“正转”或“反转”按键按下,则跳转到相应的程序段;如果有“停止”按键或没有任何按键按下,则跳转到程序的初始部分。
正转部分,首先点亮“正转”的状态指示,随后输出起始脉冲,接下来扫描按键,判断是否执行加速、减速或停转,然后调用给定时器T0赋初始值子程序,最后左移累加器A中的数值,如此循环便可实现步进电机的正转。
反转部分与正转部分的程序设计雷同,不再赘述。
加速和减速部分,改变定时器定时的初始值,即改变定时时间便可实现。
3.2程序分析
首先,进行P2口以及定时器的初始化,定时器工作于方式1,对P1.7清零,即点亮红色发光二极管,表示步进电机的“停止”的状态。
用JNB指令来扫描按键电路,按下则跳转,没有按下则继续向下执行。
如果P1.0按下,则跳转到首地址为RUN的位置,先调用一个10ms的延时子程序来消除按键的抖动,对P1.6清零,即点亮绿色发光二极管,表示步进电机的“正转”状态,然后通过累加器A输出起始脉冲信号00110011B到P2口。
随后判断加速、减速和停止按键是否按下,如果其中一个被按下,则跳到相应的程序段,否则程序继续向下执行。
接下来调用赋定时器初始值子程序TIME,根据R0的数据的不同,使用查表指令来读取TABLE1和TABLE2中的数据分别赋给定时器T0的两个八位寄存器TH0和TL0。
返回后,利用查询法来等待T0的中断,当定时结束时跳出循环,并对中断标志位TF0清零。
左移指令使累加器A中的数据循环左移一位,最后返回到RUN1的位置。
如果P1.1按下,则执行反转程序,该程序执行过程与正转部分相似,不同之处:
一是反转要点亮黄色发光二极管,二是对脉冲信号循环右移,从而实现反转。
加速子程序主要使R0内的数据加1,即把速度提高一个级别,R0内的数据还要与16相减,来确认是否达到最高转速,如果R0内的数据大于16,则把16赋给R0,表示已达到最高转速,不能再加速了。
减速子程序主要使R0内的数据减1,即把速度降低一个级别,如果R0内的数据为0,即速度为最低转速,则直接跳过减一指令,保持这个最低转速。
赋定时器初值子程序,利用两个查表指令来读取预置的数据,当转速改变时,R0内的数据发生变化,这时赋给定时器的初值也发生了变化,改变了定时时间,即脉冲的时间间隔发生变化,从而实现了电机变速。
3.3定时器计数初值的设定
程序设计选用定时器T0的定时中断,来控制步进电机每走一步所用的时间,改变了T0的定时时间,就改变了步进电机的转速。
定时器T0工作于方式1,晶振fosc=12MHZ。
由于采用的步进电机的步距角为7.5°,转一圈需要48个脉冲,设转速为N(r/min),则每分钟需送脉冲数据的个数为48N,即每送一个脉冲信号需时:
。
定时器T0的计数初值
。
设步进电机最低转速为20r/min,最高转速为100r/min,每5r设为一个速度级,一共17级。
经过计算,得出步进电机的转速对应于定时器初值如表3所示。
表3电机速度及对应定时器计数初值
转速N/(r/min)
单步时间T/(μs)
T0的计数初值Tx(十进制)
T0的计数初值Tx(十六进制)
20
62500
7936
1F00
25
50000
19456
4C00
30
41666.67
27136
6A00
35
35714.29
32621.71
7F6D
40
31250
36736
8F80
45
27777.78
39936
9C00
50
25000
42496
A600
55
22727.27
44590.55
AE2E
60
20833.33
45673.93
B269
65
19230.77
47812.92
BAC4
70
17857.14
49078.86
BFB6
75
16666.67
50176
C400
80
15625
51136
C7C0
85
14705.88
51983.06
CB0F
90
13888.89
52736
CE00
95
13157.87
53280.68
D020
100
12500
54016
D300
3.4程序设计流程图
程序流程如图7所示:
总结
通过此次单片机课程设计,使我对单片机控制系统有了更加全面和深入的了解,对电路板的设计和制作也更加的熟练。
电路的设计并不复杂,两天的时间就完成了,但之后编写程序,发现有一些不妥的地方,进行了调整,随后开始制作PCB版图,还算顺利。
程序的设计让我犯了不少的困惑,以前编写的都是一些功能简单的程序,这样系统的程序编写还是第一次,发现自己好像有些摸不到头脑,可能是编写程序的时机还不够成熟。
而后,在图书馆借了几本资料,仔细的研究一下,虽然实现的功能不大一致,但至少可以提供一些思路。
果然,有了效果,我居然只用了一个下午的时间就编写完成了,真是太神奇了。
等拿到步进电机进行调试,电机却没有一点反应,经过仔细的审查,发现按键输入我使用的是单片机的P1口,可程序里我用的却是P0口,于是对程序做了相应的修改,调试成功。
三周的实习即将结束,经过了这样一个设计和制作的过程,体会到这样实践真的是很必要,不仅可以加深对书本上的知识理解,还可以锻炼自己的动手能力和综合运用能力。
经过这次实习,我更加喜欢自己的专业了,也对自己更有信心了。
参考文献
[1]李朝青.单片机原理及接口技术[M].北京:
北京航空航天大学出版社,2005.9
[2]蔡朝洋.单片机控制实习与专题制作.北京:
北京航空航天大学出版社,2006.11
[3]汪道辉.单片机系统设计与实践.北京:
电子工业出版社,2006.5
[4]张大明.单片机控制实训指导及综合应用实例.北京:
机械工业出版社,2007.3
[5]杨天明,陈杰.电机与拖动.北京:
中国林业出版社;北京大学出版社,2006.8
附录
附录1步进电机总体控制电路
附录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 步进 电机 控制器 论文