步进电机控制Proteus仿真

Proteus原理图

控制代码(人人都说goto的坏处,但是用起来真的很爽,hahaha~

#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;
sbit key5 = P1^4;
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;
	uchar button=0;
	while(1){
		if (key1==0){
			button=1;
		}
		if (key2==0){
			button=2;
		}
		if(button==1||button==2)
		{
			if(button==1)
			{
				zhengzhuan:for(i=0;i<8;i++){
					if(key2==0) {button=2;goto fanzhuan;}
				P2 = fan[i];
				delay1ms(speed);
				if(key5==0||key3==0||key4==0) goto next;
				}
			}
			if(button==2)
			{
				fanzhuan:for(i=0;i<8;i++){
					if(key1==0) {button=1;goto zhengzhuan;}
				P2 = zheng [i];
				delay1ms(speed);
				if(key5==0|| key3 == 0 || key4 == 0) goto next;
			  }
		  }
		}
		next:if (key3==0){
			speed = speed + 5;
			if (speed>100)	speed = 100;
		}
		if (key4==0){
			speed = speed - 5;
			if (speed<40)	speed = 40;
		}
		if(key5==0)
		{	
			button=0;
		}
	}
}





 

 

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Proteus中进行STM32控制步进电机角度控制的过程可以分为以下几个步骤: 1. 硬件连接:将STM32开发板与步进电机驱动器进行连接。通常,步进电机驱动器需要提供给步进电机四个电源引脚的驱动信号(例如A+,A-,B+,B-),同时还要连接到STM32的GPIO引脚上。 2. 编写STM32的控制程序:使用Keil或其他STM32开发环境编写控制步进电机角度的程序。在程序中,需要包含步进电机驱动器相关的库文件和头文件,并根据需要进行初始化和配置。 3. 配置GPIO引脚:在程序中,对于与步进电机驱动器连接的GPIO引脚,需要将其设置为输出模式,以便能够向步进电机驱动器发送控制信号。 4. 生成步进信号:使用程序中的延时函数或定时器来生成步进信号。步进电机需要一个逐步增加或递减的信号序列来驱动其旋转。通过控制信号的频率和脉冲数,可以控制步进电机旋转的速度和角度。 5. 调试和验证:在Proteus仿真环境中,可以通过模拟STM32的输出信号和步进电机驱动器的输入信号来验证控制程序的正确性。可以观察步进电机的旋转情况,以及确认是否按照预期角度进行旋转。 需要注意的是,在Proteus仿真中,步进电机的物理旋转并不会真实发生,只是通过软件模拟得到,因此需要与实际步进电机的驱动器进行正确的硬件连接和相关参数的配置。另外,Proteus仿真中还需要注意时钟频率和延时等因素,以确保仿真结果与实际情况尽可能接近。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值