All you need to debounce a switch is a resistor and a capacitor, but even though it works generally just fine, it isn't as good as I'd like it. By attaching that debouncer to a 555 timer you not only sharpen the signal's rise and fall to the point that it's almost impossible for any microcontroller to misread it, you also gain strong noise immunity because of the timer's 2/3 and 1/3 Vcc activation thresholds, making any physical switch as crisp and clean as a microcontroller-generated signal itself.
Digital Logic Playlist: https://www.youtube.com/playlist?list=PLoNmuzhZIVoqx2abPAWFPvoxk_Qn2Eie0
You can join me on Discord as well! -- https://discord.gg/Rnvpscg