He uses Goertzel algorithm to detect the Morse Code tone, some digital filtering, words per minute (WPM) time period tracking, and some other cool techniques.
So here is my take for the Morse Code to ASCII code section (using a completely different method).
I have used the ISR(TIMER0_COMPB_vect) interrupt serve vector to poll the morse code encoder routine. Although this timer is used by the milli-second clock, Comparator B is unused. Using this comparator will poll the encoder 0.977 ms.