STC系列PWM方式控制两相步进电机_第1页
STC系列PWM方式控制两相步进电机_第2页
STC系列PWM方式控制两相步进电机_第3页
STC系列PWM方式控制两相步进电机_第4页
STC系列PWM方式控制两相步进电机_第5页
免费预览已结束,剩余18页可下载查看

下载本文档

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

文档简介

1、STC系列PvV防式控制两相步进 电机作者: 日期:2个人收集整理,勿做商业用途单片机课程设计步进电机控制专业班级: 姓 名: 学 号: 指导教师:10目录一 课程设计要求二 课程设计目的三 所用仪器及相关说明1.5 7步进电机 23HS66202. DM524 型细分型两相混合式步进电机驱动器3.STC12C5A60S2系列单片机四调试程序【程序一、二】五 程序功能【程序一、二】六误差说明七心得体会八课设说明一课程设计要求通过计算机对单片机芯片的编程, 将单片机与驱动器相连, 从而实现对步进电机 的各种方式控制。二课程设计目的1. 根据所期望的结果编写程序,并在实验仪器上调试和验证。2. 使

2、用步近电机的工作原理与步进电机驱动器。3. 学习控制步进电机转角、速度、方向的实时软件设计三所用仪器及相关说明1.57步进电机 23HS66202.DM524型细分型两相混合式步进电机驱动器,采用直流 1850V 供电,适合驱 动电压24V50V,电流小于 4.0V ,外径4286毫米的两相混合式步进电机。 此驱 动器采用交流伺服驱动器的电流环进行细分控制,电机的转矩波动很小,低速 运行很平稳,几乎没有振动和噪音。高速时力矩也大大高于其它二相驱动器, 定位精度高。广泛适用于雕刻机、数控机床、包装机械等分辩率要求较高的设备上。 电气参数输入电压直流 1850V 输入输入电流小于4安培输出电流1.

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

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

5、制器集电极开路输出图2. 输入接口电路(共阴极接法)控制器 PNP输出注意: VCC值为5V时, R短接; VCC值为12V时, R为1K,大于1/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状

6、 态OFFONOFFONOF FONOFFONOFFONOF FONOFFONOFFSW6状OFOFOFOFOFOFOFOF态ONFFONONFFONONFFONONFFSW7状ONONONOFOFOFOFONONONONOFOFOFOF态FFFFFFFFSW8状OFOFOFOFOFOFOFOF态ONONONONONONONFFFFFFFF步数160320640128256100200400500800100200250400800000000000000000000控制方式选择拨码开关 SW4位可设置成两种控制方式:当设置成 “OFF”时,为有半流功能。当设置成 “ON”时,为无半流功能。

7、设置输出相电流为了驱动不同扭矩的步进电机,用户可以通过驱动器面板上的拨码开关SW1、SW2、SW3位来设置驱动器的输出相电流(有效值)单位安培,各开关位置对应 的输出电流,不同型号驱动器所对应的输出电流值不同。具体见表 2。输出电流 (A)SW1SW2SW3PEAKRMSONONON1.000.71OFFONON1.461.04ONOFFON1.911.36OFFOFFON2.371.69ONONOFF2.842.03OFFONOFF3.312.36ONOFFOFF3.762.69OFFOFFOFF4.203.00半流功能 半流功能是指无步进脉冲 500ms 后,驱动器输出电流自动降为额定输出

8、电流 的70%,用来防止电机发热。功率接口+V、GND:连接驱动器电源+V:直 流电源正级,电源电压直 流1650V。最大电流是 5A。GND:直流电源负级。A+ A- B+ B- :连接两相混合式步进电机 驱动器和两相混合式步进电机的连接采用四线制,电机绕组有并联和串联接法, 并联接法,高速性能好,但驱动器电流大 (为电机绕组电流的 1.73倍), 串联接法时驱动器电流等于电机绕组电流。安装周围要有 20mm 的空间,不能放在其它发热的设备旁,要避免粉尘、油雾、腐蚀 性气体,湿度太大及强振动场所。故障诊断 状态灯指示RUN : 绿灯,正常工作时亮。ERR:红灯,故障时亮,电机相间短路、过压保

9、护和欠压保护。故障及排除故障原因解决措施LED 不亮电源接错检查电源连线电源电压低提高电源电压电机不转,且无保持扭矩电机不转,但有保持扭矩电机转动方向错误电机连线不对脱机使能 RESET 信号有效无脉冲信号输入动力线相序接错方向信号输入不对相电流设置过小改正电机连线使 RESET 无效调整脉冲宽度及信号的电平互换任意两相连线改变方向设定正确设置相电流电机扭矩太小加速度太快电机堵转减小加速度值排除机械故障驱动器与电机不匹配换合适的驱动器驱动器接线一个完整的步进电机控制系统应含有步进驱动器、直流电源以及控制器(脉冲 源)。以下为典型系统接线图:个人收集整理,勿做商业用途3. 单片机 STC12C5

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

11、OMn 位(CCAPMn.6 )来使能比较器功能。 每个 PCA CCAPnH 和 CCAPnL。当出现捕获或比较时,它 们用来保存 16 位的计数值。 当 PCA 模块用在 PWM 出的占空比。脉宽调节模式 (PWM )脉宽调制 (PWM Pulse Width Modulation)是一种使用程序来控制波形占空比、PCA 工作模式寄存器 CMODCPS2、CPS1、CPS0:PCA 计数脉冲源选择控制位。 当三者分别为 0、1、0 时,选择 PCA/PWM 时钟源输入为定时器 0 的溢出频率。由于定时器 0 可以工作在 1T 模式,所以可以达到计一 个时钟就溢出,从而达到最高工作频率 CP

12、U 时钟 SYSclk 。通过改变定时器 0 的溢出率,可 以实现可调频率的 PWM 输出。四调试程序个人收集整理,勿做商业用途【程序一】#include <REG51.H> #include <intrins.h> #define U8 unsigned char #define U16 unsigned int sbit key1=P10; sbit key2=P11; sbit key3=P15; sbit key4=P16;U8 table4=0xea,0xf2,0xfa,0xfc;U8 table14=0xfc,0xfa,0xf2,0xea;U16 timer

13、0=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 模式寄存器sfr CCAPM0P1.3/CEX

14、0/PCA= 0xDA; /PCA0/PWM0(STC12C5A60S2模块 系列 )0 模 式 寄存器/ 模 块0 对 应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= 0xFA; /PCA模块0 的 捕获寄存器高位sfr CCAP1L= 0xEB; /PCA模块1的 捕获寄存器低位sfr CCAP1H

15、= 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 中断标志/* CCAPOH =CCAPOL =0XC0; /模块 0 输出 占空因数为25%/* CCAPOH =CCAPOL =0X80; /模块 0 输出 占空因数为50%/*

16、 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:系统时钟 /4(即 4分频 );6:系统时钟 /6(即 6分频 );7:系统时钟 /8(即 8分频 ); /* void PWM_Clock(u

17、nsigned 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*256/100);CCAP0H = 0XFF-(R0*256/100);CCAP1L = 0XFF-(R1*256/100);CCAP1H = 0XFF-(R1*256/100);if(m

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

19、 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) keycode1=0;DelayMs(100);if(key2=0)while(key2=0);EA=1;ET0=1;TR0=1;TH0=0xD1;void timer(

20、) 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=P31;sbit key3=P32;sbit key4=P33;U16 i=0;U8 keycode=0;/ 调频U8 table4=0xea,0xf7,0xfa,0xfe;1

21、8void 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;= 0xD8; /PCA 控制寄存器= 0xD9; /PCA 模式寄存器 0xDA; /PCAsfr CCONsfr CMODsfr CCAPM0P1.3/CEX

22、0/PCA0/PWM0(STC12C5A60S2sfr CCAPM1 = 0xDB; /PCA P1.4/CEX1/PCA1/PWM1(STC12C5A60S2 sfr CLsfr CHsfr CCAP0Lsfr CCAP0Hsfr CCAP1Lsfr CCAP1H= 0xE9; /PCA 定时寄存器 = 0xF9; /PCA 定时寄存器 = 0xEA; /PCA= 0xFA; /PCA= 0xEB; /PCA= 0xFB; /PCA模块 0 的 模块 0 的 模块 模块模 块 0 系列 ) 模 块 1 系列 ) 低位 高位 捕获寄存器 捕获寄存器 捕获寄存器 捕获寄存器寄存器寄存器/ 模 块

23、 0 对 应/ 模 块 1 对 应sfr PCA_PWM0 = 0xF2; /PCA PWM sfr PCA_PWM1 = 0xF3; /PCA PWM的的 模式辅助寄存器 模式辅助寄存器低位 高位 低位 高位 01sbit CF sbit CRsbit CCF1sbit CCF0 sbit ECCF0 sbit ECF= 0xDF;= 0xDE;= 0xD9;= 0xD8;= 0xDA;= 0xD9;sbit PWM0= 0xD8;/PCA 计数溢出标志位/PCA 计数器 运行控制位/PCA 模块 1 中断标志/PCA 模块 0 中断标志/* CCAPOH = CCAPOL = 0XC0;

24、/模块 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,即 1TTMOD|=0x02; /8 位自动重装载TH0=0xe1;/设定频率CMOD |= 0x05;/(c

25、lock<<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)CCAPM1 = 0X42; / 模块 1 设置为 8 位 PWM 输出,无中断 else i

26、f(module=2)CCAPM0 = CCAPM1 = 0X42; / 模块 0和 1 设置为 8 位 PWM 输出,无中断个人收集整理,勿做商业用途25%if(key2=0)EA=0;TR0=1;CR=1;while(key2=0);void main()PWM_Clock(2);PWM_Start(0,20,0);TR0=0;/ PCA/PWM 时钟源为 定时器 0 的溢出/ 模块 0,设置为 PWM 输出,无中断 ,初始占空因素为EA=1;while(1)if(key1=0)while(!key1)TR0=1;CR=1;i=0;CH =0x9c;/ 0x9c 100/ 0x38 200

27、步数TH0=tablekeycode;/ 调频keycode+;if(keycode=4)keycode=0;if(key3=0)while(!key3)DIR=0;/方向DelayMs(100);20个人收集整理,勿做商业用途void PCA_isr() interrupt 7i=i+1;CH=0x9c;/ 0x9c100 步数/ 0x37200CF=0; if(i=100)/100*4200*125CR=0; i=0;五程序功能首先对各寄存器设定初值,选择工作模式,使 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

提交评论