用转速计测量超低频率
责任编辑:chineselng    浏览:2450次    时间: 2008-04-07 19:25:22      

免职声明:本网站为公益性网站,部分信息来自网络,如果涉及贵网站的知识产权,请及时反馈,我们承诺第一时间删除!

This website is a public welfare website, part of the information from the Internet, if it involves the intellectual property rights of your website, please timely feedback, we promise to delete the first time.

电话Tel: 19550540085: QQ号: 929496072 or 邮箱Email: Lng@vip.qq.com

摘要:图中所示的电路是一个三位转速计,用来测量重复时间间隔为0.235至15秒内的低频信号。转速计的转速为每分钟4至255转,它应用在那些医疗设备,这些医疗设备中,用来测量心跳率、呼吸率、电解磨削、脑电图、低转速电机转速或机械装置转速之类的低频信号。   PIC16F87..

分享到:
图中所示的电路是一个三位转速计,用来测量重复时间间隔为0.235至15秒内的低频信号。转速计的转速为每分钟4至255转,它应用在那些医疗设备,这些医疗设备中,用来测量心跳率、呼吸率、电解磨削、脑电图、低转速电机转速或机械装置转速之类的低频信号。

三位转速计 

  PIC16F872微处理控制处理转速计的数据。PIC感应输入频率(fin)的周期,计算出每秒产生的相应的脉冲数,并相应的更新LED显示器。输入信号需被预处理成0到5V的直流电压,脉冲高电平的宽度至少为4μs。

  MCU所用等式为RPM = 60/T。T指感应输入的周期,常数60代表一分钟(60秒内)脉冲的读数或每分钟的旋转数。该电路的时间基准是出一个32kHz的晶振(爱普生C-001R32.768K-A ±20 ppm)来提供的,这个时间基数反过来触发T1(PIC的内部定时器)。T1有一个可编程的已将其设为1/8的因子。这一因子产一个4 kHz的分频。定时器T1为16位的定时器,产生一个0.00025秒(250 μs)的变化周期。

  定时器T1通过软件被输入端RC2的输入信号的上升沿使能。当下一个上升沿到来时,T1被禁止。这样,T1就有了一个与输入信号周期对应的二进制计数。因其变化周期为0.00025秒(250 μs),我们必须将其右移三位以获得0.25秒的时间。这样,新的rpm等式将为RPM = 60000/T。

表中显示如何获得转数/分

  表中显示如何获得转数/分(rpm)读数,从包含了周期读数的计数器(T1)开始。例如,若PIC检测到一个周期为1秒的信号,因为内部频率分配器被设为4,所以计数器的读数将等于1000(十进制)。这个信号的最终rpm读数将等于60。

  它是这样工作的:PIC监测输入端RC2,等待一个下降沿。当检测下降沿时,定时器T1被TMR1ON位使能。然后,PIC等待下一个定时器T1。当下一个定时器T1到来时,PIC禁止TMR1ON位以停止读数。这时,各自周期的读数被存于寄存器TMR1H和TMR1L中。

  为避免范围外的读数,需要检测溢出位TMR1F。如果该位被设置了,则表明信号的周期太长以致不能被测量。在这种情况下,程序跳至UNDF标位,显示“OUF”或overflow信息。这表明输入信号的周期比16.384秒要高。

  若没有溢出,我们就要校验检测周期,使其等于或高于940(相当于 255 rpm)。如果读数低于940,程序就要跳到OVERF标位,显示信息将为"00F",这表明读数高于255 rpm。

  若这一值大于940,则利用常规DIVS被4除。DIVS带有产生两个16位数字的两对寄存器(ACCb和 ACCa)。为了获得这一周期,所用公式为ACCb/ACCa = ACCb,60,000 (EA60H)再一次利用常规DIVS被ACCb除。这样我们就得到了二进制的rpm值。我们必须将这个二进制转换为BCD码。

  为了实现这一操作,我们将读数转移至W,然后调用常规的BINBCE。BINBCE通过寄存器R0, R1, 和R2(R2是最具意义的信号数)将二进制转换为BCD码。最后,将每一个寄存器内的数据转换成七段码,使之能在LED显示屏上显示。两个计算表SEGM 和 SEGM2完成这个七段码操作,其中SEGM2负责处理百位数位。

】【打印繁体】【投稿】 【收藏】 【推荐】 【举报】 【评论】 【关闭】【返回顶部