文档库 最新最全的文档下载
当前位置:文档库 › 步进电机正反转控制C语言程序,只为初学者

步进电机正反转控制C语言程序,只为初学者

步进电机正反转控制C语言程序,只为初学者
步进电机正反转控制C语言程序,只为初学者

只为初学者的步进电机正反控制程序

#include<>

#define uchar unsigned char

#define uint unsigned int

#define MotorData P2 //步进电机控制接口定义

sbit zheng=P3^0;

sbit fan=P3^1;

sbit stop=P3^2;

uchar phasecw[8] ={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转

uchar

phaseccw[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//反转

//ms延时函数

void delay(uint t)

{ uint k;

while(t--)

{

for(k=0; k<125; k++); }

}

void Delay_xms(uint x)

{

uint i,j;

for(i=0;i

for(j=0;j<112;j++);

}

//顺时针转动

void Motor_work(uint t)

{

uchar i,j;

switch(t)

{

case 0:

while(1)

{if(stop==0)

break;

for(i=0;i<8;i++)

{MotorData=phasecw[i]; delay(50);//转速调节 }

}

break;

case 1:

while(1)

{if(stop==0)

break;

for(j=0;j<8;j++)

{MotorData=phaseccw[j]; delay(50);//转速调节 }

}

break;

}

}

//停止转动

void Motor_test(void)

{

if(zheng==0)

{ Delay_xms(10);

if(zheng==0)

Motor_work(0);

}

if(fan==0)

{ Delay_xms(10);

if(fan==0)

Motor_work(1);

}

}

//主函数

void main(void)

{

Delay_xms(10);//等待系统稳定 while(1)

{

Motor_test();

}

}

电机正反转电路图

电机正反转电路图

三相异步电动机接触器联锁的正反转控制的电气电子原理图如图3-4所示。线路中采用了两个接触器,即正转用的接触器KM1和反转用的接触器KM2,它们分别由正转按钮SB2和反转按钮SB3控制。这两个接触器的主触头所接通的电源相序不同,KM1按L1—L2—L3相序接线,KM2则对调了两相的相序。控制电路有两条,一条由按钮SB2和KM1线圈等组成的正转控制电路;另一条由按钮SB3和KM2线圈等组成的反转控制电路。

220v单相电机正反原理 单相电机不同于三相电机,三相电进入电机后,由于存在120°电角度,所以产生N S N S旋转磁场,推动转子旋转。而单相电进入电机后,产生不了N S N S磁场,所以加了一个启动绕组,启动绕组在定子内与工作绕组错开90°电角度排列,外接离心开关和启动电容后与工作绕组并联接入电源,又因为电容有阻直通交的作用,交流电通过电容时又滞后一个电角度,这样就人为地把进入电机的单相电又分出来一相,产生旋转磁场,推动转子旋转。反转时,只要把工作绕组或者启动绕组的两个接线对调一下就行,产生S N S N的磁场,电机就反转了。 网友完善的答案好评率:75% 单相电机的接线方法,是在副绕组中串联(不是并联)电容,再与主绕组并联接入电源;只要调换一下主绕组与副绕组的头尾并联接线,电机即反转 如果电机是3条出线的,其中一条是公共点!(分别与另外2条线的测电阻其值较小)接电源零线!然后把剩下的两条线并联电容,在电容的一端接220V电源相(火)线,就可以了!若要改变电机转向只要把220V电源相(火)线接在电容的另一端就可以了!

笼型电动机正反转的控制线路(电路图) 发布: | 作者: | 来源: jiasonghu | 查看:775次 | 用户关注: 接通电源让KMF--线圈通电其主触点闭合三相电源ABC分别通入电机三相绕组UVW,电动机正转。KMF线圈断电,主触点打开,电机停。让KMR线圈通电----其主触点闭合三相电源ABC通入电机三相绕组变为A—U未变,但B—W,C—V。电动→笼型电动机正反转的控制线路要使电动机给够实现反转,只要把接到电源的任意两根联线对调一头即可。为此用两个接触器来实现这一要求。设KMF为实现电机正转的接触器,KMR为实现电机反转的接触器。合上--S 笼型电动机正反转的控制线路 要使电动机给够实现反转,只要把接到电源的任意两根联线对调一头即可。为此用两个接触器来实现这一要求。 设 KMF 为实现电机正转的接触器, KMR 为实现电机反转的接触器。 接通电源→合上--S 让 KMF--线圈通电其主触点闭合 三相电源 ABC 分别通入电机三相绕组 UVW ,电动机正转。 KMF 线圈断电,主触点打开,电机停。 让 KMR 线圈通电----其主触点闭合 三相电源 ABC 通入电机三相绕组变 为 A — U 未变,但 B — W ,C — V。电动机将反转

西门子S 系列PLC控制步进电机进行正反转的方法

1、主程序先正转,等到正转完了就中断,中断中接通个辅助触点(),当闭合,住程序中的反转开始运做。这样子就OK了。 2、用PTO指令让OR 高速脉冲,另一个点如做方向信号,就可以控制正反转了,速度快慢就要控制输出脉冲周期了,周期越短速度越快,如果你速度很快的话请考虑缓慢加速,不然它是启动不了的,如果方向也变的快的话就要还做一个缓慢减速,不然它振动会蛮厉害,而且也会失步。 3、程NETWORK 1 // 用于单段脉冲串操作的主程序(PTO) // 首次扫描时,将映像寄存器位设为低 // 并调用子程序0 LD R 1 CALL SBR_0 NETWORK 1 // 子程序0开始 LD MOVB 16#8D SMB67 // 设置控制字节: // - 选择PTO操作 // - 选择单段操作 // - 选择毫秒增加 // - 设置脉冲计数和周期数值 // - 启用PTO功能 MOVW +500 SMW68 // 将周期设为500毫秒。 MOVD +4 SMD72 // 将脉冲计数设为4次脉冲。 ATCH INT_0 19 // 将中断例行程序0定义为 // 处理PTO完成中断的中断。 ENI // 全局中断启用

PLS 0 // 激活PTO操作,PLS0 =》 MOVB 16#89 SMB67 // 预载控制字节,用于随后的 // 周期改动。 NETWORK 1 // 中断0开始 // 如果当前周期为500毫秒: // 将周期设为1000毫秒,并生成4次脉冲 LDW= SMW68 +500 MOVW +1000 SMW68 PLS 0 CRETI NETWORK 2 // 如果当前周期为1000毫秒: // 将周期设为500毫秒,并生成4次脉冲 LDW= SMW68 +1000 MOVW +500 SMW68 PLS 0序注释 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。 如需进一步了解相关PLC产品的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城。

51单片机控制的步进电机C语言程序

我上周刚做的这个实验成功拉,给你参考一下吧这可是我当时辛辛苦苦编出来的啊,不过我用的是L298驱动的和ULN2003一样,你把它换成2003就行拉 #include unsigned char code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf 9,0x00,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0x00}; unsigned char temp,temp_old; unsigned char key; unsigned char i,j,k,m,s; void delay(int i) { for(m=i;m>0;m--) for(j=250;j>0;j--) for(k=10;k>0;k--); } void saomiao() { P3=0xff; P3_4=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--)

for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b: key=3; break; case 0x07: key=4; break; } temp=P3;

temp=temp&0x0f; while(temp!=0x0f) { temp=P3; temp=temp&0x0f; } } } P3=0xff; P3_5=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp)

基于单片机ATS控制步进电机正反转

基于单片机A T S控制步进 电机正反转 The latest revision on November 22, 2020

目录 步进电机 (7) 附件A 源程序 .......................................... (12) 附件B 仿真结果 (15) 致谢 (18)

摘要 能够实现步进电机控制的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测日新月异更新。本文介绍一种用AT89S52作为核心部件进行逻辑控制及信号产生的单片机技术和汇编语言编程设计的步进电机控制系统,步进电机背景与现状、硬件设计、软件设计及其仿真都做了详细的介绍,使我们不仅对步进电机的原理有了深入的了解,也对单片机的设计研发过程有了更加深刻的体会。本控制系统采用单片机控制,通过人为按动开关实现步进电机的开关,复位。该系统还增加了步进电机的加速及减速功能。具有灵活方便、适用范围广的特点,基本能够满足实践需求。 关键词: AT89S52 步进电机 ULN2003 第一章系统分析 框图设计 根据系统要求画出基于AT89S52单片机的控制步进电机的控制框图如图2-1所示。

图2-1基于AT89C52单片机的控制步进电机的控制框图 系统主要包括单片机、复位电路、晶振电路、按键电路、步进电机及驱动电路几部分。 晶振电路 AT89C52单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。 晶振模块自带振荡器、提供低阻方波输出,并且能够在一定条件下保证运行。最常用的两种类型是晶振模块和集成RC振荡器(硅振荡器)。晶振模块提供与分立晶振相同的精度。硅振荡器的精度要比分立RC振荡器高,多数情况下能够提供与陶瓷谐振槽路相当的精度。图2-2为晶振电路。 图2-2 晶振电路 第二章系统设计 硬件连接图 根据图2-1,可以设计出单片机控制步进电机的硬件电路图,如图3-1所示。

单相电机的倒顺开关正反转接线图及原理(一看便能搞懂)

单相电机的倒顺开关接线及原理 有不少电工对单相电机的接线搞不清。我先对单相电机的正反转原理讲一下。单机电机里面有二组线圈,一组是运转线圈(主线圈),一组是启动线圈(副线圈),大多的电机的启动线圈并不是只启动后就不用了,而是一直工作在电路中的。启动线圈电阻比运转线圈电阻大些,量下就知了。启动的线圈串了电容器的。也就是串了电容器的启动线圈与运转线圈并联,再接到220V电压上,这就是电机的接法。当这个串了电容器的启动线圈与运转线圈并联时,并联的二对接线头的头尾决定了正反转的。比起三相电动机的顺逆转控制,单相电动机要困难得多,一是因为单相电动机有启动电容、运行电容、离心开关等辅助装置,结构复杂;二是因为单相电动机运行绕组和启动绕组不一样,不能互为代用,增加了接线的难度,弄错就可能烧毁电动机。 有接线盒的单相电动机内部接线图

上图,是双电容单相电动机接线盒上的接线图,图上清晰的反映了电动机主绕组、副绕组和电容的接线位置,你只需要按图接进电源线,用连接片连接Z2和U2,UI和VI,电动机顺转,用连接片连接Z2和U1,U2和VI,电动机逆转。 单相电动机各个元件也好鉴别,电容都是装在外面,用肉眼就可以看清楚接线位置(如上图)启动电容接在V2—Z1位置,运行电容接在V1—Z1间,从里面引出的线也好鉴别,接在(如上图)UI—U2位置的是运行绕组,接在Z1—Z2位置的是启动绕组、接在V1—V2位置的是离心开关。用万用表也容易区分6根线,阻值最大的是启动绕组,阻值比较小的运行绕组,阻值为零的是离心开关。如果运行绕组和启动绕组阻值一样大,说明这两个绕组是完全相同的,可以互为代用。单相电动机的绕组两端和电容两端不分极性,任意接都可以,但启动绕组和运行绕组不能接反,启动电容和运行电容不能接反,否则容易烧启动绕组 以下是自己为了消化吸收而画的接线图,在此献给广大电工朋友,希望能给大家带来一些帮助。本人学识粗浅,特建立 QQ群:79694587 以便大家相互学习。

西门子S系列PLC控制步进电机进行正反转的方法

西门子S系列P L C控制步进电机进行正反转 的方法 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

1、主程序先正转,等到正转完了就中断,中断中接通个辅助触点(),当闭合,住程序中的反转开始运做。这样子就OK了。 2、用PTO指令让 OR 高速脉冲,另一个点如做方向信号,就可以控制正反转了,速度快慢就要控制输出脉冲周期了,周期越短速度越快,如果你速度很快的话请考虑缓慢加速,不然它是启动不了的,如果方向也变的快的话就要还做一个缓慢减速,不然它振动会蛮厉害,而且也会失步。 3、程NETWORK 1 // 用于单段脉冲串操作的主程序(PTO) // 首次扫描时,将映像寄存器位设为低 // 并调用子程序0 LD R 1 CALL SBR_0 NETWORK 1 // 子程序0开始 LD MOVB 16#8D SMB67 // 设置控制字节: // - 选择PTO操作 // - 选择单段操作 // - 选择毫秒增加 // - 设置脉冲计数和周期数值 // - 启用PTO功能 MOVW +500 SMW68 // 将周期设为500毫秒。 MOVD +4 SMD72 // 将脉冲计数设为4次脉冲。 ATCH INT_0 19 // 将中断例行程序0定义为 // 处理PTO完成中断的中断。 ENI // 全局中断启用

PLS 0 // 激活PTO操作,PLS0 =》 MOVB 16#89 SMB67 // 预载控制字节,用于随后的 // 周期改动。 NETWORK 1 // 中断0开始 // 如果当前周期为500毫秒: // 将周期设为1000毫秒,并生成4次脉冲 LDW= SMW68 +500 MOVW +1000 SMW68 PLS 0 CRETI NETWORK 2 // 如果当前周期为1000毫秒: // 将周期设为500毫秒,并生成4次脉冲 LDW= SMW68 +1000 MOVW +500 SMW68 PLS 0序注释 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。 如需进一步了解相关PLC产品的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城。

步进电机正反转控制C语言程序 只为初学者

只为初学者的步进电机正反控制程序 #include<> #define uchar unsigned char #define uint unsigned int #define MotorData P2 //步进电机控制接口定义 sbit zheng=P3^0; sbit fan=P3^1; sbit stop=P3^2; uchar phasecw[8] ={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转 uchar phaseccw[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//反转 //ms延时函数 void delay(uint t) { uint k; while(t--) { for(k=0; k<125; k++); } } void Delay_xms(uint x) { uint i,j; for(i=0;i

void Motor_work(uint t) { uchar i,j; switch(t) { case 0: while(1) {if(stop==0) break; for(i=0;i<8;i++) {MotorData=phasecw[i]; delay(50);//转速调节 } } break; case 1: while(1) {if(stop==0) break; for(j=0;j<8;j++) {MotorData=phaseccw[j]; delay(50);//转速调节 } } break; } } //停止转动 void Motor_test(void) { if(zheng==0) { Delay_xms(10); if(zheng==0) Motor_work(0); } if(fan==0) { Delay_xms(10); if(fan==0) Motor_work(1); } } //主函数 void main(void) {

直流电机正反转C程序

//直流电机正反转C程序 #include #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit key4=P3^0; sbit key1=P3^1; //sbit set=P3^4; bit flag=0; uchar bai,shi,ge; uint i,count,num; uint disnum;//循环次数 uchar code tabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0}; void delay_12MHZ_s(uint x) { uint j,k,i; for(j=x;j>0;j--) for(k=112;k>0;k--) for(i=1114;i>0;i--); } void delay_ms(uint x) { uint j,k; for(j=x;j>0;j--) for(k=112;k>0;k--); } void display_sm()//三位数码管显示循环次数 { bai=disnum/100; shi=disnum%100/10; ge=disnum%10; dula=1; if(bai==0)//如果百位是0则不显示百位 P0=0xff; else P0=tabledu[bai]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay_ms(10);

电动机正反转控制电路图及其原理分析

正反转控制电路图及其原理分析 要实现电动机的正反转,只要将接至电动机三相电源进线中的任意两相对调接线,即可达到反转的目的。下面是接触器联锁的正反转控制线路,如图所示

图中主回路采用两个接触器,即正转接触器KM1和反转接触器KM2。当接触器KM1的三对主触头接通时,三相电源的相序按U―V―W接入电动机。当接触器

KM1的三对主触头断开,接触器KM2的三对主触头接通时,三相电源的相序按W―V―U接入电动机,电动机就向相反方向转动。电路要求接触器KM1和接触器KM2不能同时接通电源,否则它们的主触头将同时闭合,造成U、W两相电源短路。为此在KM1和KM2线圈各自支路中相互串联对方的一对辅助常闭触头,以保证接触器KM1和KM2不会同时接通电源,KM1和KM2的这两对辅助常闭触头在线路中所起的作用称为联锁或互锁作用,这两对辅助常闭触头就叫联锁或互锁触头。 正向启动过程:按下起动按钮SB2,接触器KM1线圈通电,与SB2并联的KM1的辅助常开触点闭合,以保证KMl线圈持续通电,串联在电动机回路中的KM1的主触点持续闭合,电动机连续正向运转。 停止过程:按下停止按钮SB1,接触器KMl线圈断电,与SB2并联的KM1的辅助触点断开,以保证KMl线圈持续失电,串联在电动机回路中的KMl的主触点持续断开,切断电动机定子电源,电动机停转。 反向起动过程:按下起动按钮SB3,接触器KM2线圈通电,与SB3并联的KM2的辅助常开触点闭合,以保证KM2线圈持续通电,串联在电动机回路中的KM2的主触点持续闭合,电动机连续反向运转。 对于这种控制线路,当要改变电动机的转向时,就必须先按停止按钮SB1,再按反转按钮SB3,才能使电机反转。如果不先按SB1,而是直接按SB3,电动机是不会反转的。

最新51单片机控制的步进电机C语言程序汇总

51单片机控制的步进电机C语言程序

51单片机控制的步进电机C语言程序 用的是L298驱动的和ULN2003一样,你把它换成2003就行拉 #include unsigned char code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9,0x00,0xf1,0xf9,0xf8,0xfc,0xf4, 0xf6,0xf2,0xf3,0x00}; unsigned char temp,temp_old; unsigned char key; unsigned char i,j,k,m,s; void delay(int i) { for(m=i;m>0;m--) for(j=250;j>0;j--) for(k=10;k>0;k--); } void saomiao() { P3=0xff; P3_4=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b:

key=3; break; case 0x07: key=4; break; } temp=P3; temp=temp&0x0f; while(temp!=0x0f) { temp=P3; temp=temp&0x0f; } } } P3=0xff; P3_5=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=7; break; } temp=P3;

电机正反转联动控制电路图

按钮联锁正反转控制线路 图2—12 按钮联锁正反转控制电路图 图2-12 按钮联锁正反转控制电路图接触器联锁正反转控制线路

双重联锁正反转控制线路 元件安装图

元件明细表 1、线路的运用场合: 正反转控制运用生产机械要求运动部件能向正反两个方向运动的场合。如机床工作台电机的前进与后退控制;万能铣床主轴的正反转控制;电梯、起重机的上升与下降控制等场所。 2、控制原理分析 (1)、控制功能分析:A、怎样才能实现正反转控制? B、为什么要实现联锁? 这两个问题是本控制线路的核心所在,务必要透彻地理解,否则只会接线安装,那只是知其然而不知其所以然。另外,问题的提出,一方面让学生学会去思考,另一方面也培养学生发现问题、分析问题的能力。教学中,计划先让学生温书预习(5分钟)、寻找答案,再集中讲解。先提问抽查,让学生能各抒己见、充分发挥,最后再总结归纳,解答所提出的问题,进一步统一全班思路。答案如下: A、电机要实现正反转控制:将其电源的相序中任意两相对调即可(简称换相),通常是V相不变,将U相与W 相对调。 B、由于将两相相序对调,故须确保2个KM线圈不能同时得电,否则会发生严重的相间短路故障,因此必须采取联锁。为安全起见,常采用按钮联锁和接触器联锁的双重联锁正反转控制线路(如原理图所示)

(2)、工作原理分析 C、停止控制: 按下SB3,整个控制电路失电,接触器各触头复位,电机M失电停转 (3)双重联锁正反转控制线路的优点: 接触器联锁正反转控制线路虽工作安全可靠但操作不方便;而按钮联锁正反转控制线路虽操作方便但容易产生电源两相短路故障。双重联锁正反 转控制线路则兼有两种联锁控制线路的优点,操作方便,工作安全可靠。 3、怎样正确使用控制按钮? 控制按钮按用途和触头的结构不同分停止(常闭按钮)、起动按钮(常开按钮)和复合按钮(常开和常闭组合按钮)。按钮的颜色有红、绿、黑等,一般红色表示“停止”,绿色表示“起动”。接线时红色按钮作停止用,绿色或黑色表示起动或通电。 三、注意事项

单片机课设步进电机控制正反转(单片机爱好者)

单片机课程设计报告设计题目:步进电机控制系统 学院机械工程学院 专业机械设计制造及其自动化 班级 姓名 学号 指导教师 湖北工业大学 2010 年秋季学期

目录 1.设计目的 (2) 2.设计的主要内容和要求 (2) 3.题目及要求功能分析 (2) 4.设计方案 (5) 4.1 整体方案 (5) 4.2 具体方案 (5) 5.硬件电路的设计 (6) 5.1 硬件线路 (6) 5.2 工作原理 (7) 5.3 操作时序 (8) 6. 软件设计 (8) 6.1 软件结构 (8) 6.2 程序流程 (9) 6.3 源程序清单 (9) 7. 系统仿真 (9) 8. 使用说明 (10) 9. 设计总结 (10) 参考文献 (11) 附录 (12)

步进电机的控制 1.设计目的 (1)熟悉单片机编程原理。 (2)熟练掌握51单片机的控制电路和最小系统。 (3)单片机基本应用系统的设计方法。 2.设计的主要内容和要求 (1)查阅资料,了解步进电机的工作原理。 (2)通过单片机给参数控制电机的转动。 (3)通过按钮控制启停及反转。 (4)其他功能。 3.题目及要求功能分析 步进电机:步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其精度高等特点,广泛应用于各种工业控制系统中。 三相单、双六拍步进电机的结构和工作原理: 三相单、双六拍步进电机通电方式:这种方式的通电顺

步进电机加减速程序

步进电机加减速程序 2009-7-24 14:52 提问者:568826036|浏览次数:1251次 要求C语言写的程序 2009-7-29 14:43 最佳答案 main.c文件内容: #include"stm32f10x_lib.h" #include"main.h" TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; GPIO_InitTypeDef GPIO_InitStructure; ErrorStatus HSEStartUpStatus; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; int pulse; int StepCount; int pulse1; int pulse2; int t1; int t2; int r1; int r2; void RCC_Configuration(void); void NVIC_Configuration(void); void GPIO_Configuration(void); void TIM2_Configuration(void); void f(int Vt,int a,int d,int S); #define VECT_TAB_RAM int main(void) { #ifdef DEBUG debug();/*[初始化外围设备指针]*/ #endif RCC_Configuration(); //初始化时钟与复位 NVIC_Configuration();//初始化中断嵌套 TIM2_Configuration();//初始化定时器 GPIO_Configuration(); GPIO_WriteBit(GPIOD, GPIO_Pin_7, (BitAction)(0));

直流电机正反转控制

(课程设计说明书(2015/2016 学年第二学期) 课程名称:单片机应用技术课程设计 题目:直流电机正反转控制 专业班级:电气工程及其自动化1321班 学生姓名: 学号: 1 指导教师: 设计周数:两周设计成绩: 2016年6月24日 目录 一、课程设计目的-----------------------------------3 二、课程设计任务及要求-----------------------------3 原始数据及主要任务------------------------------------------3 技术要求----------------------------------------------------3 三、单片机简介-------------------------------------3 四、软件设计---------------------------------------4

系统分析及应用种类-------------------------------------------4 系统设计-----------------------------------------------------5 五、电路设计---------------------------------------5 电机驱动电路设计------------- -----------------------------5 显示电路设计-------------------------------------------------6 按键设计-----------------------------------------------------6 Proteus 仿真图-----------------------------------------------6 Protel 99se 原理图-------------------------------------------7 六、程序设计---------------------------------------7 七、操作控制--------------------------------------12 八、心得体会--------------------------------------12 九、参考文献--------------------------------------12 一、课程设计目的 通过长达两周的课程设计,加深对《单片机》课程所学理论知识的理解,运用所学理论知识解决实际问题。结合课程设计的内容,学会利用Protel软件绘制电路原理图,掌握电路的设计与组装方法,进行软硬件联机调试。学会查阅相关专业技术资料及设计手册,提高进行独立设计的能力并完成课程设计相关任务。 二、课程设计任务及要求 原始数据及主要任务 1.设计直流电机控制电路。 2.设计数码管显示电路。 3.设计开关电路。 4.分配地址,编写系统程序。 5.利用Protel设计硬件电路原理图和PCB图。 6.软硬件联机调试。

步进电机正反转控制C语言程序只为初学者

步进电机正反转控制C 语言程序只为初学者公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

只为初学者的步进电机正反控制程序 #include<> #define uchar unsigned char #define uint unsigned int #define MotorData P2 //步进电机控制接口定义 sbit zheng=P3^0; sbit fan=P3^1; sbit stop=P3^2; uchar phasecw[8] ={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转uchar phaseccw[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//反转//ms延时函数 void delay(uint t) { uint k; while(t--) { for(k=0; k<125; k++); } } void Delay_xms(uint x) { uint i,j; for(i=0;i

void Motor_work(uint t) { uchar i,j; switch(t) { case 0: while(1) {if(stop==0) break; for(i=0;i<8;i++) {MotorData=phasecw[i]; delay(50);//转速调节 } } break; case 1: while(1) {if(stop==0) break; for(j=0;j<8;j++) {MotorData=phaseccw[j]; delay(50);//转速调节 } } break; } } //停止转动 void Motor_test(void) { if(zheng==0) { Delay_xms(10); if(zheng==0) Motor_work(0); } if(fan==0) { Delay_xms(10); if(fan==0) Motor_work(1); } } //主函数 void main(void) {

电机正反转控制电路及实际接线图(个人学习用)

三相异步电动机正反转控制电路图原理及plc接线与编程在图1是三相异步电动机正反转控制的电路和继电器控制电路图,图2与3是功能与它相同的PLC控制系统的外部接线图和梯形图,其中,KM1和KM2分别是控制正转运行和反转运行的交流接触器. 在梯形图中,用两个起保停电路来分别控制电动机的正转和反转。按下正转启动按钮SB2,X0变ON,其常开触点接通,Y0的线圈“得电”并自保。使KM1的线圈通电,电机开始正转运行。按下停止按钮SB1,X2变ON,其常闭触点断开,使Y0线圈“失电”,电动机停止运行。 在梯形图中,将Y0与Y1的常闭触电分别与对方的线圈串联,可以保证他们不会同时为ON,因此KM1和KM2的线圈不会同时通电,这种安全措施在继电器电路中称为“互锁”。除此之外,为了方便操作和保证Y0和Y1不会同时为ON,在梯形图中还设置了“按钮互锁”,即将反转启动按钮X1的常闭点与控制正转的Y0的线圈串联,将正转启动按钮X0的常闭触点与控制反转的Y1的线圈串联。设Y0为ON,电动机正转,这是如果想改为反转运行,可

以不安停止按钮SB1,直接安反转启动按钮SB3,X1变为ON,它的常闭触点断开,使Y0线圈“失电”,同时X1的敞开触点接通,使Y1的线圈“得电”,点击正转变为反转。 在梯形图中的互锁和按钮联锁电路只能保证输出模块中的与Y0和Y1对应的硬件继电器的常开触点心不会同时接通。由于切换过程中电感的延时作用,可能会出现一个触点还未断弧,另一个却已合上的现象,从而造成瞬间短路故障。 可以用正反转切换时的延时来解决这一问题,但是这一方案会增大编程的工作量,也不能解决不述的接触触点故障引起的电源短路事故。如果因主电路电流过大或者接触器质量不好,某一接触器的主触点被断电时产生的电弧熔焊而被粘结,其线圈断电后主触点仍然是接通的,这时如果另一个接触器的线圈通电,仍将造成三相电源短路事故。为了防止出现这种情况,应在PLC外部设置KM1和KM2的辅助常闭触点组成的硬件互锁电路(见图2),假设KM1的主触点被电弧熔焊,这时它与KM2线圈串联的辅助常闭触点处于断开状态,因此KM2的线圈不可能得电。 图1中的FR是作过载保护用的热继电器,异步电动机长期严重过载时,经过一定延时,热继电器的常开触点断开,常开触点闭合。其常闭触点与接触器的线圈串联,过载时接触其线圈断电,电机停止运行,起到保护作用。 有的热继电器需要手动复位,即热继电器动作后要按一下它自带的复位按钮,其触点才会恢复原状,及常开触点断开,常闭触点闭合。这种热继电器的常闭触点可以像图2那样接在PLC的输出回路,仍然与接触器的线圈串联,这反而可以节约PLC的一个输入点。 有的热继电器有自动复位功能,即热继电器动作后电机停止转,串接在主回路中的热继电器的原件冷却,热继电器的触点自动恢复原状。如果这种热断电器的常闭触点仍然接在PLC的输出回路,电机停止转动后果一段时间会因热继电器的触点恢复原状而自动重新运转,可能会造成设备和人身事故。因此有自动复位功能的热继电器的常闭触点不能接在PLC的输出回路,必须将它的触点接在PLC的输入端(可接常开触点或常闭触点),用梯形图来实现点击的过载保护。如果用电子式电机过载保护来代替热继电器,也应注意它的复位. 电动机正反转实物接线图

单片机控制直流电机正反转

目录 第1章总体设计方案 (1) 1.1 总体设计方案 (1) 1.2 软硬件功能分析 (1) 第2章硬件电路设计 (2) 2.1 单片机最小系统电路设计 (2) 2.2直流电机驱动电路设计 (2) 2.3 数码管显示电路设计 (4) 2.4 独立按键电路设计 (5) 2.5 系统供电电源电路设计 (5) 2.5.1直流稳压电路中整流二极管的选取: (6) 2.5.2直流稳压电路中滤波电容的选取: (6) 第3章系统软件设计 (7) 3.1 软件总体设计思路 (7) 3.2 主程序流程设计 (7) 附录1 总体电路图 (10) 附录2 实物照片 (11) 附录3 C语言源程序 ....................................... 12

实习报告 第1章总体设计方案 1.1 总体设计方案 早期直流传动的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂、零漂电压,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低。随着计算机控制技术的发展,微处理器已经广泛使用于直流传动系统,实现了全数字化控制。由于微处理器以数字信号工作,控制手段灵活方便,抗干扰能力强。所以,全数字直流调速控制精度、可靠性和稳定性比模拟直流调速系统大大提高。所以,本次实习采用了驱动芯片来驱动直流电机,并运用单片机编程控制加以实现。 系统设计采用驱动芯片来控制的,所以控制精度和可靠性有了大幅度的提高,并且驱动芯片具有集成度高、功能完善的特点,从而极的大简化了硬件电路的设计。 图1.1 直流电机定时正反转方案 1.2 软硬件功能分析 本次实习直流电机控制系统以STC89C52单片机为控制核心,由按键输入模块、LED显示模块及电机驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给L293D直流电机驱动芯片发送PWM波形,H 型驱动电路完成电机正,反转控制;同时单片机不停的将变化的定时时间送到LED数码管完成实时显示。

步进电机正反转程序

步进电机正反转程序 #include //51芯片管脚定义头文件 #include //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //四相八拍正转编码 uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; ////四相八拍反转编码 sbit K1 = P3^2; //正转 sbit K2 = P3^3; //反转 sbit K3 = P3^4; //停止 sbit BEEP = P3^6; //蜂鸣器 /********************************************************/ /* /* 延时t毫秒 /* 11.0592MHz时钟,延时约1ms /* /********************************************************/ void delay(uint t) { uint k; while(t--) {

for(k=0; k<125; k++) { } } } /********************************************************** / void delayB(uchar x) //x*0.14MS { uchar i; while(x--) { for (i=0; i<13; i++) { } } } /********************************************************** / void beep() { uchar i; for (i=0;i<100;i++) { delayB(4); BEEP=!BEEP; //BEEP取反

步进电机控制程序(c语言+51单片机)

步进电机控制程序(c语言+51单片机) 发布:2011-05-31 | 作者: | 来源: guozhangfu | 查看:720次 | 用户关注: 摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器-电容(OTA—C)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。仿真结果表明,该滤波器带宽的可调范围为1~26 MHz,阻带抑制率大于35 dB,带内波纹小于0.5 dB,采用1.8 V电源,TSMC 0.18μm CMOS工艺库仿真,功耗小于21 mW,频响曲线接近理想状态。关键词:Butte #include #define uint unsigned int #define uchar unsigned char #define ms *77 // f = 12 M #define LEDLen 4 #define Dj_star() {IE=0x81; pri_dj=0; } #define Dj_stop() {IE=0x00; pri_dj=1; P1=0xff; shache="0"; delay(800ms); delay(800ms);delay(400ms); shache = 1; } #define Chilun_Num 8 /* 齿轮数 8 个*/ #define set_display_num() { LEDBuf[0] = tmp / 1000; LEDBuf[1] = tmp / 100 % 10; LEDBuf[2] = tmp / 10 % 10; LEDBuf[3] = tmp % 10; } uchar LEDBuf[LEDLen] = {0,0,0,0}; void read_num (); /* 读播码盘到 set_round_num * 8 */ void display (); void delay(uint delay_time) { uint i; for (i=0; i < delay_time ; i++) ; } void run (); void fx_run(); uint round_num = 0; /* 记录已转的齿轮数 , 中断1次加1*/ uint set_round_num = 0; /* 播码盘设置圈数 */ uint set_pwm_width = 0; /* 播码盘设置步进电机正向速度 */ bit one_round_flg = 0; sbit led_1000 = P0^7; //use for display sbit led_100 = P0^6; //use for display sbit led_10 = P0^5; //use for display sbit led_1 = P0^4; //use for display

相关文档
相关文档 最新文档