找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1129|回复: 1
打印 上一主题 下一主题
收起左侧

步进电机按键调整的单片机C语言程序问题

[复制链接]
跳转到指定楼层
楼主
ID:610895 发表于 2019-10-5 21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设定的参数tt代表半周期,step代表脉冲个数,范围(50~200),仿真时按键调整的时候tt的调整一切正常,step增大调整也正常,step减小调整的时候就变成了一条直线,不再计数了,如果一开始就进行step减小调整,有时候也能正常调整。问题到底出在哪里?

单片机源程序如下:
#include <reg51.h>
unsigned int tt,step;
sbit PWM=P2^3;
sbit DIR=P2^4;
sbit EN=P2^5;
sbit k7=P3^7;
sbit k8=P3^6;
sbit k9=P2^7;  
sbit k10=P2^6;
void Manual()
        {
         EN=1;
                  tt=5000;
                  step=50;
            while(1)
                        {
                        shoudong();
                        keyscan();
                        }                              
        }
void keyscan()
{
while(1)
{      
        if(k7==0)
                {
                        delay(10);
                        tt=tt+500;
                        if(tt>=5000)
                        {
                                tt=5000;
                  }
                while(!k7);      
                }
        else if(k8==0)
         {      
                delay(10);
                tt=tt-500;
                if(tt<=2500)
                {
     tt=2500;
    }
                while(!k8);
         }
        else if(k9==0)
        {
                delay(10);
                step=step+50;
                if(step>=200)
                {
     step=200;
    }
                while(!k9);
        }
        else if(k10==0)
         {
                delay(10);
                step=step-50;
                if(step<=50)
     {
      step=50;
     }
                while(!k10);
         }         
}
}
void shoudong()
{
  TMOD=0x01;
  TH0=(65536-tt)/256;
  TL0=(65536-tt)%256;
  EA=1;
  ET0=1;
  TR0=1;
}
void zhongduan( ) interrupt 1
{   
    TH0=(65536-tt)/256;
    TL0=(65536-tt)%256;
    PWM=~PWM;
          t++;
          if(t==step)
                {
     t=0;
                 DIR=~DIR;
    }
}



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2019-10-6 00:03 | 只看该作者
没看到你的主函数呀,Manual是不是你的主函数?如果是的话,要把名字改为main
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表