用51单片机控制直流电机的转动

1号键按下后当电动机正传时红灯亮2号键按下时电机停止转动黄灯闪烁3号键按下时电动机反转绿灯亮839127994@qq.com谢谢了... 1号键按下后当电动机正传时 红灯亮
2号键按下时 电机停止转动 黄灯闪烁
3号键按下时 电动机反转 绿灯亮

839127994@qq.com 谢谢了
展开
 我来答
SHUZILEIDA
推荐于2016-12-02 · TA获得超过256个赞
知道小有建树答主
回答量:466
采纳率:0%
帮助的人:254万
展开全部

电路图就简单了,只要按照程序去连接就不会有问题。这里需要用到一个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--);

}

nihaihaoma___
2012-06-13 · TA获得超过102个赞
知道答主
回答量:520
采纳率:0%
帮助的人:184万
展开全部
不是很难可以帮你做啊
追问
啥时候 给我发呀 原理图与 程序呀  邮箱  是 839327994@qq.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式