LJMP Start ORG 2100H Start: ACALL Init ;;Initialisierung ACALL Freig ;;Start des Programms erlaubt? ACALL tausg ;;Textausgabe Funktion sjmp Start ;;Nächster Durchlauf Init: mov p1,#00H ;;Ausgänge werden auf 0 gesetzt clr c mov p5, #0FFH ;;Eingänge müssen initialisiert werden mit 0FFH ret Freig: MOV A,P5 ;;P5 in den Akku laden DEC A ;;Akku ein runter zählen JNZ Freig ;;ist Akku nicht! 0 dann Schleife sonnst weiter ACALL InitLCD ;;Sprung zur Initialisierung ret InitLCD: MOV P1,#0fdH ;; Setzen auf 4 Bit ACALL LOOP MOV P1,#0bdH ACALL LOOP MOV P1,#0fdH ACALL LOOP MOV P1,#0fdH ;; Setzen 4 Bit Anzeige auf mehrzeilig und 5*7Punkte ACALL LOOP MOV P1,#0bdH ;; In allen fogenden Schritten Enable Bit Setzen (Clock) ACALL LOOP MOV P1,#0fdH ;; und wieder rücksetzen ACALL LOOP MOV P1,#0f8H ACALL LOOP MOV P1,#0b8H ACALL LOOP MOV P1,#0f8H ACALL LOOP MOV P1,#0ffH ;;Display und Cursor On ACALL LOOP MOV P1,#0bfH ACALL LOOP MOV P1,#0ffH ACALL LOOP MOV P1,#0f1H ACALL LOOP MOV P1,#0b1H ACALL LOOP MOV P1,#0f1H ACALL LOOP MOV P1,#0ffH ;;Inkrementieren und Shiften des Cursors nach rechts beim Schreibvorgang ACALL LOOP ;;Anzeige wird nicht geshiftet. MOV P1,#0bfH ACALL LOOP MOV P1,#0ffH ACALL LOOP MOV P1,#0f9H ACALL LOOP MOV P1,#0b9H ACALL LOOP MOV P1,#0f9H ACALL LOOP MOV P1,#0ffH ;;Display Clear ACALL LOOP MOV P1,#0bfH ACALL LOOP MOV P1,#0ffH ACALL LOOP MOV P1,#0feH ACALL LOOP MOV P1,#0beH ACALL LOOP MOV P1,#0feH ACALL LOOP ret LOOP: MOV R7,#00H ;;10Millisekunden R7=00H R6=0DH MOV R6,#0fDH loopx: NOP NOP DJNZ R7,loopx DJNZ R6,loopx ret tausg: MOV P1,#0dbH ;;Buchstabe H ausgeben ACALL LOOP MOV P1,#09bH ACALL LOOP MOV P1,#0dbH ACALL LOOP MOV P1,#0d7H ACALL LOOp MOV P1,#097H ACALL LOOP MOV P1,#0d7H ACALL LOOP acall CS MOV P1,#0dbH ;;Buchstabe A ausgeben ACALL LOOP MOV P1,#09bH ACALL LOOP MOV P1,#0dbH ACALL LOOP MOV P1,#0deH ACALL LOOP MOV P1,#09eH ACALL LOOP MOV P1,#0deH ACALL LOOP acall CS MOV P1,#0dbH ;;Buchstabe L ausgeben ACALL LOOP MOV P1,#09bH ACALL LOOP MOV P1,#0dbH ACALL LOOP MOV P1,#0d3H ACALL LOOP MOV P1,#093H ACALL LOOP MOV P1,#0d3H ACALL LOOP acall CS MOV P1,#0dbH ;;Buchstabe L ausgeben ACALL LOOP MOV P1,#09bH ACALL LOOP MOV P1,#0dbH ACALL LOOP MOV P1,#0d3H ACALL LOOP MOV P1,#093H ACALL LOOP MOV P1,#0d3H ACALL LOOP acall CS MOV P1,#0dbH ;;Buchstabe O ausgeben ACALL LOOP MOV P1,#09bH ACALL LOOP MOV P1,#0dbH ACALL LOOP MOV P1,#0d0H ACALL LOOP MOV P1,#090H ACALL LOOP MOV P1,#0d0H ACALL LOOP acall CS CS: MOV P1,#0feH ;;Cursor schieben jjjj ACALL LOOP MOV P1,#0beH ACALL LOOP MOV P1,#0feH ACALL LOOP MOV P1,#0fbH ACALL LOOP MOV P1,#0bbH ACALL LOOP MOV P1,#0fbH ACALL LOOP ret end