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

📄 key.c

📁 通过键盘能分别给步进电机单独运行的速度,同时也能进行差补运行,画直线段,并能返回原点
💻 C
字号:
//one key detect
#include<reg51.h>
#include<stdio.h>

unsigned int KEY1,KEY2;
unsigned int KEY3,KEY4;
unsigned int KEY5,KEY6;
unsigned int KEY7,KEY8;

unsigned char STEPXY[]={0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99};
unsigned int keytmp,tmp;

void delay(unsigned int i)
{
   for (;i>0;i--);
}
//main()
void KEY_Scaning(void)
{  // unsigned char STEPXY[]={0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99};
    unsigned int keytmp,tmp;
    //unsigned int i;
   P1=0x00;
  
 //while(1)
  {
     P3=0xff;
     P3=0xfe;                          //第一行置零
     tmp=P3;
	 keytmp=tmp&0xf0;              
     
	 if(keytmp!=0xf0)
     {
        delay(10);
        tmp=P3;                         
	    keytmp=tmp&0xf0;              
        if(keytmp!=0xf0) 
        { 
           switch(keytmp)
           {
              case 0xe0:
                KEY1=1;  break;
              case 0xd0:
                KEY2=1;  break;
              case 0xb0:
                KEY3=1;  break;
              case 0x70:
                KEY4=1;  break; 
              default :
                         break;
	       }
	     //tmp=P3;
		// keytmp=tmp&0xf0;
		// while(keytmp!=0xf0)
		// {tmp=P3;
		 // keytmp=tmp&0xf0;}
		 }
      }    
     P3=0xff;
     P3=0xfd;                        //第二行置零
     tmp=P3;
	 keytmp=tmp&0xf0;            
     if(keytmp!=0xf0)
     {
        delay(10);
        tmp=P3;
	    keytmp=tmp&0xf0; 
        if(keytmp!=0xf0) 
        { 
	       switch(keytmp)
           {
              case 0xe0:
                 KEY5=1;  break;
              case 0xd0:
                 KEY6=1;  break;
              case 0xb0:
                 KEY7=1;  break;
              case 0x70:  
                 KEY8=1;  break;
              default :
                          break;
	       }		  
        // tmp=P3;
		 //keytmp=tmp&0xf0;
		//while(keytmp!=0xf0)
		 //{tmp=P3;
		  //keytmp=tmp&0xf0;}
		   
		 }	 
      }	  
   }
}
void INT0ISR(void) interrupt 0 using 3
{ unsigned char STEPXY[]={0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99};
   unsigned int i;
  P1=0x00;
   EX0=0;   
   KEY_Scaning();
 
   PX0=1;
   P3=0xfc;
   
   if(KEY1==1)
     { while(1)
	   {
	   for (i=0;i<8;i++)
        {
          P1=STEPXY[i];
          delay(5000);		  
	     }
       }
	}
	if(KEY5==1)
	   { while(1)
		 { 
	     
		  P1=0x00;   
	    }
		}
	  
	  EX0=1;    
}	
main()
{  
   
    P1=0x00;
   
	IP=0x0b;
	IT0=0;
	EX0=1;
    PX0=1;
	EA=1;
	P3=0xfc;
//	while(1); 
}   

⌨️ 快捷键说明

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