| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2539 人关注过本帖
标题:求大神帮忙把下面两个简单的程序合并在一起。非常感谢!
只看楼主 加入收藏
sun_njit
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-1
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
求大神帮忙把下面两个简单的程序合并在一起。非常感谢!
如下程序 。现要把步进电机正反转的控制按键变为S3,  sbit S3=P3^5。。。。程序如下:
正反转程序:
//先把J01的ABCD四个跳线组用跳线帽接通,(不使用步进电机时,请取下,以免影响其它模块的运行)
//步进电机正反方向运行。当按键S2=1时逆时针运作,当按键按下时顺时针运行。
#include<reg52.h>
sbit S2 =P3^4;
sbit dula=P2^6;
sbit wela=P2^7;

void delay (void)
{
    int k;
    for (k=0; k<2000; k++);

}

void main()
{

    P0=0X00;//关掉数码管的信号。阻止数码管受到P0口信号的影响。
    dula=1;
    wela=0;
    delay();
    dula=0;
    wela=0;
    delay();


    S2=1;
    while (1)
        {
            if(S2==1)
            {
                P0=0XF3;//ABCD=1010  
                delay();
                P0=0XDB;//ABCD=0110   
                delay();
                P0=0XCF;//ABCD=0101
                delay();
                P0=0XE7;//ABCD=1001
                delay();
            }
            else
            {
                P0=0XE7;//ABCD=1010  
                delay();
                P0=0XCF;//ABCD=0101
                delay();
                P0=0XDB;//ABCD=0110
                delay();
                P0=0XF3;//ABCD=1001
                delay();


            }

               
        
            
        
        }
}
加减速程序:
PL-51单片机开发系统演示程序 - 步进电机加减速运行程序   
按键S2起动:                                                                                                                                                                     
1.步进电机启动时,转速由慢到快逐步加速。                                                                     
2.步进电机匀速运行                                                                                                   
3.步进电机由快到慢逐步减速到停止                                                                                                                           
步进电机步进角为 7.5度,一圈 360 度。
双四拍工作方式:
AB-BC-CD-DA (即一个脉冲,转 7.5 度)
单双八拍工作方式:
A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度)            
【小提示】先把J01的ABCD四个跳线组用跳线帽接通,(不使用步进电机时,请取下,以免影响其它模块的运行)!   

*****************************************************************/
   
#include <reg51.h>       //51芯片管脚定义头文件
#include <intrins.h>       //内部包含延时函数 _nop_();

#define uchar unsigned char
#define uint  unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit  S2=P3^4;
uchar code FFW[8]={0x04,0x0c,0x08,0x18,0x10,0x30,0x20,0x24};
uchar rate ;        
/********************************************************/
/*                                                  
/* 延时
/* 11.0592MHz时钟,                                    
/*                                                      
/********************************************************/
void delay()
 {                           
   uchar k;
   uint s;
   k = rate;
   do
    {
       for(s = 0 ; s <500 ; s++) ;  
    }while(--k);
 }
/********************************************************/
/*
/*步进电机正转
/*
/********************************************************/
void  motor_ffw()
{
   uchar i;
 
    for (i=0; i<8; i++)      //一个周期转30度
    {
       P0 = FFW[i];          //取数据
       delay();                 //调节转速
    }
}

/********************************************************
*                                                      
*步进电机运行                                               
*                                                      
*********************************************************/
void  motor_turn()
{
   uchar x;
   rate=0x10;
   x=0xf0;
   do
     {
        motor_ffw();               //加速
        rate--;
     }while(rate!=0x01);

   do
     {     
        motor_ffw();               //匀速
       x--;
     }while(x!=0x01);
  
   do
     {
        motor_ffw();              //减速
        rate++;
     }while(rate!=0x10);   
}

/********************************************************
*                                                      
*  主程序                                               
*                                                      
*********************************************************/
main()
{     

   
    P0=0X00;//关掉数码管的信号。阻止数码管受到P0口信号的影响。
    dula=1;
    wela=0;
    delay();
    dula=0;
    wela=0;
    delay();
   

   while(1)
  {
      P0=0xf0;
      if(S2==0)
     {
       motor_turn();
     }
  }
}

/********************************************************/
搜索更多相关主题的帖子: 影响 顺时针 include 
2013-05-01 17:04
sun_njit
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-1
收藏
得分:0 
求帮忙啊  毕设急需。。。。
2013-05-01 17:09
huang_karl
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2013-5-1
收藏
得分:4 
这个不会啊  只懂点皮毛
2013-05-01 17:17
sun_njit
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-1
收藏
得分:0 
回复 3楼 huang_karl
我也是新手   。。。。。可惜这两个程序要一起烧到板子里。。。。求大神。。
2013-05-01 17:53
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:4 
额,都毕设了,你还是新手啊?????

Edsger Dijkstra:算法+数据结构=程序
2013-05-01 18:40
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:4 
你把二者写在一起,然后同过他们的某种变量关系进行链接就可以了

Maybe
2013-05-01 19:30
sun_njit
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-1
收藏
得分:0 
回复 6楼 邓士林
我是学机械的  抽到单片机的题目 好不懂。。。。怎么拼在一起 真心不懂。
2013-05-01 21:50
sun_njit
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-1
收藏
得分:0 
回复 5楼 雪狼MJ
额。。。学机械的 毕设抽到单片机的课题。。。接触过一点点。。。学的汇编。c接触的极少。。。
2013-05-01 21:51
sun_njit
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-1
收藏
得分:0 
有没有 亲 帮帮忙啦 。。。。。。帮我拼在一起啦
2013-05-01 22:22
jzshit
Rank: 1
等 级:新手上路
帖 子:2
专家分:8
注 册:2012-11-6
收藏
得分:4 
0.0
2013-05-01 22:43
快速回复:求大神帮忙把下面两个简单的程序合并在一起。非常感谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038220 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved