$NOMOD51 $INCLUDE (AT898252.INC) return: lcall vz15000 clr p1.4 ;rs=0 setb p1.3 ;E auf 1 setzen um gleich negative flanke zu erzeugen mov p3, #30h ;30h ins steuerregister clr p1.3 ;Negative Flanke um steuerbefehl zu übernehmen lcall vz4100 ;verzögerung >=4,1ms clr p1.4 ;rs=0 setb p1.3 ;E auf 1 setzen um gleich negative flanke zu erzeugen mov p3, #30h ;30h ins Steuerregister clr p1.3 ;Negative Flanke um steuerbefehl zu übernehmen lcall vz100 ;Verzögerung >=100µs clr p1.4 ;rs=0 setb p1.3 ;E auf 1 setzen um gleich negative flanke zu erzeugen mov p3, #30h ;30h ins Steuerregister clr p1.3 ;Negative Flanke um Steuerbefehl zu übernehmen clr p1.4 ; RS auf 0 Setzen um Befehle zu übernehmen setb p1.3 ; E auf 1 setzen um gleich negative flanke zu erzeugen mov p3, #00000001b ;LCD-Löschen clr p1.3 ; Negative Flanke auf E um Befehl zu übernehmen lcall dly ; Verzögerung 1,9µS setb p1.3 ; E auf 1 setzen um gleich negative Flanke zu erzeugen setb p1.4 ; RS auf 1 setzen damit Daten übernommen werden mov p3, #01000001b ; ACII code für Zeichen A clr p1.3 ; Negative Flanke auf E um Daten zu übernehmen lcall dly ; Verzögerung 1,9µS setb p1.3 ; E wieder auf 1 setzen dly: Mov r0, #242d loop_x: nop nop nop nop nop nop djnz r0, loop_x ret vz4100: mov r1, #10 mov r2, #104 loop_1: nop nop djnz r2, loop_1 djnz r1, loop_1 ret vz15000: mov r3,#16 mov r4, 250 loop_2: nop nop djnz r3, loop_2 djnz r4, loop_2 ret vz100: mov r5, #40 loop_3: nop djnz r5, loop_3 ret end