资料编号:206
1.本设计采用STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)51单片机作为主控制器
2.采用霍尔传感器非接触式测电机转速
3.LCD1602液晶显示当前的转速,转速单位为转/分(RPM)。和显示当前的pwm占空比0~100%。
4.电机的速度可以通过按键调整,也可以开始暂停,正转和反转。
注意:磁铁和霍尔元件最近距离在2mm左右,太近可能会在电机转动时碰到霍尔元件,太远霍尔元件可能会检测不到磁铁。
使用说明:
液晶屏第一行显示电机转速,第二行显示占空比,占空比数值越大,电机转速越快。
系统一共有6个按键,单片机附近的独立按键是系统的复位按键,按下单片机会复位。
下面一排是控制按键:
1键:加速键,可以短按,占空比加1,也可长按,占空比连续加;
2键:减速键,可以短按,占空比减1,也可长按,占空比连续减;
3键:反转切换键,按下后电机反转;
4键:正转切换键,按下后电机正转;
5键:开始暂停键,按一下开始,再按一下暂停。
下面是仿真图:
下面是原理图:
下面是PCB:
下面是程序文件,有中文注释,新手容易看懂
void keyscan() //键盘扫描函数
{
if(num1==0)
{
delay(5); //消除抖动
if(num1==0)
{
if(m<=199)
m++;
displaym(); //设定占空比加一
}
}
if(num2==0)
{
delay(5);
if(num2==0)
{
if(m>=1)
m--;
displaym();//设定占空比减一
}
}
if(num3==0)
{
delay(5);
if(num3==0)
{
zheng=1; //初始化电机正转动
fan=0;
}
}
if(num4==0)
{
delay(5);
if(num4==0)
{
zheng=0; //初始化电机正转动
fan=1;
}
}
if(num5==0)
{
delay(5);
if(num5==0)
{
while(num5==0) ;
kai=1-kai;
}
}
}
void display()
{
write_com(0x82);
zhuansu=zhuansu*30; //将两秒内的计数乘以30得到转每分
下面是资料分享下载链接: