×
单片机 > 单片机程序设计 > 详情

步进电机仿真程序

发布时间:2020-09-03 发布时间:
|

这是一款步进电机仿真程序,程序是经过仿真调试通过的,是电子制作比较好的实例现贴出来给大家参考试验。单片机使用的是的AT89C51单片机、晶振12M、电机驱动电路是L298、电机选用的是5-12伏的真流电机,程序实现四种功能:正转、反转、加速、减速。仿真图如下:


        附上源程序:

#include "REGX51.H"

#define uchar unsigned char

#define uint unsigned int

uint time,s;

zhpai[8]={0x16,0x96,0x86,0xc6,0x46,0x66,0x26,0x36};//正转

fzai[8]={0x36,0x26,0x66,0x46,0xc6,0x86,0x96,0x16};//正转

sbit k1=P1^1;

sbit k2=P1^2;

sbit k3=P1^3;

sbit k4=P1^4;

bit qt,zf; //启动停止及正反转标志位

void t0() interrupt 1 //定时器0中断,定时1ms//

TH0=(65536-1000)/256;

TL0=(65536-1000)%6;

time++;

}

void delay(uint dtime) //延时

TR0=1;

while(time<=dtime)

{

if(k2==0)  //加速按键处理程序

{

   while(k2==0);

{

if(s>80)

s=s-40;

}

        if(k3==0)

{

   while(k3==0); //减速按键处理程序

{

if(s<200)

s=s+40;

}

}   

}

time=0;

TR0=0;

}

void moto()   //电机驱动子程序,

{

uchar i,l=0;

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

{

P2=zhpai[l]; 

l++;

delay(s);

if(l>8)

l=0;

}

}

void moto1()   //电机驱动子程序,

{

uchar i,l=0;

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

{

P2=fzai[l]; 

l++;

delay(s);

if(l>8)

l=0;

}

}

void main()

{

TMOD=0x01;

TH0=(65536-1000)/256;

TL0=(65536-1000)%6;

EA=1;

ET0=1;

TR0=1;

qt=0;

zf=1;

s=200;

while(1)

{

        if(k1==0)  //反转按键处理程序

{

   while(k1==0);

qt=0;

}   

        if(k4==0)

{

   while(k4==0); //正转按键处理程序

qt=1;

}

if(qt==1)

moto();//正转

}

else moto1();//正转

}

}


关键字:步进电机  仿真程序 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多