项目功能:
将被测风扇叶片(三叶风扇)置于红外光电传感器和其反光板之间,当光电传感器接收到对面的反光板反射回来的信号时(即叶片间的空隙通过时)输出低电平,当光电传感器没收到反光板反射回的信号时(即叶片通过时)输出高电平。这样我们从光电传感器这里接受到的信号就是一串方波信号。
单片机不断接收到光电传感器的信号,同时自身内部有定时器在计时,以及计数器在计数收到方波的个数。计时器设定计时1秒,每过1秒发生一次中断,统计计数器中收到的方波个数,将其除以3之后就得到了每秒风扇转过的圈数。最后通过我们设定的程序将其数值转换为标准的转速单位r/min的数值并且显示在8段数码管上,便于让人读出。
因为AT89C52兼容AT89C51,所以在本次的仿真试验中,使用的是AT89C52。
数码管介绍:本项目中使用的八段数码管型号是7SEG-MPX6-CA,是共阳极数码管。123456分别对应数码管的从左往右的123456号数码管。ABCDEFG,DP分别接AT89C52的P0口,123456接单片机的P1口。即用P1控制显示哪个数码管,用P0控制显示的数据。
系统原理图:
在这里我们利用方波发生器来模拟光电传感器的输出信号,方波发生器的参数设置如下:
如图所示,频率 设计为64Hz,即每秒
钟有64个信号输入,
转换为一分钟为
3840,因为风扇是三
叶片的,所以除以3
以后才是实际的风扇
转速,结果是
3840/3=1280,而显示
结果也是1280(如上
图),说明单片机正
确的实现了我们所
需的功能。
在这里我们设置AT89C52的晶振频率为11.0592Hz(设置如下图),以满足实际的效果,所以定时器的T0的初始值设置为TH0=10H, TL0=00H, 而定时的次数为15次,刚好是1秒钟。