Morse Code Decoder

Gast #1282983
Lesenswert?

Hallo Leute!
Ich arbeite gerade an einem Morse Code Decoder. Hab jetzt am anfang zwei 
Timmer und eine Taste genommen. die Ausgabe mach ich als erstes nur mit 
LEDs.
Könntet ihr euch mal den assembler text anschauen und sagen ob das so 
geht.

;::::: MORSECODE DECODER :::::

 include C51RD2.inc

       Taster1  bit    p3.2

       LEDs     data   p2
;********      Programm **************
       code at 0
       sjmp    init
;********      Interrupt-Service-Routine
       org 0003h
         inc R1
         sjmp abfragen
       reti

      org 000Bh
        mov TCON,#00000000b
        jmp schreiben
      reti

      org 001Bh
        mov TCON,#00010000b
      reti
;*********     Initialisierung **********
init:  mov     LEDs,#0
       setb    IT0
       clr     IE0
       setb    EX0
       setb    EA

       mov TMOD,#00010001b
       setb ET0
       mov TL0,#00h
       mov TH0,#00h
;********** Hauptprogramm******
      mov              P2,#0   ; Port löschen
      mov              R1,#0   ; R1 auf 0 setzen
      mov              R2,#0
haupt:

     call warte_leer
     ;leerzeichen
sjmp haupt

abfragen:

          call warte_schreiben

          call warte_abfrage

          mov A,R1
          clr C
          subb A,#3
          jz kurz
          jc kurz
          jmp lang


kurz:
          mov A,R2
          clr C
          subb A,#0
          jz gleich
          jc kleiner
          jmp groesser
                gleich:
                     mov R2,#01
                     mov R1,#0

                kleiner:
                    mov R2,#01
                    mov R1,#0

              groesser:
                 subb A,#02
                  jz gleich2
                 jc kleiner2
                      jmp groesser2
      gleich2:
              mov R3,A
              add A,R3
              add A,R3
              mov R2,A
              mov R1,#0

         kleiner2:
              mov R3,A
              add A,R3
              add A,R3
              mov R2,A
              mov R1,#0

                        groesser2:
                          subb A,#08
                        jz gleich3
                 jc kleiner3
                      jmp groesser3
                                 gleich3:
mov R3,A
                                    add A,R3
                                    add A,R3
                                    add A,R3
                                    add A,R3
                                    mov R2,A
                                    mov R1,#0

                                  kleiner3:
                                    mov R3,A
                                    add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     mov R2,A
                                     mov R1,#0

                                groesser3:
                                         mov A,R2
                                         clr C
                                   subb A,#40
                                   jz alternative1
                                        mov A,R2
                                        clr C
                                   subb A,#36
                                   jz alternative1
                                   mov A, R2
                                    mov R3,A
                                    add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     mov R2,A
                                     mov TCON,#00000000b
                                     mov R1,#0
                                     jmp schreiben
    alternative1: inc R2

  lang:   mov A,R2
          clr C
          subb A,#0
          jz gleich4
          jc kleiner4
          jmp groesser4
                gleich4:
                     mov R2,#02
                     mov R1,#0
                kleiner4:
                    mov R2,#02
                                  mov R1,#0
              groesser4:
                     subb A,#02
                  jz gleich5
                jc kleiner5
                       jmp groesser5
    gleich5:
              mov R3,A
              add A,R3
              add A,R3
              add A,R3
              mov R2,A
              mov R1,#0

    kleiner5:
              mov R3,A
              add A,R3
              add A,R3
              add A,R3
              mov R2,A
              mov R1,#0

                  groesser5:
                        subb A,#08
                  jz gleich6
                 jc kleiner6
                      jmp groesser6
                                 gleich6: 
mov R3,A
                                    add A,R3
                                    add A,R3
                                    add A,R3
                                    add A,R3
                                    add A,R3
                                    mov R2,A
                                    mov R1,#0

                                  kleiner6:
                                    mov R3,A
                                    add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     mov R2,A
                                     mov R1,#0

                                groesser6:

                                        mov A,R2
                                  clr C
                                  subb A,#48
                                  jz alternative
                                        mov A,R2
                                        clr C
                                   subb A,#40
                                   jz alternative
                                    mov A,R2
                                    mov R3,A
                                    add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     add A,R3
                                     mov R2,A
                                     mov TCON,#00000000b
                                     mov R1,#0
                                     jmp schreiben

alternative: dec R2

schreiben:

       cjne   A,#01,T
             mov LEDs,#10000000b
             jmp haupt
    T:   cjne   A,#02,I
             mov LEDs,#11000000b
             jmp haupt
    I:   cjne   A,#03,AA
             mov LEDs,#11100000b
              jmp haupt
    AA:  cjne   A,#04,N
             mov LEDs,#11110000b
             jmp haupt
    N:  cjne   A,#06,M
             mov LEDs,#11111000b
             jmp haupt
    M:   cjne   A,#08,S
             mov LEDs,#11111100b
             jmp haupt
    S:   cjne   A,#15,U
             mov LEDs,#11111110b
             jmp haupt
    U:   cjne   A,#18,R
             mov LEDs,#11111111b
             jmp haupt
    R:   cjne   A,#20,W
             mov LEDs,#01111111b
             jmp haupt
    W:  cjne   A,#24,D
             mov LEDs,#00111111b
             jmp haupt
    D:   cjne   A,#30,K
             mov LEDs,#00011111b
             jmp haupt
    K:  cjne   A,#36,G
             mov LEDs,#00001111b
             jmp haupt
    G:  cjne   A,#40,O
             mov LEDs,#00000111b
             jmp haupt
    O:  cjne   A,#48,H
             mov LEDs,#00000011b
             jmp haupt
    H:  cjne   A,#105,V
             mov LEDs,#00000001b
             jmp haupt
    V:  cjne   A,#120,F
             mov LEDs,#00000000b
             jmp haupt
    F:  cjne   A,#126,UE
             mov LEDs,#01000000b
             jmp haupt
    UE:  cjne   A,#144,L
             mov LEDs,#01100000b
             jmp haupt
    L:   cjne   A,140,AE
             mov LEDs,#01110000b
             jmp haupt
    AE:  cjne   A,#160,PP
             mov LEDs,#01111000b
             jmp haupt
    PP:  cjne   A,#168,J
             mov LEDs,#01111100b
             jmp haupt
     J:  cjne   A,#192,BB
             mov LEDs,#01111110b
             jmp haupt
     BB: cjne   A,#210,X
             mov LEDs,#00111110b
             jmp haupt
    X:   cjne   A,#240,CC
             mov LEDs,#00011110b
             jmp haupt
   CC:   cjne   A,#252,Y
             mov LEDs,#00001110b
             jmp haupt
   Y:    cjne   A,#37,Z
             mov LEDs,#00000110b
             jmp haupt
   Z:    cjne   A,#41,Q
             mov LEDs,#00000010b
             jmp haupt
   Q:    cjne   A,#39,OEE
             mov LEDs,#1000001b
             jmp haupt
   OEE:   cjne A,#47,go
             mov LEDs,#10000011b
             jmp haupt

     go: jmp haupt




         mov TL0,#00h
         mov TH0,#00h

         mov R2,#0

jmp haupt

;*** UNTERPROGRAMME ***

warte_leer:
            mov TL0,#00h
            mov TH0,#00h
            mov TCON,#00010000b
reti

warte_abfrage:
            mov TL1,#00h
            mov TH1,#00h
            mov TCON,#01010000b
reti

warte_schreiben:

            mov TCON,#00010000b  ;
reti
end

Sorry wenn es ein bissle unordentlich ist. Hoff aber ihr kommt rein.
LG Stine
#1283015
Lesenswert?

doofi schrieb:
>> include C51RD2.inc
>
>> um was für eine Architektur es sich denn handelt
>
> Steht doch drübär.

Ach? Ich tippe mal auf irgendwas 8051-mässiges, aber nur auf Grund 
dieses Headers darauf zu schliessen, finde ich nicht sehr zuverlässig. 
Zumal ich mich mit 8051 nicht auskenne, sonst hätte ich den Code wohl 
auch erkannt.

Ändert aber nichts daran, dass die Frage, ob der Code denn funktioniert, 
reichlich sinnfrei ist.
Beitrag #4978230 wurde von einem Moderator gelöscht.
Beitrag #4981910 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren