求助51单片机电机测速的问题

紧急求助一个51单片机应用的问题:我想用红外发射接收做一个直流电机的转速测试电路,具体思路是在圆盘的边上打孔,然后在圆盘的一边放一个红外发射二极管,一边放一个红外接收电路... 紧急求助一个51单片机应用的问题:
我想用红外发射接收做一个直流电机的转速测试电路,具体思路是在圆盘的边上打孔,然后在圆盘的一边放一个红外发射二极管,一边放一个红外接收电路,当电机带动圆盘转动时,红外接收电路每次透过孔接收到那一边红外发射管的信号,将产生一个脉冲,用示波器读出这个脉冲的频率,就是直流电机的转速了。
现具体要求如下:
1.使用51单片机自带的数码管显示;
2.我们原定的要求是需要区分正反转,为此我们在圆盘上打了三个孔,考虑到如今时间仓促可以不做区分,但相应的转一圈会读出三个脉冲,因此计数时的程序也要稍稍进行一下改变

好心人帮帮忙 谢谢了...
展开
 我来答
匿名用户
2009-05-20
展开全部
放一个红外发射二极管,一边放一个红外接收电路,当电机带动圆盘转动时,红外接收电路每次透过孔接收到那一边红外发射管的信号
love火烧不尽
2009-05-16
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
给你其中的一个红外发射接收程序
#include<reg52.h>
sbit LED=P3^3; //红外发射
sbit LED1=P1^7;
sbit IR=P3^2; //红外一体化接收
bit Flag;
void init_timer() //定时器初始化
{
IE=0x82;
TMOD=0x02;//8位自动重载模式
TH0=0xf3;//定时13us,38K红外波,晶振12
TL0=0xf3;
EA=1;
ET0=1;
TR0=1;
}
void timer0(void) interrupt 1 //定时器函数
{
Flag=!Flag;
}
void main()
{
init_timer();
while(1)
{
LED1=IR; //读取一体化接收头数值
if(Flag)
{
LED=!LED; //发射管输出
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呆猫一号
2009-05-07 · TA获得超过325个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:117万
展开全部
饿。。看看我以前的回答就知道我是专家级的了。详细要求发到我邮箱我帮你设计一下,在我的“呆猫一号”贴吧里有我的邮箱,但是你不能什么都不做的来问我,所以正心诚意的希望你至少是会一点才回答我的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式