Dual Channel 920 kHz Frequency Counter

This is the listing program of Dual Channel 920 kHz Frequency Counter. The basic operation of this dual channel 920 kHz AT89S52-based frequency counter can be found here.

Note that this program involve some subroutines as follow:
  1. CmdWrtStart,CmdWrt, DataWrt
    This subroutine will display a character on LCD and others facilities to display some properties like initiate LCD, clear screen, go to home, and write some characters.
  2. HexToBcd
    This subroutine will convert 20-bits hexadesimal number at tripple of register R1 R2 R3 to 8-digits BCD number at quadruple of register R4 R5 R6 R7. The BCD data can be displayed on LCD. May be only some lowest data that required to display.
  3. DisplayDigit
    A subroutine to display 6-digits is enough for displaying digital data accuratly.DisplayDigitThis subroutine will display 6-digits on LCD. Zero will be replaced by space until we find non-zero number. Input data must be BCD format and located at triplle of register R5 R6 R7.
This is the schematic diagram of the frequency counter. The buffer should be TTL/CMOS with Schmitt trigger like 74LS14 or 74LS19 or its family. The basic operation of this dual channel 920 kHz AT89S52-based frequency counter can be found here.

This application can be extended to build frequency meter that can measure up to 99 MHz of frequency.