• 大小: 63KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签: motor  proteus  

资源简介

很好的步进电机仿真, 做了好久才做出来的。给力!

资源截图

代码片段和文件信息

#include 
#include “lcd1602.h“
#include “step_motor.h“

unsigned char code SpeedChar[]=“SPEED(n/min):“;
unsigned char code StateChar[]=“RUN STATE:“;
unsigned char code STATE_CW[]=“CW“;
unsigned char code STATE_CCW[]=“CCW“;
unsigned char SPEED[3]=“050“;
unsigned char JSB=1;//减速比为1,本例不考虑减速比

//28BYJ-48 四相单极性步进电机步距角5.625/64(1-2相励磁)减速比1:64额定电压5V

//这里对PROTEUS中的STEPMOTOR的STEP ANGLE设置为11.25为1相励磁的步进角是1-2相励磁步进角的两倍
void DoSpeed()
{
    unsigned int rpm;
    //转速(RPM)=(60×1000)(ms)/转一圈的时间(ms)
//转一圈的时间(ms)=转一圈有多少个8拍×每个8拍所用时间
//转一圈有多少个8拍=360度/转一个8拍所转角度
//每个8拍所用时间=Step_Speed*8;
//转一个8拍所转角度=8*步进角
//步进角=5.625/减速比

    //RPM=(60*1000)/((360/(8*(5.625/1)))* (Step_Speed*8));
    rpm=1000/Step_Speed;
SPEED[0]=rpm/100+48;
    SPEED[1]=rpm%100/10+48;
    SPEED[2]=rpm%10+48;
}
void display()
{
    LCD_cls();
LCD_set_position(0x00);
LCD_prints(SpeedChar);
LCD_prints(SPEED);
LCD_set_position(0x40);
LCD_prints(StateChar);
if (Run_State)
{
LCD_prints(STATE_CW);
}
else
{
    LCD_prints(STATE_CCW);
}
}
void init()
{
EX0=1;//开外部中断0
IT0=1;//外部中断0下降沿触发方式

EX1=1;//开外部中断1
IT1=1;//外部中断0下降沿触发方式

TMOD=0x66;//01100110 定时器0和1都采用方式2计数工作方式,扩展外部中断个数
TH0=0xff;
TL0=0xff; //定时器0初值,计数一次则溢出中断
TH1=0xff;
TL1=0xff; //定时器1初值,计数一次则溢出中断
ET0=1;   //开定时器0中断
ET1=1;   //开定时器1中断

EA=1;     //开总中断

TR0=1;    //定时器0开始计数启动
TR1=1;   //定时器1开始计数启动
}
void Key_Right(void) interrupt 0 //正转
{
Run_State=RIGHT_RUN;
display(); 
}
void Key_Left(void) interrupt 2
{
Run_State=LEFT_RUN;
display(); 
}
void Key_Add(void) interrupt 1
{
    if(Step_Speed>10)
    {
Step_Speed-=2;
    DoSpeed();
}
display(); 
}
void Key_Sub(void) interrupt 3
{
if(Step_Speed<100)
{
Step_Speed+=2;
DoSpeed();
}
display(); 
}
void main()
{
STEP_MOTOR=STEP_MOTOR & 0x0F;//四相清零
    Run_State=RIGHT_RUN;     //正转
    Step_Speed=50;           //相驱动PPS时间间隔50ms
DoSpeed();
    init();//初始化外部和定时器中断
LCD_init();
display();
while(1)
{    
DriveStep();
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         19  2011-05-29 13:55  Step_Motor\ExtDll.iex

     文件        497  2011-05-29 10:51  Step_Motor\hardware.h

     文件      86147  2011-05-29 13:23  Step_Motor\Last Loaded step_motor.DBK

     文件       8423  2011-05-29 13:11  Step_Motor\LCD1602.C

     文件       1592  2011-05-29 12:05  Step_Motor\LCD1602.h

     文件      12708  2011-05-29 14:53  Step_Motor\LCD1602.LST

     文件       9976  2011-05-29 14:53  Step_Motor\LCD1602.OBJ

     文件       2343  2011-05-29 14:53  Step_Motor\main.c

     文件       5282  2011-05-29 14:53  Step_Motor\main.LST

     文件       8971  2011-05-29 14:53  Step_Motor\main.OBJ

     文件      20260  2011-05-29 14:53  Step_Motor\step_motor

     文件       1245  2011-05-29 14:25  Step_Motor\step_motor.c

     文件      83301  2011-05-29 13:30  Step_Motor\step_motor.DSN

     文件        357  2011-05-29 14:33  Step_Motor\step_motor.h

     文件       3593  2011-05-29 14:53  Step_Motor\step_motor.hex

     文件         81  2011-05-29 14:53  Step_Motor\step_motor.lnp

     文件       3484  2011-05-29 14:53  Step_Motor\step_motor.LST

     文件      23348  2011-05-29 14:53  Step_Motor\step_motor.M51

     文件       3896  2011-05-29 14:53  Step_Motor\step_motor.OBJ

     文件       1847  2011-05-29 14:58  Step_Motor\step_motor.Opt

     文件      19569  2011-05-29 14:58  Step_Motor\step_motor.plg

     文件        768  2011-05-29 14:56  Step_Motor\step_motor.PWI

     文件       2244  2011-05-29 12:13  Step_Motor\step_motor.Uv2

     文件       1845  2011-05-29 14:53  Step_Motor\step_motor_Opt.Bak

     文件       2228  2011-05-29 12:04  Step_Motor\step_motor_Uv2.Bak

     目录          0  2011-05-29 14:58  Step_Motor

----------- ---------  ---------- -----  ----

               304024                    26


评论

共有 条评论