Hola:
Para el conteo te puede servir la funcion COUNT:
COUNT Pin,Period,Var
Count the number of pulses that occur on Pin during the Period and stores the result in Var. Pin is automatically made an input. Pin may be a constant, 0-15, or a variable that contains a number 0-15 (e.g. B0) or a pin name (e.g. PORTA.0).
The resolution of Period is in milliseconds. It tracks the oscillator frequency based on the DEFINEd OSC.
COUNT checks the state of Pin in a tight loop and counts the low to high transitions. With a 4MHz oscillator it checks the pin state every 20us. With a 20MHz oscillator it checks the pin state every 4us. From this, it can be determined that the highest frequency of pulses that can be counted is 25KHz with a 4MHz oscillator and 125KHz with a 20MHz oscillator if the frequency has a 50% duty cycle (the high time is the same as the low time).
Example
' Count # of pulses on Pin1 in 100 milliseconds
COUNT PORTB.1, 100, W1
como tienes almacenado el valor de los pulsos en una variable, luego puedes utilizar la funcion DIG, para ir mostrando digito a digito en los displays:
DIG returns the value of a decimal digit. Simply tell it the digit number (0 - 4 with 0 being the rightmost digit) you would like the value of, and voila.
Example
B0 = 123 ' Set B0 to 123
B1 = B0 DIG 1 ' Sets B1 to 2 (digit 1 of 123)
Como veras, la funcion DIG puede coger solamente un numero del digito, haciendote muy sencillo el trabajo que quieres hacer, solo tendrias que utilizar COUNT para contar los pulsos por el pin que quieres y DIG para tomar cada uno de los digitos de la variable y lo asignas al puerto por donde enviaras los datos.
Suerte...! cualquier cosa me dices, aunque te podre ayudar con algo mas hasta el domingo