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

📄 set time.c

📁 这是一个简单的步进电机的程序,用C51编写,主要可以定时控制电机进行180度的旋转
💻 C
字号:
//文件名:set time.c
//入口参数:
//功能:调节时间初值
#include<reg51.h>
#define uchar unsigned char 

extern bit reset_mode;
extern uchar Time[5];
extern bit Time_set_mode;
uchar Counter=0;//调时位选择
extern void delay();
sbit key_set=P1^5;//定义键盘
sbit key_add=P1^6;
sbit key_esc=P1^7;
sbit key_cycleless=P3^3;

uchar Time_store[5]={0,0,3,0,1};
bit Glint_enable_flag;//进入调时模式,允许闪烁
//bit run_mode;//运行模式信号量

void set_choice()///////////////////////////////////////////
{
 Counter++;

 if(key_cycleless==0)//如果是无限循环状态,则选择位只有三位
 {
  if(Counter>3)
  Counter=0;
 }
 else
 {
  if(Counter>5)//调时位溢出
  Counter=0;
 }
}


void set_add()/////////////////////////////////////////////
{
 switch(Counter)//Counter进入时从1开始
 {
  case 1: Time[0]++;break;
  case 2: Time[1]++;break;
  case 3: Time[2]++;break;
  case 4: Time[3]++;break;
  case 5: Time[4]++;break;
 }
 if(Time[(Counter-1)]>9)//调时溢出
 Time[Counter-1]=0;
 if(key_cycleless==0)//如果是无限循环模式,则显示"--"
 {
  Time[3]=10;
  Time[4]=10;
 }
}


void time_set()/////////////////////////////////////////////
{
 uchar i;

 reset_mode=0;
 TR0=0;
 Time_set_mode=1;
 
 while(Time_set_mode==1)
 {
  Glint_enable_flag=1;//调时开始,执行闪烁
  if(key_set==0)
  {
   delay();
   if(key_set==0)
   {
    while(key_set==0)
    key_set=1;
    set_choice();//选择位
   }
  }
  if(key_add==0)
  {
   delay();
   if(key_add==0)
   {
	while(key_add==0)
    key_add=1;

    set_add();//加1
   }
  }
  if(key_esc==0)//退出调时
  {
   delay();
   if(key_esc==0)
   {
    while(key_esc==0)
    key_esc=1;
    Time_set_mode=0;//结束调时模式
    Glint_enable_flag=0;//不再闪烁
    Counter=0;
    
	for(i=0;i<5;i++)
    Time_store[i]=Time[i];
	
   }
  }

 }
}
    

⌨️ 快捷键说明

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