键盘控制电机.txt

来自「键盘输入控制步进电机运动」· 文本 代码 · 共 149 行

TXT
149
字号
#include <reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define digit XBYTE[0x0000]
#define stepmotor XBYTE[0xa000]
unsigned char led[10]={0x7E,0x60,0x57,0x75,0x69,0x3D,0x3F,0x70,0x7F,0x7d};

void delay()
{
 uchar i,j;
 for(i=0;i<4;i++)
  for(j=0;j<125;j++);
}

void x_left()
{
 
  stepmotor=0x0c;//A相通
  delay();
  stepmotor=0x0e;//AB相通
  delay();
  stepmotor=0x0a;//B相通
  delay();
  stepmotor=0x0b;//BC相
  delay();
  stepmotor=0x09;//C相
  delay();
  stepmotor=0x0d;//CA相
   delay();
  
}


void x_right()
{
 
  stepmotor=0x0c;//A相通
  delay();
  stepmotor=0x0d;//CA相
   delay();
  stepmotor=0x09;//C相
  delay();
  stepmotor=0x0b;//BC相
  delay();
  stepmotor=0x0a;//B相通
  delay();
  stepmotor=0x0e;//AB相通
  delay();
  
}

void y_front()
{
 //Y轴
 
  stepmotor=0xc0;//A相通
  delay();
  stepmotor=0xe0;//AB相通
  delay();
  stepmotor=0xa0;//B相通
  delay();
  stepmotor=0xb0;//BC相
  delay();
  stepmotor=0x90;//C相
  delay();
  stepmotor=0xd0;//CA相
   delay();
  
}

void y_back()
{

  stepmotor=0xc0;//A相通
  delay();
  stepmotor=0xd0;//CA相
  delay();
  stepmotor=0x90;//C相
  delay();
  stepmotor=0xb0;//BC相
  delay();
  stepmotor=0xa0;//B相通
  delay();
  stepmotor=0xe0;//AB相通
  delay();
  
}

void display(uchar i)
{
  digit=led[i];
}

void jianzhi(uchar number)
{
  switch(number)
  {
   case 0xee:display(1);x_left();break;
   case 0xde:display(2);x_right();break;
   case 0xbe:display(3);y_back();break;
   case 0x7e:display(4);y_front();break;
   case 0xed:display(5);break;
   case 0xdd:display(6);break;
   case 0xbd:display(7);break;
   case 0x7d:display(8);break;
   case 0xeb:display(9);break;
   default:break;
  }
   
}

void delay10ms()
{
 uchar i;
 for(i=200;i>0;i--)
{
}
}
  
void keyboard()
{
 uchar test,shift,value;
 shift=0xfe;
  while(1)
  {
    P1=shift;
    test=P1&0xf8;
    if(test!=0xf8)
      {
        delay10ms();
        if(test!=0xf8)
         {
          value=P1;
         }
      }
    jianzhi(value);
    shift=(shift<<1)|0x01;
    if(shift==0xf7)
      shift=0xfe;
    }
   
}

 
void main()
{
  keyboard();
  
}

⌨️ 快捷键说明

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