IMPLEMENTASI TDMA PADA SISTEM KOMUNIKASI DATA MENGGUNAKAN MIKROKONTROLER AT89S51
Diajukan Untuk Memenuhi Persyaratan Dalam Menyelesaikan Pendidikan Tingkat Sarjana Strata-1 Teknik Elektro UNIVERSITAS MERCU BUANA
DISUSUN OLEH : Muhammad Fajar Saleh Alam NIM :01403-003
Teknik Elektro Fakultas Teknologi Industri UNIVERSITAS MERCU BUANA 2007
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
LEMBAR PERSETUJUAN
Nama
: Muhammad Fajar Saleh Alam
NIM
: 01403 - 003
Fakultas / Jurusan : Fakultas Teknologi Industri / Teknik Elektro Judul TA
: Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontoler AT89S51
Disetujui Oleh : Pembimbing
Koordinator Tugas Akhir
(Dr-Ing. Mudrik Alaydrus)
(Ir. Yudhi Gunardi, MT.)
Mengetahui :
KA Jurusan Teknik Elektro
(Ir. Budi Yanto Husodo, M.Sc.)
i
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
LEMBAR PERNYATAAN
Saya yang bertandatangan di bawah ini : Nama
: Muhammad Fajar Saleh Alam
NIM
: 01403 – 003
Menyatakan bahwa tugas akhir yang saya kerjakan dengan judul “Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51” adalah murni hasil karya saya sendiri yang sejauh sepengetahuan saya belum pernah dibuat oleh pihak lain, baik di dalam maupun di luar lingkup UNIVERSITAS MERCU BUANA.
Jakarta, 13 September 2007
(Muhammad Fajar Saleh Alam)
ii
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
KATA PENGANTAR
Assalamu’ alaikum Wr Wb Alhamdulillah, segala puji serta syukur senantiasa penulis panjatkan atas kehadirat Allah SWT yang telah melimpahkan rahmat dan nikmat-Nya terutama nikmat iman, Islam dan kesehatan sehingga penulis dapat menyelesikan penyusunan dan perancangan tugas akhir ini dengan baik. Shalawat serta salam tidak lupa penulis hanturkan kepada junjungan manusia, Nabi Muhammad SAW beserta keluarganya, sahabatnya dan pengikutnya yang tetap setia terhadap risalahnya. Penyusunan tugas akhir ini merupakan salah satu syarat untuk memperoleh gelar Sarjana Teknik dengan Jenjang Pendidikan Strata Satu Program Studi Teknik Elektro pada Fakultas Teknologi Industri Universitas Mercu Buana Jakarta. Tugas akhir ini berjudul “Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51 . Penulis menyadari sepenuhnya bahwa dalam penyusunan tugas akhir ini masih banyak kekurangan. Hal ini tidak lain karena keterbatasan kemampuan serta pengetahuan dari penulis. Oleh karena itu dengan segala kerendahan hati, penulis mengharapkan kritik dan saran yang bersifat konstruktif untuk lebih menyempurnakan penyusunan tugas akhir ini. Akhir kata, penulis berharap semoga penyusunan dan perancangan tugas akhir ini bermanfaat bagi pembaca pada umumnya dan bagi orang yang berkecimpung di teknik elektro pada khususnya.
iii
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Pada kesempatan ini, penulis juga ingin menyampaikan ucapan terima kasih yang tak terhingga atas dukungan dan dorongan dari berbagai pihak sehingga tugas akhir ini dapat terselesaikan dengan baik. Ucapan terima kasih, penulis sampaikan terutama kepada : 1. Kedua orang tua saya terutama Ibuku tercinta yang selalu memberikan dorongan moril dan materil yang tak terhingga serta mendoakan saya setiap waktu agar tugas akhir ini dapat terselesaikan dengan baik. Tiada suatu terindah yang dapat penulis berikan selain doa yang teriring disetiap waktu. Mudah-mudahan kelak jika saya berhasil nanti, kebaikan ibu akan saya balas. Dan untuk Ayahku (alm.) tak lupa penulis doakan semoga dilapangkan kuburnya, diterima segala amal ibadahnya, dihapuskan segala dosanya dan dimasukan kedalam SurgaMu, Amin. 2. Dr-Ing. Mudrik Alaydrus, selaku pembimbing tugas akhir yang telah memberikan perhatian, bimbingan, arahan dan waktunya kepada penulis dalam menyelesaikan tugas akhir ini. 3. Ir. Yudhi Gunardi, MT. selaku koordinator tugas akhir. 4. Ir. Budi Yanto Husodo, M.Sc., selaku kepala jurusan Teknik Elektro. 5. Seluruh Dosen dan staf pegawai FTI UMB Jakarta yang telah mendidik dan memberikan bimbingannya baik dalam kegiatan perkuliakan maupun dalam kegiatan lainnya. 6. Kedua Saudaraku mba’ Eva dan de’ nita. 7. Seluruh rekan-rekan Mahasiswa FTI Teknik Elektro UMB, Jakarta, yang tidak dapat saya sebutkan satu persatu. Terima kasih sudah mau mendengarkan keluh kesah dan suka duka yang penulis rasakan dari awal
iv
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
hingga akhir penyusunan tugas akhir ini. Terima kasih atas dorongan dan dukungannya.
Wassalamu’ alaikum Wr Wb
Jakarta, 20 Agustus 2007
Penulis
v
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
DAFTAR ISI
LEMBAR PERSETUJUAN ………………………. . ……………. .. ……………. i LEMBAR PERNYATAAN ………………………. . ………………. ….. ………. .ii KATA PENGANTAR …………………………….. ……………. ……. ………. .iii DAFTAR ISI ………………………………………. . ……………. ……. ………. vi DAFTAR GAMBAR ………………………………………. ….. ……. ……. . …..ix DAFTAR TABEL …………………………………………. ….. …. …………. ....xi BAB I
PENDAHULUAN ……………………. …………. .... ….. …….. …. …1 1.1 LATAR BELAKANG ……………………………………. …. ….1 1.2 TUJUAN ………………………………………………. ……. …..2 1.3 TEORI DASAR …………………………………………. ………3 1.4 PEMBATASAN MASALAH ………………………………. ......3 1.5 METODA PENULISAN ……………………………………. ......3 1.6 RENCANA HASIL TUGAS AKHIR ………………………. ......3 1.7 SISTEMATIKA PENULISAN …………………………………4
BAB II
PENGETAHUAN UMUM TDMA …………………. .. ….. ………. .6 2.1 DEFINISI ………………………………………. . ………………6 2.2 CARA KERJA TDMA ………………………………………….8 2.3 KELEBIHAN TDMA …………………………………………. ..9 2.4 KELEMAHAN TDMA …………………………………………9
BAB III
PRINSIP DASAR MIKROKONTROLER AT89S51 ………………………………………………. . …. ……...10
vi
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
3.1 DESKRIPSI MIKROKONTROLER AT89S51 ……………. ..10 3.2 STRUKTUR MEMORI ………………………………………1 2 3.3 INTERFACE …………………………………………………1 4 3.3.1 KEYBOARD ………………………………………. 14 3.3.2 LCD (DISPLAY) …………………………………. .19 3.3.3 TOMBOL …………………………………………. .21 3.3.4 INFRAMERAH ……………………………………2 2 BAB IV
PERANCANGAN SISTEM TDMA …………………. .. ………2 5 4.1 CARA KERJA SISTEM …………………………………….25 4.2 PERANCANGAN SKEMATIK ………………………. ……27 4.3 PERANCANGAN ALGORITMA DAN FLOWCHART …..35 4.3.1 SEKENARIO DASAR ………………………………3 5 4.3.2 PROTOKOL KOMUNIKASI ………………. ………3 7 4.3.3 FLOWCHART (DIAGRAM ALIR) ………. .. ………3 8 4.4 PERANCANGAN PROGRAM ASEMBLER ……... ………41 4.5 PENGAMATAN-PENGAMATAN ……………………. …..44 4.5.1 PENGAMATAN NOISE ……………………………4 4 4.5.2 PENGAMATAN KECEPATAN PENGIRIMAN.….46 4.5.3 PENGAMATAN SUDUT PENERIMAAN …. ……. .48
BAB V
KESIMPULAN ………………. ………………. . ……………. ...52 5.1 KESIMPULAN ……………………………………………. .52 5.2 SARAN …………………………………. ………………….52
DAFTAR PUSTAKA ……………………………. ……………. ... …………. ..53 LAMPIRAN A PROGRAM ASEMBLER UNTUK DEVICE ……………5 4
vii
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
LAMPIRAN B PROGRAM ASEMBLER UNTUK SENTRAL …. …... ….79
viii
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
DAFTAR GAMBAR Gambar 2.1
Multiple Access ………………………. .... ……….. ……. ….... …6
Gambar 2.2
Visualisasi TDMA …………………………. …. ……………. …7
Gambar 2.3
Empat Percakapan Empat Channel ………. . …………………. 8
Gambar 2.4
Empat Percakapan Satu Channel …………. . ……. .. …………. 8
Gambar 3.1
Posisi Pin AT89S51 ……………………………. . ……. ............10
Gambar 3.2
Visualisasi Memori AT89S51 ………………………. ...... …….12
Gambar 3.3
Peta Memori AT89S51 ………………………………. ………. 13
Gambar 3.4
Konektor Keyboard …... ………………………. .... ……. ….. …15
Gambar 3.5
Peta Data Keyboard ……………………………. ..……. ……. .15
Gambar 3.6
Sinyal Clock dan Data …………………………………. . …....16
Gambar 3.7
Interface Rangkaian Keyboard ke Mikrokontroler ……......16
Gambar 3.8
Flowchart Ambil Data Keyboard ………. .. ……………. . …..18
Gambar 3.9
LCD …………………………………………. .. ………. . ……. ..19
Gambar 3.10 Flowchart LCD ………………………………. ..……. . ………2 0 Gambar 3.11 Flowchart Scan Tombol ………………………. ..…. . ………. .21 Gambar 3.12 Gambar Sinyal Kirim dan Terima …………. .. …………. .....22 Gambar 3.13 Flowchart Kirim dan Terima Data …………. . …………. . …23 Gambar 4.1
Sistem TDMA Yang Dirancang …………………………. ….25
Gambar 4.2
Skematik Device ………………………………………. ……. .29
Gambar 4.3
PCB Layout Pada Device (tampak belakang) ……. ………. .30
Gambar 4.4
PCB Layout Pada Device (tampak depan) ………. . ………. ..30
Gambar 4.5
Skematik Sentral ……………………………………. ………. 31
Gambar 4.6
PCB Layout Pada Sentral …………………………. ………. 32
ix
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.7
Hasil Akhir …………………………………………………. ….34
Gambar 4.8
Visualisasi Skenario Menggunakan Komunikasi Analog …..35
Gambar 4.9
Visualisasi Skenario Menggunakan Komunikasi Digital …..36
Gambar 4.10 Visualisasi Skenario Dengan Pembeda Perintah dan Data...36 Gambar 4.11 Gambar Sistem Keseluruhan …………………………………3 8 Gambar 4.12 Flowchart Sentral Secara Umum …………………………. . …39 Gambar 4.13 Flowchart Device Secara Umum …………………………. . ….40 Gambar 4.14 Flowchart Device …………………………………………. . …..42 Gambar 4.15 Flowchart Sentral ………………………………………. . …….43 Gambar 4.16 Pengamatan Noise Pada Tabel 2 No.1 ………………. .. …... …45 Gambar 4.17 Sinyal Yang Diterima Pada Tabel 2 No. 1 …………. .. ……....45 Gambar 4.18 Pengamatan Sudut Pengiriman ………………. ..………. .. …..49 Gambar 4.19 Sudut Penerimaan Kritis ………………………. ..…………. ...50
x
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
DAFTAR TABEL
Tabel 3.1 Deskripsi Pin LCD …………………………………………………. ..19 Tabel 4.1 Hasil Pengamatan Noise ……………………………………………. 46 Tabel 4.2 Hasil Pengamatan Kecepatan Pengiriman ………………………. ..47 Tabel 4.3 Hasil Pengamatan Direktivitas Sensor IR …………………………5 0
xi
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
BAB I PENDAHULUAN
1.1
LATAR BELAKANG Pada waktu perkembangan teknologi telekomunikasi wireless belum begitu pesat, orang belum memikirkan multiple access. Karena pada saat itu belum banyak orang yang menggunakan kanal udara sebagai saluran transmisinya. Sejak perkembangan teknologi telekomunikasi wireless semakin pesat, maka timbul peraturan internasional yang mengatur penggunaan spektrum frekuensi pada udara. Sehingga para peneliti mulai berfikir, bagaimana cara meningkatkan kapasitas saluran. Multiple access adalah penggunaan saluran secara bersama oleh lebih dari satu pengguna dari sebuah sistem komunikasi. Tujuan dari multiple access adalah : v
Untuk menyediakan saluran kepada pengguna secara privat.
v
Untuk meminimalisasi interferensi dari user lain.
v
Untuk menggunakan spektrum frekuensi secara efisien.
Salah satu teknik multiple access yang banyak dipakai adalah TDMA (Time Division Multiple Access). TDMA adalah suatu
teknik
multiplexing yang memungkinkan penggunaan saluran transmisi (channel) secara bersama untuk beberapa user tanpa terjadi interferensi satu sama lain, dengan menempatkan informasi setiap user pada time slot yang
1
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
berbeda pada saluran transmisi yang sama. Pada receiver sinyal disusun kembali seperti semula untuk diproses selanjutnya. TDMA merupakan salah satu teknologi multiple access yang banyak digunakan untuk telekomunikasi wireless. Setelah memahami prinsip dasar TDMA, penulis mulai berfikir, alangkah menariknya jika teknologi tersebut diimplementasikan pada sebuah mikrokontoler. Penulis akan membuat sebuah sistem yang terdiri dari sebuah sentral/BTS dan beberapa buah transceiver yang mana nantinya akan dapat saling berkomunikasi secara TDMA tanpa terjadi percakapan silang satu sama lain. Untuk mikrokontrolernya, penulis menggunakan AT89S51, karena teori dasar dan aplikasinya telah dipelajari pada semester IV. Untuk inputnya penulis menggunakan sebuah keyboard. Agar terkesan user friendly penulis menggunakan sebuah modul character LCD 16 x 2 untuk keperluan tampilan. Dan untuk perlengkapan transceiver, penulis menggunakan inframerah sebagai gelombang transmisinya.
1.2
TUJUAN Tujuan dari tugas akhir ini adalah merancang sebuah sistem TDMA dan realisasinya dengan mikrokontroler AT89S51.
2
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
1.3
TEORI DASAR Teori dasar yang digunakan untuk mendukung penyusunan tugas akhir ini adalah Sistem Komunikasi 1, Perencanaan Sistem Teresterial, Elektronika Analog dan Sistem Mikroprosesor.
1.4
PEMBATASAN MASALAH Pembatasan
masalah
pada
tugas
akhir
yang
berjudul
“Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51” dibatasi pada seluruh proses perancangan sistem dan pengujian peralatan. Dan tidak ketinggalan tentang teori dasar Time Division Multiple Access.
1.5
METODE PENULISAN Penulisan pada tugas akhir ini menggunakan metoda penelusuran studi pustaka seperti buku-buku di perpustakaan, buku modul dan catatancatatan dari hasil perkuliahan sebelumnya serta penelusuran di berbagai sumber di internet. Selain itu penulis juga melakukan serangkaian percobaan secara sistematis yang berhubungan dengan mikrokontroler.
1.6
RENCANA HASIL TUGAS AKHIR Penulis dapat menjelaskan proses multiplexing pada sistem TDMA dengan menggunakan peralatan yang dibuat dan peralatan dapat berjalan dengan baik.
3
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
1.7
SISTEMATIKA PENULISAN BAB I PENDAHULUAN Pada bagian ini diberikan gambaran umum dari tugas akhir seperti : Latar Belakang, Tujuan, Teori Dasar, Pembatasan Masalah, Metode Penulisan, Rencana Hasil Tugas Akhir dan Sistematika Penulisan.
BAB II PENGETAHUAN UMUM TDMA Pada bagian ini diberikan penjelasan umum tentang TDMA (Time Division Multiple Access) seperti definisi, cara kerja TDMA, kelebihan dan kelemahan TDMA.
BAB III PRINSIP DASAR MIKROKONTROLER AT89S51 Pada bagian ini akan diberi penjelasan secara singkat tentang mikrokontroler,
arsitektur,
fitur-fitur,
peta
memori
serta
teknik
interfacenya dengan LCD, keyboard, tombol dan inframerah.
BAB IV PERANCANGAN SISTEM TDMA Pada bagian ini akan diberi penjelasan tentang cara kerja sistem, gambar skematik, perancangan algoritma dasar, mengubah algoritma dasar menjadi algoritma AT89S51, perancangan program utama dan hasil pengamatan-pengamatan yang didapat.
4
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
BAB V
KESIMPULAN
Berisi kesimpulan dan saran dari pembahasan pada bab-bab sebelumnya dari tugas akhir ini.
5
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
BAB II PENGETAHUAN UMUM TDMA
2.1 DEFINISI
Gambar 2.1 Multiple Access Multiple access adalah penggunaan saluran secara bersama oleh lebih dari satu pengguna dari sebuah sistem telekomunikasi. Tujuan dari multiple access adalah : v Untuk menyediakan saluran kepada pengguna secara privat. v Untuk meminimalisasi interferensi dari user lain. v Untuk menggunakan spektrum frekuensi secara efisien.
6
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Sinyal informasi dari setiap user harus berbeda dan unik satu sama lain sehingga satu pengguna tidak dapat menginterferensi satu sama lain. Setiap user dapat dipisahkan oleh beberapa cara yaitu dengan dipisahkan oleh kabel, frekuensi, waktu, kode dll. Ada macam-macam teknik multipleksing yang dikenal sekarang yaitu : v TDM (Time Division Multiplexing) v SDM (Space Division Multiplexing) v FDM (Frequency Division Multiplexing) v CDM (Code Division Multipexing)
Gambar 2.2 Visualisasi TDMA
Salah satu teknik multiple access adalah TDMA. Time Division Multiple Access (TDMA) adalah suatu
teknik multiplexing yang
memungkinkan penggunaan saluran transmisi (channel) secara bersama untuk beberapa user tanpa terjadi interferensi satu sama lain, dengan menempatkan potongan informasi setiap user pada time slot yang berbeda pada saluran transmisi yang sama. Pada receiver sinyal disusun kembali
7
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
seperti semula. TDMA merupakan salah satu teknologi yang digunakan untuk telekomunikasi digital.
2.2 Cara Kerja TDMA TDMA bekerja dengan memotong-motong sinyal digital dalam bentuk paket informasi dan kemudian menempatkannya kedalam time slot yang dilakukan secara bergiliran antara user yang satu dengan yang lainnya. Dengan kata lain TDMA menggunakan suatu saluran yang sama secara bergantian. Untuk mengilustrasikan proses pada sistem TDMA lihat gambar 2.3 dan 2.4.
Gambar 2.3 Empat Percakapan Empat Channel
Gambar 2.4 Empat Percakapan Satu Channel
8
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Pada gambar 2.4, sebuah channel dapat mengirimkan empat percakapan secara simultan jika setiap percakapan dipecah-pecah dan dimasukan ke dalam time slot.
2.3 Kelebihan TDMA Kelebihan TDMA dibandingkan dengan teknik multiplexing yang lain adalah : a. Bandwidth lebih hemat. b. TDMA tidak mengalami interferensi, karena setiap user mengirimkan data pada waktu yang berbeda secara bergantian. c. TDMA memiliki kualitas sinyal yang baik untuk transmisi jarak jauh, karena sinyalnya berbentuk digital. d. Karena menggunakan sistem digital, kerahasiaan data sangat baik karena sulit untuk didekode. e. Daya kirim (PT) lebih hemat, karena hanya mentransmisikan sinyal pada selang waktu tertentu (bergantian kepada user lain).
2.4 Kelemahan TDMA Salah satu kelemahan TDMA adalah membutuhkan bit rate yang tinggi, karena sistem TDMA mengirimkan atau menerima potonganpotongan sinyal pada waktu yang berbeda-beda. Ini berarti kapasitas saluran pada sistem ini bergantung pada banyaknya time slot dan kecepatan akses.
9
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
BAB III PRINSIP DASAR MIKROKONTROLER AT89S51
3.1 Deskripsi Mikrokontroler AT89S51
Gambar 3.1 Posisi Pin AT89S51
AT89S51 merupakan salah satu varian IC atmel dari keluarga MCS51 yang mempunyai konsumsi daya rendah, menggunakan teknologi 8 bit CMOS dan memiliki memori dengan kapasitas 4K byte serta memiliki kemampuan ISP (in system programmable). Mikrokontroler ini dapat diprogram ulang pada saat chip berada di dalam sistem atau dengan menggunakan programmer konvensional. Dengan mengkombinasikan CPU 8 bit yang serbaguna dengan flash ISP pada chip, AT89S51 merupakan
10
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
mikrokontroler yang luar biasa yang memberikan fleksibelitas yang tinggi dan penyelesaian biaya yang efektif untuk beberapa aplikasi kontrol.
AT89S51 memberikan fitur-fitur standar sebagai berikut: kapasitas memori sebesar 4 KB, kapasitas ram 128 byte, 32 buah jalur I/O, watchdog Timer, dual data pointer, dua 16 bit timer/ counter, lima vektor interupsi dua level, sebuah port serial full duplex, osilator internal, dan rangkaian clock. Selain itu AT89S51 didisain dengan logika statis untuk operasi dengan frekuensi sampai 0 Hz dan didukung dengan mode penghematan daya (idle). Pada mode idle, CPU pada mikrokontroler akan terhenti, sementara RAM, timer/ counter, serial port dan sistem interupsi tetap berfungsi. Mode Power Down akan tetap menyimpan isi dari RAM tetapi akan membekukan osilator, menggagalkan semua fungsi chip sampai interupsi eksternal atau reset hardware ditemui.
Tata letak pin AT89S51 dapat dilihat pada gambar 3.1. Sedangkan fungsi pin-pin tersebut dapat dilihat pada penjelasan di bawah ini. ü Vcc dan gnd digunakan untuk catu daya sebesar 5 V. ü Pin reset digunakan untuk men-reset sistem, sehingga program di eksekusi dari baris pertama pada saat power on. Proses reset terjadi jika pin ini mengalami transisi dari high ke low. ü P0 (Port 0) terdiri dari 8 bit yaitu : P0.7 - P0.0, yang mana kondisi dari masing-masing pin dapat dikendalikan secara softwere. Pin ini digunakan untuk jalur I/O.
11
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
ü P1, P2 dan P3 sama seperti P0, yaitu digunakan untuk jalur I/O yang mana nantinya akan digunakan untuk interface dengan module LCD, membaca data dari keyboard, menerima data dari IR receiver, mengirimkan data melalui IR receiver, menyalakan LED dll.
3.2 Struktur Memori
Gambar 3.2 Visualisasi Memori AT89S51 Struktur memori dari AT89S51 dapat divisualisasikan pada gambar di atas. Gambar di atas adalah sebuah rak-rak yang tersusun atas 8 buah sekat. Masing-masing rak di tandai dengan sebuah alamat (address) dalam bentuk hex. Masing-masing sekat dapat diisi dengan sebuah bola merah, misalkan diisi sesuai pada alamat 30H. Bola-bola pada alamat 30H dapat diambil, digeser ke kiri, di geser ke kanan, atau dipindahkan pada alamat yang berbeda, misalnya sekat ke-4 pada alamat 31H. Bola-bola tersebut juga
12
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
dapat dipindahkan ke alamat 3FH. Bola-bola merah tersebut merupakan visualisasi dari keadaan high, sedangkan sekat yang kosong menandakan keadaan low pada memori AT89S51.
Gambar 3.3 Peta Memori AT89S51
AT89S51 mempunyai struktur memori yang terdiri atas : ü RAM internal memiliki kapasitas memori sebesar 128 byte yang biasanya digunakan untuk menyimpan variabel atau data yang bersifat sementara. Ram internal terdiri atas : Ø Register Bank AT89S51 mempunyai delapan buah register yang terdiri atas R0 R7. Pada project ini, R0–R7 banyak digunakan sebagai counter pengulangan subrutin dll. Ø Bit Addressable RAM Bit Addressable RAM terletak pada alamat 20H – 2FH. Ø GPR (General Purpose Register) / RAM Keperluan Umum
13
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
GPR Terletak pada alamat 30H – 7FH. Pada project ini, register ini banyak digunakan untuk menyimpan data yang akan dikirim. ü SFR (Spesial Function Register), memori yang berisi register-register yang
mempunyai
fungsi-fungsi
khusus
yang
disediakan
oleh
mikrokontroler seperti timer, serial dll. ü Flash PEROM, memori yang digunakan untuk menyimpan instruksiinstruksi MCS51.
3.3 Interface Ada 4 macam interface yang digunakan pada project ini, yaitu : keyboard, LCD, inframerah dan tombol. Di bawah ini merupakan penjelasan cara
meng-interface
device-device
tersebut
ke
mikrokontroler
dan
perancangan subrutinnya. 3.3.1 Keyboard Antarmuka keyboard standar adalah hubungan komunikasi serial yang menandakan bahwa data dikirim selalu sinkron dengan sinyal clock. Serial komunikasi dipilih pada antara muka keyboard karena tidak banyak data per detik yang harus dikirimkan pada antarmuka keyboard. Ada empat jalur yang menghubungkan keyboard dan PC, yaitu power supply dan ground, yang digunakan untuk memberikan daya ke rangkaian keyboard, pin data sebagai jalur output data dari keyboard dan pin clock yang mengeluarkan sinyal clock agar keyboard dan sistem dapat bekerja secara sinkron.
14
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Keyboard yang terkoneksi, hanya menggunakan empat buah kabel, kabel ini ditunjukkan pada gambar dibawah.
5 PIN DIN (a)
6 PIN DIN (b)
1.KBD Clock 2.KBD Data 3.N/C 4.GND 5. +5V (VCC) 1. KBD Clock 2. GND 3. KBD Data 4. N/C 5. +5V (VCC) 6. N/C Gambar 3.4 Konektor Keyboard
Diagram dibawah ini menunjukkan kode scan yang menandai tombol individu. Contoh kode scan untuk tombol ESC adalah 76H. Artinya, jika tombol ESC ditekan, maka data yang keluar dari pin data adalah 76H atau 01110011B. Semua kode scan ditunjukkan dalam Hex.
Gambar 3.5 Peta Data Keyboard
Setiap kode scan pada gambar di atas, ditandai dengan kode yang random. Pada beberapa kasus, cara yang paling mudah untuk
15
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
menerjemahkan kode scan ke ASCII adalah dengan menggunakan metode look up table.
Format sinyal data pada keyboard, menggunakan 11 bit. Bit pertama adalah bit start (logika 0), diikuti dengan 8 bit data, satu bit paristas (paritas ganjil) dan bit stop (logika 1). Setiap bit dibaca pada sisi turun dari clock.
Gambar 3.6 Sinyal Clock dan Data
Gambar 3.7 Interface Rangkaian Keyboard ke Mikrokontroler
Subrutin di bawah ini merupakan subrutin yang digunakan untuk memperoleh 8 bit data sesuai dengan peta data keyboard pada
16
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
gambar 3.5. Caranya bit-bit data keyboard tersebut diambil pada saat transisi pin clock dari high ke low. Pada saat transisi pertama merupakan bit start. Kemudian selanjutnya bit 0 – bit 7. Inilah data yang akan diambil. Kemudian data selanjutnya dapat diabaikan. Misal, jika pada keyboard ditekan huruf A, maka data yang akan diperoleh adalah 1CH atau 00011100B (sesuai dengan peta data keyboard). Berikut ini adalah subrutin untuk mengambil data dari keyboard. AMBIL_DATA_KEYB: CALL AMBIL_DATA_KEY1 CJNE A,#0F0H,AMBIL_DATA_KEYB CALL AMBIL_DATA_KEY1 RET AMBIL_DATA_KEY1: JB PIN_CLOCK,$ CLR A JNB PIN_CLOCK,$ MOV R3,#8 AMBIL_DATA_KEY2: JB PIN_CLOCK,$ MOV C,PIN_DATA_KEYB RR A MOV ACC.7,C JNB PIN_CLOCK,$ DJNZ R3,AMBIL_DATA_KEY2 JB PIN_CLOCK,$ JNB PIN_CLOCK,$ JB PIN_CLOCK,$ JNB PIN_CLOCK,$ RET
Untuk flowchart keyboard dapat dilihat pada gambar di bawah ini.
17
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 3.8 Flowchart Ambil Data Keyboard
18
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
3.3.2 LCD ( Display )
Gambar 3.9 LCD
Tabel 3.1. Deskripsi Pin LCD
PIN
Name
1
VSS
Ground voltage
2
VCC
+5V
3
VEE
Contrast voltage
4
RS
Register Select 0 = Instruction Register 1 = Data Register
5
R/W
Function
Read/ Write, to choose write or read mode 0 = write mode 1 = read mode Enable 0 = start to lacht data to LCD character 1= disable
6
E
7
DB0
LSB
8
DB1
-
9
DB2
-
10
DB3
-
11
DB4
-
12
DB5
-
13
DB6
-
14
DB7
MSB
15
BPL
Back Plane Light
16
GND
Ground voltage
19
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Ada dua macam informasi yang disampaikan ke LCD, yaitu perintah dan data. Contoh perintah yang biasanya diberikan pada LCD diantaranya adalah clear display, return home, cursor and display shift dsb. Sedangkan yang dimaksud dengan data adalah data karakter yang akan ditampilkan pada LCD. Untuk memberikan perintah pada LCD sangat mudah. Caranya dengan mengkopi perintah yang dimaksud ke akumulator kemudian memanggil subrutin “tulis_perintah_lcd”. Begitu pula dengan memberikan data pada LCD, yaitu dengan mengkopi data ke akumulator kemudian memanggil subrutin “tulis_data_lcd”. Contoh : MOV CALL
A,#00000001B TULIS_PERINTAH_LCD
;kosongkan display
Sedangkan flowchart-nya adalah sebagai berikut :
Gambar 3.10 Flowchart LCD
Sedangkan subrutin tulis_perintah_lcd dan tulis_data_lcd adalah sebagai berikut:
20
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
TULIS_DATA_LCD: MOV PIN_DATA_LCD,A ; kopi data di A ke pin_data_lcd SETB PIN_RS ; menandakan bahwa ini data CLR PIN_RW ; menandakan pada mode write NOP ; tunda beberapa waktu SETB PIN_E ; laksanakan NOP ; tunda NOP ; tunda CLR PIN_E ; selesai CALL DLY10MS RET ;Kembali lompat ke instruksi pemanggil TULIS_PERINTAH_LCD: MOV PIN_DATA_LCD,A CLR PIN_RS CLR PIN_RW NOP SETB PIN_E NOP NOP CLR PIN_E CALL DLY10MS RET
; ; ; ; ; ; ; ;
kopi data di A ke pin_data_lcd menandakan bahwa ini data menandakan pada mode write tunda beberapa waktu laksanakan tunda tunda selesai
3.3.3 Tombol Pada skematik device pada gambar 4.2, dapat dilihat bahwa tombol yang terpasang, terhubung dengan pin IC dan ground. Artinya jika tombol ditekan maka pin tersebut berkondisi low (Active Low). Sehingga flowchart-nya menjadi :
Gambar 3.11 Flowchart Scan Tombol
21
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Sedangkan subrutinnya menjadi sebagai berikut : SCAN_TOMBOL: JNB TOMBOL_POWER,POWER_DITEKAN JNB TOMBOL_SEND,SEND_DITEKAN JNB TOMBOL_ID_PENGIRIM,ID_PENGIRIM_DITEKAN RET
3.3.4 Inframerah Untuk mengirimkan data menggunakan inframerah, sinyal harus termodulasi dahulu pada frekuensi 38KHz. Ini dikarenakan penulis menggunakan sensor IR yang telah ter-bandpass pada frekuensi tersebut. Besar frekuensi modulasi tersebut dipilih karena dinilai aman untuk komunikasi IR, selebihnya merupakan noise IR yang berasal dari lampu neon, sinar matahari dll. Sinyal akan dikirimkan secara bergantian, mulai dari data ke 0 sampai data ke 7. Setiap bit dikirimkan selama 2mS dan diawali dengan start bit. Start bit terdiri dari satu buah bit 1 dan satu buah bit 0. Start bit berguna agar mikrokontroler bersiap untuk menerima data. Berikut adalah gambar sinyal pada transmiter sampai pada receiver.
Gambar 3.12 Gambar Sinyal Kirim dan Terima
22
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Pada gambar 3.12, bentuk sinyal RX terbalik terhadap TX, karena di dalam sebuah sensor RX terdapat sebuah transistor yang berkonfigurasi emiter terbumi dan kolektor sebagai outputnya, sehingga jika tidak ada sinyal pin basisnya berkondisi low dan jika ada sinyal, pin basisnya berkondisi high. Hal ini bukan masalah bagi mikrokontroler, karena sinyal yang diterima, dapat diinvert terlebih dahulu sebelum diproses lebih lanjut. Berangkat dari gambar di atas maka penulis merancang flowchart-nya sbb :
Gambar 3.13 Flowchart Kirim dan Terima Data
23
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Sehingga subrutin untuk kirim dan terima menjadi seperti berikut : TERIMA: CALL CLR MOV TERIMA1: MOV MOV RR CALL DJNZ CPL MOV SETB RET
TERIMA_ST_BIT LED_TERIMA R6,#8 C,SENSOR_TERIMA ACC.7,C A DLY2000 R6,TERIMA1 A BUFFER,A LED_TERIMA
TERIMA_ST_BIT: CALL SCAN_TOMBOL JB SENSOR_TERIMA,TERIMA_ST_BIT TERIMA_ST_BIT1: CALL SCAN_TOMBOL JNB SENSOR_TERIMA,TERIMA_ST_BIT1 CALL DLY1000 RET
KIRIM: CLR CALL MOV KIRIM1: MOV CALL RR DJNZ CLR SETB RET
LED_KIRIM KIRIM_START_BIT R6,#8 MOV C,ACC.0 SENSOR_KIRIM,C DLY2000 A R6,KIRIM1 SENSOR_KIRIM LED_KIRIM
KIRIM_START_BIT: SETB SENSOR_KIRIM CALL DLY2000 CLR SENSOR_KIRIM CALL DLY2000 RET
24
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
BAB IV PERANCANGAN SISTEM TDMA
Gambar 4.1 Sistem TDMA Yang Dirancang
4.1 Cara Kerja Sistem Pada project ini, penulis akan membuat sebuah sistem yang terdiri dari sebuah sentral dan enam buah transceiver yang selanjutnya dapat dinamakan Device A sampai Device F, yang mana nantinya akan dapat saling berkomunikasi secara TDMA tanpa terjadi percakapan silang satu sama lain. Setiap device akan mulai mengirim atau menerima data apabila ada aba-aba dari sentral. Oleh karena itu setiap device diberi ID seperti yang
25
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
terlihat pada gambar 4.1. Pada saat bekerja, sentral mengatur trafik agar proses telekomunikasi secara TDMA dapat bekerja secara sinkron. Setiap device terdiri dari 1 buah LCD, AT89S51, IR sensor, IR LED, 3 buah tombol yang terdiri dari tombol power, send dan ID pengirim. Untuk sentral terdiri dari AT89S51, IR sensor dan IR LED. Cara kerja sistemnya adalah sebagai berikut : ü Pada saat sistem dinyalakan, semua device mati sampai tombol power ditekan. Sementara sentral melakukan scanning untuk menanyakan status dari masing-masing device secara bergantian. Jika device mati, maka tidak ada respon. Selanjutnya sentral akan men-scan device berikutnya. ü Setelah tombol power ditekan, device hidup dan siap menerima data dari manapun. ü Jika tombol power ditekan sekali lagi, device tidak siap menerima data IR, tetapi siap menerima data dari keyboard. ü Ketik message yang akan dikirim, misalnya “MERCU BUANA”. ü Setelah itu tekan tombol F1, maka di LCD akan muncul “KIRIM KE DEVICE ….” ü Lalu ketik device tujuan pengiriman misalnya device C. ü Jika tombol send ditekan maka device siap mengirim pesan sekaligus menerima pesan. ü Untuk mengetahui dari device mana data tersebut dikirim, tekan tombol ID Pengirim.
26
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
4.2 Perancangan Skematik Baik device maupun sentral, terdiri dari beberapa komponen seperti tombol, keyboard, IR receiver, IR transmitter, LCD dll. Setiap komponen tersebut, terhubung oleh mikrokontroler AT89S51 pada pin I/O-nya (P0 P3). Penggunaan pin I/O bebas digunakan dimana saja, karena pin I/O tersebut akan dikendalikan secara softwere. Untuk komponen Xtal, penulis menggunakan Xtal dengan nilai sebesar 11,0592 MHz. Untuk pin yang lain seperti Vcc dan gnd dihubungkan dengan catu daya sebesar 5 V yang telah teregulasi menggunakan IC regulator 7805 dan telah terfilter menggunakan kapasitor 220 uF. Komponen kristal diletakan di pin ke 18 dan 19 dan disusun paralel dengan dua buah kapasitor 33 pF dan digroundkan (lihat gambar 4.2). Besar kecilnya nilai kristal mempengaruhi kecepatan clock dari mikrokontroler. Agar mudah diprogram secara ISP (In System Programming) penulis menggunakan kristal sebesar 11,0592 MHz. Pin reset pada mikrokontroler terhubung oleh sebuah resistor dan sebuah kapasitor. Sehingga setiap mikrokontroler dinyalakan maka sistem akan reset. Karena pada saat itu, pin reset akan transisi dari high ke low. Sinyal IR, dimodulasi pada frekuensi 38 KHz menggunakan IC timer 555. IC tersebut mengeluarkan gelombang square pada frekuensi 38 KHz saat pin 4 (reset) IC tersebut berkondisi high. Nilai 38 KHz diperoleh dengan mengatur nilai resistor dan kapasitor yang digunakan pada IC tersebut dengan menggunakan formula yang terdapat pada datasheet sbb : t1 = 0,693 * (R1+R2) * C t2 = 0,693 * R2 * C
27
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
dengan R1 dan R2 dalam satuan ohm, C dalam satuan farad dan t dalam satuan detik. Diketahui : f = 38 KHz, maka t =
t1 = t2 =
1 = 26,3µs 38.000 hz
26,3µs = 13,15µs . 2
Jika penulis memilih nilai : R1 = 1K = 1000 ohm C = 1 nF = 1 * 10-9 F Maka nilai R2 adalah sebagai berikut : t1 = t2 = 0,693 * (R1+R2) * C 13,15 × 10 −6 s = 0,693 × (1000Ω + R 2) × (1 × 10 −9 F ) 13,15 × 10 − 6 s = 1000Ω + R 2 0,693 × (1 × 10 −9 F ) 18.975,47 = 1000 + R 2 R2 = 18.975,47 − 1000 ≈ 18000Ω = 18KΩ Untuk men-drive backlit LCD, penulis menggunakan general purpose transistor PNP yang menggunakan konfigurasi kolektor terbumi. Pada saat pin basis bernilai low, maka arus mengalir sehingga backlit menyala, dan sebaliknya. Pin basis terhubung dengan sebuah resistor yang berguna untuk untuk membatasi arus. Untuk tombol, penulis menggunakan konfigurasi active low, artinya jika tombol ditekan maka kondisi pinnya menjadi low dan jika tombol dilepas maka kondisi pin menjadi high. Sehingga penulis merancang gambar skematik dari device adalah sbb:
28
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.2 Skematik Device
29
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Sedangkan gambar pada PCB-nya adalah sbb:
Gambar 4.3 PCB Layout Pada Device (tampak belakang)
Gambar 4.4 PCB Layout Pada Device (tampak depan)
30
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Sedangkan, gambar skematik untuk sentral adalah sebagai berikut :
Gambar 4.5 Skematik Sentral
31
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Sedangkan gambar PCB-nya adalah sebagai berikut :
Gambar 4.6 PCB Layout Pada Sentral
32
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Sesuai dengan pengamatan Direktivitas Sensor IR pada tabel 4.3, didapat sudut efektif penerimaan sensor IR adalah sebesar 00 – 410. Sehingga sistem transceiver pada masing-masing device diset pada sudut tersebut. Untuk memperoleh pengiriman dan penerimaan maksimal, maka penulis menset sudut penerimaan sensor IR pada sudut 0 0. Untuk itu pada sentral, dibuat menara mini yang ditempatkan dua buah sensor IR dan LED transmitter pada masing–masing device diarahkan langsung pada menara mini tersebut. Setelah terakit semua, maka hasil akhir dari project ini terlihat pada gambar berikut :
33
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.7 Hasil Akhir
34
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
4.3 Perancangan Algoritma dan Flowchart 4.3.1 Sekenario Dasar Agar proses telekomunikasi secara TDMA dapat bekerja secara sinkron (tidak saling timpang tindih), maka harus ada yang mengontrol trafik dari sistem tersebut. Yang bertugas mengontrol trafik dari sistem adalah sentral. Device akan mulai mengirim/menerima data apabila ada perintah dari sentral. Di bawah ini adalah contoh komunikasi yang dilakukan sentral dengan dua buah device !
Gambar 4.8 Visualisasi Skenario Menggunakan Komunikasi Analog
Proses komunikasi yang dilakukan mikrokontroler, tidak dapat menggunakan
sinyal
analog,
sehingga
penulis
merancang
sistem
menggunakan bahasa biner, misalnya seperti gambar di bawah ini.
35
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.9 Visualisasi Skenario Menggunakan Komunikasi Digital
Pada gambar di atas, mikrokontroler dapat berkomunikasi satu sama lain. Namun algoritma pada gambar di atas mikrokontroler tidak dapat membedakan mana yang merupakan perintah dan mana yang merupakan data. Untuk itu, penulis berfikir untuk mengirimkan bit 00000001 sebelum mengirimkan perintah, sehingga mikrokontroler dapat mengenali mana perintah dan mana data. Dan gambar di atas diperbaiki menjadi :
Gambar 4.10 Visualisasi Skenario Dengan Pembeda Perintah dan Data
36
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
4.3.2 Protokol Komunikasi Pada bagian ini akan dijelaskan, bagaimana komunikasi analog (gambar 4.8) yang telah penulis rancang, dikonversi menjadi komunikasi digital. Untuk itu harus ada protokol/aturan komunikasi. Sehingga penulis merancang protokol tersebut sebagai berikut : ü Ada dua jenis informasi yang dikirim atau diterima oleh device dan sentral, yaitu perintah dan data. Perintah adalah sesuatu yang diberikan agar peralatan yang diberi perintah baik sentral maupun device melakukan sesuatu misalnya : “A, kirimkan status ke S”. Sedangkan data adalah informasi yang akan dikirimkan atau diterima untuk kemudian ditampilkan pada LCD. Untuk membedakan keduanya, sebelum mengirimkan perintah dikirimkan bit 00000001 terlebih dahulu.
ü Format perintah adalah sbb yyy-z-xxx yyy
= identitas yang diberi perintah
z
= jenis perintah (jika 1 =”kirim”, jika 0 =”terima”)
xxx
= identitas pemberi perintah
identitas device dapat dilihat pada gambar 4.1. contoh : 001 1 111
= A, kirimkan status, ke sentral
111 1 010
= Sentral, kirimkan data, ke B
010 0 001
= B, terima data, dari A
37
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
4.3.3 Flowchart (Diagram Alir) Dengan mengacu pada skenario dasar dan protokol komunikasi di atas maka penulis dapat mengembangkannya menjadi satu buah sentral dan enam buah device. Sehingga gambar visualisasi komunikasi secara keseluruhan menjadi seperti di bawah ini.
Gambar 4.11 Gambar Sistem Keseluruhan Gambar di atas adalah gambar diagram sistem secara keseluruhan. xxx adalah ID device yang diperintahkan sentral untuk mengirimkan status sedangkan yyy adalah ID device tujuan data yang akan dikirimkan. Setelah xxx menerima perintah dari sentral ada dua kemungkinan yang akan dilakukan xxx, yaitu xxx akan mengirimkan status ke sentral atau xxx akan tidak merespon perintah karena xxx sedang mati atau tidak siap menerima data pada saat diberi input keyboard. Jika tidak merespon maka sentral akan memberi perintah pada device berikutnya (xxx + 1).
38
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.11 di atas dapat dijadikan acuan untuk membuat flowchart. Sehingga flowchart-nya dapat dilihat pada gambar 4.12 dan 4.13.
Gambar 4.12 Flowchart Sentral Secara Umum
39
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.13 Flowchart Device Secara Umum
40
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
4.4 Perancangan Program Assembler Flowchart dan algoritma pada gambar-gambar di atas merupakan sekenario dasar dari project ini. Flowchart pada gambar 4.14 dan 4.15 di bawah ini merupakan flowchart secara lebih detail pada gambar 4.12 dan 4.13. Dengan mengacu pada flowchart pada gambar 4.14 dan 4.15, maka penulis membuat suatu program asembler yang dapat dilihat pada Lampiran A (untuk device) dan Lampiran B (untuk sentral).
41
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.14 Flowchart Device
42
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.15 Flowchart Sentral
43
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
4.5 Pengamatan – Pengamatan 4.5.1 Pengamatan Noise Sensor IR yang digunakan penulis mempunyai imunitas yang cukup baik terhadap noise, karena didalamnya terdapat bandpass filter 38 KHz. Sehingga sensor akan menerima sinyal IR hanya pada frekuensi tersebut. Noise yang mungkin mengganggu komunikasi inframerah adalah noise yang termodulasi pada frekuensi 38 KHz. Pada pengamatan kali ini, penulis akan mengamati bagaimana sinyal data yang diterima sensor IR jika diberikan gangguan sinyal noise yang mempunyai frekuensi modulasi yang sama. Penulis akan mengirimkan 8 bit informasi secara periodis bersamaan dengan 8 bit noise. Misalnya dikirim data informasi 01100000 dari device F ke sentral, bersamaan dengan dikirimnya noise 01011001 dari device D ke sentral. Sehingga data yang diterima sentral dapat dilihat pada tabel 4.1.
44
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.16 Pengamatan Noise Pada Tabel 4.1 No.1
Gambar 4.17 Sinyal Yang Diterima Pada Tabel 4.1 No. 1
45
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Tabel 4.1 Hasil Pengamatan Noise No.
Informasi Yang Dikirim
Noise Yang Dikirim
Data Yang Diterima
1.
01100000
01011001
01111001
2.
01000001
01111110
01111111
3.
00000001
00000111
00000111
4.
01010101
00101010
01111111
Kesimpulan yang dapat penulis ambil pada pengamatan ini adalah jika sinyal yang dikirim tercampur dengan noise, maka sinyal yang diterima oleh receiver adalah penjumlahan (efek or) antara sinyal data dengan sinyal noise. Artinya jika salah satu atau keduanya dari sinyal data dan sinyal noise bernilai high maka sinyal yang diterima oleh receiver bernilai high. Salah satu kelebihan dari sistem yang penulis rencang adalah jika device atau sentral menerima data yang rusak, maka device dan sentral tersebut akan mengabaikannya sehingga hanya data-data yang dikenalinya saja yang akan direspon oleh device maupun sentral.
4.5.2 Pengamatan Kecepatan Pengiriman Pada bagian ini, penulis akan melakukan pengamatan berapa kecepatan pengiriman minimal dan maksimal yang dapat dilakukan oleh sensor IR. Penulis akan mengirimkan 8 bit data secara periodis, misalnya bit 01100110 ke sentral. Kemudian sinyal terima pada sentral ditampilkan pada 8 buah LED.
46
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Penulis
akan
memvariasikan kecepatan pengiriman
dan
mengamati kapan data tersebut rusak. Hasil pengamatan penulis dapat dilihat pada tabel di bawah ini. Tabel 4.2 Hasil Pengamatan Kecepatan Pengiriman No.
Lama 1 Bit
Data Dikirim
Data Diterima
Kesimpulan
Terkirim (µs) 1
T = 300
01100110
11101110
Data Terima Rusak
2
T = 400
01100110
X1100110
Data Terima Rusak
3
T = 450
01100110
X1100110
Data Terima Rusak
4
T = 470
01100110
X1100110
Data Terima Rusak
5
T = 480
01100110
01100110
Data Diterima Dengan Baik
6
T = 1000
01100110
01100110
Data Diterima Dengan Baik
7
T = 2000
01100110
01100110
Data Diterima Dengan Baik
8
T = 5000
01100110
01100110
Data Diterima Dengan Baik
9
T = 10000
01100110
01100110
Data Diterima Dengan Baik
10
T = 20000
01100110
01100110
Data Diterima Dengan Baik
11
T = 20050
01100110
01100110
Data Diterima Dengan Baik
12
T = 20051
01100110
0X100110
Data Terima Rusak
13
T = 20052
01100110
0X100110
Data Terima Rusak
Pada tabel diatas dapat dilihat bahwa data yang diterima mulai labil pada T < 480 µs dan T > 20050 µs. Jadi kesimpulan yang dapat
47
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
penulis ambil adalah
kecepatan pengiriman maksimal yang dapat
dilakukan oleh sensor IR adalah sebesar
1bit ≈ 2083bps dan 480 × 10 − 6 s
kecepatan pengiriman minimal yang dapat dilakukan oleh sensor adalah sebesar
1bit ≈ 50bps . Artinya penulis bebas menggunakan 20050 × 10 −6 s
kecepatan pengiriman data asalkan kecepatannya diantara 50 bps – 2083 bps. Pada project ini penulis menggunakan kecepatan pengiriman sebesar
1bit ≈ 500bps. 2000 × 10 −6 s
4.5.3 Pengamatan Sudut Penerimaan Pada bagian ini, penulis akan mengamati berapa besar sudut penerimaan maksimal yang dapat dilakukan oleh sensor receiver. Penulis akan mengirimkan 8 bit data secara periodis, misalnya 01100110 dengan menggunakan device F. Kemudian data tersebut diterima pada sentral dan ditampilkan pada 8 buah LED. Sedangkan sudut penerimaan sensor pada sentral penulis variabelkan dari 00 – 600. Penulis akan mengamati pada sudut berapa data akan rusak dan pada bit berapa data tersebut rusak.
48
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.18 Pengamatan Sudut Pengiriman
49
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Gambar 4.19 Sudut Penerimaan Kritis
Tabel 4.3 Hasil Pengamatan Direktivitas Sensor IR No.
Sudut Penerimaan
Data Yang Diterima
Kesimpulan
1
00
01100110
Data diterima dengan baik
2
100
01100110
Data diterima dengan baik
3
200
01100110
Data diterima dengan baik
4
300
01100110
Data diterima dengan baik
5
400
01100110
Data diterima dengan baik
6
410
01100110
Data diterima dengan baik
50
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
7
420
Tidak menentu/labil
Sinyal Terima Lemah
8
430
Tidak menentu/labil
Sinyal Terima Lemah
9
440
Tidak menentu/labil
Sinyal Terima Lemah
10
450
Tidak menentu/labil
Sinyal Terima Lemah
11
460
Tidak menentu/labil
Sinyal Terima Lemah
12
470
Tidak menentu/labil
Sinyal Terima Lemah
13
480
00000000
Sinyal Terima Lemah
14
490
00000000
Sinyal Terima Lemah
Pada tabel 4.3 di atas dapat dilihat bahwa data yang diterima pada sudut penerimaan 00 sama dengan data yang dikirim, yaitu data 01100110. Setelah sudut penerimaan penulis perbesar, maka pada sudut > 41 0 data yang diterima menjadi tidak menentu (labil). Penulis berkesimpulan bahwa pada sudut penerimaan > 410, daya terima pada sensor melemah, sehingga data yang diterima menjadi tidak menentu. Jika sudut penerimaan penulis perbesar kembali sampai pada sudut 480, data yang diterima menjadi 00000000. Artinya data yang diterima sangat lemah sehingga sensor menginterpretasikan data yang lemah tersebut menjadi tidak ada sinyal. Jadi sudut penerimaan efektif pada sensor IR adalah sebesar 00 - 410.
51
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
BAB V KESIMPULAN
5.1 Kesimpulan Pada penyusunan tugas akhir ini, penulis berhasil membuat suatu sistem telekomunikasi data menggunakan prinsip TDMA. Penulis juga membuat algoritma dan sekenario yang powerful, artinya dapat menangani sebagian besar sekenario yang dapat terjadi. Program yang dirancang juga tersusun secara sistematis, sehingga mudah untuk dipahami. Dari pengamatan-pengamatan yang dilakukan penulis, maka dapat ditarik kesimpulan sebagai berikut : ü Sudut penerimaan pada alat yang penulis rancang harus disetting sebesar 00 - 410. Untuk memperkecil kesalahan penerimaan data, maka penulis men-setting sudut penerimaan pada alat yang dirancang sebesar ü Penulis
bebas
menenetukan
kecepatan
pengiriman
data
0
.0
asalkan
kecepatannya diantara 50 bps – 2083 bps. Pada project ini penulis menggunakan kecepatan pengiriman data sebesar 500 bps.
5.2 Saran ü Agar lebih fleksibel, untuk sistem transceiver-nya dapat menggunakan radio transceiver.
52
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
DAFTAR PUSTAKA
PAULUS ANDI NALWAN, PANDUAN PRAKTIS TEKNIK ANTARMUKA DAN PEMROGRAMAN MIKROKONTROLER AT98C51,GRAMEDIA, JAKARTA, 2003 GANTI DEPARI, POKOK POKOK ELEKTRONIKA, M2S, BANDUNG, 1987 http://www.innovativeelectronics.com http://www.dt-51.com http://www.mytutorialcafe.com http://www.datasheetcatalog.com/datasheets_pdf/T/S/A/L/ http://www.datasheetcatalog.com/datasheets_pdf/T/S/O/P/ http://www.arcx.com/sites/CDMAvsTDMA.htm http://www.iec.org/online/tutorials/tdma/
53
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Lampiran A. Program Asembler Untuk Device ;****************************************************** ;### IMPLEMENTASI TDMA PADA MIKROKONTROLER AT89C52 ### ;****************************************************** ;Program ini *.asm berfungsi untuk mengirim / menerima ;data secara TDMA ( Time Division Multiple Access ) ;cara kerjanya, membagi sinyal data kedalam ;bentuk bagian-bagian kecil kemudian mengirimkannya ;secara sinkron pada slot waktu tertentu tanpa tertukar/ ;saling tumpang tindih dg menggunakan frekuensi carrier ;yang sama dan ;menyusun sinyal terima shg data yang dikirim = diterima ;Program ini dirancang oleh : M. FAJAR S. A. (01403-003) ;TEKNIK ELEKTRO UNIVERSITAS MERCU BUANA 2007
$MOD51 ORG
; identitas ic MCS-51 00H
;::::::::::::::::::::::::::::::::::::::::::::::::: ;~~~~~~~~~~~~~~ DEKLARASI KONSTANTA~~~~~~~~~~~~~~ ;:::::::::::::::::::::::::::::::::::::::::::::::::
START: ;~~~~~~~~~~ Deklarasi TIMER ~~~~~~~~~~ MOV TMOD,#00000001B ;menggunakan timer 0
;~~~~~~~~~~ Deklarasi LCD ~~~~~~~~~~~~ PIN_RS EQU P0.5 ;pin rs pada lcd module menggunakan ;pin P0.5 PIN_RW EQU P0.6 ;dst PIN_E EQU P0.7 PIN_BUSY EQU P2.7 PIN_DATA_LCD EQU P2 BACKLIT_LCD EQU P3.6
;~~~~~~~~~~ Deklarasi Saklar ~~~~~~~~~ TOMBOL_POWER EQU P1.5 TOMBOL_KIRIM EQU P1.6 TOMBOL_ID_PENGIRIM EQU P1.7 INTERUPSI_TOMBOL EQU P3.3
54
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
;~~~~~~~~~~ Deklarasi INFRAMERAH ~~~~~~~~~ SENSOR_TERIMA EQU P3.2 LED_TERIMA EQU P1.4 SENSOR_KIRIM LED_KIRIM
EQU EQU
P3.7 P0.0
;~~~~~~~~~~ Deklarasi Keyboard ~~~~~~~~~~~ CLOCK EQU P1.0 DATA_KEYBOARD EQU P1.1
;~~~~~~~~~~ DEKLARASI PENGGUNAAN MEMORI BEBAS AT89C52~~~~~~~~~~~~ ;PETA MEMORI Untuk Data Yang Akan Dikirim : B1K1 EQU 30H ;karakter data yang akan dikirim di baris 1 ;kolom 1 ;diletakan di 30H B1K2 EQU 31H ;dst B1K3 EQU 32H B1K4 EQU 33H B1K5 EQU 34H B1K6 EQU 35H B1K7 EQU 36H B1K8 EQU 37H B1K9 EQU 38H B1K10 EQU 39H B1K11 EQU 3AH B1K12 EQU 3BH B1K13 EQU 3CH B1K14 EQU 3DH B1K15 EQU 3EH B1K16 EQU 3FH B2K1 EQU 40H B2K2 EQU 41H B2K3 EQU 42H B2K4 EQU 43H B2K5 EQU 44H B2K6 EQU 45H B2K7 EQU 46H B2K8 EQU 47H B2K9 EQU 48H B2K10 EQU 49H B2K11 EQU 4AH B2K12 EQU 4BH B2K13 EQU 4CH B2K14 EQU 4DH B2K15 EQU 4EH B2K16 EQU 4FH ;PETA MEMORI Untuk Data Yang Akan Ditampilan Pada LCD B1K1TX EQU 50H ;karakter di baris 1 kolom 1 diletakan di ;50H B1K2TX EQU 51H ;dst B1K3TX EQU 52H
55
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
B1K4TX B1K5TX B1K6TX B1K7TX B1K8TX B1K9TX B1K10TX B1K11TX B1K12TX B1K13TX B1K14TX B1K15TX B1K16TX B2K1TX B2K2TX B2K3TX B2K4TX B2K5TX B2K6TX B2K7TX B2K8TX B2K9TX B2K10TX B2K11TX B2K12TX B2K13TX B2K14TX B2K15TX B2K16TX
EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU
IDENTITAS TERIMA_DATA_DARI KIRIM_DATA_KE DEVICE_A DEVICE_B DEVICE_C DEVICE_D DEVICE_E DEVICE_F BUFFER STATUS
53H 54H 55H 56H 57H 58H 59H 5AH 5BH 5CH 5DH 5EH 5FH 60H 61H 62H 63H 64H 65H 66H 67H 68H 69H 6AH 6BH 6CH 6DH 6EH 6FH EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU
70H 71H 72H 73H 74H 75H 76H 77H 78H 79H 7AH
;~~~ RAM BEBAS YANG BELUM DIPERGUNAKAN ~~~~ KONSTANTA0 EQU 7BH KONSTANTA1 EQU 7CH KONSTANTA2 EQU 7DH KONSTANTA3 EQU 7EH KONSTANTA4 EQU 7FH
;~~~ PIN PADA IC YG BELUM DIGUNAKAN ~~~~ BIT0_BUFFER EQU P0.1 BIT1_BUFFER EQU P0.2 BIT2_BUFFER EQU P0.3 BIT3_BUFFER EQU P0.4 BIT4_BUFFER EQU P1.2 BIT5_BUFFER EQU P1.3 BIT6_BUFFER EQU P3.4
56
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
BIT7_BUFFER EQU
P3.5
;~~~ REGISTER YANG DIGUNAKAN UNTUK FLAG SUBRUTIN ~~~~ TEKAN_POWER1X EQU SCON.0 ;jika bernilai high maka ;tombol power telah ;ditekan 1 kali TEKAN_POWER2X EQU SCON.1 ;jika bernilai high maka ;tombol power telah ;ditekan 2 kali TEKAN_SEND EQU SCON.2 ;jika bernilai high maka ;tombol kirim telah ;ditekan 1 kali TEKAN_ID_PENGIRIM EQU SCON.3 ;jika bernilai high maka ;tombol tampilkan id ;pengirim telah ditekan 1 ;kali R0_50H? EQU SCON.4 ;jika bernilai high maka Ro ;telah diisi ;dengan 50H pada subrutin ;send_data_ram" ;50H adalah data pertama yg ;dikirim jika ;tombol send ditekan.
;~~~~~~~ Keterangan Penggunaan RAM R0 - R7 ~~~~~~~~~~~ ;R0 digunakan untuk subrutin pengalamatan data tx ;R1 digunakan untuk subrutin pengalamatan data rx ;R2 digunakan untuk subrutin receive ;R4 digunakan untuk subrutin hapus ram ;R5 digunakan pada subrutin receive sebagai pembanding ;R6 digunakan untuk subrutin kirim/terima data ;R7 digunakan untuk subrutin timer
SET_KEADAAN_AWAL: CALL DEVICE_OFF
MOV
DEVICE_A,#00000001B
MOV
DEVICE_B,#00000010B
MOV
DEVICE_C,#00000011B
MOV
DEVICE_D,#00000100B
MOV
DEVICE_E,#00000101B
MOV
DEVICE_F,#00000110B
CLR
TEKAN_POWER1X
CLR
TEKAN_POWER2X
;device dimatikan sementara ;device a mempunyai ;00000001b ;device b mempunyai ;00000010b ;device c mempunyai ;00000011b ;device d mempunyai ;00000100b ;device e mempunyai ;00000101b ;device f mempunyai ;00000110b
id id id id id id
;"tekan_power1x / ;scon.0" bernilai ;low, menandakan tombol ;power belum ditekan 1x ;"tekan_power2x /
57
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
;scon.1" bernilai ;low, menandakan tombol power ;belum ;ditekan 2x ;"tekan_send / scon.2" ;bernilai low, ;menandakan tombol send beluM ;ditekan ;"tekan_id_pengirim / scon.3" ;bernilai low, menandakan ;tombol ;power belum ditekan ;"r0_50h? / scon.4 bernilai ;low, ;menandakan r0 belum diisi 50h ;1x
CLR
TEKAN_SEND
CLR
TEKAN_ID_PENGIRIM
CLR
R0_50H?
MOV MOV
R0,#50H R1,#30H
MOV
R2,#32
MOV
IDENTITAS,DEVICE_A
MOV
STATUS,#00000000B
MOV
MOV
;address data yg akan dikirim ;address data untuk keperluan ;tampilan pada lcd ;R2 diisi dengan nilai 32, ;untuk ;sebagai counter pada subrutin ;"receive2" ;identitas pribadi = ;"XXXX-X001"
;status awal device 'XXXX;XXAB" ;(tidak siap kirim dan terima) ;jika A=high maka device siap ;terima, ;jika b=high maka device siap ;kirim KIRIM_DATA_KE,#00000000B;identitas penerima data yang ;akan ;dikirimkan, keadaan awal identitas ;ini kosong TERIMA_DATA_DARI,#00000000B ;identitas pengirim data yang ;diterima, keadaan awal ;identitas ini ;kosong
;::::::::::::::::::::::::::::::::::::::::::::::::: ;~~~~~~~~~~~~~~~ PROGRAM UTAMA ~~~~~~~~~~~~~~~~~~ ;::::::::::::::::::::::::::::::::::::::::::::::::: JMP
SCAN_TOMBOL1
;sementara device off, tunggu sampai ;tombol power ditekan
58
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
SCAN_SINYAL: CALL DLY30MS CALL TERIMA CJNE
A,#00000001B,SCAN_SINYAL
CALL CALL
DLY30MS TERIMA
MOV MOV MOV MOV MOV MOV CLR CLR CLR CLR CLR CJNE
C,ACC.4 ACC.0,C C,ACC.5 ACC.1,C C,ACC.6 ACC.2,C ACC.3 ACC.4 ACC.5 ACC.6 ACC.7 A,IDENTITAS,SCAN_SINYAL ;jika ID = IDENTITAS, ;lanjutkan ;jika tidak maka abaikan A,BUFFER ACC.3,SEND RECEIVE
MOV JB JMP
SEND: MOV JB
A,STATUS ACC.0,SEND1
JMP SEND1: MOV CALL CALL
SCAN_SINYAL
MOV CLR MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV CALL CALL
;jika device siap kirim maka ;lanjutkan
A,#00000001B DLY50MS KIRIM A,BUFFER C B.7,C C,ACC.2 B.6,C C,ACC.1 B.5,C C,ACC.0 B.4,C A,STATUS C,ACC.0 B.3,C A,KIRIM_DATA_KE C,ACC.2 B.2,C C,ACC.1 B.1,C C,ACC.0 B.0,C A,B DLY50MS KIRIM
59
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CALL CALL
DLY50MS SEND_DATA_RAM
SEND_DATA_RAM: JB R0_50H?,SEND_DATA_RAM1 SETB MOV
;jika r0_50h? bernilai low, ;maka isi r0 dengan 50h
R0_50H? R0,#50H
SEND_DATA_RAM1: MOV A,@R0 CALL KIRIM INC R0 CJNE R0,#70H,SCAN_SINYAL_LJMP
MOV
A,STATUS
CLR MOV LJMP
ACC.0 STATUS,A SCAN_SINYAL
RECEIVE: MOV JB
CALL CALL LJMP RECEIVE1: MOV CJNE
JMP RECEIVE2: MOV CLR CLR CLR CLR CLR CJNE CALL DJNZ MOV CLR MOV LJMP
;kembali scan sinyal
A,STATUS ACC.1,RECEIVE1
DLY30MS TERIMA SCAN_SINYAL
;jika data terakhir ;telah terkirim ;maka ;device diclear supaya ;tidak siap kirim
;jika device siap ;terima, maka ;lanjutkan
;jika tidak maka kembali scan sinyal
R5,TERIMA_DATA_DARI R5,#00000000B,RECEIVE2
;jika id pengirim masih ;kosong maka simpan id ;pengirim
SIMPAN_ID_PENGIRIM A,BUFFER ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 A,TERIMA_DATA_DARI,SCAN_SINYAL_LJMP RECEIVE_DATA_LCD R2,SCAN_SINYAL_LJMP A,STATUS ACC.1 STATUS,A SCAN_SINYAL
RECEIVE_DATA_LCD: CALL DLY30MS CALL TERIMA CALL TULIS_DATA_LCD
60
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CJNE CALL LOMPAT: RET
R2,#17,LOMPAT TULIS_DI_BARIS2
SIMPAN_ID_PENGIRIM: MOV A,BUFFER CLR ACC.7 CLR ACC.6 CLR ACC.5 CLR ACC.4 CLR ACC.3 MOV TERIMA_DATA_DARI,A JMP RECEIVE1
SCAN_SINYAL_LJMP: LJMP SCAN_SINYAL ; lompat jauh ke subrutin scan_sinyal
;::::::::::::::::::::::::::::::::::::::::::::::::::::::: ;~~~~~~~~~~~~~~~~ KUMPULAN SUBRUTIN ~~~~~~~~~~~~~~~~~~~ ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::
;~~~~~~~~~~~~~~~~~~~~ SUBRUTIN SCAN TOMBOL~~~~~~~~~~~~~~~~~~~ SCAN_TOMBOL: ;SUBRUTIN SCAN TOMBOL SATU SIKLUS JNB TOMBOL_POWER,POWER_DITEKAN ;jika tombol power ;ditekan ;maka lompat ke subrutin ;"POWER_DITEKAN" JNB TOMBOL_KIRIM,F1_DITEKAN ;jika tombol kirim ;ditekan ;maka lompat ke subrutin ;"F1_DITEKAN" JNB TOMBOL_ID_PENGIRIM,ID_DITEKAN_LJMP ;jika tombol id ;pengirim ;ditekan maka lompat ke ;subrutin ;"ID_DITEKAN_LJMP" RET ID_DITEKAN_LJMP: LJMP ID_DITEKAN
;lompat jauh ke subrutin ;"ID_DITEKAN"
SCAN_TOMBOL1: ;SUBRUTIN SCAN TOMBOL BANYAK SIKLUS JNB TOMBOL_POWER,POWER_DITEKAN ;subrutin ini sama ;dengan
61
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
JNB JNB JMP
;scan_tombol, tetapi ;melakukan ;scan tombol TOMBOL_KIRIM,F1_DITEKAN ;secara terus menerus TOMBOL_ID_PENGIRIM,ID_DITEKAN_LJMP SCAN_TOMBOL1
;~~~~~~~~~~~~~~ SUBRUTIN TOMBOL POWER DITEKAN ~~~~~~~~~~~~~~ POWER_DITEKAN: CALL DLY300MS ;tunda 300 ms JNB TOMBOL_POWER,$ ;tunggu sampai tombol power ;dilepas JNB TEKAN_POWER1X,POWER_DITEKAN1 ;APA TOMBOL POWER SUDAH ;DITEKAN 1 ;KALI, JIKA BELUM LOMPAT KE ;"SW_POWER_DITEKAN1" JNB TEKAN_POWER2X,POWER_DITEKAN2 ;APA TOMBOL POWER SUDAH ;DITEKAN 2 ;KALI, JIKA BELUM LOMPAT KE ;"SW_POWER_DITEKAN2" JMP POWER_DITEKAN3 ;lompat ke subrutin ;"POWER_DITEKAN3"
;~~~~~~~ SUBRUTIN TOMBOL POWER DITEKAN 1 KALI~~~~~~~~~~~~ POWER_DITEKAN1: CALL DLY300MS ;tunda 300 ms JNB TOMBOL_POWER,$ ;tunggu sampai tombol power dilepas SETB TEKAN_POWER1X ;tandai kalau tombol power telah ;ditekan 1x CALL DEVICE_ON ;nyalakan device MOV CLR
B,STATUS B.0
SETB MOV LJMP
B.1 STATUS,B SCAN_SINYAL
;set device supaya tidak siap kirim ;data ;set device supaya siap terima data ;kembali melakukan scan sinyal
;~~~~~~~~~~~ SUBRUTIN TOMBOL POWER DITEKAN 2 KALI~~~~~~~~~~~ POWER_DITEKAN2: CALL DLY300MS ;tunda 300 ms JNB TOMBOL_POWER,$ ;tunggu sampai tombol power ;dilepas SETB LED_TERIMA JB CLOCK,$ CALL DLY300MS SETB
TEKAN_POWER2X
CALL CALL
KOSONGKAN_DISPLAY RETURN_HOME
;tandai kalau tombol power ;telah ;ditekan 2x ;kosongkan display ;kembalikan kursor pada posisi
62
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CALL
HAPUS_RAM
MOV CLR
B,STATUS B.0
CLR
B.1
MOV MOV
STATUS,B R0,#50H
;semula ;hapus memori untuk tempat ;data yang ;akan dikirim ;set device supaya tidak siap ;kirim ;data ;set device supaya tidak siap ;terima ;data ;isi ro dengan 50h agar ;karakter ;pertama ditempatkan pada ;alamat tsb
POWER_DITEKAN2A: CALL AMBIL_DATA_KEYB CALL KONVERSI
CALL MOV
INC
CJNE
JMP
;ambil data dari keyboard ;lalu konversi data keyboard ;menjadi ;data lcd menggunakan protokol ;lcd TULIS_DATA_LCD ;tulis data pada lcd @R0,A ;lalu simpan data pada alamat ;yang ;ditunjuk r0 R0 ;tambahkan nilai ro dengan 1, ;jika ;50H menjadi 51H dst R0,#70H,POWER_DITEKAN2A ;jika telah mencapai ;karakter ;terakhir maka scan tombol ;sampai ;tombol send ditekan SCAN_TOMBOL1
;~~~~~~~~~~ SUBRUTIN TOMBOL POWER DITEKAN 3 KALI ~~~~~~~~~~~ POWER_DITEKAN3: CALL DLY300MS ;tunda 300 ms JNB TOMBOL_POWER,$ ;tunggu sampai tombol power ;dilepas LJMP START ;lompat jauh ke subrutin start ABAIKAN: RET
;~~~~~~~~~ SUBRUTIN TOMBOL KIRIM DITEKAN ~~~~~~~~~ F1_DITEKAN: CALL DLY300MS ;tunda 300 ms JNB TOMBOL_KIRIM,$ ;tunggu sampai tombol kirim ;dilepas JNB TEKAN_POWER1X,ABAIKAN ;jika tombol power belum ;ditekan maka ;abaikan MOV CJNE
R5,KIRIM_DATA_KE R5,#00000000B,ABAIKAN
;jika "kirim_data_ke" telah
63
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
;terisi ;maka abaikan SETB
TEKAN_SEND
CALL CALL
KOSONGKAN_DISPLAY RETURN_HOME
MOV SETB
B,STATUS B.0
SETB
B.1
MOV
STATUS,B
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV
B1K1,#'K' B1K2,#'I' B1K3,#'R' B1K4,#'I' B1K5,#'M' B1K6,#' ' B1K7,#'K' B1K8,#'E' B1K9,#' ' B1K10,#':' B1K11,#' ' B1K12,#' ' B1K13,#' ' B1K14,#' ' B1K15,#' ' B1K16,#' '
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV CALL
B2K1,#'D' B2K2,#'E' B2K3,#'V' B2K4,#'I' B2K5,#'C' B2K6,#'E' B2K7,#' ' B2K8,#' ' B2K9,#' ' B2K10,#' ' B2K11,#' ' B2K12,#' ' B2K13,#' ' B2K14,#' ' B2K15,#' ' B2K16,#' ' TAMPILKAN
MOV CALL
A,#0C7H TULIS_PERINTAH_LCD
CALL
AMBIL_DATA_KEYB
;tandai kalau tombol_kirim ;telah ;ditekan ;kosongkan lcd ;kembalikan kursor ke posisi ;awal ;tandai kalau device siap ;kirim ;tandai kalau device siap ;terima
;tampilkan di lcd kalimat ;"KIRIM KE ;DEVICE "
;letakan kursor di baris ;2 kolom 8 ;ambil data di keyboard untuk ;mendapatkan informasi
64
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
;device tujuan dari data yang akan dikirimkan CALL KONVERSI MOV BUFFER,A CALL TULIS_DATA_LCD MOV CALL
A,#' ' TULIS_DATA_LCD
MOV CALL
A,#'.' TULIS_DATA_LCD
MOV CALL
A,#'.' TULIS_DATA_LCD
MOV CALL
A,#'.' TULIS_DATA_LCD
MOV
A,BUFFER
KIRIM_KE_A: CJNE A,#'A',KIRIM_KE_B MOV KIRIM_DATA_KE,#00000001B
JB JNB CALL CALL CALL LJMP
TOMBOL_KIRIM,$ TOMBOL_KIRIM,$ DLY300MS KOSONGKAN_DISPLAY RETURN_HOME SCAN_SINYAL
KIRIM_KE_B: CJNE A,#'B',KIRIM_KE_C MOV KIRIM_DATA_KE,#00000010B
JB JNB CALL CALL CALL LJMP
;jika B maka ;"kirim_data_ke" diisi ;dengan 00000010B
TOMBOL_KIRIM,$ TOMBOL_KIRIM,$ DLY300MS KOSONGKAN_DISPLAY RETURN_HOME SCAN_SINYAL
KIRIM_KE_C: CJNE A,#'C',KIRIM_KE_D MOV KIRIM_DATA_KE,#00000011B
JB JNB CALL CALL CALL LJMP
;jika A maka ;"kirim_data_ke" diisi ;dengan 00000001B
;jika C maka ;"kirim_data_ke" diisi ;dengan 00000011B
TOMBOL_KIRIM,$ TOMBOL_KIRIM,$ DLY300MS KOSONGKAN_DISPLAY RETURN_HOME SCAN_SINYAL
KIRIM_KE_D: CJNE A,#'D',KIRIM_KE_E
65
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
MOV
KIRIM_DATA_KE,#00000100B
JB JNB CALL CALL CALL LJMP
TOMBOL_KIRIM,$ TOMBOL_KIRIM,$ DLY300MS KOSONGKAN_DISPLAY RETURN_HOME SCAN_SINYAL
KIRIM_KE_E: CJNE A,#'E',KIRIM_KE_F MOV KIRIM_DATA_KE,#00000101B
JB JNB CALL CALL CALL LJMP
;jika E maka ;"kirim_data_ke" diisi ;dengan 00000101B
TOMBOL_KIRIM,$ TOMBOL_KIRIM,$ DLY300MS KOSONGKAN_DISPLAY RETURN_HOME SCAN_SINYAL
KIRIM_KE_F: CJNE A,#'F',ABAIKAN1 MOV KIRIM_DATA_KE,#00000110B
JB JNB CALL CALL CALL LJMP
;jika D maka ;"kirim_data_ke" diisi ;dengan 00000100B
;jika F maka ;"kirim_data_ke" diisi ;dengan 00000110B
TOMBOL_KIRIM,$ TOMBOL_KIRIM,$ DLY300MS KOSONGKAN_DISPLAY RETURN_HOME SCAN_SINYAL
ABAIKAN1: RET
;~~~~~~~~~~~~ SUBRUTIN TOMBOL ID PENGIRIM DITEKAN~~~~~~~~~~~ ID_DITEKAN: CALL DLY300MS ;tunda 300 ms JNB TOMBOL_ID_PENGIRIM,$ ;tunggu sampai tombol id ;pengirim ;dilepas SETB TEKAN_ID_PENGIRIM ;tandai kalau ;tombol_id_pengirim ;telah ditekan MOV CLR
B,STATUS B.1
MOV
STATUS,B
MOV
R5,TERIMA_DATA_DARI
CJNE JMP
R5,#00000000B,ID_DITEKAN1 ABAIKAN
;set supaya device tidak siap ;menerima data
66
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
ID_DITEKAN1: MOV B1K1,#'P' MOV B1K2,#'E' MOV B1K3,#'N' MOV B1K4,#'G' MOV B1K5,#'I' MOV B1K6,#'R' MOV B1K7,#'I' MOV B1K8,#'M' MOV B1K9,#' ' MOV B1K10,#':' MOV B1K11,#' ' MOV B1K12,#' ' MOV B1K13,#' ' MOV B1K14,#' ' MOV B1K15,#' ' MOV B1K16,#' ' MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV TERMINAL_A: CJNE
MOV
B2K1,#'D' B2K2,#'E' B2K3,#'V' B2K4,#'I' B2K5,#'C' B2K6,#'E' B2K7,#' ' B2K8,#' ' B2K9,#' ' B2K10,#' ' B2K11,#' ' B2K12,#' ' B2K13,#' ' B2K14,#' ' B2K15,#' ' B2K16,#' ' R5,#00000001B,TERMINAL_B
B2K8,#'A'
CALL TAMPILKAN LJMP SCAN_SINYAL TERMINAL_B: CJNE R5,#00000010B,TERMINAL_C
MOV
B2K8,#'B'
CALL TAMPILKAN LJMP SCAN_SINYAL TERMINAL_C: CJNE R5,#00000011B,TERMINAL_D MOV
B2K8,#'C'
CALL LJMP
TAMPILKAN SCAN_SINYAL
;jika terima data dari ;berisi ;#00000001B ;maka tampilkan di lcd ;"PENGIRIM DEVICE A
;jika terima data dari ;berisi ;#00000010B ;maka tampilkan di lcd ;"PENGIRIM ;DEVICE B "
;jika terima data dari ;berisi #00000011B ;maka tampilkan di lcd ;"PENGIRIM ;DEVICE C "
67
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
TERMINAL_D: CJNE R5,#00000100B,TERMINAL_E MOV
B2K8,#'D'
CALL TAMPILKAN LJMP SCAN_SINYAL TERMINAL_E: CJNE R5,#00000101B,TERMINAL_F MOV
B2K8,#'E'
CALL TAMPILKAN LJMP SCAN_SINYAL TERMINAL_F: MOV
B2K8,#'F'
CALL LJMP
TAMPILKAN SCAN_SINYAL
;jika terima data dari ;berisi #00000100B ;maka tampilkan di lcd ;"PENGIRIM ;DEVICE D "
;jika terima data dari ;berisi #00000101B ;maka tampilkan di lcd ;"PENGIRIM ;DEVICE E "
;jika terima data dari berisi ;#00000110B ;maka tampilkan di lcd ;"PENGIRIM ;DEVICE F "
;~~~~~~~~~~~ SUBRUTIN NYALAKAN DEVICE ~~~~~~~~~~~~ DEVICE_ON: CLR CLR CALL SETB SETB CALL CLR CLR CALL SETB SETB CLR CALL RET
LED_KIRIM LED_TERIMA DLY250MS LED_KIRIM LED_TERIMA DLY250MS LED_KIRIM LED_TERIMA DLY250MS LED_KIRIM LED_TERIMA BACKLIT_LCD INISIALISASI_LCD
;led kirim on ;led terima on ;tunda 250ms ;led kirim off ;led terima off ;tunda 250ms ;led kirim on ;led terima on ;tunda 250ms ;led kirim off ;led terima off ;nyalakan lcd ;panggil subrutin "inisialsiasi lcd"
;~~~~~~~~~~~~~~~~~~~ SUBRUTIN MATIKAN DEVICE ~~~~~~~~~~~~~~~~~ DEVICE_OFF: SETB SETB SETB CLR RET
LED_KIRIM LED_TERIMA BACKLIT_LCD SENSOR_KIRIM
;matikan led terima ;matikan led kirim ;matikan lcd ;sensor kirim off
68
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
;~~~~~~~~~~~~~~~~~~ SUBRUTIN MENGHAPUS ISI RAM ~~~~~~~~~~~~~~~~ HAPUS_RAM: MOV R4,#32 MOV R0,#50H HAPUS_RAM1: MOV @R0,#' '
INC
R0
DJNZ
R4,HAPUS_RAM1
;isi R4 dengan nilai 32 ;isi R0 dengan nilai 50H ;salin spasi pada alamat yang ;ditunjuk oleh ;R0 ;tambah nilai R0 dengan 1 (misal 50H ;menjadi ;51H) ;kurangi nilai R4, jika belum 0, ;lompat ke ;"HAPUS_RaM1"
RET
HAPUS_TAMPILAN: MOV R4,#32 MOV R1,#30H HAPUS_TAMPILAN1: MOV @R1,#' '
INC
DJNZ
;isi R4 dengan nilai 32 ;isi R1 dengan nilai 30H
;salin spasi pada alamat yang ;ditunjuk oleh ;R1 R1 ;tambah nilai R1 dengan 1 (misal 30H ;menjadi ;31H) R4,HAPUS_TAMPILAN1 ;kurangi nilai R4, jika belum ;0, lompat ke ;"HAPUS_TAMPILAN1"
RET
;~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBRUTIN LCD ~~~~~~~~~~~~~~~~~~~~~~~ INISIALISASI_LCD: ;SUBROUTINE INISIALISASI LCD CALL DLY250MS ;Tunggu sampai Vcc 2.7 V CALL KIRIM_INFORMASI_LCD ;Panggil subrutin function_set CALL TULIS_PERINTAH_LCD ;Kirim perintah ke LCD yang ;kedua kali CALL DLY10MS ;Tunggu 10 ms CALL TULIS_PERINTAH_LCD ;Kirim perintah ke LCD yang ;ketiga kali CALL DLY10MS ;Tunggu 10 ms CALL ATUR_KURSOR ;Panggil subrutin ATUR_KURSOR CALL ATUR_KURSOR1 ;panggil subrutin ATUR_KURSOR1 CALL KOSONGKAN_DISPLAY ;Panggil subrutin KOSONGKAN_DISPLAY RET ;Kembali lompat ke instruksi ;pemanggil
KIRIM_INFORMASI_LCD: MOV A,#00111000B
;Menginformasikan ke LCD bahwa ;panjang data 8 ;bit, 2 baris, karakter 5 x 7 ;(001 DL N F * *) DL=1(8 bit),
69
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CALL CALL RET
;DL=0(4 bit), ;N=1(2 baris), N=0(1 baris), ;F=1(5x10 titik) ;F=0(5x7 titik) TULIS_PERINTAH_LCD ;Kirim perintah ke LCD DLY10MS
ATUR_KURSOR: MOV A,#00000110B
CALL CALL RET
;Set kursor bergeser ke kanan saat ;proses ;write atau read ;(000001 i/d S) i/d=1(increment) ;i/d=0(decrement) S=1(follow display shift) TULIS_PERINTAH_LCD ;Kirim perintah ke LCD DLY10MS
ATUR_KURSOR1: MOV A,#00001101B
CALL CALL RET
;Semua display ON, kursor ;aktif dan berkedip ;(00001DCB), D=1(all display on), ;C=1(Cursor ;active), B=1(blink) TULIS_PERINTAH_LCD ;Kirim perintah ke LCD DLY10MS
KOSONGKAN_DISPLAY: MOV A,#00000001B CALL CALL RET
TULIS_PERINTAH_LCD DLY10MS
RETURN_HOME: MOV A,#00000010B CALL CALL RET
TULIS_PERINTAH_LCD DLY10MS
;Kosongkan LCD, kursor pindah ;ke posisi B1K1, ;Kirim perintah ke LCD
;Pindah kursor ke posisi ;awal(0000001*) ;Kirim perintah ke LCD
CURS_DSP_SHIFT: MOV A,#000010100B
CALL CALL RET
;(0001 sc rl * *) ;sc=1(display shift), ;sc=0(cursor move), rl=1(geser ke ;kanan), ;rl=0 sbl TULIS_PERINTAH_LCD ;Kirim perintah ke LCD DLY10MS
TULIS_DI_BARIS1:
70
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
MOV
A,#080H
CALL RET
TULIS_PERINTAH_LCD ;Kembali lompat ke instruksi ;pemanggil
TULIS_DI_BARIS2: MOV A,#0C0H CALL RET
;WRITE DATA MULAI DARI KOLOM 1 ;BARIS 1
;WRITE DATA MULAI DARI KOLOM 1 ;BARIS 2
TULIS_PERINTAH_LCD ;Kembali lompat ke instruksi ;pemanggil
TULIS_DATA_LCD: MOV PIN_DATA_LCD,A SETB PIN_RS CLR PIN_RW NOP SETB PIN_E NOP NOP CLR PIN_E CALL DLY10MS RET
;Kembali lompat ke instruksi ;pemanggil
TULIS_PERINTAH_LCD: MOV PIN_DATA_LCD,A CLR PIN_RS CLR PIN_RW NOP SETB PIN_E NOP NOP CLR PIN_E CALL DLY10MS RET ;Kembali lompat ke instruksi pemanggil TAMPILKAN: CALL MOV TAMPILKAN1: MOV CALL INC CJNE CALL TAMPILKAN2: MOV CALL INC CJNE RET
TULIS_DI_BARIS1 R1,#30H A,@R1 TULIS_DATA_LCD R1 R1,#40H,TAMPILKAN1 TULIS_DI_BARIS2 A,@R1 TULIS_DATA_LCD R1 R1,#50H,TAMPILKAN2
;~~~~~~~~~~~~~~ SUBRUTIN TERIMA DATA VIA IR ~~~~~~~~~~~ TERIMA:
71
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CALL CLR MOV TERIMA1: MOV MOV RR CALL DJNZ CPL MOV SETB RET
TERIMA_ST_BIT LED_TERIMA R6,#8 C,SENSOR_TERIMA ACC.7,C A DLY2000 R6,TERIMA1 A BUFFER,A LED_TERIMA
TERIMA_ST_BIT: CALL SCAN_TOMBOL JB SENSOR_TERIMA,TERIMA_ST_BIT TERIMA_ST_BIT1: CALL SCAN_TOMBOL JNB SENSOR_TERIMA,TERIMA_ST_BIT1 CALL DLY1000 RET
;~~~~~~~~~~ KIRIM: CALL MOV KIRIM1: MOV CALL RR DJNZ CLR SETB RET
SUBRUTIN KIRIM DATA VIA IR ~~~~~~~~~~~ CLR LED_KIRIM KIRIM_START_BIT R6,#8 MOV C,ACC.0 SENSOR_KIRIM,C DLY2000 A R6,KIRIM1 SENSOR_KIRIM LED_KIRIM
KIRIM_START_BIT: SETB SENSOR_KIRIM CALL DLY2000 CLR SENSOR_KIRIM CALL DLY2000 RET
;~~~~~~~~~~~~~~~ SUBRUTIN KEYBOARD~~~~~~~~~~~~~~ AMBIL_DATA_KEYB: CALL AMBIL_DATA_KEY1 CJNE A,#0F0H,AMBIL_DATA_KEYB CALL AMBIL_DATA_KEY1 ;data terdapat di A RET AMBIL_DATA_KEY1: CALL SCAN_TOMBOL JB CLOCK,AMBIL_DATA_KEY1 CLR A AMBIL_DATA_KEY2: CALL SCAN_TOMBOL
72
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
JNB CLOCK,AMBIL_DATA_KEY2 MOV R3,#8 AMBIL_DATA_KEY3: CALL SCAN_TOMBOL JB CLOCK,AMBIL_DATA_KEY3 MOV C,DATA_KEYBOARD RR A MOV ACC.7,C AMBIL_DATA_KEY4: CALL SCAN_TOMBOL JNB CLOCK,AMBIL_DATA_KEY4 DJNZ R3,AMBIL_DATA_KEY3 AMBIL_DATA_KEY5: CALL SCAN_TOMBOL JB CLOCK,AMBIL_DATA_KEY5 AMBIL_DATA_KEY6: CALL SCAN_TOMBOL JNB CLOCK,AMBIL_DATA_KEY6 AMBIL_DATA_KEY7: CALL SCAN_TOMBOL JB CLOCK,AMBIL_DATA_KEY7 AMBIL_DATA_KEY8: CALL SCAN_TOMBOL JNB CLOCK,AMBIL_DATA_KEY8 RET
;~~~~~~~~~ SUBRUTIN KONVERSI ASCII KE LCD PROTOKOL ~~~~~~ KONVERSI: AA:
BE:
CEE:
DE:
EE:
EF:
GEE:
HA:
II:
CJNE
A,#1CH,BE
MOV RET CJNE MOV RET CJNE MOV RET CJNE MOV RET
A,#'A'
CJNE MOV RET CJNE MOV RET CJNE MOV RET CJNE MOV RET CJNE
A,#24H,EF A,#'E'
A,#32H,CEE A,#'B'
;jika data yang diperoleh dari keyboard ;bernilai 1CH ;maka data LCD-nya "A"
;dst
A,#21H,DE A,#'C' A,#23H,EE A,#'D'
A,#2BH,GEE A,#'F' A,#34H,HA A,#'G' A,#33H,II A,#'H' A,#43H,JE
73
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
MOV RET JE: CJNE MOV RET KA: CJNE MOV RET EL: CJNE MOV RET EM: CJNE MOV RET EN: CJNE MOV RET OO: CJNE MOV RET PE: CJNE MOV RET QI: CJNE MOV RET ER: CJNE MOV RET ESS: CJNE MOV RET TE: CJNE MOV RET UU: CJNE MOV RET VE: CJNE MOV RET WE: CJNE MOV RET EX: CJNE MOV RET YE: CJNE MOV RET ZET: CJNE MOV RET SPASI: MOV RET SATU: CJNE JMP
A,#'I' A,#3BH,KA A,#'J' A,#42H,EL A,#'K' A,#4BH,EM A,#'L' A,#3AH,EN A,#'M' A,#31H,OO A,#'N' A,#44H,PE A,#'O' A,#4DH,QI A,#'P' A,#15H,ER A,#'Q' A,#2DH,ESS A,#'R' A,#1BH,TE A,#'S' A,#2CH,UU A,#'T' A,#3CH,VE A,#'U' A,#2AH,WE A,#'V' A,#1DH,EX A,#'W' A,#22H,YE A,#'X' A,#35H,ZET A,#'Y' A,#1AH,SPASI A,#'Z' CJNE A,#29H,SATU A,#' '
A,#16H,SATU1 SATU2
74
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
SATU1: SATU2: RET
CJNE MOV
DUA:
CJNE JMP DUA1: CJNE DUA2: MOV RET
A,#1EH,DUA1 DUA2 A,#72H,TIGA A,#'2'
TIGA: CJNE JMP TIGA1: TIGA2: RET
A,#26H,TIGA1 TIGA2 CJNE A,#7AH,EMPAT MOV A,#'3'
EMPAT: JMP EMPAT1: EMPAT2: RET
CJNE A,#25H,EMPAT1 EMPAT2 CJNE A,#6BH,LIMA MOV A,#'4'
LIMA: CJNE JMP LIMA1: LIMA2: RET
A,#2EH,LIMA1 LIMA2 CJNE A,#73H,ENAM MOV A,#'5'
ENAM: CJNE JMP ENAM1: ENAM2: RET
A,#36H,ENAM1 ENAM2 CJNE A,#74H,TUJUH MOV A,#'6'
TUJUH: JMP TUJUH1: TUJUH2: RET
CJNE A,#3DH,TUJUH1 TUJUH2 CJNE A,#6CH,DELAPAN MOV A,#'7'
DELAPAN: CJNE JMP DELAPAN1: CJNE DELAPAN2: MOV RET SEMBILAN: CJNE JMP SEMBILAN1: CJNE SEMBILAN2: MOV RET NOL:
CJNE
A,#69H,DUA A,#'1'
A,#3EH,DELAPAN1 DELAPAN2 A,#75H,SEMBILAN A,#'8'
A,#46H,SEMBILAN1 SEMBILAN2 A,#7DH,NOL A,#'9'
A,#45H,NOL1
75
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
JMP NOL1: CJNE NOL2: MOV RET
NOL2 A,#70H,TITIK A,#'0'
TITIK: JMP TITIK1: TITIK2: RET
CJNE A,#49H,TITIK1 TITIK2 CJNE A,#71H,KOMA MOV A,#'.'
KOMA: CJNE MOV RET
A,#41H,TANYA A,#','
TANYA: MOV RET
CJNE A,#4AH,TITIKDUA A,#'?'
TITIKDUA: CJNE MOV RET
A,#4CH,PLUS A,#':'
PLUS: CJNE MOV RET
A,#79H,MINUS A,#'+'
MINUS: MOV RET
CJNE A,#7BH,KALI A,#'-'
KALI: CJNE MOV RET
A,#7CH,BACKSPACE A,#'*'
BACKSPACE: CJNE CALL CALL CALL CALL CALL MOV LJMP
A,#66H,ENTER HAPUS_RAM HAPUS_TAMPILAN TAMPILKAN RETURN_HOME KOSONGKAN_DISPLAY R0,#50H POWER_DITEKAN2A
ENTER: MOV CALL CALL LJMP
CJNE A,#5AH,F1 R0,#60H TULIS_DI_BARIS2 DLY10MS POWER_DITEKAN2A
F1:
A,#05H,RETRY F1_DITEKAN
CJNE LJMP
RETRY:
RET
76
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
;~~~~~~~~~~~~~~ SUBRUTIN TIMER (TUNDA) ~~~~~~~~~~~~~~ DLY1_5S: MOV DLY1_5SA: CALL DJNZ RET DLY300MS: CALL CALL CALL CALL CALL CALL RET
R7,#150 DLY10MS R7,DLY1_5SA
DLY50MSA DLY50MSA DLY50MSA DLY50MSA DLY50MSA DLY50MSA
DLY250MS: MOV R7,#25 DLY250MS_A: ACALL DLY10MS DJNZ R7,DLY250MS_A RET ;Kembali lompat ke instruksi pemanggil
DLY50MS: CALL CALL CALL CALL CALL RET
DLY10MS DLY10MS DLY10MS DLY10MS DLY10MS
DLY30MS: CALL CALL CALL RET
DLY10MS DLY10MS DLY10MS
DLY10MS: CALL CALL CALL CALL CALL RET
DLY2000 DLY2000 DLY2000 DLY2000 DLY2000
DLY2000: CALL CALL RET
DLY1000 DLY1000
DLY1000: CLR MOV MOV SETB JNB
TR0 TH0,#HIGH -1000 TL0,#LOW -1000 TR0 TF0,$
77
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CLR CALL RET DLY50MSA: CLR MOV MOV SETB JNB CLR RET
TF0 SCAN_TOMBOL
TR0 TH0,#HIGH -50000 TL0,#LOW -50000 TR0 TF0,$ TF0
END
78
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
Lampiran B. Program Asembler Untuk Sentral ;****************************************************** ;### IMPLEMENTASI TDMA PADA MIKROKONTROLER AT89C52 ### ;****************************************************** ;Program ini *.asm digunakan pada sentral ;berfungsi untuk mengatur trafik dari sistem ;Program ini dirancang oleh : M. FAJAR S. A. (01403-003) ;TEKNIK ELEKTRO UNIVERSITAS MERCU BUANA 2007 $MOD51 ORG
00H
;~~~~~~~~~~ Deklarasi TIMER ~~~~~~~~~~ MOV TMOD,#00010001B
;~~~~~~~~~~ Deklarasi INFRAMERAH ~~~~~~~~~ SENSOR_TERIMA EQU P1.3 LED_TERIMA EQU P1.1 SENSOR_KIRIM LED_KIRIM EQU
EQU P1.2
IDENTITAS EQU TERIMA_DARI EQU KIRIM_KE EQU
70H 71H 72H
TERMINALA TERMINALB TERMINALC TERMINALD TERMINALE TERMINALF
EQU EQU EQU EQU EQU EQU
73H 74H 75H 76H 77H 78H
BUFFER DATA_YG_DIKIRIM
EQU
P1.0
EQU 7AH
79H
;~~~~~~~~~~ KEADAAN AWAL ~~~~~~~~~~~~ SET_KEADAAN_AWAL: CLR SENSOR_KIRIM SETB LED_KIRIM SETB LED_TERIMA MOV R0,#73H MOV R1,#50H MOV IDENTITAS,#00000111B MOV KIRIM_KE,#00000000B MOV TERIMA_DARI,#00000000B
79
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
MOV MOV
PEMBANDING1,#00000000B PEMBANDING2,#00000000B
MOV MOV MOV MOV MOV MOV
TERMINALA,#00000001B TERMINALB,#00000010B TERMINALC,#00000011B TERMINALD,#00000100B TERMINALE,#00000101B TERMINALF,#00000110B
;~~~~~~~~~~~~~~ PROGRAM UTAMA ~~~~~~~~~~~~~~~~ CALL DLY2S START: CALL DLY100MS START0: INC R0 CJNE R0,#79H,START1 MOV R0,#73H START1: MOV CALL CALL
A,#00000001B DLY50MS KIRIM
MOV
A,@R0
CLR MOV MOV MOV MOV MOV MOV SETB MOV MOV MOV MOV MOV MOV MOV MOV CALL CALL START2: CALL CALL CJNE
B.7 C,ACC.2 B.6,C C,ACC.1 B.5,C C,ACC.0 B.4,C B.3 A,IDENTITAS C,ACC.2 B.2,C C,ACC.1 B.1,C C,ACC.0 B.0,C A,B DLY50MS KIRIM DLY30MS TERIMA A,#00000001B,START
CALL CALL
DLY30MS TERIMA
CLR CLR CLR CLR
B.7 B.6 B.5 B.4
80
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CLR MOV MOV MOV MOV MOV MOV MOV
B.3 C,ACC.6 B.2,C C,ACC.5 B.1,C C,ACC.4 B.0,C A,B
CJNE MOV CLR CLR CLR CLR CLR MOV MOV CALL CALL
A,IDENTITAS,START A,BUFFER ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 KIRIM_KE,A TERIMA_DARI,@R0 DLY30MS TERIMA
MOV MOV CALL CALL
DATA_YG_DIKIRIM,A A,#00000001B DLY50MS KIRIM
MOV CLR MOV MOV MOV MOV MOV MOV CLR MOV MOV MOV MOV MOV MOV MOV MOV CALL CALL
A,KIRIM_KE B.7 C,ACC.2 B.6,C C,ACC.1 B.5,C C,ACC.0 B.4,C B.3 A,TERIMA_DARI C,ACC.2 B.2,C C,ACC.1 B.1,C C,ACC.0 B.0,C A,B DLY50MS KIRIM
MOV CALL CALL
A,DATA_YG_DIKIRIM DLY50MS KIRIM
LJMP
START0
81
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
;~~~~~~~~~~~~ SUBRUTIN TERIMA DATA ~~~~~~~~~~~~~ TERIMA: CALL TERIMA_START_BIT CLR LED_TERIMA MOV R6,#8 TERIMA1: MOV C,SENSOR_TERIMA MOV ACC.7,C RR A CALL DLY2000 DJNZ R6,TERIMA1 CPL A MOV BUFFER,A SETB LED_TERIMA RET TERIMA_START_BIT: CALL TIMER_25MS_ON TERIMA_START_BIT1: JB TF1,WAKTU_HABIS JB SENSOR_TERIMA,TERIMA_START_BIT1 CALL TIMER_25MS_OFF JNB SENSOR_TERIMA,$ CALL DLY1000 RET
TIMER_25MS_ON: CLR TR1 MOV TH1,#HIGH -25000 MOV TL1,#LOW -25000 SETB TR1 RET TIMER_25MS_OFF: CLR TF1 CLR TR1 RET WAKTU_HABIS: CALL TIMER_25MS_OFF RET
;~~~~~~~~~~~~~~ SUBRUTIN KIRIM DATA ~~~~~~~~~~~~~~~ KIRIM: CLR LED_KIRIM CALL KIRIM_START_BIT MOV R6,#8 KIRIM1: MOV C,ACC.0 MOV SENSOR_KIRIM,C CALL DLY2000 RR A DJNZ R6,KIRIM1 CLR SENSOR_KIRIM SETB LED_KIRIM RET KIRIM_START_BIT: SETB SENSOR_KIRIM
82
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CALL CLR CALL RET
DLY2000 SENSOR_KIRIM DLY2000
;~~~~~~~~~~~~~~~~~ SUBRUTIN TIMER ~~~~~~~~~~~~~~~ DLY2S: MOV DLY2SA: CALL DJNZ REt
R7,#200 DLY10MS R7,DLY2SA
DLY250MS: MOV R7,#25 DLY250MS_A: ACALL DLY10MS DJNZ R7,DLY250MS_A RET ;Kembali lompat ke instruksi pemanggil DLY100MS: CALL CALL RET
DLY50MS DLY50MS
DLY50MS: CLR MOV MOV SETB JNB CLR RET
TR0 TH0,#HIGH -50000 TL0,#LOW -50000 TR0 TF0,$ TF0
DLY30MS: CLR MOV MOV SETB JNB CLR RET
TR0 TH0,#HIGH -30000 TL0,#LOW -30000 TR0 TF0,$ TF0
DLY20MS: CALL CALL RET
DLY10MS DLY10MS
DLY10MS: CLR MOV MOV SETB JNB
TR0 TH0,#HIGH -10000 TL0,#LOW -10000 TR0 TF0,$
83
Implementasi TDMA Pada Sistem Komunikasi Data Menggunakan Mikrokontroler AT89S51
CLR RET DLY500: CLR MOV MOV SETB JNB CLR RET
TF0
TR0 TH0,#HIGH -500 TL0,#LOW -500 TR0 TF0,$ TF0
DLY2000: CALL CALL RET
DLY1000 DLY1000
DLY1000: CLR MOV MOV SETB JNB CLR RET
TR0 TH0,#HIGH -1000 TL0,#LOW -1000 TR0 TF0,$ TF0
DLY900: CLR MOV MOV SETB JNB CLR RET
TR0 TH0,#HIGH -900 TL0,#LOW -900 TR0 TF0,$ TF0
END
84