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

📄 contral.txt

📁 用C实现广告灯箱自动装置1、直流电机控制系统
💻 TXT
字号:
#include "reg51.h"
#include "stdio.h"
#define uc unsigned char
sbit IN1 =P2^0 ;
sbit IN2 =P2^1 ;
sbit a0=P2^2;
sbit a1=P2^3;
sbit a2=P2^4;
sbit a3=P2^5;
sbit b1=P1^0;
sbit b2=P1^1;
sbit b3=P1^2;
sbit b4=P1^3;
sbit b5=P1^4;
sbit b6=P1^5;
sbit b7=P1^6;
sbit b8=P1^7;
uc s[]={0x3F,0x06};//显示运行的方式;00代表逆时针转动;01代表顺时针转动;10代表停止;
uc s1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D};//显示定时的数组
 uc s2[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67}; //显示时间的数组
 uc s3[]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xE7};
int e=0;  //定义相应的全局变量
int c=0;
int n=0;
int g3=0;
int g4=0;
int g5=0;
int g6=0;                
  wait(int i)  //延时函数
{
  int k,j;
 for(k=i;k>0;k--);
   for(j=250;j>0;j--);
    { 
	 if(b1==0&b2==0)	//判断按键是否按下
	   {  c=c+1;
	      e=e+1;
		  return c;
		  return e;
		}
	else if(b1==0&b2==1)
	   {  c=c+1;
	     
		  return c;
		  return e;
		}
	else if(b1==1&b2==0)
	   {  
	      e=e+1;
		  return c;
		  return e;
		}
	else
	     {  
	      return c;
		  return e;
	 	}
}
  }
 void Init()  //初始化函数
 {	    
  a0=0;	   //初始显示为0
  P0=s[0];
  wait(1);
  a0=1;
  a1=0;
  P0=s[0];
  wait(1);
  a1=1;
 IN1=1;	//电动机初始不转动
 IN2=1;

 a2=0;	//初始定时为00
 P0=s1[0];
 wait(1);
 a2=1;
 a3=0;
 P0=s1[0];
 wait(1);
 a3=1; 
 
 b8=0;	//设置初始时间
 P3=s2[0];
 wait(1);
 b8=1;
 b7=0;
 P3=s3[0];
 wait(1);
 b7=1;
 b6=0;
 P3=s2[0];
 wait(1);
 b6=1;
 b5=0;
 P3=s3[0];
 wait(1);
b5=1;
 b4=0;
 P3=s2[0];
 wait(1);
 b4=1;
 b3=0;
 P3=s3[0];
 wait(1);
 b3=1;
 	   
 }       

 
 showWay( )	//显示方式的函数以及电动机的转动情况
{  int d;
 d=c%3;
 switch(d){
 case 0:
        a0=0;
        P0=s[0];
        wait(1);
        a0=1;
        a1=0;
        P0=s[0];
        wait(1);
        a1=1;
        IN1=0;
        IN2=1;
       break;

  case 1:a0=0;
        P0=s[0];
        wait(1);
        a0=1;
        a1=0;
        P0=s[1];
        wait(1);
        a1=1;
        IN1=1;
IN2=0;
        break;
 case 2:a0=0;
        P0=s[1];
        wait(1);
        a0=1;
        a1=0;
        P0=s[0];
        wait(1);
        a1=1;
        IN1=1;
        IN2=1;
        break;
  }
} 
  settime( )   //设置定时时间
{ 
 int f;
 f=e%7;
 switch(f){
 case 0:
        a2=0;
        P0=s1[0];
        wait(1);
        a2=1;
        a3=0;
        P0=s1[0];
        wait(1);
        a3=1;
        break;
 case 1:a2=0;
        P0=s1[1];
        wait(1);
        a2=1;
        a3=0;
        P0=s1[0];
        wait(1);
        a3=1;
        break;
case 2:a2=0;
        P0=s1[2];
        wait(1);
        a2=1;
        a3=0;
        P0=s1[0];
        wait(1);
        a3=1;
        break;
 case 3:a2=0;
        P0=s1[3];
        wait(1);
        a2=1;
        a3=0;
        P0=s1[0];
        wait(1);
        a3=1;
        break;
 case 4:a2=0;
        P0=s1[4];
        wait(1);
        a2=1;
        a3=0;
        P0=s1[0];
        wait(1);
        a3=1;
        break;
case 5:
       a2=0;
        P0=s1[5];
        wait(1);
        a2=1;
        a3=0;
        P0=s1[0];
        wait(1);
        a3=1;
        break;
case 7:
       a2=0;
P0=s1[6];
        wait(1);
        a2=1;
        a3=0;
        P0=s1[0];
        wait(1);
        a3=1;
        break;
   }     
}                                                       

   showtime()	//显示时间的函数
 { int s;
   int g,g1,g2;
   s=s+1;
   g=s%10;
   g2=s%60;
   g1=g2/10;
  if(g==9&&g1==5)
    g3=g3+1;
  if(g3>=10)
	 g3=0;
  if(g==9&&g3==9&&g1==5)
    g4=g4+1;
  if(g4>=6)
    g4=0;
  if(g==9&&g3==9&&g1==5&&g4==5)
    g5=g5+1;
  if(g5>=10)
    g5=0;   
  if(g==9&&g3==9&&g1==5&&g4==5&&g5==9)
    g6=g6+1;
  if(g6>=3)
    g6=0;
 b8=0;
 P3=s2[g6];
 wait(1);
 b8=1;
 b7=0;
P3=s3[g5];
 wait(1);
 b7=1;
 b6=0;
 P3=s2[g4];
 wait(1);
 b6=1;
 b5=0;
 P3=s3[g3];
 wait(1);
 b5=1;
 b4=0;
 P3=s2[g1];
 wait(1);
 b4=1;
 b3=0;
 P3=s3[g];
 wait(1);
 b3=1;
 }   
   
 main()	   //主函数
{  
  Init();
  
   while(1)
  {	 
    int g7;
    
	g7=g5+10*g6;
	if(g7<5||g7>22)	 //	判断时间是否满足广告牌的转动时间
	   {
	    a0=0;
      P0=s[0];
      wait(1);
      a0=1;
      a1=0;
      P0=s[0];
      wait(1);
a1=1;
      IN1=0;
      IN2=0;
	  a2=0;
      P0=s1[0];
      wait(1);
     a2=1;
     a3=0;
    P0=s1[0];
     wait(1);
    a3=1;
	showtime(); 
	}
     else 	   //满足转动时间
	 {showWay( ); 
     settime();
	 showtime();
	 }
   }
}  

⌨️ 快捷键说明

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