• Tidak ada hasil yang ditemukan

PENGENDALIAN MOBIL REMOTE CONTROL MELALUI PERSONAL COMPUTER (PC) DENGAN MENGGUNAKAN VISUAL BASIC TUGAS AKHIR

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENGENDALIAN MOBIL REMOTE CONTROL MELALUI PERSONAL COMPUTER (PC) DENGAN MENGGUNAKAN VISUAL BASIC TUGAS AKHIR"

Copied!
72
0
0

Teks penuh

(1)

VISUAL BASIC

TUGAS AKHIR

Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana

NAMA : AGUNG EKA PUTRA NIM : 41405110043

FAKULTAS TEKNIK INDUSTRI PROGRAM STUDI TEKNIK ELEKTRONIKA

JAKARTA JANUARI 2009

(2)

ii Yang bertanda tangan di bawah ini,

N a m a : Agung Eka Putra N.I.M : 41405110043 Jurusan : Teknik Elektro Fakultas : Teknologi Industri

Judul Skripsi : Pengendalian Mobil Remote Control Melalui Personal

Computer (PC) Dengan Menggunakan Visual Basic

Dengan ini menyatakan bahwa hasil penulisan Tugas Akhir yang telah saya buat ini merupakan hasil karya sendiri dan benar keasliannya. Apabila ternyata di kemudian hari penulisan Tugas Akhir ini merupakan hasil plagiat atau penjiplakan terhadap karya orang lain, maka saya bersedia mempertanggungjawabkan sekaligus bersedia menerima sanksi berdasarkan aturan tata tertib di Universitas Mercu Buana.

Demikian, pernyataan ini saya buat dalam keadaan sadar dan tidak dipaksakan.

Penulis,

(3)

iii

PENGENDALIAN MOBIL REMOTE CONTROL MELALUI PERSONAL

COMPUTER (PC) DENGAN MENGGUNAKAN VISUAL BASIC

TUGAS AKHIR

NAMA : AGUNG EKA PUTRA NIM : 41405110043

Koordinator Tugas Akhir Pembimbing Tugas Akhir

( Jaja Kustija MSc ) ( Ir. Eko Ihsanto M.Eng )

Ketua Program Studi Teknik Elektro

(4)

iv

Puji syukur saya panjatkan kepada Allah SWT, karena atas rahmat dan hidayah-Nya, saya dapat menyelesaikan tugas akhir ini. Pembuatan tugas akhir ini dilakukan dalam rangka memenuhi syarat untuk mencapai gelar Sarjana Teknik Jurusan Teknik Elektronika pada Fakultas Teknologi Industri Universitas Mercu Buana. Saya menyadari bahwa, tanpa bantuan dan bimbingan dari berbagai pihak, dari masa perkuliahan sampai pada pembuatan tugas akhir ini, sangatlah sulit bagi saya untuk menyelesaikannya. Oleh karena itu, saya mengucapkan terima kasih kepada :

1. Ir. Eko Ihsanto M.Eng, selaku dosen pembimbing yang telah menyediakan waktu, tenaga dan pikiran untuk mengarahkan saya dalam pembuatan tugas akhir ini;

2. Istri dan orang tua saya yang telah memberikan dukungan material dan moral;

3. Rekan-rekan mahasiswa yang turut membantu saya dalam penyelesaian tugas akhir ini.

Akhir kata, saya berharap Allah SWT berkenan membalas segala kebaikan semua pihak yang telah membantu. Semoga tugas akhir ini dapat membawa manfaat bagi pengembangan ilmu.

Jakarta, 29 Desember 2008

(5)

v Nama : Agung Eka Putra

Program Studi : Teknik Elektronika

Judul : Pengendalian Mobil Remote Control Melalui Personal Computer (PC) Dengan Menggunakan Visual Basic

Tugas Akhir ini membahas tentang suatu perangkat elektronik yang dapat memantau kondisi lingkungan di sekitarnya untuk berbagai macam keperluan, misalnya sebagai pendukung keamanan, survey lapangan ke tempat yang tak terjangkau manusia, dsb. Pemantauan dilakukan dari jauh dengan memanfaatkan

Personal Computer (PC) yang telah dilengkapi dengan program Pengendali

Mobil Remote Control. Mobil Remote Control dipilih sebagai perlengkapan pemantauan karena mudah didapat dan harganya terjangkau. Mobil Remote

Control dipadukan dengan kamera untuk proses monitoring serta sebagai

feedback untuk operatornya. Pembahasan difokuskan pada sistem komunikasi serial antara PC dengan mikrokontroler AT89C51. Penggunaan pemrograman Visual Basic memudahkan pengoperasian mobil Remote Control karena cukup

user-friendly dan dapat dimodifikasi sesuai keperluan.

Kata kunci :

(6)

vi Name : Agung Eka Putra

Study Program: Electronic Engineering

Title : Controlling Remote Control Car with Personal Computer (PC) using Visual Basic

This is study an electronic peripheral available for monitoring area in any kind of need, for example as security supporter, survey field to place of which can not be reached by human, etc. Monitoring done from a distance by using Personal Computer (PC) which have been provided with “Pengendali Mobil Remote Control” program. Remote Control car is selected as monitoring equipment because it’s easy to get and cheap. Remote Control car attached with camera for monitoring process and also as feedback for the operator. The study focussed at serial communications system between PC with mikrokontroler AT89C51. Usage of Visual Basic programming make the operation of Remote Control car become easy because is enough user-friendly and can be modified according to need.

Key words :

(7)

vii

HALAMAN JUDUL ... i

LEMBAR PERNYATAAN ... ii

LEMBAR PENGESAHAN ... iii

KATA PENGANTAR ... iv

ABSTRAK .……… v

DAFTAR ISI ………. vii

DAFTAR GAMBAR .……… ix DAFTAR TABEL .………. x DAFTAR LAMPIRAN ………. xi BAB 1 PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Tujuan Penulisan ... 1 1.3 Batasan Masalah ………. 1 1.4 Sistematika Penulisan ………. 2

BAB 2 TINJAUAN PUSTAKA ………... 3

2.1 Komunikasi Serial ……….. 3

2.1.1 Jenis Komunikasi Data Serial ………... 3

2.1.2 Protokol Serial ………... 3

2.1.3 Pengaksesan Port Serial PC Dengan Visual Basic ... 4

2.1.3.1 Properti MSComm ……… 4 2.1.3.2 Even MSComm ………. 5 2.2 RS232 Converter ……… 7 2.3 Mikrokontroler AT89C51 ……….. 10 2.3.1 Jalur Input/Output ………. 12 2.3.2 Timer/Counter ………... 13 2.3.3 Sistem Interupsi ………. 15 2.3.4 Port Serial ……….. 22 2.3.5 Instruksi Mikrokontroler ...……… 26

2.3.5.1 Instruksi Transfer Data ……….. 26

2.3.5.2 Instruksi Aritmatika ………... 27

2.3.5.3 Instruksi Logika ………. 28

2.3.5.4 Instruksi Pencabangan (Branch) ………... 29

BAB 3 RANCANG BANGUN ... 31

3.1 Prinsip Kerja Sistem ... 31

3.2 Perangkat Keras ... 33

3.3 Perangkat Lunak ... 34

3.3.1 Pemrograman Mikrokontroler ………... 34

3.3.2 Pemrograman Pada PC ……….. 35

3.4 Format Data Serial ………. 36

3.5 Kamera Digital Wireless ……… 36

3.6 TV Tuner ………...………. 36

BAB 4 PENGUJIAN DAN ANALISA SISTEM ... 37

4.1 Hasil Rancang Bangun ... 37

(8)

viii

4.3 Pengujian ... 40

4.3.1 Pengujian Secara Software ... 40

4.3.2 Pengujian Secara Elektronik ... 41

BAB 5 KESIMPULAN DAN SARAN ... 48

DAFTAR REFERENSI ...………...……… 49

(9)

ix

Gambar 2.1 Timing Format Asynchronous – UART ... 3

Gambar 2.2 Spesifikasi Level Logic RS232C ... 8

Gambar 2.3 Konektor DB9 ... 9

Gambar 2.4 Konfigurasi Pin AT89C51 ………. 11

Gambar 2.5 Blok Diagram IC AT89C51 ………... 12

Gambar 2.6 Register Timer Control (TCON) ... 14

Gambar 2.7 Register Timer Mode Operation (TMOD) ... 14

Gambar 2.8 Bagan Kerja Prosesor Melayani Interupsi ... 16

Gambar 2.9 Peta Memory Program ... 19

Gambar 2.10 Bagan Lengkap Sistem Interupsi AT89C51 ... 21

Gambar 2.11 Register Serial Data Buffer (SBUF) ... 23

Gambar 2.12 Register Serial Port Control (SCON) ………... 24

Gambar 2.13 Sistem Pembangkit Clock Untuk UART ... 26

Gambar 3.1 Blok Diagram Sistem Keseluruhan ... 31

Gambar 3.2 Skematik Diagram Perangkat Keras Sistem ... 33

Gambar 3.3 Diagram Alir Program Mikrokontroler ... 34

Gambar 3.4 Diagram Alir Perangkat Lunak Pada PC ... 35

Gambar 3.5 Format Data Serial ... 36

Gambar 4.1 Perangkat Keras Sistem ... 37

Gambar 4.2 Tampilan Perangkat Lunak Sistem ... 37

Gambar 4.3 Menu Instalasi Langkah Pertama ... 38

Gambar 4.4 Menu Instalasi Langkah kedua ... 38

Gambar 4.5 Menu Instalasi Software TV Tuner ... 39

Gambar 4.6 Pengujian Dengan Hyper Terminal ... 40

Gambar 4.7 Pengujian Dengan Visual Basic ... 41

Gambar 4.8 Blok Pengujian Secara Elektronik ... 41

Gambar 4.9 Pengukuran Pada TP 1 Saat Tombol A Ditekan ... 42

Gambar 4.10 Pengukuran Pada TP 1 Saat Tombol B Ditekan ... 42

Gambar 4.11 Pengukuran Pada TP 1 Saat Tombol C Ditekan ... 43

Gambar 4.12 Pengukuran Pada TP 1 Saat Tombol D Ditekan ... 43

Gambar 4.13 Pengukuran Pada TP 2 Saat Tombol A Ditekan ... 44

Gambar 4.14 Pengukuran Pada TP 2 Saat Tombol B Ditekan ... 44

Gambar 4.15 Pengukuran Pada TP 2 Saat Tombol C Ditekan ... 44

Gambar 4.16 Pengukuran Pada TP 2 Saat Tombol D Ditekan ... 45

Gambar 4.17 Pengukuran Pada TP 3 Saat Tombol A Ditekan ... 45

Gambar 4.18 Pengukuran Pada TP 3 Saat Tombol B Ditekan ... 46

Gambar 4.19 Pengukuran Pada TP 3 Saat Tombol C Ditekan ... 46

(10)

x

Tabel 2.1 Nilai-nilai Properti Even Error pada CommEvent ………. 5

Tabel 2.2 Nilai-Nilai Properti Even Komunikasi Pada CommEvent ... 6

Tabel 2.3 Spesifikasi RS232C………. 9

(11)

xi

Listing Program Mikrokontroler ... 50

Listing Program Visual Basic ……… 53

Data Sheet AT89C51 ... 58

(12)

1

1.1 Latar Belakang

Pemantauan kondisi lingkungan di suatu tempat terkadang sangat diperlukan, misalnya untuk mendukung penjaga keamanan dalam melaksanakan tugasnya sehingga tidak perlu turun langsung ke lokasi untuk mengetahui lingkungan sekitarnya setiap saat secara terus menerus. Ataupun pemantauan ke tempat-tempat yang tidak mungkin dilakukan oleh manusia ,misalnya tempat yang penuh gas/asap beracun, tempat dengan ruangan yang sempit, dsb. Untuk mengatasi hal tersebut, diperlukan adanya suatu sistem pemantau yang dapat dikendalikan dari jarak jauh untuk memonitor suatu kondisi lingkungan secara audio visual dan realtime di lapangan dengan menggunakan komputer yang dioperasikan oleh seorang operator.

Untuk merealisasikan hal tersebut di atas, dalam tugas akhir ini dibuat suatu perangkat yang dapat memonitor suatu kondisi secara audio visual dan dikendalikan dari jarak jauh dengan menggunakan komputer.

1.2 Tujuan Penulisan

Tujuan dari penulisan tugas akhir ini adalah untuk merancang dan membuat sistem pengendali mobil remote control melalui PC dengan

menggunakan Visual Basic yang dapat digunakan diantaranya untuk keperluan pemantauan lingkungan.

1.3 Batasan Masalah

Permasalahan yang akan dibahas pada tugas akhir ini hanya dibatasi pada proses komunikasi data antara PC dengan mikrokontroler secara serial, melalui visual basic.

(13)

1.4 Sistematika Penulisan

Dalam Penulisan laporan tugas akhir ini, disusun berdasarkan bab-bab yang terdiri atas lima bab dan selanjutnya diperjelas dalam beberapa sub bab. Secara keseluruhan skripsi ini disusun dalam sistimatika sebagai berikut:

BAB 1 PENDAHULUAN

Berisi latar belakang, tujuan penulisan, batasan masalah, dan Sistematika penulisan.

BAB 2 TINJAUAN PUSTAKA

Bagian pertama menjelaskan mengenai port serial, bagian kedua menjelaskan mengenai konverter RS 232, dan ketiga menjelaskan mengenai mikrokontroler AT89S51.

BAB 3 RANCANG BANGUN

Bagian pertama menjelaskan mengenai prinsip kerja sistem keseluruhan, bagian kedua menjelaskan mengenai perancangan perangkat keras, bagian ketiga mmenjelaskan mengenai perancangan perangkat lunak pada komputer dan perancangan perangkat lunak pada mikrokontroler, dan yang keempat menjelaskan format data serial dari PC yang akan dikirimkan ke mikrokontroler.

BAB 4 PENGUJIAN DAN ANALISA SISTEM

Pada bab ini dibahas mengenai beberapa pengujian system yaitu: Melakukan uji koneksi dengan menggunalan hyper terminal,

Kemudian melakukan pengujian secara keseluruhan, dan dilanjutkan dengan menganalisa data hasil pengujian tersebut.

BAB 5 KESIMPULAN

Merupakan hasil yang didapat dari rancang bangun sistem secara keseluruhan.

(14)

3

2.1 Komunikasi Serial

2.1.1 Jenis komunikasi data serial

Ada dua macam cara pengiriman (transmisi) data secara serial. Kedua cara tersebut dibedakan oleh sinyal detak (clock) yang dipakai untuk mendorong data serial, yang pertama yaitu detak dikirim bersama-sama dengan data serial, cara tersebut dikatakan sebagai transmisi data serial secara synchron, sedangkan cara yang kedua yaitu disebut asynchron dimana detak dibangkitkan oleh masing-masing system pengirim maupun penerima.

2.1.2 Protokol Serial

Format populer untuk transmisi data kecepatan rendah adalah

asynchronous protokol. Format tipical untuk komunikasi asynchronous

adalah 12 bit. Start bit menginisialisasikan rangkaian pewaktuan. Hal ini dideteksi oleh perubahan dari High ke Low. Berikutnya adalah delapan bit data, diawali dengan LSB (Least Significant Bit) diakhiri dengan MSB (Most Significant Bit). Kemudian diikuti oleh opsional bit parity. Terakhir, line menjadi High untuk satu atau dua bit (stop bit), menandakan karakter telah habis. Format ini ditunjukkan pada Gambar 2.1 .

(15)

2.1.3 Pengaksesan port serial pada PC menggunakan pemograman Visual Basic 6.0

Pengaksesan port serial melalui visual basic yaitu dengan menggunakan kontrol MSComm. Kontrol MSComm menyediakan fasilitas komunikasi antara program aplikasi yang kita buat dengan port serial untuk mengirim atau menerima data melalui port serial. Setiap MSComm hanya menangani satu port serial, sehingga jika kita ingin menggunakan lebih dari satu port serial, kita juga harus menggunakan MSComm sebanyak port serial yang kita pakai.

2.1.3.1 Properti MSComm

Jumlah properti pada MSComm sangat banyak beberapa properti yang sering dipakai adalah sebagai berikut:

CommPort : Digunakan untuk menentukan nomor port serial yang akan dipakai.

Setting : Digunakan untuk menset nilai baud rate, parity, jumlah bit data, dan jumlah bit stop.

PortOpen : Digunakan untuk membuka ataupun menutup port serial yang dihubungkan dengan MSComm ini.

Input : Digunakan untuk mengambil data string yang ada pada buffer penerima.

Output : Digunakan untuk menulis data string pada buffer kirim.

Berikut adalah contoh penggunaan properti tersebut untuk komunikasi menggunakan modem.

Private Sub Form_Load ( ) MSComm1.commPort = 1

MSComm1.Settings = “4800,N,8,1” MSComm1.inputlen = 0

MSComm1.PortOpen = True

MSComm1.output = “ATV1Q0” & Chr$(13) Do

DoEvents

Buffer$ = Buffer$ & MSComm1,input

Loop Until InStr(Buffer$, “OK” & vbCRLF) MSComm1.PortOpen = False

(16)

Kode-kode program pada prosedur di atas melakukan aksi sebagai berikut:

x Port serial yang digunakan adalah COM1

x Setting MSComm adalah baud rate 4800, tanpa paritas, jumlah data 8 bit, dan jumlah bit stop adalah 1 bit.

x Memerintahkan kontrol MSComm membaca seluruh isi buffer ketika menggunakan perintah Input (MSComm1.InputLen = 0)

x Membuka port serial

x Mengirim perintah “ATV1Q0” diikuti ASCII 13 (enter) ke modem x Menunggu modem mengirimkan jawaban “OK” ke komputer x Menutup port serial

2.1.3.2 Even Pada MSComm

MSComm hanya mempunyai satu even saja, yaitu even OnComm. Even OnComm dibangkitkan jika nilai properti dari CommEvent berubah yang mengindikasikan telah terjadi even pada port serial baik even komunikasi maupun even error. Tabel 2.1 dan Tabel 2.2 berikut adalah nilai-nilai dari properti CommEvent. Nilai properti ini tidak tersedia pada saat design time, tetapi hanya dapat dibaca pada saat run time.

Tabel 2.1 Nilai-nilai Properti Even Error pada CommEvent

Konstanta Keterangan

comEventFrame Hardware mendeteksi adanya kesalahan framing comEventRxParity Hardware mendeteksi adanya kesalahan pariti comEventRxOver Buffer penerima mengalami over fllow, tidak

ada ruang kosong lagi pada buffer penerima comEventRxFull Buffer kirim penuh

comEventOverrun Port mengalami overrun comEventBreak Sinyal Break diterima

comEventDCB Mendapatkan kembali Device Control Block (DCB) dari port serial

(17)

Tabel 2.2 Nilai-Nilai Properti Even Komunikasi Pada CommEvent

Konstanta Keterangan

comEvSend Jumlah karakter pada buffer kirim lebih sedikit

daripada nilai property Sthreshold. Even ini akan dibangkitkan jika nilai pada property Sthreshold tidak diisi ‘0’.

comEvReceive Telah diterima karakter sebanyak nilai property

Rthreshold. Even ini akan dibangkitkan terus menerus sampai data diambil dari buffer penerima menggunakan perintah input. Even ini akan dibangkitkan jika nilai pada property Rthreshold tidak diisi ‘0’.

comEvCTS Terjadi perubahan pada saluran Clear to Send

comEvDSR Terjadi perubahan pada saluran Data Set Ready

comEvCD Terjadi perubahan pada saluran Carier Detect

comEvRing Terdeteksi adanya sinyal Ring

comEvEOF Karakter End of file diterima

Berikut adalah contoh penggunaan even OnComm untuk komunikasi menggunakan mikrokontroler. Akan dibaca hanya even comEvReceive saja, even yang lain diabaikan.

Private Static Sub MSComm1_OnComm() Dim Buffer As Variant

Select Case MSComm1.CommEvent

Case comEvReceive

If MSComm1.InBufferCount >= 3 then Buffer = CStr (MSComm1.Input)

If Mid(Buffer, 1, 1) = “O” Then

If Mid(Buffer, 2, 1) = “K” Then StatusBar1.Panels(“value”).Text = “Value:” & Asc(Mid(Buffer, 3, 1))

StatusBar1.Panels(“Status”).Text = “status: Connect” End If End If End Selec End Sub

Kode-kode program pada prosedur diatas akan melakukan aksi sebagai berikut:

x Mendeteksi even comEvReceive, kemudian menentukan apakah sudah diterima tiga buah karakter pada buffer penerima

(18)

x Menentukan apakah karakter yang diterima adalah karakter ‘OK’. Jika karakter yang diterima adalah karakter ‘OK’, maka akan diubah nilai ‘Value’ dan nilai ‘Status’ pada property panel control StatusBar1

2.2 RS232C Converter

RS232 (Recommended Standard 232) merupakan sebuah antar muka standar yang disetujui oleh Electronic Industries Association (EIA) untuk komunikasi DTE (Data Terminal Equipment) dengan DCE (Data

Circuit-Terminating Equipment) secara serial. Standard EIA RS232 pertama kali

dipublikasikan pada tahun 1962. Standar ini sudah ada jauh sebelum IC TTL populer. Pada tahun 1987, EIA mengeluarkan standar versi baru dan merubah nama menjadi EIA-232D dan pada tahun 1991 menjadi EIA/TIA-232-E. EIA/TIA-232-E merupakan revisi ke lima dari standar RS232. Namun demikian banyak orang masih menganggap sebagai standar RS232C, atau hanya RS232.

Antar muka (interface) secara serial lebih sulit dibandingkan dengan antar muka (interface) secara paralel. Dalam banyak kasus, beberapa alat yang dihubungkan dengan port serial akan membutuhkan pengubah transmisi serial ke parallel. Hal ini dapat dilakukan dengan menggunakan IC Universal

Asynchronous Receiver/Transmitter ( UART ).

Peralatan yang menggunakan kabel serial untuk komunikasinya dibagi menjadi dua golongan utama yaitu DCE (Data Communication Equipment) dan DTE (Data Terminal Equipment). Yang tergolong DCE adalah peralatan seperti modem, printer, mouse, dan plotter. Dan yang tergolong DTE adalah Komputer atau terminal.

Dalam ketentuan RS232C, level logika 1 (Mark) dinyatakan dengan tegangan antara –3 sampai –15 Volt dengan beban (-25 Volt tanpa beban), dan level logika 0 (Space) dinyatakan dengan tegangan antara +3 sampai +15 Volt dengan beban (+25 Volt tanpa beban). Mengingat komponen digital pada umumnya bekerja dengan sumber tegangan +5 Volt, dan level logika ‘0’ dinyatakan dengan tegangan antara 0 sampai 0,8 Volt dan level logika ‘1’ dinyatakan dengan tegangan 3,5 sampai 5 Volt, maka antara rangkaian digital dan saluran RS232C biasanya disisipkan IC ‘RS232-TTL Voltage Translator’.

(19)

Standar RS232C juga membatasi maksimum slew rate pada output driver. Batasan ini dimasukkan untuk membantu mengurangi kemungkinan cross-talk diantara sinyal yang berdekatan. Semakin kecil rise dan fall time, maka semakin kecil pula kemungkinan untuk terjadi cross-talk. Berdasarkan keadaan ini slew rate maksimum yang diizinkan adalah 30V/µs. Dan juga RS232C telah menentukan besar baud rate maksimum yaitu 20k bit / detik. Ketentuan ini dimaksudkan untuk mengurangi kemungkinan terjadinya cross-talk. Impedansi antara driver dan receiver juga telah ditentukan. Beban pada driver dispesifikasikan sebesar 3kŸ sampai 7kŸ. Untuk daerah antara +3 dan -3 volt level logikanya tidak didefinisikan. Tegangan open circuit tidak boleh lebih dari 25 volt ( referensi terhadap ground ). Arus short circuit tidak boleh melebihi 500mA. Spesifikasi level logic RS 232 dapat dilihat pada Gambar 2.2

Gambar 2.2 Spesifikasi Level Logic RS232C

Dalam saluran RS232C level logika ditransmisikan sebagai perbedaan tegangan antara saluran dan Ground, cara semacam ini dikatakan sebagai

unbalanced (single-ended) data transmission (transmisi data tidak imbang). Unbalanced (single-ended) data transmission menggunakan single konduktor,

dengan tegangan direferensikan terhadap sinyal ground (common) yang menunjukkan keadaan logic. Jika sinyal menerima gangguan derau listrik (electrical noise), bisa berakibat fatal pada penerima karena derau yang diterima bisa disalah tafsirkan sebagai sinyal digital.

Saluran RS232C banyak dipakai untuk menghubungkan komputer dengan alat pendukungnya, misalnya komputer dengan printer, dan komputer dengan modem. Namun hubungan antara alat tidak lebih dari 50 feet (sekitar 16,4 meter). Untuk lebih jelasnya, spesifikasi RS 232 dapat dilihat pada Tabel 2.3 dan

(20)

konfigurasi dari port serial PC dapat dilihat pada Gambar 2.5 dengan keterangan tiap kaki terdapat pada Tabel 2.4.

Tabel 2.3 Spesifikasi RS232C

Spesifikasi Keterangan

Mode operasi Single Ended

Jumlah Tx dan Rx yang diizinkan 1 Tx, 1Rx ( point to point ) Panjang kabel maksimum 50 feet

Data Rate maksimum 20 kbps

Range output driver minimum ±5V sampai ±15V Range output driver maksimum ±25V Impedansi pada Tx 3kവ sampai 7kവ

Sensitivitas input Rx ±3V

Range tegangan input Rx s15V Resistansi input Rx maksimum 3kŸ sampai 7kŸ

Receiver Threshold ±3V

Gambar 2.3 Konektor DB9

Tabel 2.4 RS232C Pada DB9

Nomor Pin Sinyal Deskripsi

1 DCD Data Carrier Detect

2 RD Receive Data

3 TD Transmit Data

4 DTR Data Terminal Ready

5 GND Signal Ground

6 DSR Data Set Ready

7 RTS Ready To Send

8 CTS Clear To Send

(21)

Sinyal Fungsi

DCD Saat modem mendeteksi sinyal carrier dari modem ujung yang lain pada line telepon, maka line ini akan aktif.

RD Sinyal ini dihasilkan DCE (Data Circuit-Terminating Equipment) dan diterima oleh DTE (Data Terminal Equipment).

TD Sinyal ini dihasilkan DTE (Data Terminal Equipment) dan diterima oleh DCE (Data Circuit-Terminating Equipment).

DTR Mengindikasikan kesiapan dari DTE. Sinyal ini ON oleh DTE saat siap untuk mengirim atau menerima data.

DSR Mengindikasikan kesiapan dari DCE. Sinyal ini ON oleh DCE saat siap untuk mengirim atau menerima data.

RTS Saat DTE siap untuk mengirim data ke DCE, RTS akan ON. Pada sistem simplex dan duplex, kondisi ini menunjukkan DCE pada mode receive. Pada sistem half-duplex, kondisi ini menunjukkan DCE pada mode transmit. Setelah RTS diaktifkan, DCE harus mengaktifkan CTS sebelum memulai komunikasi.

CTS Digunakan bersama dengan RTS untuk mengadakan handshaking antara DTE dan DCE. Setelah DCE menerima perintah RTS, hal ini menyebabkan CTS ON saat siap untuk memulai komunikasi.

2.3 Mikrokontroler AT89C51

Mikrokontroler adalah kombinasi CPU dengan memori, serta I/O yang berbentuk satu chip atau dikenal dengan SCM (Single Chip Microcomputer) yang merupakan suatu unit pengontrol yang sudah memenuhi sistem minimum komputer. Terdapat 2 macam memori yang memiliki sifat yang berbeda, yaitu: 1. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan

catu daya. Dipakai untuk menyimpan program. Ketika di-reset, mikrokontroler akan langsung bekerja dengan program dalam ROM tersebut, sesuai dengan keperluannya. Dalam susunan IC mikrokontroler AT89C51 memori penyimpan program ini dinamakan sebagai Memory Program

2. Random Access Memory (RAM) isinya akan hilang atau terhapus ketika IC tidak mendapatkan catu daya. Dipakai untuk menyimpan data pada saat

(22)

program bekerja. Selain itu, RAM dipakai pula untuk Stack. RAM yang dipakai untuk menyimpan data ini disebut juga sebagai Memory Data

Keistimewaan dari IC mikrokontroler AT89C51 ini adalah:

x Sebuah CPU (Central Processing Unit) 8 bit yang termasuk keluarga MCS-51

x Memiliki 4 KiloByte Reprogrammable flash Memory x Memiliki 128 Bytes Internal RAM

x Maksimum frekuensi clock sampai 24MHz x Memiliki 32 Programmable I/O Lines x Memiliki dua 16 bit timer/counter x Memiliki 6 sumber interupsi

x Memiliki sebuah port serial dengan kontrol serial full duplex UART x Kemampuan melaksanakan operasi perkalian, pembagian, dan operasi

boolean (Bit)

Konfigurasi pin dan blok diagram dari mikrokontroler AT89C51 dapat dilihat pada Gambar 2.4 dan Gambar 2.5.

(23)

Gambar 2.5 Blok Diagram IC AT89C51

2.3.1 Jalur Input/Output Mikrokontroler

Mikrokontroler AT89C51 memiliki 32 jalur input/output yang terdiri dari 4 port parallel yaitu port 0, port 1, port 2 dan port 3. Adapun penjelasan dari masing–masing port adalah sebagai berikut:

a. Port 0

Port 0 merupakan port parallel 8 bit open drain dua arah

(24)

masukan TTL. Port 0 dapat juga dikonfigurasikan menjadi data bus atau alamat rendah yang dimultipleks selama akses ke eksternal program dan data memori.

b. Port 1

Port 1 merupakan port parallel 8 bit dua arah (bidirectional) yang dapat digunakan untuk berbagai keperluan (general purpose)

c. Port 2

Port 2 merupakan port parallel selebar 8 bit dua arah (bidirectional). Port 2 ini juga digunakan untuk mengirimkan byte alamat bila dilakukan pengaksesan memori eksternal.

d. Port 3

Port 3 merupakan port parallel 8 bit dua arah yang memiliki fungsi pengganti. Fungsi pengganti meliputi TxD (Transmit Data), RxD (Receive Data), INT0 (Interrupt 0), INT1 (Interrupt 1), T0 (Timer 0), T1 (Timer 1), WR (Write), dan RD (Read). Bila fungsi pengganti ini tidak digunakan, port 3 dapat digunakan sebagai port parallel 8 bit serbaguna.

2.3.2 Timer/Counter

Pada mikrokontroler AT89C51 terdapat 2 buah timer/counter 16 bit yang dapat diatur melalui perangkat lunak, yaitu timer/counter 0 dan timer/counter 1. Perioda waktu timer/counter secara umum ditentukan oleh persamaan berikut :

1. Sebagai timer/counter 8 bit

T = (255 – TLx) x 1 siklus mesin (2-1) Dimana TLx adalah isi register TL0 atau TL1

2. Sebagai timer/counter 16 bit

T = (65536 – THx TLx) x siklus mesin (2-2) THx = isi register TH0 atau TH1

(25)

Pengontrol kerja timer/counter adalah register timer control (TCON). Adapun definisi dari bit-bit pada timer control adalah sebagai berikut :

MSB LSB

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Gambar 2.6 Register Timer Control (TCON)

Ket :

TF1 : Timer 1 overflow flag

TR1 : Bit untuk menjalankan timer 1 TF0 : Timer 0 overflow flag

TR0 : Bit untuk menjalankan timer 0 IE1 : Eksternal Interupt 1 edge flag IT1 : Interupt 1 control bit

IE0 : Eksternal Interupt 0 edge byte IT0 : Interupt 0 control bit

Pengontrol pemilihan mode operasi timer/counter adalah register timer mode (TMOD) yang mana definisi bit-bitnya adalah sebagai berikut:

MSB LSB

GATE C / T M1 M0 GATE C / T M1 M0

Gambar 2.7 Register Timer Mode Operation (TMOD)

GATE : Gate harus diset 1 untuk mengaktifkan fungsi

timer/counter

C / T : Pemilih fungsi timer atau counter. Clear (0) untuk

operasi timer dengan masukan dari sistem clock internal. Set (1) untuk operasi counter dengan masukan pin T0 atau T1.

(26)

Tabel 2.4 Mode operasi timer

M1 M0 MODE OPERASI

0 0 0 Timer 13 bit

0 1 1 Timer / Counter 16 bit 1 0 2 Timer auto reload 8 bit

TL0 adalah timer / counter 8 bit yang dikontrol oleh kontrol bit standar timer 0 1 1 3 TH0 adalah timer 8 bit dan dikontrol bit

timer 1

2.3.3 Sistem Interupsi

Pengetahuan mengenai interupsi sangat membantu mengatasi masalah pemrograman mikrokontroler dalam hal menangani banyak peralatan input/output.

Saat kaki RESET pada IC mikrokontroler menerima sinyal reset

Program Counter diisi dengan sebuah nilai, nilai tersebut dinamakan

sebagai vektor reset (reset vector) yang merupakan nomor awal memori-program yang menampung memori-program yang harus dijalankan.

Pembahasan di atas memberi gambaran bahwa proses reset merupakan peristiwa perangkat keras (sinyal reset diumpankan ke kaki Reset) yang dipakai untuk mengatur kerja dari perangkat lunak, yakni menentukan aliran program prosesor (mengisi Program Counter dengan vektor reset).

Program yang dijalankan dengan cara reset, merupakan program

utama bagi prosesor.

Peristiwa perangkat keras yang dipakai untuk mengatur kerja dari perangkat lunak tidak hanya terjadi pada proses reset, tapi terjadi pula dalam proses interupsi.

Dalam proses interupsi, terjadinya sesuatu pada perangkat keras tertentu dicatat dalam flip-flop khusus, flip-flop tersebut sering disebut sebagai ‘petanda’ (flag), catatan dalam petanda tersebut diatur sedemikian rupa sehingga bisa merupakan sinyal permintaan interupsi pada prosesor.

(27)

Jika permintaan interupsi ini dilayani prosesor, Program Counter akan diisi dengan sebuah nilai. Nilai tersebut dinamakan sebagai vektor interupsi (interrupt vector), yang merupakan nomor awal memori-program yang menampung program yang dipakai untuk melayani permintaan interupsi tersebut.

Program yang dijalankan dengan cara interupsi, dinamakan sebagai program layanan interupsi (ISR - Interrupt Service Routine). Saat prosesor menjalankan ISR, pekerjaan yang sedang dikerjakan pada program utama sementara ditinggalkan, selesai menjalankan ISR prosesor kembali menjalankan program utama, seperti yang digambarkan dalam Tabel 2.8

Gambar 2.8 Bagan Kerja Prosesor Melayani Interupsi

Sebuah prosesor bisa mempunyai beberapa perangkat keras yang merupakan sumber sinyal permintaan interupsi, masing-masing sumber interupsi dilayani dengan ISR berlainan, dengan demikian prosesor mempunyai beberapa vektor interupsi untuk memilih ISR mana yang dipakai melayani permintaan interupsi dari berbagai sumber. Kadang kala sebuah vektor interupsi dipakai oleh lebih dari satu sumber interupsi yang sejenis, dalam hal semacam ini ISR bersangkutan harus menentukan sendiri sumber interupsi mana yang harus dilayani saat itu.

Jika pada saat yang sama terjadi lebih dari satu permintaan interupsi, prosesor akan melayani permintaan interupsi tersebut menurut perioritas yang sudah ditentukan, selesai melayani permintaan interupsi

(28)

perioritas yang lebih tinggi, prosesor melayani permintaan interupsi berikutnya, baru setelah itu kembali mengerjakan program utama.

Saat prosesor sedang mengerjakan ISR, bisa jadi terjadi permintaan interupsi lain, jika permintaan interupsi yang datang belakangan ini mempunyai perioritas lebih tinggi, ISR yang sedang dikerjakan ditinggal dulu, prosesor melayani permintaan yang perioritas lebih tinggi, selesai melayani interupsi perioritas tinggi prosesor meneruskan ISR semula, baru setelah itu kembali mengerjakan program utama. Hal ini dikatakan sebagai interupsi bertingkat (nested interrupt), tapi tidak semua prosesor mempunyai kemampuan melayani interupsi secara ini.

Seperti terlihat dalam Gambar 2.9 AT89C51 mempunyai 6 sumber interupsi, yakni Interupsi External (External Interrupt) yang berasal dari kaki INT0 dan INT1, Interupsi Timer (Timer Interrupt) yang berasal dari

Timer 0 maupun Timer 1, Interupsi Port Seri (Serial Port Interrupt)

yang berasal dari bagian penerima dan bagian pengirim Port Seri.

Bit IE0 (atau bit IE1) dalam TCON merupakan petanda (flag) yang menandakan adanya permintaan Interupsi Eksternal. Ada 2 keadaan yang bisa meng-aktip-kan petanda ini, yang pertama karena level tegangan ‘0’ pada kaki INT0 (atau INT1), yang kedua karena terjadi transisi sinyal ‘1’ menjadi ‘0’ pada kaki INT0 (atau INT1). Pilihan bentuk sinyal ini ditentukan lewat bit IT0 (atau bit IT1) yang terdapat dalam register

TCON.

x Kalau bit IT0 (atau IT1) =’0’ maka bit IE0 (atau IE1) dalam TCON menjadi ‘1’ saat kaki INT0=’0’.

x Kalau bit IT0 (atau IT1) =’1’ maka bit IE0 (atau IE1) dalam TCON menjadi ‘1’ saat terjadi transisi sinyal ‘1’ menjadi ‘0’ pada kaki

INT0.

Menjelang prosesor menjalankan ISR dari Interupsi Eksternal, bit

IE0 (atau bit IE1) dikembalikan menjadi ‘0’, menandakan permintaan Interupsi Eksternal sudah dilayani. Namun jika permintaan Interupsi

(29)

Ekternal terjadi karena level tegangan ‘0’ pada kaki IT0 (atau IT1), dan level tegangan pada kaki tersebut saat itu masih =’0’ maka bit IE0 (atau bit IE1) akan segera menjadi ‘1’ lagi.

Bit TF0 (atau bit TF1) dalam TCON merupakan petanda (flag) yang menandakan adanya permintaan Interupsi Timer, bit TF0 (atau bit

TF1) menjadi ‘1’ pada saat terjadi limpahan pada pencacah biner Timer 0 (atau Timer 1).

Menjelang prosesor menjalankan ISR dari Interupsi Timer, bit

TF0 (atau bit TF1) dikembalikan menjadi ‘0’, menandakan permintaan Interupsi Timer sudah dilayani.

Interupsi port seri terjadi karena dua hal, yang pertama terjadi setelah port seri selesai mengirim data 1 byte, permintaan interupsi semacam ini ditandai dengan petanda (flag) TI=’1’. Yang kedua terjadi saat port seri telah menerima data 1 byte secara lengkap, permintaan interupsi semacam ini ditandai dengan petanda (flag) RI=’1’.

Petanda di atas tidak dikembalikan menjadi ‘0’ menjelang prosesor menjalankan ISR dari Interupsi port seri, karena petanda tersebut masih diperlukan ISR untuk menentukan sumber interupsi berasal dari TI atau RI. Agar port seri bisa dipakai kembali setelah mengirim atau menerima data, petanda-petanda tadi harus di-nol-kan lewat program.

Petanda permintaan interupsi (IE0, TF0, IE1, TF1, RI dan TI) semuanya bisa di-nol-kan atau di-satu-kan lewat instruksi, pengaruhnya sama persis kalau perubahan itu dilakukan oleh perangkat keras. Artinya permintaan interupsi bisa diajukan lewat pemrograman, misalnya permintaan interupsi eksternal IT0 bisa diajukan dengan instruksi SETB

IE0.

Semua sumber permintaan interupsi yang di bahas di atas, masing-masing bisa di-aktip-kan atau di-nonaktip-kan secara tersendiri lewat bit-bit yang ada dalam register IE (Interrupt Enable Register).

Bit EX0 dan EX1 untuk mengatur interupsi eksternal INT0 dan

(30)

ES untuk mengatur interupsi port seri, seperti yang digambarkan dalam gambar 2.8. Di samping itu ada pula bit EA yang bisa dipakai untuk mengatur semua sumber interupsi sekaligus.

Setelah reset, semua bit dalam register IE bernilai ‘0’, artinya sistem interupsi dalam keadaan non-aktip. Untuk mengaktipkan salah satu sistem interupsi, bit pengatur interupsi bersangkutan diaktipkan dan juga

EA yang mengatur semua sumber interupsi. Misalnya instruksi yang dipakai untuk mengaktipkan interupsi ekternal INT0 adalah SETB EX0 disusul dengan SETB EA.

Saat AT89C51 menanggapi permintaan interupsi, Program Counter diisi dengan sebuah nilai yang dinamakan sebagai vektor interupsi, yang merupakan nomor awal dari memori-program yang menampung ISR untuk melayani permintaan interupsi tersebut. Vektor interupsi itu dipakai untuk melaksanakan inststuksi LCALL yang diaktipkan secara perangkat keras.

Vektor interupsi untuk interupsi eksternal INT0 adalah $0003, untuk interupsi timer 0 adalah $000B, untuk interupsi ekternal INT1 adalah $0013, untuk interupsi timer 1 adalah $001B dan untuk interupsi port seri adalah $0023.

(31)

Jarak vektor interupsi satu dengan lainnya sebesar 8, atau hanya tersedia 8 byte untuk setiap ISR. Jika sebuah ISR memang hanya pendek saja, tidak lebih dari 8 byte, maka ISR tersebut bisa langsung ditulis pada memori-program yang disediakan untuknya. ISR yang lebih panjang dari 8 byte ditulis ditempat lain, tapi pada memori-program yang ditunjuk oleh

vektor interupsi diisikan instruksi JUMP ke arah ISR bersangkutan.

Masing-masing sumber interupsi bisa ditempatkan pada dua tingkatan perioritas yang berbeda. Pengaturan tingkatan perioritas isi dilakukan dengan bit-bit yang ada dalam register IP (Interrupt Priority).

Bit PX0 dan PX1 untuk mengatur tingkatan perioritas interupsi eksternal INT0 dan INT1, bit PT0 dan PT1 untuk mengatur interupsi timer 0 dan timer 1, bit PS untuk mengatur interupsi port seri, seperti yang digambarkan dalam Gambar 2.9

Setelah reset, semua bit dalam register IP bernilai ‘0’, artinya semua sumber interupsi ditempatkan pada tingkatan tanpa perioritas. Masing-masing sumber interupsi bisa ditempatkan pada tingkatan perioritas utama dengan cara men-‘satu’-kan bit pengaturnya. Misalnya interupsi timer 0 bisa ditempatkan pada tingkatan perioritas utama dengan instruksi SETB PT1.

Sebuah ISR untuk interupsi tanpa prioritas bisa diinterupsi oleh sumber interupsi yang berada dalam tingkatan perioritas utama. Tapi interupsi yang berada pada tingkatan perioritas yang sama, tidak dapat saling meng-interupsi.

Jika 2 permintaan interupsi terjadi pada saat yang bersamaan, sedangkan kedua interupsi tersebut terletak pada tingkatan perioritas yang berlainan, maka interupsi yang berada pada tingkatan perioritas utama akan dilayani terlebih dulu, setelah itu baru melayani interupsi pada tingkatan tanpa perioritas.

Jika kedua permintaan tersebut bertempat pada tingkatan perioritas yang sama, perioritas akan ditentukan dengan urutan sebagai berikut : interupsi eksternal INT0, interupsi timer 0, interupsi ekternal INT1, interupsi timer 1 dan terakhir adalah interupsi port seri.

(32)

Gambar 2.10 menggambarkan sistem interupsi AT89C51 selangkapnya, berikut dengan masing-masing bit dalam register-register

SFR (Special Function Register) yang dipakai untuk mengatur masing-masing sumber interupsi.

Saklar yang digambarkan dalam Gambar 2.10 mewakili bit dalam register yang harus diatur untuk mengendalikan sumber interupsi, kotak bergambar bendera kecil merupakan flag (petanda) dalam register yang mencatat adanya permintaan interupsi dari masing-masing sumber interupsi. Kedudukan saklar dalam gambar tersebut menggambarkan kedudukan awal setelah AT89C51 di-reset.

(33)

2.3.4 Port Serial

Pada mikrokontroler AT89C51 terdapat dua cara pengiriman data seri yaitu sinkron dan asinkron. Transmisi data seri secara sinkron adalah pengiriman data dilakukan bersamaan dengan clock sedangkan transmisi data secara asinkron adalah pengiriman data tidak dilakukan bersamaan dengan clock, sehingga rangkaian penerima data harus membangkitkan sendiri clock pendorong data seri.

Port seri pada mikrokontroler AT89C51 dapat bekerja dalam 4 mode, 1 mode bekerja secara sinkron dan 3 mode lainnya bekerja secara asinkron. Adapun keempat mode tersebut adalah sebagai berikut :

1 Mode 0

Mode ini bekerja secara sinkron, data seri dikirim dan diterima melalui kaki P3.0 (RxD), dan kaki P3.1 (TxD) dipakai untuk menyalurkan clock pendorong data seri. Data dikirim/diterima 8 bit sekaligus, dimulai dari bit yang bobotnya paling kecil (bit 0) dan diakhiri dengan bit yang bobotnya paling besar (bit 7). Kecepatan pengiriman data (baud rate) adalah 1/12 frekuensi osilator kristal.

2. Mode 1

Mode ini dan mode-mode berikutnya bekerja secara asinkron, data dikirim melalui kaki P3.1 (TxD) dan diterima melalui kaki P3.0 (RxD). Pada Mode 1 data dikirim/diterima 10 bit sekali gus, diawali dengan 1 bit start, disusul dengan 8 bit data yang dimulai dari bit yang bobotnya paling kecil (bit 0), diakhiri dengan 1 bit stop. Pada mikrokontroler AT89C51 yang berfungsi sebagai penerima bit stop ditampung pada RB8 dalam register SCON. Kecepatan pengiriman data (baud rate) bisa diatur sesuai dengan keperluan. Mode inilah yang umum dikenal sebagai UART (Universal Asynchronous Receiver/Transmitter).

3. Mode 2

Data dikirim/diterima 11 bit sekaligus, diawali dengan 1 bit start, disusul 8 bit data yang dimulai dari bit yang bobotnya paling kecil

(34)

(bit 0), kemudian bit ke 9 yang bisa diatur lebih lanjut, diakhiri dengan 1 bit stop. Pada mikrokontroler AT89C51 yang berfungsi sebagai pengirim bit 9 tersebut berasal dari bit TB8 dalam register

SCON sedangkan yang berfungsi sebagai penerima bit 9 ditampung pada bit RB8 dalam register SCON, bit stop diabaikan tidak ditampung. Kecepatan pengiriman data (baud rate) bisa dipilih antara 1/32 atau 1/64 frekuensi osilator kristal.

4. Mode 3

Mode ini sama dengan Mode 2, hanya saja kecepatan pengiriman data (baud rate) bisa diatur sesuai dengan keperluan, seperti halnya Mode 1.

Register-register pada port seri terdiri dari SBUF (Serial Data

Buffer) dan SCON (Serial Port Control Register). SBUF merupakan SFR (Special Function Register) yang terletak pada memori-data internal

dengan nomor 99H. SBUF mempunyai kegunaan ganda, data yang disimpan pada SBUF akan dikirim keluar mikrokontroler lewat port seri, sedangkan data dari luar mikrokontroler yang diterima port seri diambil dari SBUF pula. Jadi meskipun hanya menempati satu nomor memori-data internal (nomor 99H), sesungguhnya SBUF terdiri dari 2 register yang berbeda. Adapun register SBUF dapat dilihat sebagai berikut :

Gambar 2.11 Register Serial Data Buffer (SBUF)

Sedangkan register SCON merupakan SFR (Special Function

Register) yang terletak pada memori-data internal dengan nomor 98H

yang merupakan register utama untuk mengatur kerja port seri. Setelah

(35)

SCON dan penjelasan dari masing-masing bit ditunjukkan pada Gambar 2.12

Gambar 2.12 Register Serial Port Control (SCON)

Bit SM0 dan bit SM1 (bit 7 dan bit 6 pada register SMOD) dipakai untuk menentukan mode kerja port seri. Setelah reset, kedua bit ini bernilai ‘0’.

Bit REN (bit 4) dipakai untuk mengaktipkan kemampuan port seri menerima data. Pada mode 0 kaki RxD (kaki P3.0) dipakai untuk mengirim data seri (REN=’0’) dan juga untuk menerima data seri (REN=’1’). Sifat ini terbawa pula pada saat port seri bekerja pada mode 1, 2 dan 3, meskipun pada mode-mode tersebut kaki RxD hanya dipakai untuk mengirim data, agar kaki RxD bisa dipakai untuk menerima data terlebih dulu harus dibuat REN=’1’. Setelah reset bit REN bernilai ‘0’.

Pada mode kerja 2 dan mode kerja 3, port seri bekerja dengan 9 bit data, SBUF yang kapasitasnya 8 bit tidak cukup untuk keperluan ini. Bit ke-sembilan yang akan dikirim terlebih dulu diletakkan di TB8 (bit 3), sedangkan bit RB8 (bit 2) merupakan bit yang dipakai untuk menampung bit ke-sembilan yang diterima port seri.

Pada mode kerja 1, RB8 dipakai untuk menampung bit stop yang diterima, dengan demikian apa bila RB8 bernilai ‘1’ maka data diterima dengan benar, sebaliknya apa bila RB8=’0’ berarti terjadi kesalahan kerangka (framing error). Kalau bit SM2 (bit 5) bernilai ‘1’, jika terjadi kesalahan kerangka, RI tidak akan menjadi ‘1’ meskipun SBUF sudah berisi data dari port seri.Bit ke 9 ini bisa dipakai sebagai bit pariti, hanya

(36)

saja bit pariti yang dikirim harus ditentukan sendiri dengan program dan diletakkan pada TB8, dan bit pariti yang diterima pada RB8 dipakai untuk menentukan integritas data secara program pula. Tidak seperti dalam UART standar, semuanya itu dikerjakan oleh perangkat keras dalam IC UART.

Bit TI (bit 1) merupakan petanda yang setara dengan petanda

TDRE (Transmitter Data Register Empty) yang umum dijumpai pada

UART standar. Setelah port seri selesai mengirim data yang disimpan ke-dalam SBUF, bit TI akan bernilai ‘1’ dengan sendirinya, bit ini harus di-nol-kan dengan program agar bisa dipakai untuk memantau keadaan SBUF dalam pengiriman data berikutnya.

Bit RI (bit 0) merupakan petanda yang setara dengan petanda RDRF (Receiver Data Register Full) yang umum dijumpai pada UART standar. Setelah SBUF menerima data dari port seri, bit RI akan bernilai ‘1’ dengan sendirinya, bit ini harus di-nol-kan dengan program agar bisa dipakai untuk memantau keadaan SBUF dalam penerimaan data berikutnya.

Selain mengatur mode kerja dari port serial hal lain yang harus ditentukan pada transmisi data seri khususnya transmisi data seri asinkron adalah mengatur kecepatan transmisi data (Baud Rate). Kecepatan transmisi (Baud Rate) merupakan suatu hal yang amat penting dalam komunikasi data seri asinkron, mengingat dalam komunikasi data seri asinkron clock tidak ikut dikirimkan, sehingga harus diusahakan bahwa kecepatan transmisi mengikuti standar yang sudah ada.

Dalam AT89C51, clock untuk transmisi data dibangkitkan dengan sarana Timer 1 seperti yang digambarkan dakan diagram Gambar 2.13 Untuk keperluan ini, Timer 1 dioperasikan sebagai 8 bit auto reload timer (mode 2), artinya TL1 bekerja sebagai timer 8 bit menerima clock dari osilator kristal yang frekuensinya sudah dibagi 12 terlebih dulu, setiap kali pencacah (counter) nilainya menjadi 0 maka nilai yang sebelumnya sudah disimpan di TH1 secara otomatis diisikan lagi ke TL1, sehingga TL1 akan menghasilkan clock yang frekuensinya diatur oleh TH1, clock ini

(37)

berikutnya dibagi lagi dengan 32 sebelum dipakai sebagai clock untuk UART. Hubungan frekuensi pada sistem tersebut dinyatakan dengan persamaan berikut :

(2-3)

Kalau kecepatan transmisi sudah ditentukann dan frekuensi kristal sudah dipastikan, maka nilai yang disimpan di TH1 bisa dihitung berdasarkan persamaan berikut :

(2-4)

Dalam persaman di atas, K adalah konstanta yang nilainya 1 atau 2, tergantung pada nilai yang tersimpan di bit SMOD dalam register PCON. Jika SMOD=’0’ K bernilai 1 dan K akan bernilai 2 kalau SMOD=’1’. Perlu dicacat, setelah AT89C51 di-reset, SMOD akan bernilai ‘0’, artinya jika tidak diatur lebih lanjut K bernilai 1.

Untuk mendapatkan kecepatan transmisi yang umum dipakai dalam komunikasi data seri asinkron (1200 Baud, 2400 Baud, 4800 Baud, 9600 Baud dan 19200 Baud), dari persamaan di atas bisa diturunkan ternyata frekuensi kristal yang paling tepat adalah 11.059 MHz.

Gambar 2.13 Sistem Pembangkit Clock Untuk UART

2.3.5 Instruksi Mikrokontroler 2.3.5.1 Instruksi Transfer Data

Kelompok instruksi ini digunakan untuk memindahkan data dari : x Register ke register

(38)

x Register ke memori x Antarmuka ke register x Antarmuka ke memori

Contoh: MOV A,R1: Pindahkan register R1 ke akumulator MOV A,@R1: Pindahkan isi memori yang alamatnya

ditunjukkan oleh register R1 ke akumulator MOV A,P0:Pindahkan isi Port 0 ke akumulator

Jadi pengiriman data dan pengambilan data dari suatu register, alamat/port dapat dilakukan dengan menggunakan intruksi MOV.

2.3.5.2 Instruksi Aritmatika

Intruksi aritmatika meliputi penambahan (ADD), pengurangan (SUB), perkalian (MUL) dan pembgian (DIV).

x Penambahan (ADD)

Penambahan ini akan menjumlahkan suatu data dengan isi akumulator dan hasilnya disimpan di dalam akumulator. Penambahan ini hanya melibatkan register akumulator. Penambahan ada dua macam, yaitu tanpa carry (ADD) atau penambahan dengan carry (ADC).

ADD: (A) m (A) + data ADC: (A) m (A) + (C) + data x Pengurangan (SUB)

Instruksi ini mengurangkan isi akumulator dengan isi carry flag dan hasilnya akan disimpan pada akumulator.

SUB: (A) m (A) - (C) – data x Perkalian (MUL)

Instruksi ini akan mengalikan isi akumulator dengan isi register B.

MUL: (AB) m (A) x (B)

Byte bawah hasil perkalian disimpan di dalam akumulator. Byte

(39)

x Pembagian (DIV)

Sama halnya dengan perkalian, pembagian juga melibatkan register B. isi register akumulator akan dibagi oleh isi register B.

DIV: (AB) m (A) : (B)

Akumulator akan berisi hasil bagi, sedangkan register B akan berisi sisa pembagian.

x Penambahan satu (INC)

Proses increment merupakan penambahan satu pada isi suatu register atau memori.

INC A : (A) m (A) + 1

Pemakaian instruksi increment menghemat pemakaian memori karena instruksi INC merupakan instruksi 1 byte (tidak memakai operand).

x Pengurangan satu (DEC)

Proses decrement merupakan kebalikan dari increment, yaitu mengurangkan satu dari isi suatu register atau memori.

DEC R1 : (R1) m (R1) - 1

Pada instruksi ini, isi register R1 dikurangi satu dari hasilnya disimpan dalam register tersebut. Sama seperti INC, instruksi ini juga merupakan instruksi 1 byte.

2.3.5.3 Instruksi Logika

x Logika AND (ANL)

Instruksi ini melakukan proses logika AND antara:

suatu register dengan register, register dengan data, carry flag dengan isi suatu alamat bit, dan lain-lain.

x Logika OR

Logika ini melakukan proses logika OR antara suatu register dengan register, register dengan data, carry flag dengan isi suatu alamat bit, dan lain-lain.

(40)

x Logika NOT

Logika ini melakukan proses logika NOT pada suatu register,

carry flag, atau isi suatu alamat bit, dan lain-lain.

2.3.5.4 Instruksi Percabangan (Branch)

Instruksi ini akan melakukan percabangan ke suatu alamat. Instruksi ini terdiri dari dua bagian yaitu percabangan dengan syarat dan percabangan tanpa syarat.

1. Percabangan dengan syarat

Instruksi percabangan dengan syarat yang biasanya dipakai adalah :

x CJNE

Instruksi ini akan membandingkan isi register atau isi memori dengan suatu data. Bila sama maka instruksi akan menuju instruksi selanjutnya. Tetapi bila tidak sama instruksi akan lompat ke label yang dituju.

CJNE R0, #03H, Mulai

Contoh instruksi ini berarti jika R0 tidak sama dengan 03H maka instruksi akan lompat menuju label mulai.

x DJNZ

Instruksi ini akan mengurangi isi register atau isi memori dengan satu. Bila sudah 0, instruksi dilanjutkan ke label. Sebagai contoh :

DJNZ R2, Ulang

Ini berarti apabila R2 tidak sama dengan nol, maka setelah dikurangi 1, pelaksanaan instruksi harus melompat ke label ulang. Tetapi apabila R2 sama dengan nol maka pelaksanaan instruksi menuju instruksi selanjutnya.

x JNB

Instruksi ini akan menguji suatu alamat bit. Bila isinya 0, instruksi akan menuju label. Bila isinya 1, instruksi selanjutnya yang akan di eksekusi.

(41)

JNB TF0, Mulai

Ini berarti bila TF0 (Timer 0 over flow flag ) = 0, instruksi akan menuju label mulai.

2. Percabangan Tanpa syarat

Instruksi percabangan tanpa syarat ini meliputi SJMP (Short jump) dan LJMP (Long jump).

Contoh : SJMP Start, maka eksekusi program akan menuju label start tanpa syarat apapun.

(42)

31

3.1 Prinsip Kerja Sistem

Prinsip kerja sistem secara keseluruhan yaitu dimulai dari pembacaan tombol yang ditekan pada keyboard (tombol ”W” untuk arah maju, tombol ”S” untuk arah mundur, tombol ”A” untuk belok kiri dan ”D” untuk belok kanan), yang dilakukan dengan perangkat lunak yang dibuat menggunakan Visual Basic, kemudian mengirimkan kode ASCII dari tombol yang ditekan ke mikrokontroler secara serial. Selanjutnya mikrokontroler akan menterjemahkan kode ASCII tersebut sebagai perintah untuk menggerakkan mobil mainan dengan cara mengirimkan melalui pemancar radio. Terakhir, radio penerima akan men-decode data yang diterima untuk menggerakkan roda kendali dan stir sesuai dengan data yang diterimanya. Untuk memonitor kondisi sekitar lingkungan mobil remote

control dipadukan dengan kamera wireless sehingga dapat memantau kondisi

lingkungan secara audio visual pada layar monitor PC.

Blok Diagram dan Fungsinya

Secara keseluruhan, sistem pengendali mobil remote control ini terdiri atas beberapa bagian yang dapat digambarkan menjadi blok diagram pada Gambar 3.1

(43)

Secara keseluruhan, sistem dibagi menjadi empat bagian yaitu PC, Konverter RS232 , Mikrokontroler, Encoder dan Transmitter, Receiver dan

Decoder, Driver dan motor. Setiap bagian terdiri atas komponen-komponen

utama dan pendukungnya. 1) PC

PC berfungsi sebagai pemberi perintah berupa penekanan tombol pada

keyboard dan dapat melihat kondisi lingkungan di sekitar mobil mainan itu berada.

2) RS 232

RS 232 berfungsi untuk mengubah level PC ke level tegangan TTL agar data dari PC dapat diterima oleh mikrokontroler.

3) Mikrokontroler

Mikrokontroler berfungsi untuk menterjemahkan kode ASCII yang dikirim dari PC kemudian mengubahnya menjadi data yang dapat dikirim melalui transmitter .

4) Encoder dan Transmitter

Encoder dan Transmitter berfungsi untuk mengubah data digital

menjadi frekuensi dan mengirimkannya melalui gelombang radio. 5) Decoder dan Receiver

Decoder dan Receiver berfungsi untuk menerima sinyal gelombang

radio dan mengubah frekuensi informasi yang diterima menjadi data yang dapat menggerakkan driver.

6) Driver

Memberikan tegangan dan arus sesuai dengan data yang diterima sehingga dapat menggerakkan motor stir atau motor penggerak.

(44)

3.2 Perangkat Keras

Perangkat keras secara keseluruhan dibuat dengan menggunakan komponen-komponen sesuai dengan fungsi dari blok-blok system yang digambarkan pada Gambar 3.1. Laptop sebagai kendali yang memberikan input kepada mikrokontroler secara serial melalui RS 232 sebagai penyesuai level logic PC dengan level TTL mikrokontroler, kontroler yang digunakan adalah IC AT89S51 yang memiliki 32 bit terminal I/O, transmitter remote control mobil mainan yang sudah jadi dengan mempelajari karakteristiknya sehingga dapat langsung diberikan sinyal masukan dari mikrokontroler, Gambar 3.2 memperlihatkan skematik diagram dari perangkat keras sistem.

(45)

3.3 Perangkat Lunak

Perangkat lunak yang dibuat terdiri atas dua perangkat lunak, yaitu pemograman pada mikrokontroler dan pemrograman pada PC.

3.3.1 Pemrograman Mikrokontroler

Pemrograman pada mikrokontroler dilakukan dengan membuat subrutin-subrutin sebagai berikut: inisialisasi port serial, pembanding data kode ASCII, dan pemberian data terhadap output.

Algoritma pemrosesan data secara keseluruhan menggunakan mikrokontroler dapat digambarkan pada Gambar 3.3 Diagram alir program mikrokontroler .

(46)

3.3.2 Pemrograman Pada PC

Algoritma pemprosesan data pada perangkat lunak PC adalah sebagai berikut: pertama inisialisasi port serial PC yaitu mengatur baud rate, dan format data serialnya, serta inisialisasi buffer data, dan pembuatan tampilan awal. Setelah penginisialisasian, berikutnya membaca penekanan tombol pada keyboard dan membandingkan dengan kode ASCII yang diinginkan, selanjutnya mengirimkan kode ASCII tersebut ke kontroler secara serial

Proses pengolahan data pada perangkat lunak komputer dapat digambarkan pada diagram alir Gambar 3.4.

(47)

3.4 Format Data Serial

Format data serial yang dikirimkan ke kontroler yaitu 1 byte dengan diawali start bit dan diakhiri dengan stop bit sesuai standar RS 232, yang diperlihatkan pada Gambar 3.5 berikut.

Gambar 3.5 Format Data Serial

3.5 Kamera Digital Wireless

Agar dapat melakukan pemantauan lingkungan disekitarnya, mobil remote

control dipadukan dengan kamera wireless. Gambar yang diperoleh dari kamera

ini, dapat dijadikan sebagai feedback untuk operatornya. Gambar yang diambil dapat berupa foto maupun video, lalu disimpan di dalam hardisk komputer sesuai keperluan.

3.6 TV Tuner

TV tuner berperan sebagai penghubung antara kamera dengan komputer

sehingga komputer dapat menampilkan gambaran situasi lingkungan yang diambil oleh kamera secara real time.

(48)

37

4.1 Hasil Rancang Bangun

Berdasarkan rancang bangun pada Bab 3, maka dibuatlah sistem secara keseluruhan, dan hasilnya pada Gambar 4.1 memperlihatkan perangkat keras, dan Gambar 4.2 memperlihatkan tampilan window perangkat lunaknya.

(a) Transmitter (b) Receiver Gambar 4.1 Perangkat Keras Sistem

(49)

4.2 Instalasi Software

Software yang digunakan adalah ”Pengendali Mobil Remote Control”

yang dibuat dengan pemrograman visual basic. Selain itu juga menggunakan

software dari TV tuner yang sudah tersedia bersama produknya.

4.2.1 Software Pengendali Mobil Remote Control

Berikut ini adalah cara instalasi software Pengendali Mobil Remote Control :

Gambar 4.3 Menu Instalasi Langkah Pertama

Pada menu instalasi yang ditunjukkan pada gambar diatas, Klik ”OK”. Maka akan muncul menu instalasi yang baru seperti pada gambar dibawah ini :

Gambar 4.4 Menu Instalasi Langkah Kedua

Klik ikon bergambar PC untuk melanjutkan proses instalasi. Lalu ikuti langkah selanjutnya sampai dengan selesai.

(50)

4.2.2 Software TV Tuner

Setelah TV Tuner dihubungkan pada PC, lakukan proses instalasi program agar monitor pada PC dapat menampilkan gambaran lingkungan sekitar yang diambil oleh kamera wireless. Kemudian pasang alat penerima audio video. Berikut ini adalah cara instalasi software :

Gambar 4.5 Menu Instalasi Software TV Tuner

Pilih ”DirectX9.0” jika PC belum memiliki DirectX minimum versi 9.0. Setelah selesai menginstal DirectX9.0, pilih ”UTV380”, maka akan muncul menu baru. Pilih ”Instal APP” dan ikuti langkah selanjutnya. Setelah itu, lanjutkan dengan menginstal ”USB-Driver”, ikuti langkah selanjutnya sampai selesai.

Setelah proses instalasi selesai, hubungkan alat penerima audio video ke TV tuner. Pemakaian software TV tuner ini sangat mudah karena cukup user-friendly dengan pemakainya. Untuk melakukan capture image ataupun recording video sudah disediakan dalam menu softwarenya. TV tuner yang dipakai pada tugas akhir ini hanyalah salah satu contoh, kita dapat menggunakan berbagai jenis dan merk yang lainnya.

(51)

4.3 Pengujian

Setelah selesai proses rancang bangun, maka dilakukan serangkaian pengujian. Pengujian dilakukan secara software dan elektronik.

4.3.1 Pengujian secara software

Pengujian secara software dilakukan dengan menggunakan fasilitas

Hyper Terminal yang tersedia di sistem operasi Windows. Melalui Hyper Terminal ini dapat diketahui apakah tombol keyboard yang ditekan telah

berfungsi sesuai dengan inisialisasi program pada mikrokontroler atau tidak.

Hasil pengujian menggunakan Hyper Terminal pada Gambar 4.6 menunjukkan bahwa tombol-tombol pada keyboard yaitu tombol A, B, C, D yang digunakan untuk mengendalikan mobil remote control telah berfungsi dengan baik sesuai dengan program pada mikrokontroler.

Gambar 4.6 Pengujian Dengan Hyper Terminal

Selanjutnya pengujian dilakukan dengan menggunakan program visual basic. Tombol-tombol keyboard yang digunakan dirubah. Mobil

remote control dipadukan dengan kamera dan TV tuner agar dapat

melakukan fungsi pemantauan lingkungan karena menghasilkan feedback berupa audio visual bagi operatornya.

(52)

Gambar 4.7 Pengujian Dengan Visual Basic

Pengujian dengan program visual basic juga berjalan dengan baik. Tombol-tombol pada keyboard yaitu tombol W, S, D, A telah berfungsi dengan baik sesuai pemrograman dengan visual basic, dan arah pergerakan mobil remote control ditunjukkan pada sudut kanan atas software.

4.3.2 Pengujian secara elektronik

Pengujian secara elektronik dilakukan berdasarkan gambar berikut:

(53)

Pengamatan pada TP1 :

Saat tombol A ditekan menghasilkan Frekuensi sebesar 4,808 kHz

Gambar 4.9 Pengukuran Pada TP1 Saat Tombol A Ditekan

Saat tombol B ditekan menghasilkan Frekuensi sebesar 3,205 kHz

(54)

Saat tombol C ditekan menghasilkan Frekuensi sebesar 3,205 kHz

Gambar 4.11 Pengukuran Pada TP1 Saat Tombol C Ditekan

Saat tombol D ditekan menghasilkan Frekuensi sebesar 2,405 kHz

Gambar 4.12 Pengukuran Pada TP1 Saat Tombol D Ditekan

Pengamatan pada TP2 :

Setelah dilakukan pengujian pada TP2, bentuk gelombang yang dihasilkan pada TP2 adalah kebalikan dari bentuk gelombang pada TP1, dengan perincian sebagai berikut :

(55)

Gambar 4.13 Pengukuran Pada TP2 Saat Tombol A Ditekan

Gambar 4.14 Pengukuran Pada TP2 Saat Tombol B Ditekan

(56)

Gambar 4.16 Pengukuran Pada TP2 Saat Tombol D Ditekan

Pengamatan pada TP3 :

Saat tombol A ditekan menghasilkan frekuensi sebesar 48.92 MHz

(57)

Saat tombol B ditekan menghasilkan frekuensi sebesar 49,08 MHz

Gambar 4.18 Pengukuran Pada TP3 Saat Tombol B Ditekan

Saat tombol C ditekan menghasilkan frekuensi sebesar 49,60 MHz

(58)

Saat tombol D ditekan menghasilkan frekuensi sebesar 49,70 MHz

(59)

48

Berdasarkan pengujian secara software maupun elektronik, maka dapat disimpulkan sebagai berikut :

1. Pengendali mobil remote control ini dapat memantau situasi lingkungan sekitarnya dari jarak jauh secara real time melalui Personal Computer

(PC) dengan program visual basic.

2. Bentuk gelombang input RS232 akan berbanding terbalik dengan outputnya.

3. Pemrograman visual basic memudahkan penggunaan alat ini dan memudahkan modifikasi program sesuai kebutuhan.

(60)

DAFTAR REFERENSI

Budiharto Widodo, M.Kom, S.Si, “Interfacing Komputer dan Mikrokontroler”, PT Elex Media Komputindo, Jakarta, 2004.

MADCOMS, “Panduan Pemrograman dan referensi kamus Visual Basic 6.0”, Andi , Yogjakarta, 2006.

Putra, Agfianto Eko, Belajar Mikrokontroler AT89C51/52/55 (Teori dan

Aplikasi). Edisi pertama, Yogyakarta : Gava Media, 2002.

Malik, Moh. Ibnu dan Anistardi, Bereksperimen Dengan Mikrokontroler 8031. Jakarta : PT. Elex Media Komputindo, 1997.

Retna Prasetya, Catur Edi Widodo, “Intefacing Port Paralel dan Port Serial

Dengan Visual Basic 6.0”, Andi , Yogyakarta, 2004.

Suhata, ST, “VB Sebagai Pusat Kendali Peralatan elektronik”, PT Elex Media Komputindo, Jakarta, 2005.

(61)

LISTING PROGRAM MIKROKONTROLER

;================================================= ; Pengendali Mobil Remote Control

; Program pada mikrokontroler menggunakan ; Komunikasi serial dengan baud rate 9600 bps ;Agung Eka Putra

;================================================= ORG 0H SJMP START ORG 23H SJMP SERI_INT START:

MOV TMOD,#20H ; timer 1 mode 2 MOV TH1,#0FDH ; baudrate 9600 bps

MOV SCON,#52H ; mode 1 serial 8 bit baudrate variabel SETB TR1 ; timer1 on

SETB ES ; serial interupt SETB EA ; all interupt aktif

MOV P2,#0FFH

STOP:

SJMP STOP

SERI_INT:

JB RI,TERIMA ; cek RI, jika berlogic 1 maka lompat ke label terima

CLR TI

RETI ; kembali dari interrupt TERIMA:

MOV A,SBUF ; copy-kan data dari serial buffer ke Accumulator

CLR RI

CEKBACK:

CJNE A,#'B',CEKFRONT ; apakah data di Accumulator = B

CLR P2.0 ; BACK ON SETB P2.1 SETB P2.2 SETB P2.3 ACALL DELAY SETB P2.0 RETI CEKFRONT: CJNE A,#'A',CEKLEFT CLR P2.1 SETB P2.0 SETB P2.2

(62)

SETB P2.3 ACALL DELAY SETB P2.1 RETI CEKLEFT: CJNE A,#'D',CEKRIGHT CLR P2.2 ; LEFT ON SETB P2.3 CLR P2.1 ACALL DELAY SETB P2.1 RETI CEKRIGHT: CJNE A,#'C',CEKBACK1 CLR P2.3 ; RIGHT ON

SETB P2.2 ; LEFT OFF

CLR P2.1 ACALL DELAY SETB P2.1 RETI CEKBACK1: CJNE A,#'b',CEKFRONT1 CLR P2.0 SETB P2.1 SETB P2.2 SETB P2.3 ACALL DELAY SETB P2.0 RETI CEKFRONT1: CJNE A,#'a',CEKLEFT1 CLR P2.1 SETB P2.0 SETB P2.2 SETB P2.3 ACALL DELAY SETB P2.1 RETI CEKLEFT1: CJNE A,#'d',CEKRIGHT1 CLR P2.2 SETB P2.3 CLR P2.1 ACALL DELAY SETB P2.1 RETI CEKRIGHT1: CJNE A,#'c',CEKOUT

(63)

CLR P2.3 SETB P2.2 CLR P2.1 ACALL DELAY SETB P2.1 RETI CEKOUT: MOV P2,#0FFH MOV P1,#0FFH RETI DELAY: MOV R4,#1 DELAY2: ACALL DELAY1 DJNZ R4,DELAY2 RET DELAY1: DJNZ R2,$ DJNZ R3,DELAY1 RET END

(64)

LISTING PROGRAM VISUAL BASIC Program pada form Utama

Public digital As Byte

Private Sub Form_LinkClose() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False

Unload Me End If Unload Me End Sub

Private Sub Form_Load() mnStatus.Enabled = False Text1.Visible = False End Sub

Private Sub mnExit_Click()

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False

Unload Me End If Unload Me End Sub

Private Sub text1_keypress(keyAscii As Integer) If MSComm1.PortOpen = True Then

' untuk maju

If keyAscii = &H57 Then ' JIKA W besar MSComm1.Output = "A"

Label1.Caption = "maju" Text1.Text = &HA

ElseIf keyAscii = &H77 Then ' jika w kecil MSComm1.Output = "A"

Label1.Caption = "maju" Text1.Text = &HA

'untuk mundur

ElseIf keyAscii = &H53 Then ' jika S besar MSComm1.Output = "B"

Label1.Caption = "mundur" Text1.Text = &HA

ElseIf keyAscii = &H73 Then ' jika s kecil MSComm1.Output = "B"

Label1.Caption = "mundur" Text1.Text = &HA

(65)

ElseIf keyAscii = &H41 Then ' jika A besar MSComm1.Output = "D"

Label1.Caption = "kiri" Text1.Text = &HA

ElseIf keyAscii = &H61 Then ' jika a kecil MSComm1.Output = "D"

Label1.Caption = "kiri" Text1.Text = &HA

ElseIf keyAscii = &H44 Then ' jika D besar MSComm1.Output = "C"

Label1.Caption = "kanan" Text1.Text = &HA

ElseIf keyAscii = &H64 Then ' jika d kecil MSComm1.Output = "C" Label1.Caption = "kanan" Text1.Text = &HA End If End If End Sub

Private Sub mnSetting_Click() FormProperti.Show vbModal End Sub

Public Sub Get_Disconnect() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If

mnConnect.Enabled = True mnDisconnect.Enabled = True

StatusBar1.Panels("Status").Text = "Status : Disconnect"

StatusBar1.Panels("Setting").Text = "Setting : COM" & MSComm1.CommPort & "," & MSComm1.Settings

End Sub

Public Sub Get_Connect() Dim i As Integer

On Error GoTo Handle_Error MSComm1.PortOpen = True mnDisconnect.Enabled = True mnConnect.Enabled = True

StatusBar1.Panels("Status").Text = "Status : Connect"

StatusBar1.Panels("Setting").Text = "Setting : COM" & MSComm1.CommPort & "," & MSComm1.Settings

Exit Sub Handle_Error:

Gambar

Gambar 2.1 Timing Format Asynchronous – UART
Tabel 2.1 Nilai-nilai Properti Even Error pada CommEvent        Konstanta  Keterangan
Tabel 2.2 Nilai-Nilai Properti Even Komunikasi  Pada CommEvent  Konstanta Keterangan  comEvSend Jumlah karakter pada buffer kirim lebih sedikit
Gambar 2.2 Spesifikasi Level Logic RS232C
+7

Referensi

Dokumen terkait

High intensity interval training lebih efektif pada peningkatan ambang anaerobik, dibandingkan dengan steady state training pada siswa anggota kelompok

Kapal dimiliki oleh PT.PANN (Persero) di Jakarta, dilengkapi dengan Surat Ukur Internasional (1969) Nomor 1747/PPm, Surat Laut Nomor PK.674/1075/SL-PM/DK-08, Sertifikat

Tingkat pengembalian Pembiayaan Ijarah di BMT Dana Mentari Muhammadiyah Pasar Pon belum bisa dikatakan baik atau dikatakan kurang baik dikarenakan rasio

Dari segi permintaan pengiriman barang atau pos, setelah sempat naik dengan cukup signifikan pada tahun 2011, kembali turun perlahan pada 2012 dan 2013 dengan total barang yang

Berdasarkan hasil penelitian dan pembahasan, dapat dikemukakan beberapa simpulan yang berkaitan dengan pengembangan materi adat Munggah Molo berbasis audio visual

Berdasarkn hasil penelitian, faktor terbesar yang mempengaruhi minat siswa SMA untuk melanjutkan studi pada jurusan PTI dengan adanya penerapan kurikulum 2013

Untuk pegawai non-darurat : Tidak boleh melakukan tindakan yang menyangkut risiko pribadi atau tanpa pelatihan yang sesuai.. Jaga agar personil yang tidak berkepentingan dan

Sesuai dengan tujuan penelitian yang menyangkut Pengaruh Profesionalisme Auditor Internal dan Role Stress Auditor Internal terhadap Kualitas Rekomendasi Audit