初级会员
- 积分
- 141
- 金钱
- 141
- 注册时间
- 2017-3-19
- 在线时间
- 17 小时
|
1金钱
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P2^0; //电机加速IO口定义
sbit key2=P2^1; //电机减速IO口定义
sbit key3=P2^2; //电机正反IO口定义
bit flag=0; //电机正反标志位
uchar num=0,maichong=4,table_begin=0;
void Delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void key()
{
if(key1==0)
{
Delay(5);
if(key1==0)
{
num++;
if(num>3)
num=3;
while(key1==0);
}
}
if(key2==0)
{
Delay(5);
if(key2==0)
{
if(num!=0)
num--;
else
num=0;
while(key2==0);
}
}
if(key3==0)
{
Delay(5);
if(key3==0)
{
flag=~flag;
while(key3==0);
}
}
}
void dispose() //根据速度标识进行数据处理
{
switch(num)
{
case 0:
maichong=5;
break;
case 1:
maichong=4;
break;
case 2:
maichong=3;
break;
case 3:
maichong=2;
break;
}
if(flag==0)
{
table_begin=0; //flag=0,正转
}
else
{
table_begin=4; //flag=1,反转
}
}
void qudong() //电机速度,和正反转控制
{
uchar i,j;
for(j=0+table_begin;j<4+table_begin;j++)
{
for(i=0;i<maichong;i++)
{
Delay(20);
}
}
}
void main()
{
while(1)
{
key();
dispose();
qudong();
}
}
|
|