使用proteus仿真步进电机
电路
芯片使用的是AT89c52。由于第一次使用Proteus仿真所以学些一下晶振和复位电路。
ULN2003A是 驱动器,用于驱动步进电机。
步进电机使用的是MOTOR-STEPPER,六线的步进电机。
代码
链接: 原码地址
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;
uchar speed=65;
uchar code zheng[] = {0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
uchar code fan[] = {0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
void delay1ms(uint t){
char i;
while(t--){
for(i=0;i<113;i++);
}
}
void main()
{
uchar i;
while(1){
if (key1==0){
for(i=0;i<8;i++){
P2 = fan[i];
delay1ms(speed);
}
}
if (key2==0){
for(i=0;i<8;i++){
P2 = zheng [i];
delay1ms(speed);
}
}
if (key3==0){
speed = speed + 5;
if (speed>100) speed = 100;
}
if (key4==0){
speed = speed - 5;
if (speed<40) speed = 40;
}
}
}
遇到问题
- 电路中用到12v电压,起初找了很久都没有看到12v电压,后来发现双击电源可以改写电压:
元件 | NAME |
---|---|
芯片 | AT89C52 |
按钮 | BUTTON |
开关 | SWITCH |
电容 | CAP |
电阻 | RES |
晶振 | CRYSTAL |
灯 | LED |
4线电机 | MOTOR-BISTEPPER |
6线电机 | MOTOR-STEPPER |
总结
在自学的路上可能开头不是很顺利,但是总有人会把宝贵的经验记录下来分享给大家,在步进电机控制的学习过程中参考了很多博客和百科,感谢Lzjusc2017的博客地址。