Some time back, I wrote an NEC IR library with a bare minimum of functionality.
It uses an interrupt.
You can try it or use it as a basis for something new.