Seria bueno que antes de pensar en el programa te hicieras un gráfico/dibujo del ascensor y ahí determinas la cantidad de entradas y salidas que tiene tu sistema.
Luego te haces un diagrama de flujo para tener una noción de como sería la ejecución del programa.
A partir de eso, si ya has programado con el 16f84 y manejas las instrucciones básicas, timers, flags, registros de memoria y demas, no te puede ser muy complicado realizar el programa.
Se que lo que te propongo es un poco mas laborioso, pero te va a servir mucho cuando tengas el programa en su mayoria desarrollado y te encuentres que por algún motivo no hace lo que esperabas, pienses que el programa (el código ASM) esta mal pero quizas en realidad no has planteado bien la necesidad.
Yo tengo una regla, "si funciona en el papel, tiene que funcionar en la realidad"