ampel 002 (unfertig) 2006-05-19 15:56:04 code at 0 include C51RD2.INC mov r0, #0 sjmp init org 000bh lcall start lcall abfrage reti start: mov a, r0 lcall ampelsprung mov p2, a ret abfrage: inc r0 mov a, r0 clr c subb a, #00001000b lcall timer jz reset ret timer: mov a, r0 clr c subb a, #00000100b jz zeitlang mov a, r0 jz zeitlang lcall zeitkurz ret init: mov TMOD, #00000001b mov TCON, #00010000b mov IP, #0 mov TL0, #0F0h mov TH0, #0D8h setb ET0 setb EA reset: mov r0, #0 reti zeitlang: mov r1, #00001010b loop1: mov r2, #01100100b loop2: djnz r2, loop2 djnz r1, loop1 ret zeitkurz: mov r1, #0ffh loop3: mov r2, #0ffh loop4: djnz r2, loop4 djnz r1, loop3 ret ampelsprung: mov dptr, #ampelphasen movc a, @a+dptr ret ampelphasen: DB 10000001b, 10000010b, 10000100b, 11000100b, 00100100b, 01000100b, 10000100b, 10000110b