STC12系列PWM方式控制两相步进电机_第1页
STC12系列PWM方式控制两相步进电机_第2页
STC12系列PWM方式控制两相步进电机_第3页
STC12系列PWM方式控制两相步进电机_第4页
STC12系列PWM方式控制两相步进电机_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计 步进电机控制专业班级: 姓 名: 学 号: 指导教师: 目录1 课程设计要求2 课程设计目的3 所用仪器及相关说明 1.57步进电机23HS6620 2.DM524型细分型两相混合式步进电机驱动器 3.STC12C5A60S2系列单片机4 调试程序 【程序一、二】5 程序功能 【程序一、二】六误差说明七心得体会八课设说明一课程设计要求通过计算机对单片机芯片的编程,将单片机与驱动器相连,从而实现对步进电机的各种方式控制。2 课程设计目的1.根据所期望的结果编写程序,并在实验仪器上调试和验证。2.使用步近电机的工作原理与步进电机驱动器。3.学习控制步进电机转角、速度、方向的实时软件

2、设计3 所用仪器及相关说明1. 57步进电机23HS6620 2. DM524型细分型两相混合式步进电机驱动器,采用直流1850V供电,适合驱 动电压24V50V,电流小于4.0V,外径4286毫米的两相混合式步进电机。此驱 动器采用交流伺服驱动器的电流环进行细分控制,电机的转矩波动很小,低速 运行很平稳,几乎没有振动和噪音。高速时力矩也大大高于其它二相驱动器, 定位精度高。广泛适用于雕刻机、数控机床、包装机械等分辩率要求较高的设 备上。电气参数输入电压直流1850V输入输入电流小于4安培输出电流1.0A4.2A功 耗功耗:80W; 内部保险:6A温 度工作温度-1045;存放温度-4070湿

3、 度不能结露,不能有水珠气 体禁止有可燃气体和导电灰尘重 量200克 主要特点(1)平均电流控制,两相正弦电流驱动输出(2)直流2450V供电(3)光电隔离信号输入/输出(4)有过压、欠压、过流、相间短路保护功能(5)十五档细分和自动半流功能 (6)八档输出相电流设置(7)具有脱机命令输人端子 (8)高启动转速 (9)高速力矩大(10)电机的扭矩与它的转速有关,而与电机每转的步数无关控制信号接口控制信号定义PLS/CW+: 步进脉冲信号输入正端或正向步进脉冲信号输入正端PLS/CW-: 步进脉冲信号输入负端或正向步进脉冲信号输入负端DIR/CCW+: 步进方向信号输入正端或反向步进脉冲信号输入

4、正端DIR/CCW-: 步进方向信号输入负端或反向步进脉冲信号输入负端ENA+: 脱机使能复位信号输入正端ENA-: 脱机使能复位信号输入负端脱机使能信号有效时复位驱动器故障,禁止任何有效的脉冲,驱动器的输出功率元件被关闭,电机无保持扭矩。控制信号连接上位机的控制信号可以高电平有效,也可以低电平有效。当高有效时,把所有控制信号的负端连在一起作为信号地,低有效时,把所有控制信号的正端连在一起作为信号公共端。现在以集电极开路和PNP输出为例,接口电路示意图如下:控制器集电极开路输出图2.输入接口电路(共阴极接法)控制器PNP输出注意:VCC值为5V时,R短接;VCC值为12V时,R为1K,大于1/

5、8W电阻;VCC值为24V时,R为2K,大于1/8W电阻;R必须接在控制器信号端。 功能选择(用驱动器面板上的DIP开关实现)设置电机每转步数驱动器可将电机每转的步数分别设置为400、500、800、1000、1250、1600、2000、2500、3200、4000、5000、6400、8000、10000、12800步。用户可以通过驱动器正面板上的拨码开关的SW5、SW6、SW7、SW8位来设置驱动器的步数(如表1): SW5状态OFFONOFFONOFFONOFFONOFFONOFFONOFFONOFFSW6状态ONOFFOFFONONOFFOFFONONOFFOFFONONOFFOFF

6、SW7状态ONONONOFFOFFOFFOFFONONONONOFFOFFOFFOFFSW8状态ONONONONONONONOFFOFFOFFOFFOFFOFFOFFOFF步数400800160032006400128002560010002000400050008000100002000025000控制方式选择拨码开关SW4位可设置成两种控制方式:当设置成“OFF”时,为有半流功能。当设置成“ON”时,为无半流功能。设置输出相电流为了驱动不同扭矩的步进电机,用户可以通过驱动器面板上的拨码开关SW1、SW2、SW3位来设置驱动器的输出相电流(有效值)单位安培,各开关位置对应的输出电流,不同型号

7、驱动器所对应的输出电流值不同。具体见表2。 输出电流(A)SW1SW2SW3PEAKRMSONONON1.000.71OFFONON1.461.04ONOFFON1.911.36OFFOFFON2.371.69ONONOFF2.842.03OFFONOFF3.312.36ONOFFOFF3.762.69OFFOFFOFF4.203.00半流功能半流功能是指无步进脉冲500ms后,驱动器输出电流自动降为额定输出电流的70%,用来防止电机发热。功率接口+V、GND:连接驱动器电源 +V:直流电源正级,电源电压直流1650V。最大电流是5A。 GND:直流电源负级。A+ A- B+ B-:连接两相混

8、合式步进电机驱动器和两相混合式步进电机的连接采用四线制,电机绕组有并联和串联接法,并联接法,高速性能好,但驱动器电流大(为电机绕组电流的1.73倍),串联接法时驱动器电流等于电机绕组电流。安装周围要有20mm的空间,不能放在其它发热的设备旁,要避免粉尘、油雾、腐蚀性气体,湿度太大及强振动场所。故障诊断状态灯指示RUN: 绿灯,正常工作时亮。ERR: 红灯,故障时亮,电机相间短路、过压保护和欠压保护。故障及排除故 障原 因解决措施LED不亮电源接错检查电源连线电源电压低提高电源电压电机不转,且无保持扭矩电机连线不对改正电机连线脱机使能RESET信号有效使RESET无效电机不转,但有保持扭矩无脉冲

9、信号输入调整脉冲宽度及信号的电平电机转动方向错误动力线相序接错互换任意两相连线方向信号输入不对改变方向设定电机扭矩太小相电流设置过小正确设置相电流加速度太快减小加速度值电机堵转排除机械故障驱动器与电机不匹配换合适的驱动器 驱动器接线 一个完整的步进电机控制系统应含有步进驱动器、直流电源以及控制器(脉冲源)。以下为典型系统接线图:3. 单片机STC12C5A60S2系列PWMCCAPMn.1用来使能脉宽调制模式当PCA计数值与模块的捕获/比较寄存器的值相匹配时,如果TOG位(CCAPMn.2)置位,模块CEXn输出将发生翻转。当PCA计数值与模块的捕获/比较寄存器的值相匹配时,如果匹配位MATn

10、(CCAPMn.3)置位, CCON寄存器的CCFn位将被置位。CAPNn(CCAPMn.4)和CAPPn(CCAPMn.5)用来设置捕获输入的有效沿。CAPNn位使能下降沿有效。CAPPn位使能上升沿有效。如果两位都置位,则两种跳变沿都被使能,捕获可在两种跳变沿产生。通过置位CCAPMn寄存器的ECOMn位(CCAPMn.6)来使能比较器功能。每个PCA模块还对应另外两个寄存器CCAPnH和CCAPnL。当出现捕获或比较时,它们用来保存16位的计数值。当PCA模块用在PWM模式中时它们用来控制输出的占空比。脉宽调节模式(PWM)脉宽调制(PWMPulse Width Modulation)是

11、一种使用程序来控制波形占空比、周期、相位波形的技术。PCA工作模式寄存器CMODCPS2、CPS1、CPS0:PCA计数脉冲源选择控制位。当三者分别为0、1、0时,选择PCA/PWM时钟源输入为定时器0的溢出频率。由于定时器0可以工作在1T模式,所以可以达到计一个时钟就溢出,从而达到最高工作频率CPU时钟SYSclk。通过改变定时器0的溢出率,可以实现可调频率的PWM输出。四调试程序【程序一】#include <REG51.H>#include <intrins.h>#define U8 unsigned char#define U16 unsigned intsbit

12、 key1=P10;sbit key2=P11;sbit key3=P15;sbit key4=P16;U8 table4=0xea,0xf2,0xfa,0xfc;U8 table14=0xfc,0xfa,0xf2,0xea;U16 timer0=0;U16 j=0;void DelayMs(U8 ms);void PWM_clock(U8 clock);void PWM_start(U8 module,U8 mode);/ 延时子程序/void DelayMs(U8 ms) /在11.0592M晶振下,stc10f系列(单周期指令)的ms级延时 U16 i;while(ms-) for(i

13、= 0; i < 850; i+); /主函数入口/sfr AUXR = 0X8E;sfr CCON = 0xD8; /PCA控制寄存器sfr CMOD = 0xD9; /PCA模式寄存器sfr CCAPM0 = 0xDA; /PCA模块0模式寄存器 /模块0对应P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列) sfr CCAPM1 = 0xDB; /PCA模块1模式寄存器 /模块1对应P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)sfr CL = 0xE9; /PCA 定时寄存器 低位sfr CH = 0xF9; /PCA 定时寄存器 高位

14、sfr CCAP0L = 0xEA; /PCA模块0的 捕获寄存器 低位sfr CCAP0H = 0xFA; /PCA模块0的 捕获寄存器 高位sfr CCAP1L = 0xEB; /PCA模块1的 捕获寄存器 低位sfr CCAP1H = 0xFB; /PCA模块1的 捕获寄存器 高位sfr PCA_PWM0 = 0xF2; /PCA PWM 模式辅助寄存器0sfr PCA_PWM1 = 0xF3; /PCA PWM 模式辅助寄存器1sbit CF = 0xDF; /PCA计数溢出标志位sbit CR = 0xDE; /PCA计数器 运行控制位sbit CCF1 = 0xD9; /PCA模块

15、1中断标志sbit CCF0 = 0xD8; /PCA模块0中断标志/* CCAPOH = CCAPOL = 0XC0; /模块0输出 占空因数为25%/* CCAPOH = CCAPOL = 0X80; /模块0输出 占空因数为50%/* CCAPOH = CCAPOL = 0X40; /模块0输出 占空因数为75%void PWM_clock(U8 clock);void PWM_start(U8 module,U8 mode);/*设置PWM时钟信号来源函数参数:Clock0: 系统时钟/12(即12分频); 1:系统时钟/2(即2分频);2:定时器0的溢出脉冲 ;3: ECI/P1.2

16、(或P4.1)脚输入的外部时钟;4:系统时钟(即不分频) ;5:系统时钟/4(即4分频);6:系统时钟/6(即6分频);7:系统时钟/8(即8分频); /*/void PWM_Clock(unsigned char clock) if(clock=2)AUXR |= 0x80;/定时器0时钟为Fosc,即1TTMOD|=0x02; /8位自动重装载TH0=0xe1; /TR0=1; CMOD |= (clock<<1);/CMOD=0x84;CL = 0;CH = 0; void PWM_Start(U8 module,U8 R0,U8 R1) CCAP0L = 0XFF-(R0*

17、256/100);CCAP0H = 0XFF-(R0*256/100); CCAP1L = 0XFF-(R1*256/100);CCAP1H = 0XFF-(R1*256/100); if(module=0) CCAPM0 = 0X42; /模块0设置为8位PWM输出,无中断 else if(module=1) CCAPM1 = 0X42; /模块1设置为8位PWM输出,无中断 else if(module=2) CCAPM0 = CCAPM1 = 0X42; /模块0和1设置为8位PWM输出,无中断 CR=1; /PCA计数器开始计数 void main() U8 keycode=0;U8

18、keycode1=0; PWM_Clock(2); / PCA/PWM时钟源为 定时器0的溢出PWM_Start(0,20,0);/ 模块0,设置为PWM输出,无中断,初始占空因素为25%while(1)if(key1=0) while(key1=0); EA=0; TR0=1; TH0=tablekeycode; keycode+; if(keycode=4) keycode=0; DelayMs(100); if(key3=0) while(key3=0); TR0=1; EA=0; TH0=table1keycode1; keycode1+; if(keycode1=4) keycode

19、1=0; DelayMs(100); if(key2=0) while(key2=0); EA=1; ET0=1; TR0=1; TH0=0xD1; void timer() interrupt 1 +timer0; if(timer0=256) +j;timer0=0; if(j=3032) j=0;TR0=0; 【程序二】#include <REG51.H>#include <intrins.h>#define U8 unsigned char#define U16 unsigned intsbit DIR=P15;sbit key1=P30;sbit key2=P

20、31;sbit key3=P32;sbit key4=P33;U16 i=0;U8 keycode=0;U8 table4=0xea,0xf7,0xfa,0xfe;/ 调频void DelayMs(U8 ms);void PWM_clock(U8 clock);void PWM_start(U8 module,U8 mode);/ 延时子程序/void DelayMs(U8 ms) /在11.0592M晶振下,stc10f系列(单周期指令)的ms级延时 U16 i;while(ms-) for(i = 0; i < 850; i+); /主函数入口/sfr AUXR = 0X8E;sfr

21、 CCON = 0xD8; /PCA控制寄存器sfr CMOD = 0xD9; /PCA模式寄存器sfr CCAPM0 = 0xDA; /PCA模块0模式寄存器 /模块0对应P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列) sfr CCAPM1 = 0xDB; /PCA模块1模式寄存器 /模块1对应P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)sfr CL = 0xE9; /PCA 定时寄存器 低位sfr CH = 0xF9; /PCA 定时寄存器 高位sfr CCAP0L = 0xEA; /PCA模块0的 捕获寄存器 低位sfr CCAP0H =

22、 0xFA; /PCA模块0的 捕获寄存器 高位sfr CCAP1L = 0xEB; /PCA模块1的 捕获寄存器 低位sfr CCAP1H = 0xFB; /PCA模块1的 捕获寄存器 高位sfr PCA_PWM0 = 0xF2; /PCA PWM 模式辅助寄存器0sfr PCA_PWM1 = 0xF3; /PCA PWM 模式辅助寄存器1sbit CF = 0xDF; /PCA计数溢出标志位sbit CR = 0xDE; /PCA计数器 运行控制位sbit CCF1 = 0xD9; /PCA模块1中断标志sbit CCF0 = 0xD8; /PCA模块0中断标志sbit ECCF0 = 0

23、xDA;sbit ECF = 0xD9;sbit PWM0 = 0xD8;/* CCAPOH = CCAPOL = 0XC0; /模块0输出 占空因数为25%/* CCAPOH = CCAPOL = 0X80; /模块0输出 占空因数为50%/* CCAPOH = CCAPOL = 0X40; /模块0输出 占空因数为75%void PWM_clock(U8 clock);void PWM_start(U8 module,U8 mode);void PWM_Clock(unsigned char clock) if(clock=2)AUXR |= 0x80;/定时器0时钟为Fosc,即1TTM

24、OD|=0x02; /8位自动重装载TH0=0xe1; /设定频率CMOD |= 0x05;/(clock<<1);CL = 0;CH = 0; /EA=1;void PWM_Start(U8 module,U8 R0,U8 R1) CCAP0L = 0XFF-(R0*256/100);CCAP0H = 0XFF-(R0*256/100); CCAP1L = 0XFF-(R1*256/100);CCAP1H = 0XFF-(R1*256/100); if(module=0) CCAPM0 = 0X42; /模块0设置为8位PWM输出,无中断 else if(module=1) CC

25、APM1 = 0X42; /模块1设置为8位PWM输出,无中断 else if(module=2) CCAPM0 = CCAPM1 = 0X42; /模块0和1设置为8位PWM输出,无中断 void main() PWM_Clock(2); / PCA/PWM时钟源为 定时器0的溢出PWM_Start(0,20,0); / 模块0,设置为PWM输出,无中断,初始占空因素为25%TR0=0;EA=1;while(1) if(key1=0)while(!key1)TR0=1;CR=1;i=0; CH =0x9c; / 0x9c 100 步数 / 0x38200 if(key2=0) EA=0; T

26、R0=1; CR=1; while(key2=0); TH0=tablekeycode; /调频 keycode+; if(keycode=4) keycode=0; if(key3=0) /方向while(!key3)DIR=0;DelayMs(100);void PCA_isr() interrupt 7 i=i+1;CH=0x9c; / 0x9c 100 步数 / 0x37200CF=0;if(i=100)/100*4 200*125 CR=0; i=0; 5 程序功能 首先对各寄存器设定初值,选择工作模式,使PCA计数频率为定时器0的溢出率,实现可调频率的PWM输出。设定CCAP0H和CCAP0L及CL和CH的初值,当PCA计数器的低位CL从0xFF递减到0x00过程中,若值大于CCAP0L,则输出高电平,否则为低电平,从而调节占空比。 采用定时器0的八位自动装载,通过给TH0赋初值,改变PWM的输出频率,从而控制电机的转速。在同一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论