打印

按下K1(K2)时怎么每次都正转72°(反转72°)

[复制链接]
697|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangpe|  楼主 | 2022-12-10 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按下K1(K2)时怎么每次都正转72°(反转72°)

使用特权

评论回复
沙发
wangpe|  楼主 | 2022-12-10 15:44 | 只看该作者

/***************   writer:shopping.w   ******************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code FFW[]=          //正转
{
         0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09  
};

uchar code REV[]=        //反转
{
         0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01
};

sbit K1 = P3^0;
sbit K2 = P3^1;
sbit K3 = P3^2;

void DelayMS(uint ms)  //延时
{
         uchar i;
         while(ms--)
         {
                  for(i=0;i<120;i++);
         }
}

void SETP_MOTOR_FFW(uchar n)   //正转
{
         uchar i,j;
         for(i=0;i<1*n;i++)
         {
                  for(j=0;j<8;j++)
                 {
                          if(K3 == 0)        break;
                         P1 = FFW[j];
                         DelayMS(25);
                 }
         }
}

void SETP_MOTOR_REV(uchar n)  //反转
{
         uchar i,j;
         for(i=0;i<1*n;i++)
         {
                  for(j=0;j<8;j++)
                 {
                          if(K3 == 0)        break;
                         P1 = REV[j];
                         DelayMS(25);
                 }
         }
}

void main()
{
         uchar N = 1;
         while(1)
         {
                  if(K1 == 0)
                 {  while(K1==0);
                          P0 = 0xfe; //正转LED指示
                         SETP_MOTOR_FFW(N);
                         if(K3 == 0) break;
                 }
                 else if(K2 == 0)
                 {        while(K2==0);
                          P0 = 0xfd;        //反转LED指示
                         SETP_MOTOR_REV(N);
                         if(K3 == 0) break;
                 }
                 else
                 {
                          P0 = 0xfb;          //停LED指示
                         P1 = 0x03;
                 }
         }
}
当按下K1(K2)时怎么每次都正转72°(反转72°)?

使用特权

评论回复
板凳
wangpe|  楼主 | 2022-12-10 15:47 | 只看该作者
怎么改让它只转9°

使用特权

评论回复
地板
LLGTR| | 2022-12-25 09:37 | 只看该作者
因为你步进电机的步数比较大。

使用特权

评论回复
5
V853| | 2022-12-25 09:37 | 只看该作者
增加【SETP_MOTOR_xxx】函数里面的延时试一下。

使用特权

评论回复
6
朝生| | 2022-12-25 09:38 | 只看该作者
72°?正常一拍不会转这么大角度才对。

使用特权

评论回复
7
软核硬核| | 2022-12-25 09:39 | 只看该作者
你改成四拍试一下呗!

使用特权

评论回复
8
Henryko| | 2022-12-26 10:26 | 只看该作者
步进数太大了吧

使用特权

评论回复
9
juventus9554| | 2023-1-4 18:22 | 只看该作者
不懂,帮顶吧

使用特权

评论回复
10
wangpe|  楼主 | 2023-1-4 18:25 | 只看该作者
多谢,已解决,还是亲自问人来的快

使用特权

评论回复
11
huangchui| | 2023-1-4 18:28 | 只看该作者

怎么解决的?

使用特权

评论回复
12
wangpe|  楼主 | 2023-1-4 18:30 | 只看该作者
很简答,都不好意思说了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

938

主题

9837

帖子

2

粉丝