This is a microprocessor based frequency counter which was inspired by the integral 50 Mhz prescaler found on the Microchip PIC series micros.
The basic design permits direct counting to 50 Mhz. Only 7 readouts are used for two reasons. First, that exceeds the precision of the simple crystal timebase and second, that's all that would fit in the box used to package the unit!
An auto-ranging feature in this version relocates the decimal point to configure the display to show MHz when the input exceeds 10MHz and returns the point to display KHz when the input is less than 1 MHz.
A power-on-self-test cycles the readouts through all their numbers just because it was an easy function to add.
Prescalers have been added to the basic design to extend the range as high as 6GHz with an accompanying minor modification to the software.
I used some cute but, rather pricey, readouts made by Hewlett Packard (Later, Agilent, then Avago) There is enough code space & execution time available in the program to drive more economical 7 segment style displays if desired.
Note that the basic technique can be used to measure frequencies up to 50 Mhz for purposes other than direct display.