Aufzug mit Textzeile - fertig 2006-02-24 12:43:57 include reg_51.pdf EXTERN CODE initLCD, loeschen, loeschzeile1, loeschzeile2, textzeile1, textzeile2 code at 0 init: mov sp, #2Fh lcall initLCD lcall loeschzeile1 lcall loeschzeile2 mov r0, #00000001b mov r3, #00000001b lcall update lcall text_up1 start: JB P3.3, auf_check JB P3.2, abw_check sjmp start auf_check: clr c mov a, r0 subb a, #1b jz auf sjmp start auf: mov a, r0 rl a mov r0, a inc r3 lcall text_check lcall update lcall zeit lcall zeit lcall zeit lcall zeit lcall zeit lcall zeit mov a, r0 clr c subb a, #10000000b jz start sjmp auf abw_check: clr c mov a, r0 subb a, #10000000b jz abw sjmp start abw: mov a, r0 rr a mov r0, a dec r3 lcall text_check lcall update lcall zeit lcall zeit lcall zeit lcall zeit lcall zeit lcall zeit mov a, r0 clr c subb a, #1b jz start sjmp abw text_check: mov a, r3 clr c subb a, #1b jz text_up1 mov a, r3 clr c subb a, #10b jz text_up2 mov a, r3 clr c subb a, #11b jz text_up3 mov a, r3 clr c subb a, #100b jz text_up4 mov a, r3 clr c subb a, #101b jz text_up5 mov a, r3 clr c subb a, #110b jz text_up6 mov a, r3 clr c subb a, #111b jz text_up7 mov a, r3 clr c subb a, #1000b jz text_up8 ret text_up1: mov dptr, #text1 lcall textzeile1 ret text_up2: mov dptr, #text2 lcall textzeile1 ret text_up3: mov dptr, #text3 lcall textzeile1 ret text_up4: mov dptr, #text4 lcall textzeile1 ret text_up5: mov dptr, #text5 lcall textzeile1 ret text_up6: mov dptr, #text6 lcall textzeile1 ret text_up7: mov dptr, #text7 lcall textzeile1 ret text_up8: mov dptr, #text8 lcall textzeile1 ret text1: db 'Etage 1',0 text2: db 'Etage 2',0 text3: db 'Etage 3',0 text4: db 'Etage 4',0 text5: db 'Etage 5',0 text6: db 'Etage 6',0 text7: db 'Etage 7',0 text8: db 'Etage 8',0 update: mov P2, r0 ret zeit: mov r1, #0FFh loop1: mov r2, #0FFh loop2: djnz r2, loop2 djnz r1, loop1 ret