Here is a Basic PIC Frequency Counter design. For Arduino version click here. It doesn’t not attempt to compete with some advance designs and has a very limited frequency range, however it can be used as a starting point to implement a frequency counter or simply provide you a simple way to count pulses with PIC microcontroller. Current circuit is based on PIC16F876A chip and uses two timers to count the input frequency and generate 1 sec time base. The source code also very simple, it just counts the number of pulses in 1s interval and shows it on the LED display. At this time I don’t have a commercial signal generator so I’ve used a 555 IC to test frequency counter functionality and compare it to UT71D Digital Multimeter reading see next figure.
Circuit schematic is very similar to Digital Timer design. Also some functions like 7-Segment multiplexing and counter code were reused from earlier projects. It should be relatively easy to extend available measurement range by adding a frequency divider subroutine to the code or extend the number of digit shown by connecting another LED display module. Assembly source code can be downloaded here.