找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机+步进马达延时程序问题

[复制链接]
跳转到指定楼层
楼主
ID:143767 发表于 2023-3-5 13:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面程序是上电马达转动45度后延时10秒再转动45度,往复循环,我想在马达停止后延时60秒,我把100000这个值改多大也不能延时60秒,请问这程序该怎么改,请各位给个提示,谢谢!

单片机源程序如下:
#include <reg52.h>      
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uint i,j,k ;
uint N=128;    //角度范围调节,对应于45度,512对应于360度

uchar code single_pos[4]={0x04,0x08,0x10,0x20};  /*单四拍正转表*/                                                           
//uchar code single_rev[4]={0x20,0x10,0x08,0x04};  /*单四拍反转表*/

void delay(uint z);
void m_single_pos();
//void m_single_rev();

void main()
{
    while(1)
        {
          m_single_pos(); //单四拍正转45度
          delay(100000);
          m_single_pos(); //单四拍正转45度
          delay(100000);                  
        }
}

void delay(uint z) /*延时z毫秒*/
{
    uint x,y;
        for(x=z;x>0;x--)
           for(y=300;y>0;y--) ;         //转速调节,数值越大马达越慢
}
            
/******************************单四拍驱动正转(N*45/16)*************************************/  
void m_single_pos()
{
   for(k=0;k<N;k++)            
    {  
         for(i=0;i<4;i++)                                //单四拍一个脉冲转子转动5.625*2=11.625度,四拍共45度
            {
                  P3=single_pos[ i] ;
                  delay(10) ;                //适当延时,保证转子转动时间,延时过短会丢拍
                 }
         }
}

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

使用道具 举报

沙发
ID:353115 发表于 2023-3-5 15:56 | 只看该作者
uint在这里最大也只能是65535,超过这个值反而会变小
回复

使用道具 举报

板凳
ID:384109 发表于 2023-3-5 16:21 | 只看该作者
使用定时器吧
回复

使用道具 举报

地板
ID:161164 发表于 2023-3-5 23:11 | 只看该作者
  1. void main()
  2. {
  3.         uchar delay_Cnt = 0;
  4.         while(1)
  5.         {
  6.                 if(delay_Cnt==0)
  7.                 {
  8.                         m_single_pos(); //单四拍正转45度
  9.                 }
  10.                 delay_Cnt++;
  11.                 if(delay_Cnt>=60)delay_Cnt=0;
  12.                 delay(1000);
  13.         }
  14. }
复制代码
回复

使用道具 举报

5#
ID:123289 发表于 2023-3-6 14:13 | 只看该作者
很易想到的,将10秒延时,做6次。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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