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