用51单片机控制直流电机的转动
2号键按下时 电机停止转动 黄灯闪烁
3号键按下时 电动机反转 绿灯亮
839127994@qq.com 谢谢了 展开
电路图就简单了,只要按照程序去连接就不会有问题。这里需要用到一个H桥电路,注意桥电路中Q1和Q3是PNP型三极管,负电导通。Q2和Q4是NPN型三极管,正电导通。Q1和Q4导通是正传,Q3和Q2导通是反转。
#include<stc.h>
#define uchar unsignde char
#define uint unsignde int
sbit zheng=P3^0; //按键正转
sbit fan=P3^1; //按键反转
sbit ting=P3^2; //按键停
sbit Q1=P3^4;//定义4个IO控制桥电路
sbit Q2=P3^5;
sbit Q3=P3^6;
sbut Q4=P3^7;
sbit led1=P0^0; //定义3个LED灯
sbit led2=P0^1;
sbit led3=P0^2;
void daley(uchar z); //延时函数
void main()
{
while()
{
if(zheng==0) //电机正转
{
delay(10);
if(zheng==0);
{
Q2=0;
Q3=1; //这两句是把反转关掉
Q1=0;
Q4=1;//这两句是打开正转
led1=0;//红灯亮
led2=1; //其他等关闭
led3=1;//其他等关闭
}
}
if(fan==0) //电机反转
{
delay(10);
if(fan==0)
{
Q1=1;
Q4=0;//把正转关掉
Q2=1;
Q3=0;//开反转
led1=1;//其他等关闭
led2=0; //绿灯亮
led3=1;//其他等关闭
}
}
if(ting==0) //关掉电机
{
delay(10);
if(ting==0)
{
Q1=1;
Q2=0;
Q3=1;
Q4=0;
led1=1;//其他等关闭
led2=1; //其他等关闭
led3=0;// 黄灯亮
}
}
}
}
void daley(uchar z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
广告 您可能关注的内容 |