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

下载本文档

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

文档简介

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

2、三.所用仪器及相关说明1.57步进电机23HS6620步距角机身长相电压楣电施相电阻相电感静力策引线数转动惯0重量Sr印MmorRateRattHoldingUAdRotorMotor电机型号Mod或何可ValutfeCurrentMeHJ14tJincvTorqueWirtInert1*( JM(A)旧)(mH)IN cm)INOJtKg)23Hs6620 L8563.62L82.5126/9063000.72.DM524型细分型两相混合式步进电机驱动器,采用直流1850V供电,适合驱动电压24V50V,电流小于4.0V,外径4286毫米的两相混合式步进电机。此驱 动器采用交流伺服驱动器的电

3、流环进行细分控制,电机的转矩波动很小,低速 运行很平稳,几乎没有振动和噪音。高速时力矩也大大高于其它二相驱动器, 定位精度高。广泛适用于雕刻机、数控机床、包装机械等分辩率要求较高的设 备上。电气参数输入电压直流1850V输入输入电流小于4安培输出电流1.0A 4.2A功 耗功耗:80W;内部保险:6A温 度工作温度-1045 C;存放温度-40C70 c湿度不能结露,不能有水珠气体禁止有可燃气体和导电灰尘重 量200克主要特点(1)平均电流控制,两相正弦电流驱动输出(2)直流2450V供电(3)光电隔离信号输入/输出(4)有过压、欠压、过流、相间短路保护功能(5)十五档细分和自动半流功能(6)

4、八档输出相电流设置(7)具有脱机命令输人端子(8)高启动转速 (9)高速力矩大(10)电机的扭矩与它的转速有关,而与电机每转的步数无关控制信号接口控制信号定义PLS/CW+:步进脉冲信号输入正端或正向步进脉冲信号输入正端PLS/CW-:步进脉冲信号输入负端或正向步进脉冲信号输入负端DIR/CCW+ :步进方向信号输入正端或反向步进脉冲信号输入正端DIR/CCW-:步进方向信号输入负端或反向步进脉冲信号输入负端ENA+ :脱机使能复位信号输入正端ENA-:脱机使能复位信号输入负端脱机使能信号有效时复位驱动器故障, 禁止任何有效的脉冲,驱动器的输出 功率元件被关闭,电机无保持扭矩。控制信号连接上位

5、机的控制信号可以高电平有效,也可以低电平有效。当高有效时,把所有控制信号的负端连在一起作为信号地,低有效时,把所有控制信号的正端连在一起作为信号公共端。现在以集电极开路和PNP输出为例,接口电路示意图如下:控制器集电极开路输出图2.输入接口电路(共阴极接法)控制器 PNP俞出注意:VCCfi为5V时,R短接;VCCfi为12V时,R为1K,大于1/8W电阻;VCCfi为24V时,R为2K,大于1/8W电阻;R必须接在控制器信号端功能选择(用驱动器面板上的DIP开关实现)设置电机每转步数驱动器可将电机每转的步数分别设置为 400、500、800、1000、1250、1600、2000、 2500

6、、3200、4000、5000、6400、8000、10000、1280侬。用户可以通过驱动器 正面板上的拨码开关的SW5、SW6、SW7、SW8位来设置驱动器的步数(如表1):SW5状态OFFONOFFONOFFONOFFONOFFONOFFONOFFONOFFSW6状ONOFOFONONOFOFONONOFOFONONOFOF态FFFFFFFFSW7 状 ON ON ON OF OF OF OF ON ON ON ON OF OF OF OF态FFFFFFFFSW8状OFOFOFOFOFOFOFOF态ONONONONONONONFFFFFFFF步数160320640128256100200

7、400500800100200250400800000000000000000000控制方式选择拨码开关SW4位可设置成两种控制方式:当设置成“OFF寸,为有半流功能。当设置成 “ONW,为无半流功能。设置输出相电流为了驱动不同扭矩的步进电机,用户可以通过驱动器面板上的拨码开关SW1、SW2、SW3位来设置驱动器的输出相电流(有效值)单位安培,各开关位置对应 的输出电流,不同型号驱动器所对应的输出电流值不同。具体见表 2。输出电流(A)SW1SW2SW3PEAKRMSONONON1.000.71OFFONON1.461.04ONOFFON1.911.36OFFOFFON2.371.69ONON

8、OFF2.842.03OFFONOFF3.312.36ONOFFOFF3.762.69OFFOFFOFF4.203.00半流功能半流功能是指无步进脉冲500ms后,驱动器输出电流自动降为额定输出电流 的70%,用来防止电机发热。功率接口+V、GND:连接驱动器电源+V:直流电源正级,电源电压直 流1650V。最大电流是5A。GND:直流电源负级。A+ A- B+ B-:连接两相混合式步进电机驱动器和两相混合式步进电机的连接采用四线制,电机绕组有并联和串联接法, 并联接法,高速性能好,但驱动器电流大(为电机绕组电流的1.731), 串联接法时驱动器电流等于电机绕组电流。安装周围要有20mm的空间

9、,不能放在其它发热的设备旁,要避免粉尘、油雾、腐蚀 性气体,湿度太大及强振动场所。故障诊断状态灯指示RUN: 绿灯,正常工作时亮。故障原因解决措施LED不亮电源接错 电源电压低检查电源连线 提图电源电压ERR: 红灯,故障时亮,电机相间短路、过压保护和欠压保护 故障及排除改正电机连线电机不转,且无保持扭矩电机不转,但有保持扭矩电机转动方向错误电机扭矩太小电机连线不对脱机使能RESET信号有效无脉冲信号输入动力线相序接错方向信号输入不对相电流设置过小加速度太快电机堵转驱动器与电机不匹配使RESET无效调整脉冲宽度及信号的电平互换任意两相连线改变方向设定正确设置相电流减小加速度值排除机械故障换合适

10、的驱动器驱动器接线一个完整的步进电机控制系统应含有步进驱动器、直流电源以及控制器(脉冲源)。以下为典型系统接线图:步进电机3.单片机STC12C5A60S2歹U10.1与PCA/PWM应用有关的特殊功能寄存器5TC1加湎6052系列II 8051小片机PC,4/PWM特殊功能寄存器表FGVPWM SFRs符号描述地皿位地址及其符号复位值R7B6B5B4B3B2BlBOCCONPCA Control RegisterDi!HCFCR-CCFICCFO州 xk,xk0OCMODPCA Mcxte RegisierD9HCIDL-CPS2CPS1cpsoECFOx xt,GOODCCAPM0PCA

11、Module 0 Mode RegisterDAR-ECOMOCAPPOCAPNOMATnTOGOPWMOr.CCFDxoon.ftowCCAPMIPCA Module 1 Mode RegUterDBI1-ECOMICAPPIL'AFNIMAUTOGIPWM1LCCF1xOOU网 OUCLFC A UciiHid Timtir La>wE9H0000,0004)CHPCA Basfi Timer HighF9HOOM.OOOOCCAP0LPCA MkxLijIc-0 CapluruRegister LowEAHOWCi.OUOUCCAP0Hl*CA Modiile-O Capi

12、ure RcgistET HighfAHOWXJ.OUUOCCAP1LPCA Module-1 CaplureRegister LowERH01X)0.1X)00CCAPIHPCA Modulo 1 CapluneRegister HighFRH门而(VMM。IXnA_PWM(>PCA PWM ModeAtixiliary1 Register 0F2II-EPCOIIkPCOLxxxx,xx00PCAPWM】PCA PWM ModeAuxiliai' Rgisir 1F3I1-EPCI IIEPC1Lxxkx,xx(K>PWM CCAPMn.1用,来使能脉宽调制模式当PCA

13、计数值与模块的捕获/比较寄存器的值相匹配时,如果TOG位 (CCAPMn.2)置位,模块CEXn输出将发生翻转。当PCA计数值与模块的捕 获/比较寄存器的值相匹配时,如果匹配位MATn (CCAPMn.3)置位,CCON寄存器的 CCFn 位将被置位。CAPNn (CCAPMn.4)和 CAPPn (CCAPMn.5)用 来设置捕获输入的有效沿。CAPNn位使能下降沿有效。CAPPn位使能上升沿有 效。如果两位都置位,则两种跳变沿都被使能,捕获可在两种跳变沿产生。通过 置位CCAPMn寄存器的ECOMn位(CCAPMn.6)来使能比较器功能。每个PCA 模块还对应另外两个寄存器 CCAPnH和

14、CCAPnL。当出现捕获或比较时,它 们用来保存16位的计数值。当PCA模块用在PWM模式中时 它们用来拄削输 出的占空比。脉宽调节模式(PWM )脉宽调制(PWM Pulse Width Modulation)是一种使用程序来控制波形占空比、 周期、相位波形的技术CPCA工作模式寄存器CMODSFR HiiiueAddressbitB7B6B5B4B3B2BlBftCCOND9HnameCIDL-CPS2CPS1CPSOECFCPS2、CPS1、CPS0: PCA计数脉冲源选择控制位。 当三者分别为 0、1、0时,选才i PCA/PWM 时钟源输入为定时器 0的溢出频率。由于定时器 0可以工

15、作在1T模式,所以可以达到计一 个时钟就溢出,从而达到最高工作频率CPU时钟SYSclk。通过改变定时器 0的溢出率,可以实现可调频率的 PWM输出。四.调试程序【程序一】#include <REG51.H>#include <intrins.h>#define U8 unsigned char#define U16 unsigned intsbit key1=P1A0;sbit key2=P1Al;sbit key3=P1A5;sbit key4=P1A6;U8 table4=0xea,0xf2,0xfa,0xfc;U8 table14=0xfc,0xfa,0xf2,

16、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 = 0; i < 850; i+);/ 主函数入口 /sfr AUXR= 0X8E;sfr CCON= 0xD8; /PCA 控制寄存器sfr CMOD = 0xD9; /PCA 模式寄存器模 块0

17、模 式寄存器系列 )模块1模 式寄存器/模块0对应/模块1对应sfr CCAPM0= 0xDA; /PCAP1.3/CEX0/PCA0/PWM0(STC12C5A60S2 sfr CCAPM1= 0xDB; /PCAP1.4/CEX1/PCA1/PWM1(STC12C5A60S2 系列 )sfr CL= 0xE9; /PCA 定时寄存器低位sfr CH= 0xF9; /PCA 定时寄存器高位sfr CCAP0L= 0xEA; /PCA模块0 的捕获寄存器低位sfr CCAP0H= 0xFA; /PCA模块0 的捕获寄存器高位sfr CCAP1L= 0xEB; /PCA模块1 的捕获寄存器低位s

18、fr CCAP1H= 0xFB; /PCA模块1 的捕获寄存器高位sfr PCA_PWM0 = 0xF2; /PCA PWM 模式辅助寄存器0sfr PCA_PWM1 = 0xF3; /PCA PWM 模式辅助寄存器1sbit CFsbit CRsbit CCF1sbit CCF0= 0xDF;= 0xDE;= 0xD9;= 0xD8;/PCA 计数溢出标志位/PCA /PCA /PCA计数器 运行控制位模块 1 中断标志模块 0 中断标志/* CCAPOH = CCAPOL=0XC0; /模块0 输出占空因数为25%/* CCAPOH = CCAPOL=0X80; /模块0 输出占空因数为5

19、0%/* 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(或P4.1)脚输入的外部时钟;4:系统时钟5:系统时钟6:系统时钟7:系统时钟(即不分频 ) ;/4(即4分频);/6( 即6分频);/8( 即8分频);/*/ void PWM_Clock(unsigned

20、 char clock) if(clock=2)AUXR |= 0x80;/定时器0时钟为Fosc,即仃TMOD|=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*256/100);CCAP0H = 0XFF-(R0*256/100);CCAP1L = 0XFF-(R1*256/100);CCAP1H = 0XFF-(R1*256/100);if(module=0)CCAPM

21、0 = 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 keycode1=0;PWM_Clock(2); / PCA/PWM 时钟源为 定时器 0 的溢出 PWM_Start(0,20,0);/ 模块0,设置为PWM 输出 ,无中断,初始

22、占空因素为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)keycode1=0;DelayMs(100);if(key2=0)while(key2=0);EA=1;ET0=1;TR0=1;TH0=0xD1;void timer() interrupt 1

23、+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=P1A5;sbit key1=P3A0;sbit key2=P3A1;sbit key3=P3A2;sbit key4=P3A3;U16 i=0;U8 keycode=0;/ 调频U8 table4=0xea,0xf7,0xfa,0xfe;void DelayMs(

24、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 CCON= 0xD8; /PCA 控制寄存器sfr CMOD = 0xD9; /PCA 模式寄存器sfr CCAPM0= 0xDA; /PCA 模 块 0 模 式 寄 存 器P1.3

25、/CEX0/PCA0/PWM0(STC12C5A60S2 系列 )sfr CCAPM1 = 0xDB; /PCA 模 块 1 模 式 寄 存 器P1.4/CEX1/PCA1/PWM1(STC12C5A60S2 系列 )sfr CL= 0xE9; /PCA 定时寄存器低位sfr CH= 0xF9; /PCA 定时寄存器高位sfr CCAP0L= 0xEA; /PCA模块0的捕获寄存器低位sfr CCAP0H= 0xFA; /PCA模块0的捕获寄存器高位sfr CCAP1L= 0xEB; /PCA模块1的捕获寄存器低位sfr CCAP1H= 0xFB; /PCA模块1的捕获寄存器高位/模块0对应/

26、模块1对应sfr PCA_PWM0 = 0xF2; /PCA PWMsfr PCA_PWM1 = 0xF3; /PCA PWMsbit CF= 0xDF;/PCA 计数溢出标志位sbit CR= 0xDE;/PCA 计数器运行控制位sbit CCF1= 0xD9;/PCA 模块1 中断标志sbit CCF0= 0xD8;/PCA 模块0 中断标志sbit ECCF0= 0xDA;sbit ECF= 0xD9;sbit PWM0= 0xD8;模式辅助寄存器0模式辅助寄存器1/* CCAPOH = CCAPOL = 0XC0; /模块 0 输出 占空因数为 25%/* CCAPOH = CCAPO

27、L = 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,即仃TMOD|=0x02;/8 位自动重装载TH0=0xe1;/设定频率CMOD |= 0x05;/(clock<<1);CL = 0;CH = 0;/EA=1;void PWM_Sta

28、rt(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)CCAPM1 = 0X42; / 模块 1 设置为 8 位 PWM 输出,无中断else if(module=2)CCAPM0 = CCAPM1 = 0X42; / 模块 0 和 1 设置为 8

29、位 PWM 输出,无中断void main()25%PWM_Clock(2); / PCA/PWM 时钟源为 定时器 0 的溢出 PWM_Start(0,20,0);/ 模块 0,设置为 PWM 输出,无中断,初始占空因素为TR0=0;EA=1;while(1) if(key1=0)while(!key1)TR0=1;CR=1;i=0;CH =0x9c;/ 0x9c 100步数/ 0x38 200 if(key2=0)EA=0;TR0=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*4200*125CR=0;i=0;五程序功能首先对各寄存器设定初值,选择工作模式,使PCA 计数频率为定时器0 的溢出率,实现可调频率的 PWM 输出。设定CCAP0H 和 CCAP0L 及 CL 和 CH 的初值,当PCA计数器的低位CL从0xFF递减到0x00过程

温馨提示

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

评论

0/150

提交评论