单片机控制步进电机 单片机步进电机控制实验

实验八步进电机控制实验

一、实验目的

? 1.掌握Keil C51软件与Protues软件联合仿真调试的方法;

??2.掌握步进电机的工作原理及控制方法;

??3.掌握步进电机控制的不同编程方法。

二、实验内容

1.用Proteus设计一四相六线步进电视控制电路。要求利用P1口作步进电机的控制端口,通过达林顿阵列ULN2003A驱动步进电机。

?? 2.编写程序,实现步进电机的正反转控制。正反转时间分别持续10S时间,如此循环。

?? 3.设计一可调速步进电机控制电路。P3.0~P3.2分别接案件K1~K3,其中K1为正反转控制按键,K2为加速按键,K3为减速按键,要求速度7档(1~7)可调,加减速各设3档,复位时位于4档,要求每档速度变化明显。该步进电机控制电路在以上电路的基础上自行修改。

三、实验仪器与设备

1.微机1台????? 2.Keil C51集成开发环境????? 3.Proteus仿真软件

四、实验原理及步骤

1.用Proteus设计四相六线步进电机控制电路;

2.在Keil C51中编写步进电机正反转控制程序,编译通过后,与Proteus联合测试;

3.启动仿真,观察步进电机转动是否正常

4.用Proteus设计可调速步进电机控制电路,仿真调试、运行程序并查看效果。

五、电路设计及调试

(1)实验电路

(2)程序设计与调试

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

uchar code zheng[]={

0xf3,0xf6,0xfc,0xf9};

uchar code fan[]={

0xf9,0xfc,0xf6,0xf3};

//uchar t;

bit flag=0;

uint shijian;

uchar temp;

void delay(uint z)

{

?uint i,j;

?for(i=0;i<z;i++)

?for(j=0;j<80;j++);

}

/*void timer_init()

{

? TMOD=0X01;//定时器0,方式1

? TH0=(65536-50000)/256;

? TL0=(65536-50000)%256;

? ET0=1;

? EA=1;

? TR0=1;

} */

void motor_z()

{

? uchar i;

? for(i=0;i<4;i++)

?? {

?? ?P1=zheng[i];

?????? ?delay(shijian);

?? }

}

void motor_f()

单片机步进电机控制实验_单片机控制步进电机

{

? uchar i;

? for(i=0;i<4;i++)

?? {

?? ?P1=fan[i];

?????? ?delay(shijian);

?? }

}

void keyscan()

{

? P3=0XFF;

? delay(1);

? if(P3!=0xff)

?? {

?????? ?? temp=P3;

?????? ?? switch(temp)

?????? ?? {

?????? ???? case 0xfe:

????????????? ?{flag=~flag;break;?? }

????????????? ?case 0xfd:

????????????? ?{if(shijian<=60)

????????????? ?? {shijian=50;}

????????????? ? else

????????????? ?{shijian=shijian-100;}

????????????? ?break;? }

????????????? ?case 0xfb:

????????????? ?{if(shijian>=600)

????????????? ? {shijian=650;}

????????????? ? else

????????????? ? {shijian=shijian+100;}

????????????? ?break;? }

????????????? ?default : break;

?????? ?? }

?????? ?? while(temp==P3);

?? }

}

void main()

{

?? shijian=350;

? //timer_init();

? while(1)

?? {

???? keyscan();

???? if(flag==0)

?????? ? {

?????? ??? motor_z();

?????? ? }

?? ?else

?????? ? {

????????????? motor_f();

单片机控制步进电机 单片机步进电机控制实验

?????? ? }

?? }

}

/*void timer() interrupt 1

{

? TH0=(65536-50000)/256;

? TL0=(65536-50000)%256;

? if(t>=200)

?? {

??? t=0;

??? flag=~flag;

?? }

? t++;

} */

六、实验后的经验总结

1.掌握了proteus基本的操作方法.与KEIL C51联合调试的方法

2.掌握了步进电机工作原理的极编程的方法,做实验时要仔细,要按步骤来,避免人为错误,避免出现电路连接错误。

3.做实验要独立完成.

七、对实验课的建议

多练习一下编程,老师可以多讲解一下编程的过程。做实验应多给学生时间自主练习,让同学们对于实验有更深刻的理解,从实践中找出问题,解决问题.

  

爱华网本文地址 » http://www.aihuau.com/a/8105030103/319717.html

更多阅读

2相步进电机PWM控制研究和分享 pwm控制步进电机程序

定时器, 步进电机, 行业, 资料本人做步进电机的控制,只有2个月左右。没有任何代码和完整资料可以参考,但因为市场不等人,必须做出来。可以说是想破头白发都多了很多根。最后还是勉强做出来了,但感觉不够好,这里分享一下,也希望有经验的高

步进电机控制工作原理 两相步进电机工作原理

 步进电机控制工作原理步进电机的名称步进电机(stepping motor),步进电机(step motor),或者是脉冲电机(pulse motor),其它的如(stepper motor)等……有着各式各样的称呼方式,这些用日本话来表示的时候,就成为阶动电动机,还有,阶动就是一

步进电机工作原理 步进电机旋转台

常用电机与控制—步进电机星空闲谈 随着生产过程机械化、电气化和自动化的不断发展,出现了各种类型的特种电动机。这些电动机的工作原理,一般与普通的异步电动机和直流电动机的基本原理近似,但是它们在性能、结构、生产工艺

步进电机驱动器 步进电机驱动器-概述,步进电机驱动器-分类

步进电机驱动器是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移

步进电机 步进电机-简介,步进电机-工作原理

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。步进电机_步进电机 -简介

声明:《单片机控制步进电机 单片机步进电机控制实验》为网友不接受分享!如侵犯到您的合法权益请联系我们删除