圖1所示的電路是1個3位數(shù)字顯示轉速計,能測量脈沖周期0.235~5秒,(即4~255rpm)的低頻率事件。因此,它適合于生物醫(yī)學應用,測量低頻信號率,如心跳、呼吸率、ECG/EEG和低rpm馬達或機械速度。
電路中的PIC16F872MCU控制轉速計功能。PIC測量輸入頻率(fIN)周期,計算每分鐘的等效脈沖并相應地更新LED顯示。必須調(diào)整輸入信號為0~5Vdc,在信號為高態(tài)時脈寬至少必須為4μS。
MCU計算RPM=60/T(T是被測輸入的周期)方程式。常數(shù)60表示1分鐘內(nèi)60秒給出1個等效的脈沖讀數(shù)或每分鐘轉數(shù)(rpm)。本電路的時基由32KHz晶振(EPSON C-001R32。768KA±20ppm)提供,它觸發(fā)PIC內(nèi)部定時器T1。Timer1包含1個可編程預計數(shù)器,沒置為1/8。此預計數(shù)器產(chǎn)生4KHz分頻。Timer1是16位的,產(chǎn)生0.00025S(250μS)分辨率,它執(zhí)行周期測量。
通過軟件在輸入RC2端的輸入信號正沿使能Timer1。當下1個正沿到達時,Timer1被禁止。Timer1包含對應于輸入信號周期的二進制計數(shù)。因為分辨率是0.00025S,所以必須或移3位得到0.25S。所以,新的RPM方程為:
RPM=60000/T
表1列出如何得到RPM讀數(shù),從計數(shù)器(Timer1)開始,它包含周期讀數(shù)。例如,PIC檢測的信號周期是1S,則計數(shù)器讀數(shù)將為1000,這是因為內(nèi)部頻率分頻器設置為4。此信號的有效RPM讀數(shù)必須等效于60。
軟件工作如下:PIC監(jiān)控輸入(RC2),等待低到高態(tài)轉換。當檢測到這一轉換時,Timer1被設位TMR1ON使能。
然后,PIC等待下1個低到高轉換。當發(fā)生這種轉換時,PIC禁止位TMR10N停止計數(shù)�,F(xiàn)在,相關周期讀數(shù)保存在寄存器TMR1H和TMR1L中。
為避免讀數(shù)超出范圍,必須檢查溢出位TMR1F。若置位此溢出位,意味著被測信號周期太長。在這種情況下,程序將顯示信息“OFF”或溢出。這表明輸入信號所具有周期大于16.384S。
若無溢出,則必須檢驗周期測量等于或大于940(相當于255rpm)。若此讀數(shù)低于940,則程序將顯示信息“OFF”。這表明讀數(shù)大于255rpm。
若數(shù)值大于940,則讀數(shù)用子程序除4,此子程序用構成兩個16位數(shù)的兩寄存器(ACCb和ACCa)來工作。為了得到周期,用公式ACCb/ACCa=ACCb,然后60000(EA60H)除以ACCb。這給出二進制碼的rpm值,所以必須把二進制碼變換為BCD碼。
為了執(zhí)行此操作,變換讀數(shù)為W,然后,調(diào)用二進制碼變換BCD碼子程序,把二進制讀數(shù)變換為BCD碼,程序用寄存器R0、R1、R2(其中R2為最高有效數(shù))。最后,每個寄存器的值變換為7段碼,這樣可以在LED上顯示。程序中兩個計算表執(zhí)行7段操作,其中1個表處理百位數(shù)。
圖1、適合于生物醫(yī)學應用的轉速電路,此轉速表測量輸入信號的周期,然后軟件程序執(zhí)行在3個7段顯示上直接顯示rpm讀數(shù)所需的計算。