⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 run.c

📁 这是一个简单的步进电机的程序,用C51编写,主要可以定时控制电机进行180度的旋转
💻 C
字号:
//文件名:run.c
//入口参数:
//功能:倒计时器根据设定开始计时
#include<reg51.h>
#define uchar unsigned char

sbit key_cycleless=P3^3;
sbit key_pause=P3^5;
sbit key_set=P1^5;
extern uchar Time_store[5];
extern uchar Counter;
extern bit Second_flag;
extern bit Run_mode;
extern bit reset_flag;
extern void reset();
extern void step_motor();
extern uchar Time[5];
extern uchar Time_store[5];
extern void pause();
extern delay();
extern time_set();
void run()//////////////////////////////////////////
{
 unsigned int c_times;
 uchar i;
 Run_mode=1;
 while(Run_mode==1)//进入运行模式
 {

  if(key_pause==0)
  {
   delay();
   if(key_pause==0)
   {
    while(key_pause==0)
    key_pause=1;
	pause();
   }
  }

 if(key_cycleless==0)//无限循环状态
 {
  while(1)
  {
  if(reset_flag==1)//退出循环
  {reset_flag=0;
   break;
   
  }
  if(Time[0]==0&&Time[1]==0&&Time[2]==0)
  {
   
   for(i=0;i<3;i++)
   Time[i]=Time_store[i];
   
   //Time[0]=0;Time[1]=0;Time[2]=7;//重装
   step_motor();//驱动步进机

  }
  if(key_pause==0)
  {
   delay();
   if(key_pause==0)
   {
    while(key_pause==0)
    key_pause=1;
	pause();
   }
  }
 /*
  if(key_set==0)
  {
   delay();
   if(key_set==0)
   {
    while(key_set==0)
    key_set=1;
    Counter=1;//@@@@@@@@@@@@@@@@@@@@@@@@@
    time_set();
	Run_mode=0;
    //reset();
    break;
   }
   
  }
 */
  }
 }
 
 else
 {
  if(Time[0]==0&&Time[1]==0&&Time[2]==0)
  {
   for(i=0;i<3;i++)
   Time[i]=Time_store[i];//初值
   c_times=Time[3]*10+Time[4];
   c_times--;
   Time[3]=c_times/10;
   Time[4]=c_times%10;
  /*
   Time[4]--;
   if(Time[4]==0)
   { 
    if(Time[3]!=0)
    {
     Time[3]--;
     Time[4]=9;
    }
    else
     Time[4]=0;
   }
 */
   step_motor();//驱动步进机
   if(Time[3]==0&&Time[4]==0)
   {
    reset();//循环完结,复位
    reset_flag=0;
   }
  }
 }
 if(reset_flag==1)
reset_flag=0;
 }
}

  


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -