MORSE TRANSMITTER
Example of a simple Morse code transmitter in VHDL
Last Updated: 01-Jun-2006
This page describes a simple Morse code transmitter written in synthesisable VHDL. The operation is as follows, an 8 bits character (only 28 characters are used, A-Z, stop, space) is translated via a Look-Up-Table(I0) into the appropriate DITs (or dots) and DAHs (or dash, equal to 3 dots). The output of this lookup table is then shifted out at the right speed (see Clock Divider) under control of a statemachine (I2). The statemachine starts as soon as the dest signal contains the appropriate address (in the VHDL code example this is "0001110"). The statemachine then loads the LUT word into a shiftregister and asserts the busy signal until all DITs and DAHs are shifted out.
Download source files
-
Morse TX Source Files
(zipped 12Kbyte)
Adding Sound
Using a bit of Tcl and Modelsim's examine command it is relative easy to add sound to the simulation. The examine command (see tb.tcl) samples the dout signal and calls sound.exe (see sound.c) to produce a short or long tone.
|
#------------------------------------------------------- #------------------------------------------------------- |
//------------------------------------------------- static unsigned freq = 440; //
In hertz (cps) int main(int argc, char **argv) |
Other links
- Wikipedia Morse Page
- Morse Code Alphabet
- Reni Waegelein Morse Page
- Java Morse Code Translator
