de KITS Application ote A44 - Morse Code Generator Oleh: Tim IE Kode Morse merupakan serangkaian kode yang terdiri dari bunyi pendek (dit) dan bunyi panjang (dah). Kode ini hanya mencakup huruf, angka, dan tanda baca. Jumlah dan jenis bunyi masing-masing karakter berbeda. Ada kode karakter yang hanya terdiri dari 1 bunyi hingga 6 bunyi. Ada kode karakter yang hanya terdiri dari bunyi pendek, ada kode karakter yang terdiri dari bunyi panjang, dan ada kode karakter yang terdiri dari kombinasi keduanya. Kalau Anda mengenal kode Morse, Anda pasti membayangkan film-film "tempoe doeloe" dimana kita harus menekan suatu saklar untuk menghasikan bunyi tersebut. Kali ini aplikasi ini akan mempermudah dan memperindah proses tersebut. Anda cukup menekan tombol keyboard dan kode morse yang bersangkutan akan dibunyikan. Modul yang digunakan adalah: - 1 modul de KITS SPC Keymatic - 1 Keyboard PS/2-1 modul LCD 1 baris (A ini menggunakan LCD 40x2) - 1 Buzzer - 1 modul DT-51 MinSys Ver. 3.0. Adapun blok diagram sistem secara keseluruhan adalah sebagai berikut: Keyboard de KITS SPC Keymatic DT-51 MinSys Ver 3.0 Gambar 1 Blok Diagram A44 Buzzer LCD Hubungan antara DT-51 MinSys Ver 3.0 dan de KITS SPC Keymatic adalah sebagai berikut: de KITS SPC Keymatic J6 (sama untuk kedua board) DT-51 MinSys Ver 3.0 Port C & Port 1 Pin 11 (IT) Pin 11 (Port 1.2) Pin 15 (SCL) Pin 15 (Port 1.6) Pin 16 (SDA) Pin 16 (Port 1.7) Tabel 1 Hubungan DT-51 MinSys dengan de KITS SPC Keymatic Aturlah jumper pada alamat 3 (default). Hubungan de KITS SPC Keymatic dengan Keyboard terdapat dalam Quick Start atau Manual de KITS SPC Keymatic. Page 1 of 5 Application ote A44
Hubungan antara DT-51 MinSys dengan LCD adalah sebagai berikut: Tabel 2 Hubungan DT-51 MinSys dengan modul LCD Sedangkan buzzer dihubungkan dengan koneksi sebagai berikut: Buzzer DT-51 MinSys Ver 3.0 Port COTROL Kaki + Pin 1 (VCC) Kaki - Pin 3 (I0) Tabel 3 Hubungan DT-51 MinSys dengan Buzzer Setelah menghubungkan rangkaian dan menghubungkan supply tegangan yang tepat, download-lah program MORSE.HEX ke DT-51 MinSys Ver. 3.0. Page 2 of 5 Application ote A44
Flowchart dari sistem ini adalah sebagai berikut: START Set Keymatic Mode 2 (input Keyboard) Pin IT Keymatic = LOW? Ambil Data Data = Tombol ESC? Bersihkan tampilan LCD Data < 20h? 20h <= Data <41h? OTLET=01 41h <= Data < 61h? OTLET=00 Data > 7bh? Data = Data - 20h Bunyikan Buzzer 61h <= Data < 7bh? Tampilkan karakter pada LCD Karakter terakhir dalam baris? Pindah kursor ke awal baris Gambar 2 Flowchart Program Page 3 of 5 Application ote A44
Program akan diproses dengan urutan sebagai berikut: 1. de KITS SPC Keymatic diatur dalam mode 2 (input Keyboard). 2. Jika ada penekanan keyboard, data akan diambil. 3. Jika yang ditekan adalah tombol Esc, maka tampilan LCD akan dihapus. 4. Jika data yang didapat kurang dari 20h maka program akan kembali ke langkah 2. 5. Jika data yang didapat berada antara 20h dan 40h, variabel OTLET akan diberi nilai "01". OTLET yang bernilai "01" menunjukkan bahwa data adalah tanda baca dan angka. 6. Jika data yang didapat berada antara 41h dan 60h, variabel OTLET akan diberi nilai "00". OTLET yang bernilai "00" menunjukkan bahwa data adalah huruf. 7. Jika data yang didapat berada antara 61h dan 7ah, data akan dikurangi 20h lalu variabel OTLET akan diberi nilai "00". 8. Data input akan ditampilkan pada LCD. Jika karakter yang dituliskan berada pada akhir baris LCD, maka penulisan berikutnya akan dimulai dari posisi awal baris. 9. Buzzer akan dibunyikan sesuai dengan kode yang didapat dari tabel. Lalu program akan kembali ke langkah 2. Kegunaan variabel OTLET adalah menandai kelompok huruf atau angka dan tanda baca. Huruf memiliki jumlah bunyi panjang dan/atau pendek hingga 4 buah. Angka dan tanda baca memiliki jumlah bunyi panjang dan/atau pendek sebanyak 5 atau 6 buah. Data huruf yang didapat akan dikodekan dalam heksadesimal dalam tabel dengan format MMMMxDDD dimana MMMM merupakan kode morse dan DDD adalah counter jumlah bunyi. Format Deskripsi M = 0 berarti bunyi pendek MMMM M = 1 berarti bunyi panjang X Don t care (bisa 0 atau 1) 001 = terdiri dari 1 bunyi pendek/panjang 010 = terdiri dari 2 bunyi pendek/panjang DDD 011 = terdiri dari 3 bunyi pendek/panjang 100 = terdiri dari 4 bunyi pendek/panjang Tabel 4 Format Kode Huruf Misalkan data yang didapat adalah huruf "b" dengan kode morse "- " maka MMMM = 1000 dan DDD = 100. Jika data yang didapat adalah huruf "r" dengan kode morse ".-." maka MMMM = 0100 dan DDD = 011. Jika data yang didapat adalah huruf "a" dengan kode morse ".-" maka MMMM = 0100 dan DDD = 010. Perhatikan bahwa penulisan MMMM selalu dimulai dari Most Significant Bit (bit paling kiri) sehingga MMMM untuk "a" dan "r" dapat dinyatakan sebagai 0100. Kedua huruf tersebut hanya berbeda jumlah counter-nya saja. Data angka dan tanda baca yang didapat akan dikodekan dalam tabel dengan format MMMMMMDD dimana MMMMMM merupakan kode morse dan DD adalah counter jumlah bunyi. Format MMMMMM DD Deskripsi M = 0 berarti bunyi pendek M = 1 berarti bunyi panjang 01 = terdiri dari 5 bunyi pendek/panjang 10 = terdiri dari 6 bunyi pendek/panjang Tabel 5 Format Kode Angka dan Tanda Baca Misalkan data yang didapat adalah angka "8" dengan kode morse "..---" maka MMMMMM = 001110 dan DD = 01. Jika data yang didapat adalah tanda baca "." dengan kode morse ".-.-.-" maka MMMMMM = 010101 dan DD = 10. Kode ini akan dibaca dengan cara menggeser kode ke kiri satu per satu dengan menggunakan D sebagai counter jumlah pergeseran. Jika counter D menyatakan bahwa karakter terdiri dari 3 bunyi maka kode heksadesimal akan digeser sebanyak 3 kali ke kiri. Page 4 of 5 Application ote A44
Karakter Kode Morse Kode ASCII Format Kode dalam Program Kode Heksadesimal OTLET 0 - - - - - 30H 1 1 1 1 1 0 0 1 F9 01 1 - - - -. 31H 1 1 1 1 0 0 0 1 F1 01 2 - - -.. 32H 1 1 1 0 0 0 0 1 E1 01 3 - -... 33H 1 1 0 0 0 0 0 1 C1 01 4 -.... 34H 1 0 0 0 0 0 0 1 81 01 5..... 35H 0 0 0 0 0 0 0 1 01 01 6.... - 36H 0 0 0 0 1 0 0 1 09 01 7... - - 37H 0 0 0 1 1 0 0 1 19 01 8.. - - - 38H 0 0 1 1 1 0 0 1 39 01 9. - - - - 39H 0 1 1 1 1 0 0 1 79 01.. -. -. - 2EH 0 1 0 1 0 1 1 0 56 01, - -.. - - 2CH 1 1 0 0 1 1 1 0 CE 01?.. - -.. 3FH 0 0 1 1 0 0 1 0 32 01 : - - -... 3AH 1 1 1 0 0 0 1 0 E2 01 ; -. -. -. 3BH 1 0 1 0 1 0 1 0 AA 01 - -.... - 2DH 1 0 0 0 0 1 1 0 86 01 '. - - - -. 27H 0 1 1 1 1 0 1 0 7A 01 / -.. -. 2FH 1 0 0 1 0 0 0 1 91 01 ( -. - -. 28H 1 0 1 1 0 0 0 1 B1 01 ) -. - -. - 29H 1 0 1 1 0 1 1 0 B6 01 ". -.. -. 22H 0 1 0 0 1 0 1 0 4A 01 A. - 41H 0 1 0 0 0 0 1 0 42 00 B -... 42H 1 0 0 0 0 1 0 0 84 00 C -. -. 43H 1 0 1 0 0 1 0 0 A4 00 D -.. 44H 1 0 0 0 0 0 1 1 83 00 E. 45H 0 0 0 0 0 0 0 1 01 00 F.. -. 46H 0 0 1 0 0 1 0 0 24 00 G - -. 47H 1 1 0 0 0 0 1 1 C3 00 H.... 48H 0 0 0 0 0 1 0 0 04 00 I.. 49H 0 0 0 0 0 0 1 0 02 00 J. - - - 4AH 0 1 1 1 0 1 0 0 74 00 K -. - 4BH 1 0 1 0 0 0 1 1 A3 00 L. -.. 4CH 0 1 0 0 0 1 0 0 44 00 M - - 4DH 1 1 0 0 0 0 1 0 C2 00 -. 4EH 1 0 0 0 0 0 1 0 82 00 O - - - 4FH 1 1 1 0 0 0 1 1 E3 00 P. - -. 50H 0 1 1 0 0 1 0 0 64 00 Q - -. - 51H 1 1 0 1 0 1 0 0 D4 00 R. -. 52H 0 1 0 0 0 0 1 1 43 00 S... 53H 0 0 0 0 0 0 1 1 03 00 T - 54H 1 0 0 0 0 0 0 1 81 00 U.. - 55H 0 0 1 0 0 0 1 1 23 00 V... - 56H 0 0 0 1 0 1 0 0 14 00 W. - - 57H 0 1 1 0 0 0 1 1 63 00 X -.. - 58H 1 0 0 1 0 1 0 0 94 00 -. - - 59H 1 0 1 1 0 1 0 0 B4 00 Z - -.. 5AH 1 1 0 0 0 1 0 0 C4 00 Tabel 6 Kode Morse dan Kode dalam Program Listing program MORSE.ASM terdapat pada A44.Zip. Selamat berinovasi! PS/2 is a trademark of International Business Machines Corporation. Page 5 of 5 Application ote A44