51单片机控制步进电机课设

步进电机正反转设计

设计要求:
设置开始、停止以及正反转键。转速以及转向由数码管显示。
【51单片机控制步进电机】 https://www.bilibili.com/video/BV1mf4y1J7iR/?share_source=copy_web&vd_source=7d72cfb77b74ed500ae232ab0425c3e5

#include <reg52.h>
/*
步进电机正反转设计
设计要求:
设置开始、停止以及正反转键。转速以及转向由数码管显示。

步距角=5.625°/64,其意思就是每64个脉冲步进电机就会转5.625度。
转一圈的脉冲数为 (360 / 5.625) * 64 = 4096 个脉冲 
计算发送 4096/4 个脉冲需要的时间t 转速 = 1/t*4  rad/s
注意:这里由于实际开发板驱动能力不足及电机性能不够,在此显示转速的导数 
	  即转一圈需要多少时间	 单位s/rad
*/

/*
参考资料:https://www.bilibili.com/read/cv11379422/
		  https://blog.csdn.net/wuhenyouyuyouyu/article/details/51612073
		  https://blog.csdn.net/sdkdlwk/article/details/106573784
		  https://blog.csdn.net/weixin_54092701/article/details/113484193

*/
#define uc unsigned
unsigned char code F_Rotation[8]={
   
   0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};//正转表格
unsigned char code B_Rotation[8]={
   
   0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};//反转表格	1000   1100 1011
uc code x[13]={
   
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
				0x6f,0x80,0x00,0x40};  // 小数点  全隐	 负号
int shumaguan[8]={
   
   0};	 // 第一位定义为mod 模式选择
//mod x x z . z z z
// mod 0 (停止)
// mod 1 (开始)  k2 正转   k3  反转  k4 停止	
// mod 2 (开始)  k2 加速	 k3  减速  k4 停止
// C51 没有bool
bit is_action = 0; //是否开始旋转
bit correct = 1;   //1 正转  0 反转



int hz = 150;

sbit k1 = P3^1;	  //模式选择 按下时 mod+1
sbit k2 = P3^0;
sbit k3 = P3^2;	  
sbit k4 = P3^3;

sbit lsa = P2^2;
sbit lsb = P2^3;
sbit lsc = P2^4;


int num = 0; //计算发送的脉冲数
int time = 0;


int mod = 0;  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值