c语言 测转速程序,用51单片机实现风扇转速测量的源程序+电路图

项目功能:

将被测风扇叶片(三叶风扇)置于红外光电传感器和其反光板之间,当光电传感器接收到对面的反光板反射回来的信号时(即叶片间的空隙通过时)输出低电平,当光电传感器没收到反光板反射回的信号时(即叶片通过时)输出高电平。这样我们从光电传感器这里接受到的信号就是一串方波信号。

单片机不断接收到光电传感器的信号,同时自身内部有定时器在计时,以及计数器在计数收到方波的个数。计时器设定计时1秒,每过1秒发生一次中断,统计计数器中收到的方波个数,将其除以3之后就得到了每秒风扇转过的圈数。最后通过我们设定的程序将其数值转换为标准的转速单位r/min的数值并且显示在8段数码管上,便于让人读出。

因为AT89C52兼容AT89C51,所以在本次的仿真试验中,使用的是AT89C52。

d0bb595360c968782c73c3811d5ea9d7.png数码管介绍:本项目中使用的八段数码管型号是7SEG-MPX6-CA,是共阳极数码管。123456分别对应数码管的从左往右的123456号数码管。ABCDEFG,DP分别接AT89C52的P0口,123456接单片机的P1口。即用P1控制显示哪个数码管,用P0控制显示的数据。

系统原理图:

7c094d4dbf3c66cb0e2f8f8fdec60742.png

e4110347fbe331548936ab1cc734027e.png

在这里我们利用方波发生器来模拟光电传感器的输出信号,方波发生器的参数设置如下:

如图所示,频率                                                                                                                                                                                                                      设计为64Hz,即每秒

钟有64个信号输入,

转换为一分钟为

3840,因为风扇是三

叶片的,所以除以3

以后才是实际的风扇

转速,结果是

3840/3=1280,而显示

结果也是1280(如上

图),说明单片机正

确的实现了我们所

需的功能。

在这里我们设置AT89C52的晶振频率为11.0592Hz(设置如下图),以满足实际的效果,所以定时器的T0的初始值设置为TH0=10H, TL0=00H, 而定时的次数为15次,刚好是1秒钟。

  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值