51-直流电机抽水泵
抽水泵实验
接线:蓝色 ------ 5v
绿色------01
注意
接反会倒吸
main.c
# include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
//定义4个按键管脚
sbit K1=P3^1;
sbit K2=P3^0;
sbit K3=P3^2;
sbit K4=P3^3;
sbit LED1=P2^0;
//--定义使用的IO口--//
sbit PWM=P1^0;
//宏定义如果按下则返回
# define K1_PRESS 1
# define K2_PRESS 2
# define K3_PRESS 3
# define K4_PRESS 4
//没按下
# define K_UNPRESS 0
//--定义一个全局变量--//
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
u8 Detection_Key(u8 mode)
{
static u8 key=1;
if(mode)
key=1;
if(key==1 && (K1==0 || K2==0 || K3==0 || K4==0))
{
key=0;
delay_10us(1000);//消抖
if(K1==0)
return K1_PRESS;
else if(K2==0)
return K2_PRESS;
else if(K3==0)
return K3_PRESS;
else if(K4==0)
return K4_PRESS;
}
else if(K1==1 && K2==1 && K3==1 && K4==1)
{
key=1;
}
return K_UNPRESS;
}
void main()
{
while(1)
{
u8 key=Detection_Key(0);//1代表长按和0代表只按一次
if(key==K1_PRESS)
{
PWM=!PWM;
}
}
while(1);
}