材料:51单片机+水泵部件
基于51单片机实现抽水功能
大致原理:我们通过改变波形占空比来控制抽水电机的速度。而改变占空比我们可以通过改变高低电平持续时间来设置。
#include <reg52.h>
//--定义使用的IO口--//
sbit PWM = P1^0;
//--定义一个全局变量--//
unsigned char timer1;
void Time1Config();
void main(void)
{
Time1Config();
while(1)
{
if(timer1>100) //PWM周期为100*0.5ms
{
timer1=0;
}
if(timer1 < 90) //改变50这个值可以改变直流电机的速度
{
PWM=1;
}
else
{
PWM=0;
}
}
}
void Time1Config()
{
TMOD= 0x10;
TH1 = 0xFE;
TL1 = 0x0C;
ET1 = 1; //开启定时器1中断
EA = 1;
TR1 = 1; //开启定时器
}
void Time1(void) interrupt 3
{
TH1 = 0xFE;
TL1 = 0x0C;
timer1++;
}
为了能够准确的控制高低电平持续时间,这里我用到了定时器。
为了能够控制周期,这个地方我用到了timer1变量。