Morse-Ausgabe

Elektronik-Labor  Notizen  Projekte  Labortagebuch  Elexs-USB



Morsesender.exe starten

Morsetelegrafie ist unter Funkamateuren immer noch beliebt, weil man mit sehr kleinen Sendeleistungen extrem große Entfernungen überbrücken kann. Wer das Morsen erlernen will, kann mit diesem Programm alle Buchstaben und Zahlen des Morsealphabets kennenlernen.

Der eingegebene Text wird über einen an DTR angeschlossenen Lautsprecher hörbar. Außerdem erscheinen die Zeichen als digitales Signal am Ausgang RTS. Hier kann man eine LED anschließen.

 

Das Programm setzt jedes Zeichen zunächst in einen Zwischencode um. Die entsprechende Binärzahl enthält von links nach rechts zunächst Einsen und dann eine Null als Startbit. Danach sind Striche als Einsen und Punkte als Nullen codiert. Die Ausgabe erfolgt mit 60 Buchstaben pro Minute (60 Bpm). Dabei hat jeder Strich eine Länge von 300 ms, jeder Punkt 100 ms. Die Pause zum nächsten Buchstaben beträgt 200 ms, die Pause zum nächsten Wort 300 ms.

Private Sub Ausgabe_Click()
  For n = 1 To Len(Text2.Text)
    c$ = LCase(Mid$(Text2.Text, n, 1))
    Zeichen = &HFF
    If c$ = "0" Then Zeichen = &HDF ' 11011111 -----
    If c$ = "1" Then Zeichen = &HCF ' 11001111 .----

    If c$ = "a" Then Zeichen = &HF9 ' 11111001 .-
    If c$ = "b" Then Zeichen = &HE8 ' 11101000 -...
    If c$ = "c" Then Zeichen = &HEA ' 11101010 _._.

    If c$ = "x" Then Zeichen = &HE9 ' 11101001 -..-
    If c$ = "y" Then Zeichen = &HEB ' 11101011 -.--
    If c$ = "z" Then Zeichen = &HEC ' 11101100 --..
    If Zeichen = &HFF Then DELAY 300
    Ausgabebits = False
    For d = 1 To 7
      If (Zeichen And 128) = 0 Then Ausgabebits = True
      Zeichen = Zeichen * 2
      If Ausgabebits Then
        If (Zeichen And 128) > 0 Then
          RTS 1
          For t = 1 To 150
            DTR 1
            DELAY 1
            DTR 0
            DELAY 1
          Next t
          RTS 0
          DELAY 100
        Else
          RTS 1
          For t = 1 To 50
            DTR 1
            DELAY 1
            DTR 0
            DELAY 1
          Next t
          RTS 0
          DELAY 100
        End If
      End If
    Next d
    DELAY 200
  Next n
End Sub



zurück
weiter
zur Startseite