You aren't checking whether the chip has detected a valid tone. Pin 15 will go high when a valid tone has been detected and the BCD output is valid.You need to wire pin 15 to a digital input. Then the code can just loop waiting for that pin to go high. When it does, read all four data pins, and then wait for pin 15 to go low.

You aren't checking whether the chip has detected a valid tone. Pin 15 will go high when a valid tone has been detected and the BCD output is valid.You need to wire pin 15 to a digital input. Then the code can just loop waiting for that pin to go high. When it does, read all four data pins, and then wait for pin 15 to go low.