📄 键盘控制电机.txt
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -