文档库 最新最全的文档下载
当前位置:文档库 › 51单片机控制步进电机的转动,加减速,停止,反转

51单片机控制步进电机的转动,加减速,停止,反转

51单片机控制步进电机的转动,加减速,停止,反转
51单片机控制步进电机的转动,加减速,停止,反转

#include

sbit inc=P3^2;

sbit dec=P3^3;

sbit zhzhd=P3^6;

sbit fazhd=P3^7;

bit flag=1;

unsigned char t=0x00; //表正反速度

void delay(unsigned int t);

void motor_ffw();

unsigned char code led7code[]=

{0x81,0xe7,0x92,0xc2,0xe4,0xc8,0x88,0xe3,0x00,0xc0};

unsigned int num=0;

unsigned char code FFW[8]={0x40,0x60,0x20,0x30,0x10,0x18,0x08,0x48}; unsigned char code FFZ[8]={0x48,0x08,0x18,0x10,0x30,0x20,0x60,0x40}; //反转

void main()

{

EA=1;

IT0=1;

EX0=1;

IT1=1;

EX1=1;

TMOD=0x06;

TL0=0xff;

TH0=0xff;

TR0=1;

ET0=1;

P3=0x3f;

P0=led7code[num%10];

while(1)

{

motor_ffw();

}

}

void motor_ffw() /* 步进电机驱动*/ //

{

unsigned char i;

int j;

while(1)

{

for(j=0;j<12;j++) //12个周期转一圈

{ for (i=0; i<8; i++) //一个周期转30度

{

if(flag==1)

P2 = FFW[i]; //取数据

else

P2 = FFZ[i];

delay(t); //t调节转速

}

}

}

}

void int0(void) interrupt 0

{

EX0=0;

delay(10);

if(inc==0)

{

num++;

P0=led7code[num%10];

if(num%10!=0&&flag){zhzhd=0;fazhd=1;}

else if (num%10==0){zhzhd=0;fazhd=0;}

else {zhzhd=1;fazhd=0;}

switch(num%10)

{

case 0:t=0x00;break;

case 1:t=0x12;break;

case 2:t=0x11;break;

case 3:t=0x10;break;

case 4:t=0x09;break;

case 5:t=0x08;break;

case 6:t=0x07;break;

case 7:t=0x06;break;

case 8:t=0x05;break;

case 9:t=0x04;break;

}

}

while(!inc);

EX0=1;

}

void int1(void) interrupt 2

{

EX1=0;

delay(10);

if(dec==0)

{

num--;

if(num==65535)num=65529;

P0=led7code[num%10];

if(num%10!=0&&flag){zhzhd=0;fazhd=1;}

else if (num%10==0){zhzhd=0;fazhd=0;}

else {zhzhd=1;fazhd=0;}

if(num==65535)num=65529;

switch(num%10)

{

case 0:t=0x00;break;

case 1:t=0x12;break;

case 2:t=0x11;break;

case 3:t=0x10;break;

case 4:t=0x09;break;

case 5:t=0x08;break;

case 6:t=0x07;break;

case 7:t=0x06;break;

case 8:t=0x05;break;

case 9:t=0x04;break;

}

}

while(!dec);

EX1=1;

}

void huanx(void) interrupt 1

{

ET0=0;

TR0=0;

delay(10);

if(P3^4==0)

{

if(flag==1) {flag = 0;zhzhd=1;delay(500);fazhd=0;} else {flag = 1;fazhd=1;delay(500);zhzhd=0;}

}

while(!(P3^4));

ET0=1;

TR0=1;

}

// 延时程序

void delay(unsigned int t)

{

unsigned int k;

while(t--)

{

for(k=0; k<80; k++);

}

}

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)

基于51单片机的步进电机控制-设计报告(说明书)及源程序

南京XX大学 指导老师:张X 课程设计基于51单片机的步进电机控制 机械电子工程学院 测控技术与仪器 XXXXX Xxx 2012年1年4日

步进电机控制系统 [摘要]本课程设计的内容是利用51单片机,达到控制步进电机的启 动、停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。 关键字:步进电机、数码管、51单片机、ULN2803 一步进电机与驱动电路 1.1 什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2 步进电机的种类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 1.3 步进电机的特点 1.精度高一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点 2.过载性好其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算

基于51单片机的步进电机控制系统设计

基于51单片机的步进电机控制系统设计 中文摘要 步进电机是一种受脉冲信号控制,并且能将脉冲信号转化为相应的角位移或者线位移的数字电动机。由于步进电机具有步距误差不积累、运行可靠、结构简单、惯性小、成本低等优点,因此,被广泛使用于计算机外围电路、自动化控制装置以及其他的数字控制装置中,如打印机、钟表、数模转换设备等装置中。随着科学技术的快速发展,相应的控制系统也产生了很多种类,步进电机的身影在众多领域中可以看到。其中采用单片机作为控制核心的控制系统,由于其电路简单、成本低、可靠性强等优点,满足众多领域的需求,得到了大量的运用。因此,研究基于单片机的步进电机控制系统,具有重要的现实意义。本设计研究的是基于51单片机对步进电机的控制系统。通过单片机的I/O端口输出时序方波作为控制信号,信号经过芯片ULN2003驱动芯片驱动步进电机进行不同的指令进行工作。根据不同的需要,通过按键电路来控制步进电机的启停、正反转和加减速等功能,并在数码管上实时显示步进电机的工作状态。本文给出了电路各个模块的电路图,并用Proteus的ISIS软件对控制系统的各个功能进行了仿真,并给出了相应的仿真结果图像。 关键词:单片机;步进电机;电机驱动;控制系统

Abstract Stepper motor controlled by a pulse signal, and a pulse signal can be converted to the corresponding angular displacement or linear displacement of the digital motor. As the stepper motor has a step error does not accumulate, reliable, simple structure, small inertia, low cost, and therefore, are widely used in computer peripheral circuits, automatic control devices and other digital control devices, such as printers, watches and clocks , digital to analog conversion equipment, and other devices. With the rapid development of science and technology, the corresponding control system also produced many types of stepper motor figure can be seen in many areas. Which uses microcontroller as the control of the control system, because of its simple circuit, low cost, high reliability, etc., to meet the needs of many fields, we get a lot of use. Therefore, based on single-chip stepper motor control system has important practical design study is 51 single-chip stepper motor control system. As a control signal, the signal through the chip ULN2003 stepper motor drive to work through the microcontroller I / O port output timing square wave. Depending on the need, through the key circuit to control the start and stop, reversing and ramp functions such as stepper motors, stepper motors in real-time display and digital working condition. In this paper, the circuit diagram of each module, and with the ISIS Proteus software for each function control system simulation, and the simulation results are given corresponding image. Key words: microcontroller; stepper motor; motor drive; control system

基于51单片机控制步进电机

单片机原理及系统课程设计 1 引言 步进电机又称为脉冲电动机或阶跃电动机,它是基于最基本的电磁感应作用,将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,大型望远镜,卫星天线定位系统等等。 随着经济的发展,技术的进步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。 步进电机的原始模型起源于1830年至1860年,1870年前后开始以控制为目的的尝试,应用于氩弧灯的电极输送机构中,这被认为最早的步进电机。 1950年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。到20世纪60年代后期,在步进电机本体方面随着永磁材料的发展,各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。 在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。

2 设计方案与原理 4.1 设计方案 设计一个51单片机四相步进电机控制系统要求系统具有如下功能: (1)由I/O口产生的时序方波作为电机控制信号; (2)信号经过驱动芯片驱动电机的运转; (3)电机的状态通过键盘控制,包括正转,反转,加速,减速,停止和单步运行。 4.2 设计原理 步进电机实际上是一个数字\角度转换器,也是一个串行的数\模转换器。步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制4个方面。从结构上看,步进电机分为三相、四相、五相等类型,本次设计的是四相电机。四相步进电机的工作方式有单四拍、双四拍和单双八拍三种。 在本次设计中,我们使用的是四相单八拍的工作方式。通过P1口给A,B,C,D四相依次输出高电平即可实现步进电机的旋转,通过控制两次输出的间隔,即可实现对步进电机的速度控制。 图 2.1 步进电机内部结构截图 根据步进电机的相关相序表我们可以正常的控制电机的步进运行。

基于AT89C51单片机的步进电动机控制系统设计

重庆科技大学 本科毕业论文 基于AT89C51单片机的步进电动机控制系统 设计 考生姓名: XXXXX X 准考证号: XXXXXXXXXXXX 专业层次:本科院(系):XXXXXXXXXXXXXXXXXXX 指导教师: XXXXXX 职称:讲师 重庆科技大学 二O一二年月日

基于AT89C51单片机的步进电动机控制系统 设计 考生姓名: XXXXXX 准考证号: XXXXXXXXXXXX 专业层次:本科 指导教师: XXXXXXX 院(系):机械与动力工程学院 重庆科技大学 二O一二年九月二十日

摘要 随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。 步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。 本设计是采用AT89C51单片机对步进电机的控制,通过I/O口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。 实践证明,基于单片机控制的步进电机比传统的步进控制器具有更好的性能,更加简单、方便、可靠。本设计的主要研究对象就是开环伺服系统中最常用的执行器件——步进电机。 关键词:步进电机,单片机,正反转控制,键盘控制,LCD液晶显示

51单片机利用中断控制灯频率和顺序

#include //包含51单片机寄存器定义的头文件#include int e=0,f=0,d=1,a=0,b=0,c=0,delay=10,m=1,V=128; G=1; /******************************************* 函数功能:主函数 ******************************************/ void main(void) { EA=1; //开放总中断 EX0=1; //允许使用外中断 ET0=1; //定时器0开 EX1=1; TMOD=0X01; IT0=1; //选择负跳变来触发外中断 IT1=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(1) ; //无限循环,防止程序跑飞 }

/************************************************************** 函数功能:外中断T0的中断服务程序 **************************************************************/ Time() interrupt 1 //外中断0的中断编号为0 { if(m%delay==0) { m=1; switch(e) { case 0: P1=G; a++; G=P1<<1; // P1=G; if(a==8) { a=0; G=1; } break; case 1: //反序 P1=V; b++; V=P1>>1; // P1=V; if(b==8) { b=0; V=128; } break; case 2: //中间到两边 P1=pow(2,4+c)+pow(2,3-c); c++; if(c==4) { c=0; }

基于51系列单片机控制步进电机调速实验 (自动保存的)

基于51系列单片机控制步进电机调速实验 实验指导书 仇国庆编写 重庆邮电大学自动化学院 自动化专业实验中心 2009年2月

基于51系列单片机控制步进电机调速实验 实验目的及要求: 1、熟悉步进电机的工作原理 2、熟悉51系列单片机的工作原理及调试方法 3、设计基于51系列单片机控制的步进电机调速原理图(要求实现电机的速度反馈测量,测量方式:数字测量) 4、实现51系列单片机对步进电机的速度控制(步进电机由实验中心提供,具体型号42BYG )由按钮控制步进电机的启动与停止;实现加速、匀速、和减速控制。速度设定由键盘设定,步进电机的反馈速度由LED 数码管显示。 实验原理: 步进电机控制原理 一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。由于输入的是脉冲信号,输出的角位移是断续的,所 以又称为脉冲电动机。随着数字控制系统的发展,步进电动机的应用将 逐渐扩大。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来 进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由 脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号 可以由单片机产生。 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几 何轴线依次分别与转子齿轴线错开。0、1/3て、2/3て,(相邻 两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐, B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:(图2所示)

51单片机控制四相步进电机解析

51单片机控制四相步进电机 2009年07月21日星期二 12:44 51单片机控制四相步进电机 2009-03-01 18:53 接触单片机快两年了,不过只是非常业余的兴趣,实践却不多,到现在还算是个初学者吧。这几天给自己的任务就是搞定步进电机的单片机控制。以前曾看过有关步进电机原理和控制的资料,毕竟自己没有做过,对其具体原理还不是很清楚。今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下 图所示: 详细内容: https://www.wendangku.net/doc/2f14576288.html,/31907887_d.h tml

拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步进电机的步进角度为360/(4×5)=18度。地线与四线接触的顺序相反,电机的转向也相反。 如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四

线脉冲电流的顺序,则可实现对转向的控制。所以,设计了如下电路图: C51程序代码为: 代码一 #include static unsigned int count; static unsigned int endcount; void delay(); void main(void)

51单片机控制步进电机程序及硬件电路图

#include static unsigned int count; //计数 static int step_index; //步进索引数,值为0-7 static bit turn; //步进电机转动方向 static bit stop_flag; //步进电机停止标志 static int speedlevel; //步进电机转速参数,数值越大速度越慢,最小值为1,速度最快static int spcount; //步进电机转速参数计数 void delay(unsigned int endcount); //延时函数,延时为endcount*0.5毫秒 void gorun(); //步进电机控制步进函数 void main(void) { count = 0; step_index = 0; spcount = 0; stop_flag = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0; EA = 1; //允许CPU中断 TMOD = 0x11; //设定时器0和1为16位模式1 ET0 = 1; //定时器0中断允许 TH0 = 0xFE;

TL0 = 0x0C; //设定时每隔0.5ms中断一次TR0 = 1; //开始计数 turn = 0; speedlevel = 2; delay(10000); speedlevel = 1; do{ speedlevel = 2; delay(10000); speedlevel = 1; delay(10000); stop_flag=1; delay(10000); stop_flag=0; }while(1); } //定时器0中断处理 void timeint(void) interrupt 1 { TH0=0xFE; TL0=0x0C; //设定时每隔0.5ms中断一次count++; spcount--; if(spcount<=0) { spcount = speedlevel; gorun(); } } void delay(unsigned int endcount) { count=0; do{}while(count

51单片机驱动步进电机的方法(详解)

51单片机驱动步进电机的方法2019.02 这款步进电机的驱动电压12V,步进角为7.5度. 一圈360 度, 需要48 个脉冲完成!!! 该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。 采用51驱动ULN2003的方法进行驱动。 ULN2003的驱动直接用单片机系统的5V电压,可能力矩不是很大,大家可自行加大驱动电压到12V。 ;****************************************************************************** ;*************************步进电机的驱动*************************************** ; DESIGN BY BENLADN911 FOSC = 12MHz 2005.05.19

;--------------------------------------------------------------------------------- ; 步进电机的驱动信号必须为脉冲信号!!! 转动的速度和脉冲的频率成正比!!! ; 本步进电机步进角为7.5度. 一圈360 度, 需要48 个脉冲完成!!! ;--------------------------------------------------------------------------------- ; A组线圈对应P2.4 ; B组线圈对应P2.5 ; C组线圈对应P2.6 ; D组线圈对应P2.7 ; 正转次序: AB组--BC组--CD组--DA组(即一个脉冲,正转7.5 度) ;---------------------------------------------------------------------------------- ;----------------------------正转-------------------------- ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R3,#144 正转3 圈共144 脉冲 START: MOV R0,#00H START1: MOV P2,#00H MOV A,R0 MOV DPTR,#TABLE MOVC A,@A+DPTR JZ START 对A 的判断,当A = 0 时则转到START MOV P2,A LCALL DELAY INC R0 DJNZ R3,START1 MOV P2,#00H LCALL DELAY1 ;-----------------------------反转------------------------ MOV R3,#144 反转一圈共144 个脉冲 START2: MOV P2,#00H

最新51单片机控制四相步进电机电路图汇总

51单片机控制四相步进电机电路图

51单片机控制四相步进电机 接触单片机快两年了,不过只是非常业余的兴趣,实践却不多,到现在还算是个初学者吧。这几天给自己的任务就是搞定步进电机的单片机控制。以前曾看过有关步进电机原理和控制的资料,毕竟自己没有做过,对其具体原理还不是很清楚。今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下图所 示: 拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步进电机的步进角度为360/(4×5)=18度。地线与四线接触的顺序相反,电机的转向也相反。 如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四线脉冲电流的顺序,则可实现对转向的控制。所以,设计了如下电路图:

C51程序代码为: 代码一 #include static unsigned int count; static unsigned int endcount; void delay(); void main(void) { count = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0;

EA = 1; //允许CPU中断TMOD = 0x11; //设定时器0和1为16位模式1 ET0 = 1; //定时器0中断允许TH0 = 0xFC; TL0 = 0x18; //设定时每隔1ms中断一次 TR0 = 1; //开始计数 startrun: P1_3 = 0; P1_0 = 1; delay(); P1_0 = 0; P1_1 = 1; delay(); P1_1 = 0; P1_2 = 1; delay(); P1_2 = 0; P1_3 = 1; delay(); goto startrun; } //定时器0中断处理 void timeint(void) interrupt 1

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

单片机课程设计报告设计题目:步进电机控制系统 学院机械工程学院 专业机械设计制造及其自动化 班级 姓名 学号 指导教师 湖北工业大学 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.题目及要求功能分析 步进电机:步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其精度高等特点,广泛应用于各种工业控制系统中。 三相单、双六拍步进电机的结构和工作原理: 三相单、双六拍步进电机通电方式:这种方式的通电顺

基于51单片机控制步进电机毕业设计论文

基于51单片机控制步进电机毕业设计 论文 目录 第一章绪论 (2) 1.1课题背景 (2) 1.2课题的目的和意义 (3) 1.3课题的内容 (3) 第二章步进电机的结构与特点 (4) 2.1步进电机的构造 (4) 2.2步进电机的工作原理 (5) 2.3步进电机的主要特征 (6) 2.4步进电机绕组的电气特性 (8) 2.5步进电机的选型 (9) 第三章设计原理分析 (10) 3.1设计目的 (10) 3.2设计要求 (10) 3.3总体设计方框图 (11) 3.4设计方案论证 (11) 3.4.1系统控制方案 (11) 3.4.2驱动模块方案选择 (14) 3.4.3最终方案确定 (16) 第四章步进电机控制系统硬件设计 (16) 4.1单片机最小系统 (16) 4.2 控制电路 (18) 4.3 驱动电路 (20) 4.4 显示电路 (21) 4.5 位移越界报警电路 (22)

第一章绪论 4.6 状态指示灯显示电路 (22) 第五章步进电机控制系统软件设计 (23) 5.1主程序设计 (23) 5.2 LCD显示程序设计 (25) 5.3转速控制程序设计 (27) 5.4程序设计 (28) 5.5角度设定程序设计 (29) 5.6位移设定程序设计 (30) 第六章仿真结果与分析 (34) 6.1整体硬件设计图 (34) 6.2测试 (34) 6.3误差分析 (39) 第七章总结 (40) 参考文献 (41) 致谢 (43) 第一章绪论 1.1课题背景 步进电机作为控制执行器,广泛应用于各种控制领域[1]。当需要精确控制角 度方位时,步进电机的使用将会很好解决实际问题。随着微电子技术和计算机技 术的飞速发展[2],各行业对步进电机的需求日益增加,它已被普遍应用于各个经 济领域。 步进电机是在国外发明的。中国在文化大革命中就已经开始应用和生产,例 如北京、浙江、江苏、四川都可以生产,而且在各行业开始逐步使用,目前驱动 电路的半导体器件大多能做到完全国产。当时是全分立元器件构成的逻辑运算电 路[3],还有电容耦合输入的计数器,触发器,环形分配器。当前,国外对步进电 机的控制和驱动研究的一个重要的发展方向,是大量的研发专用芯片,结果就是

基于51单片机的步进电机控制课程设计

课程设计报告 课程设计名称:单片机系统综合课程设计 课程设计题目:基于51单片机的步进电机控制 院(系):计算机学院 专业:计算机科学与技术(嵌入式)

目录 第1章总体设计方案 (1) 1.1课程设计的内容和要求 (1) 1.2课程设计原理 (1) 1.3课程设计思路 (2) 1.4实验环境 (3) 第2章详细设计方案 (4) 2.1实现方法 (4) 2.2模块设计 (5) 2.2.1 步进电机的驱动 (5) 2.2.2 按键电路设计 (5) 2.2.3 时钟产生及复位电路 (6) 2.3主程序流程图图 (7) 第3章调试及结果分析 (8) 3.1调试步骤及方法 (8) 3.2实验结果及分析 (8) 参考文献 (9) 附录1(源程序) (10) 附录2(系统原理图) (14) 附录3(器件清单) (15)

第1章总体设计方案 1.1 课程设计的内容和要求 一、课程设计内容: 步进电机是一种将电脉冲转换成角位移或线位移的电磁机械装置,也是一种能把输出解析为唯一增量和输入数字脉冲对应的驱动器件。步进电机具有快速启动、停止的能力,精度高、控制方便,因此,在工业上得到了广泛应用。 利用单片机控制一个步进电机,而且要满足如下技术指标: (1)开始通电时,步进电机停止转动。 (2)单片机分别接按键开关K1、K2和K3,用来控制步进电机的转向,要求如下: 当按下K1时,步进电机正转。 当按下K2时,步进电机反转。 当按下K3时,步进电机停止转动。 步进电机的工作方式有单四拍、双四拍、单双八拍。 二、课程设计要求: 1. 独立完成课程设计任务; 2. 通过老师当场验收; 3. 交出完整的课程设计报告。 1.2课程设计原理 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调整节拍的目的。

基于51单片机的步进电机控制-

基于51单片机的步进电机控制 [摘要]本课程设计的内容是利用51单片机,达到控制步进电机的启动、 停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。 关键字:步进电机、数码管、51单片机、ULN2803 一步进电机与驱动电路 1.1 什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2 步进电机的种类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为0.72度。这种步进电机的应用最为广泛。 1.3 步进电机的特点 1.精度高一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点 2.过载性好其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算机控制带来了很大的方便,反过来,计算机的出现也为步进电机开辟了更为广阔的使用市场;

51单片机中断控制LED

单片机作业 题目要求: 设计这样一个系统:在一个51单片机最小系统板上,P1口低四位接四个四角按键,高四位接四个LED灯。按键中断作为总中断,当接中断的按键按下后,所有灯均可按照对应的按键进行点亮。当没有中断按下时,无论怎么按接在P1口低四位的按键,均不能是按键点亮。 实现步骤: 第一:电路搭建: 电路搭建说明: 1.采用AT89C52单片机,DIP40封装。 2.选用12M,并使晶振尽可能接近单片机,采用22pf的电容接在晶振两边并接地,使晶振更容易起振。 3.标号为D18的LED是中断触发指示灯,一旦中断触发,D18会一直亮着。没有中断触发时会一直灭着。 4.key1,key2,key3,key4分别控制D1,D2,D3,D4,D 5. 5.D5为复位指示灯,当复位按键按下时,D5亮。反之灭。 第二:程序实现: 本程序十分简单,秉着杜绝抄袭,自助设计的理念,本程序完全有本人设计完成。没有采用老师讲解的例程。程序的注释已经将程序称述的很明白,现做简要说明: 本人将按键查询部分都放在中断处理函数中处理。当中断触发按键按下时,D18亮,程序进入中断函数,开始不断查询按键值,并点亮相应led.。这样的程序 对CPU的占有率较高,但由于这样写代码更加简单明了,有由于题目对cpu占有率的并没有明确要求,本着开发周期尽可能短的原则,本程序选择了简单方案。

现将代码复制如下: 将KEIL与PROTEUS联调,调试结果如下: 1.启动程序: ,可以看到图中三角符号变绿。此时:

此时,图中所有led灭,无现象。 1.此时按下任意按键,比如key1,key2两个(为了方便截图,直接将开关用导线短路): 现象如下: 可以看到,并没有认可指示灯亮。 2.按复位按键观察是否正常(为了方便截图,直接将开关用导线短路):

51单片机中断详解

一.中断的概念 1.中断发生 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理 2.中断响应和中断服务 CPU暂时中断当前的工作,转去处理事件B 3.中断返回 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A 这一过程称为中断 二.中断过程示意图 三.MCS51中断系统的结构

MCS51的中断系统有5个中断源(8052有6个),2个优先级,可实现二级中断嵌套 四.中断寄存器 单片机有10个寄存器主要与中断程序的书写控制有关 1.中断允许控制寄存器IE 2.定时器控制寄存器TCON 3.串口控制寄存器SCON 4.中断优先控制寄存器IP 5.定时器工作方式控制寄存器TMOD 6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1) 五.部分寄存器详解

1.中断允许控制寄存器(IE) EX0:外部中断0允许位; ET0:定时/计数器T0中断允许位; EX1:外部中断1允许位; ET1:定时/计数器T1中断允许位; ES :串行口中断允许位; EA :CPU中断允许(总允许)位。 2.定时器/计数器控制寄存器控制寄存器(TCON) IT0:外部中断0触发方式控制位 当IT0=0时,为电平触发方式(低电平有效) 当IT0=1时,为边沿触发方式(下降沿有效) IE0:外部中断0中断请求标志位 IT1:外部中断1触发方式控制位 IE1:外部中断1中断请求标志位

TF0:定时/计数器T0溢出中断请求标志位 TF1:定时/计数器T1溢出中断请求标志位 3.串行口控制寄存器(SCON) RI:串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。注意,RI必须由软件清除。 TI:串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。 4.中断优先级控制寄存器(IP) PX0:外部中断0优先级设定位 PT0:定时/计数器T0优先级设定位 PX1:外部中断0优先级设定位 PT1:定时/计数器T1优先级设定位

51单片机汇编语言步进电机转速控制系统

理工大学本科设计报告题目:步进电机转速控制系统设计 课程名称:单片机综合设计 学院(系):电子信息与电气工程学部 专业: 班级: 学号: 学生: 成绩: 2013 年7 月20 日

题目:步进电机转速控制系统设计 1 设计要求 1)利用ZLG7290的键盘控制直流电机(或步进电机的转速、转向); 2)也可以利用ADC模块(与电位器配合),利用电位器控制转速; 3)利用ZLG7290的8位LED数码管显示电机转向、转速参数显示。 2 设计分析及系统方案设计 实验要求使用步进电机作为被控制对象,由ZLG7290做人机对话平台,利用单片机的P1(8位)和P3(部分口线)构造系统。实验最终实现功能、设计思路以及方案设计如以下几个小节所述。 2.1 系统设计实现功能 根据设计要求、现有设备以及知识储备,完成功能如下: ①由按键S1~S8实现转速切换,其中S1~S4正转,S5~S8反转 ②按键S16作为停止键,按下S10后步进电机停止转动,再按S1~S16步进电机按 照按键对应转速以及转向转动 ③按键S10作为复位键,当按下S10后,无论当前处于何种状态,系统恢复至初 始态 ④8为LED数码管显示当前步进电机转速(speed=0/1 1~4),转速前0表示正转, 1表示反转 ⑤若按下停止键,数码管显示当前转速;若按下复位键,数码管显示初始态

speed=00 2.2 设计思路 本次的设计是LED显示与步进电机相结合以及若干功能键的组合的一种设计。根据之前学习的按键中断显示实验和定时器实验,使用INT0和INT1,INT0作为按键中断,INT1作为定时器。在主程序中实现LED初始显示、定时器计时初始、按键中断初始。INT0中断调用中断服务子程序实现对按键键值的判断,并根据相应的按键值实现对应步进电机的变化,并显示该按键对应的转速。INT1定时器中断根据INT0的按键键值,对定时器设定相应的初值,实现步进电机按规定的转速转动。对于按键停止,则是利用中断优先级,当INT0的中断优先级高时,系统进入中断,此时INT1停止计时,也就实现了步进电机的停止,当改变定时器与按键中断的优先级时,即把INT0设为低优先级,INT1设为高优先级,步进电机重新开始转动。此时添加一个对INT0位地址的查询,若有按键即正/反转的4档转速所对应的按键,步进电机开始重新转动。对于复位功能,则同样是利用按键键值的判断,在对应键值下控制电机初始化。 2.3 系统方案设计 系统总设计方案框图如下所示:

基于AT89C51单片机的步进电机控制系统毕业设计(论文)

2014年10月19日版 哈尔滨广厦学院 毕业设计 系别 专业 班级电气一班 学生姓名梁国栋 20 年 6 月 10 日

哈尔滨广厦学院 毕业设计 题目: 学生: 指导教师: 专业: 班级: 系别: 20 年 6 月 10 日

摘要 步进电机是数字控制系统中的一种执行元件,它能按照控制脉冲的要求,迅速起动,制动,正反转和调速。具有步距角精度高,停止时能自锁等特点,因此步进电机在自动控制系统中,特别是在开环的控制系统中得到了日益广泛的应用。 本文以单片机和环形脉冲分配器为核心设计的步进电机控制系统,通过软硬件的设计调试,实现步进电机能根据设定的参数进行自动加减速控制,使控制系统以最短的时间到达控制终点,而又不发生失步的现象;同时它能准确地控制步进电机的正反转,启动和停止。硬件是以AT89C51单片机为核心的控制电路,主要包括:环形脉冲分配器、键盘显示电路、步进电机的驱动电路等。软件部分采用C语言编程,主要包括键盘显示程序、步进电机的调速程序、停止判断程序等。 关键词:步进电机控制系统;调速;单片机

Abstract Stepping motor is a kind of digital control system components. It can achieve quick start-up, positive inversion, stopping and speed control, according to the control pulse. It has high precision step angle, and can be self-locking when it keeps still. As these characteristics, stepping motor in automatic control system, especially in the open loop control system has been widely applied. This article mainly focuses on taking Single-chip Computer and cycle pulse distributor as the core, and designing the stepping motor control system. Th rough the design of the software and hardware debugging, it realizes controlling the step motor’s acceleration and deceleration automatically, according to parameter setting. Making the system arrive the end point with the shortest time, but not occur outing of step. Besides it can accurately achieve start-up, positive inversion and shutdown. Hardware takes AT89C51 as the core of control circuit, mainly including: cycle pulse distributor, keyboard and display circuit, stepping motor driving circuit, etc. Software part adopts the C language programming, mainly including keyboard and display program, stepping motor speed control program, stop judging program, etc. Key words: Stepping motor control system; speed control; Single-chip Compute

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