基于单片机AT89C52的步进电机的控制器设计分解 下载本文

内容发布更新时间 : 2024/5/9 15:28:08星期一 下面是文章的全部内容请认真阅读。

t=85; rpm=11; break;

case 7: t=72; rpm=13; }

void direc() {

break;

case 8: t=62; rpm=15;

break;

case 9: t=55; rpm=17;

break;

case 10: t=49; rpm=19; break;

}

if(keyccw==0) { flag=1; time=0; }

else if(keycw==0)

26

{ flag=2; time=0; }

else if(pause==0) }

void display() { }

void delaynms(uint aa) { 序 }

void timer0() interrupt 1 {

flag=0;

fir=1; sec=0;

P0=table_anode[rpm/10]; delaynms(17); fir=0; sec=1;

P0=table_anode[rpm]; delaynms(20);

uchar bb; while(aa--) {

for(bb=0;bb<250;bb++); }

TH0=(65536-1000)/256;

27

//1ms基准延时程

TL0=(65536-1000)%6; time++;

if(flag==1)//逆时针转 {

if(time==t) }

{ time=0; P1=ccw[i]; i++; if(i==4)

i=0;

} }

else if(flag==2)//顺时针转{

if(time==t) { time=0;

if(i>0)

i--;

else if (i==0)

i=3;

P1=ccw[i];

}

}

28

5 仿真与调试

5.1仿真调试的操作步骤

本次采用的仿真软件是proteus,采用的编程工具是keil。具体操作如下: 1)在Protues中画出系统电路图 2)编写程序并在keil中编译并生成hex文件。

3)把在keil中编译生成的HEX文件载入AT89C52芯片中; 4)运行仿真。

5.2仿真结果

仿真结果如下图所示:

当点下proteus的play键时候,此时数码管显示速度为零,电机不转。

29

当按加速按键时候,速度会从01一直加到19。共有十个速度等级

30