Anda di halaman 1dari 35

1

Komunikasi Serial Penghitung Jumlah Orang Masuk dan Keluar dengan Microsoft Visual Basic 6.0 (Mikrokontroler AT89S52 ke PC)
I. Alat dan Bahan Yang Digunakan Alat-alat yang digunakan dalam melakukan komunikasi serial ini adalah sebagai berikut. 1. 2. 3. 4. 5. 6. 7. 8. 9. PC (Laptop) Kabel port USB to serial Downloader Papan PCB Solder Timah FeCl3 Multimeter Pinset

10. Kabel jumper 11. Rangkaian Sistem Minimum AT89S52 Komponen terdiri dari : IC AT89S52 Kapasitor 30 pF Kapasitor 10 F LED Kristal 11,0592 MHz Resistor 330 Saklar Push Button Resistor 10 K Socket 40 Pin Header Single 1 buah 2 buah 1 buah 8 buah 1 buah 8 buah 1 buah 1 buah 1 buah Secukupnya

12. Rangkaian Komunikasi Serial Komponen terdiri dari : IC MAX 232 Kapasitor 1 F DB9 Female Socket 16 Pin Header Single 1 buah 4 buah 1 buah 1 buah Secukupnya

13. Rangkaian Catu Daya 5 Volt Komponen terdiri dari : Dioda Bridge IC 7805 Kapasitor 1000 F Kapasitor 100 F Resistor 100 Led Jumper 1 buah 1 buah 1 buah 1 buah 1 buah 1 buah Secukupnya

14. Rangkaian LCD LCD Trimpot 100 K Kapasitor 104 pF Pin header male Pin header female 1 buah 1 buah 1 buah Secukupnya Secukupnya

II.

Teori Dasar

2.1 Mikrokontroler Mikrokontroler AT89S52 merupakan suatu komponen elektronika yang di dalamnya terdapat rangkaian mikroprosesor, memori (RAM/ROM) dan I/O, rangkaian tersebut terdapat dalam level chip atau biasa disebut single chip microcomputer. Pada mikrokontroler sudah terdapat komponen-komponen mikroprosesor, dengan bus-bus internal yang saling berhubungan. Komponen-

komponen tersebut adalah RAM, ROM, Timer, I/O pararel dan serial, serta interrupt control. Adapun keunggulan dari mikrokontroler adalah adanya system interupsi. Mikrokontroler digunakan untuk keperluan control, atau kendali, biasa disebut dengan MCS, dan yang digunakan dalamrobot pengikut garis. Mikrokontroler AT89S52 mempunyai 40 kaki, 32 kaki diantaranya digunakan sebagai port pararel. Satu Port pararel terdiri 8 kaki, dengan demikian 32 kaki tersebut membentuk 4 buah Port pararel, yang masing-masing dikenal sebagai Port 0, Port 1, Port 2, dan Port 3. Nomor dari masing-masing jalur (kaki) dari Port pararel mulai dari 0 sampai 7, jalur (kaki) pertama Port 0 disebut sebagai P0.0 dan jalur terakhir untuk Port 3 adalah P3.7 (Gambar 1).
PDIP P1.0 P1.1 P1.2 P1.3 P1.4 P1.75 P1.6 P1.7 RST (RXD) P3.0 (TXD) P3.1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL2 XTAL1 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3) P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) EA / VPP ALE / PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P2.0 (A8)

Gambar 1. Konfigurasi Pin Mikrokontroler AT89S52

Port 1 Merupakan salah satu port yang berfungsi sebagai general purpose I/O dengan lebar 8bit.

RST Pin ini berfungsi sebagai input untuk melakukan reset terhadap mikro, dan jika RST high selama minimal 2 machine cycle, maka nilai internal register akan kembali seperti awal muali bekerja.

Port 3 Selain berfungsi sebagai masukkan dan keluaran, port 3 juga mempunyai fungsi khusus yang lain.

XTAL 1 DAN XTAL 2 Merupakan pin inputan untuk kristal osilator.

GND Pin ini berfungsi sebagai pentanahan.

Port 2 Merupakan salah satu port yang berfungsi sebagai general purpose I/O dengan lebar 8bit. Fungsi lainnya adalah sebagai high byte address bus (pada penggunaan memori eksternal).

PSEN PSEN (Program Memory Enable) adalah pulsa pengaktif untuk membaca program memori luar.

ALE Berfungsi untuk demultiplexer pada saat port 0 bekerja sebagai multiplexed address/data bus (pengaksesan memori eksternal).

EA EA (External Access) harus dihubungkan dengan ground jika menggunakan program memori luar. Jika menggunakan program memori internal maka EA dihubungkan dengan VCC.

Port 0 Merupakan salah satu port yang berfungsi sebagai general purpose I/O dengan lebar 8bit. Fungsi lainnya adalah sebagai multiplexed address/data bus (pada saat mengakses memori eksternal).

VCC Pin ini berfungsi ssebagai tempat sumber tegangan yang sebesar 5 volt DC.

2.2 Komunikasi Serial Komunikasi serial adalah komunikasi yang pengiriman datanya per-bit secara berurutan dan bergantian. Komunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu jalur dan kabel yang sedikit dibandingkan dengan komunikasi paralel. Pada prinsipnya komunikasi serial merupakan komunikasi dimana pengiriman data dilakukan per bit sehingga lebih lambat dibandingkan komunikasi parallel, atau dengan kata lain komunikasi serial merupakan salah satu metode komunikasi data di mana hanya satu bit data yang dikirimkan melalui seuntai kabel pada suatu waktu tertentu. Pada dasarnya komunikasi serial adalah kasus khusus komunikasi paralel dengan nilai n = 1, atau dengan kata lain adalah suatu bentuk komunikasi paralel dengan jumlah kabel hanya satu dan hanya mengirimkan satu bit data secara simultan.Hal ini dapat disandingkan dengan komunikasi paralel yang sesungguhnya di mana n-bit data dikirimkan bersamaan, dengan nilai umumnya 8 n 128. Komunikasi serial membutuhkan port sebagai saluran data. Berikut tampilan port serial DB9 yang umum digunakan sebagai port serial

Gambar 2. Port DB9 jantan

Gambar 3. Port DB9 betina

Konektor port serial terdiri dari 2 jenis, yaitu konektor 25 pin (DB25 dan 9 pin (DB9) yang berpasangan (jantan dan betina). Bentuk dari konektor DB-25 sama persis dengan port paralel. Umumnyua COM1 berada dialamat 3F8H, sedangkan COM2 dialamat 2F8H.

Tabel 1. Konfigurasi pin dan nama sinyal konektor serial DB 9 Nomor Pin 1 2 3 4 5 6 Nama Sinyal DCD RxD TxD DTR GND DSR Direction In In Out Out In Keterangan Data Carrier Detect/Recieved Line Signal Detect Recieve Data Transmit Data Data Terminal Ground Data Set Ready

7 8 9

RTS CTS RI

Out In In

Request To Send Clear To Send Ring Indicator

Keterangan mengenai fungsi saluran RS232 pada konektor DB9 adalah sebagai berikut: Receive Line signal detect, dengan saluran ini DCE memberitahukan ke DTE bahwa pada terminal masukkan ada data masuk. Receive Data, digunakan DTE menerima data dari DCE. Transmit Data, digunakan DTE mengirimkan data ke DCE. Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan terminalnya. Signal Ground, saluran ground. Ring Indicator, pada saluran ini DCE memberitahukan ke DTE bahwa sebuah stasiun menghendaki berhubungan dengannya. Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh mulai mengirim data. Request To Send, dengan saluran ini DCE diminta mengirim data oleh DTE. DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap.

2.2.1 IC MAX-232 IC MAX232 adalah IC rangkaian antar muka dual RS-232

transmitter/receiver yang memenuhi standar EIA-232-E. IC MAX232 hanya membutuhkan power supply 5V (single power supply) sebagai catu. IC MAX232 berfungsi untuk merubah level tegangan pada COM komputer menjadi level tegangan TTL/CMOS. IC MAX232 terdiri atas tiga bagian yaitu dual chargepump voltage converter, driver RS232, dan receiver RS232. Berikut gambar IC MAX232 dan pinout IC MAX232.

Gambar 4. Pin Out MAX232

Driver RS232 Output ayunan tegangan ( voltage swing ) driver typical adalah 8V. Nilai

ini terjadi saat driver dibebani dengan beban nominal receiver RS232 sebesar 5k atau Vcc = 5V. Input pada driver yang tidak digunakan bisa dibiarkan tidak terhubung kemana mana. Hal ini dapat terjadi karena dalam kaki input driver IC MAX232 terdapat resistor pull-up sebesar 400k yang terhubung keVcc. Resistor pull-up mengakibatkan output driver yang tidak terpakai menjadi low karena semua output driver diinversikan. Receiver RS232 EIA mendefinisikan level tegangan lebih dari 3V sebagai logic 0, berdasarkan hal tersebut semua receiver diinversikan. Input receiver dapat menahan tegangan input sampai dengan 25V dan menyiapkan resistor terminasi input dengan nilai nominal 5k. Nilai input receiver hysteresis typical adalah 0,5V dengan nilai minimum 0,2V, dan nilai delay propogasi typicalnya adalah 600ns. Gambar dibawah merupakan typical operasi rangkaian IC MAX232. Nilai C1, C2, C3, C4, dan C5 yang dianjurkan sebesar 1F.

Gambar 5. Typical Operasi Rangkaian IC MAX232

2.2.2 Pemrograman Port Serial Komputer Port serial sering digunakan untuk interfacing komputer dan

mikrokontroler, karena kemampuan jarak pengiriman data dibandingkan port paralel. Berikut contoh program assembly untuk komunikasi serial antara 2 PC. Untuk komunikasi ini, anda cukup menghubungkan : 1. Pin TxD ke pin RxD computer lain 2. Pin RXD dihubungkan ke pin TxD komputer lain 3. RTS dan CTS dihubung singkat 4. DSR dan DTR dihubung singkat 5. GND dihubungkan ke GND komputer lain

Komunikasi serial ada dua macam, asynchronous serial dan synchronous serial. Synchronous serial adalah komunikasi dimana hanya ada satu pihak (pengirim atau penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersama-sama dengan data. Contoh pengunaan synchronous serial terdapat pada transmisi data keyboard. Asynchronous serial adalah komunikasi dimana kedua pihak (pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang ditransmisikan, tanpa clock. Agar data yang dikirim sama

10

dengan data yang diterima, maka kedua frekuensi clock harus sama dan harus terdapat sinkronisasi. Setelah adanya sinkronisasi, pengirim akan mengirimkan datanya sesuai dengan frekuensi clock pengirim dan penerima akan membaca data sesuai dengan frekuensi clock penerima. Contoh penggunaan asynchronous serial adalah pada Universal Asynchronous Receiver Transmitter (UART) yang digunakan pada serial port (COM) komputer. Berikut ini beberapa istilah dalam komunikasi serial, yaitu : 1. Synchronous (sinkron) adalah kondisi pengiriman data serial yang disertai dengan pengiriman detak (clock). 2. Asynchronous (asinkron) adalah kondisi dengan detak tidak dikirim bersamaan dengan data serial sehingga masing-masing perangkat keras yang berkomunikasi harus menciptakan detaknya sendiri. 3. Baud rate merupakan istilah yang digunakan untuk kecepatan aliran data. Satuan baud rate adalah bps (bit per second). Contohnya, 9600 bps atau 19200 bps. 4. Full duplex adalah jenis komunikasi serial yang menyatakan hubungan antara dua perangkat keras, A dan B. Jika A sedang melakukan pengiriman data, pada saat yang sama, A dapat menerima data dari B, dan sebaliknya. Kondisi ini dinamakan full duplex atau komunikasi dua arah. Contohnya, telepon. 5. Half duplex merupakan kondisi ketika proses pengiriman dan penerimaan data tidak dapat dilakukan secara bersamaan seperti pada full duplex namun dilakukan secara bergantian. Contohnya, pesawat intercom dan walkie talkie. Jenis komunikasi serial diantaranya UART (Universal Asynchronous Receiver/Transmitter), SPI, dan I2C (Inter Integrated Circuit). Pada komunikasi serial asinkron jenis full duplex digunakan tiga jalur yaitu, jalur Tx (transmit / pengiriman), jalur Rx(receive / penrimaan), dan jalur ground. Umumnya jumlah data yang dikirim adalah satu bit start, delapan bit data, dan satu bit stop sehingga dalam satu frame data terdapat sepuluh bit (format 1-8-1).

11

Gambar 6. Proses Pengiriman Komunikasi Serial

Komunikasi serial pada mikrokontroler AT89S52 bergantung pada kondisi pin Rx dan Tx. Data yang akan dikirim dan diterima harus diletakkan atau ditampung pada register SBUF (serial buffer). SBUF pada mikrokontroler dipisahkan antara pengiriman data dan penerimaan data tetapi dalam pemrogramannya hanya ada satu yaitu SBUF saja. Tugas compiler untuk memahami SBUF yang dimaksud oleh program dan menterjemahkannya ke dalam kode mesin untuk masing-masing SBUF.

Gambar 7. Penterjemahan Program

12

III. Langkah Percobaan Dalam melakukan percobaan komunikasi serial dari Visual Basic Ke Mikrokontroler adalah sebagai berikut: 1. Buat rangkaian Sistem Minimum AT89S52, rangkaian komunikasi serial dan rangkaian LCD beserta ragkaian catu daya 5volt.

Gambar 8. Rangkaian Sistem Minimum AT89S52 dan Komunikasi Serial

Gambar 9. Rangkaian LCD

13

Gambar 10. Rangkaian Catu Daya 5 Volt

2. Untuk dapat menjalankan percobaan tersebut, buatlah program pada bascom 8051 yang sesuai dengan percobaan yang dilakukan.

(a)

(b)

14

(c) Gambar 11. Kode Program Untuk Mikrokontroler AT89S52 pada Bascom 8051 3. Setelah program selesai, program harus di download atau flash ke IC AT89S52 dengan menggunakan downloader. Software yang digunakan untuk mendownload adalah prog ISP.

Gambar 12. Tampilan Software Prog ISP Kode program diambil dengan file yang berbentuk HEX.

15

Gambar 13. Pengambilan File Program dalam Bentuk Hex 4. Kemudian untuk dapat melakukan komunikasi serial antara PC ke mikrokontroler, menggunakan sebuah software Microsoft Visual Basic 6.0. Pada software ini kita harus membuat kode program yang sinkron dengan program pada mikrokontroler yang telah kita buat. Namun sebelumnya kita harus membuat tampilan terlebih dahulu pada software Microsoft Visual Basic 6.0.

Gambar 14. Form Pada Microsoft Visual Basic 6.0 Setelah itu kita juga harus membuat kode program pada microsoft visual basic 6.0 agar program dapat berjalan dengan benar.

16

(a)

(b)

(c)

17

(d)

(e) Gambar 15. Kode Program Pada Microsoft Visual Basic 6.0

5. Setelah selesai, maka selanjutnya akan dilakukan pengetesan agar program berjalan sebagaimana mestinya.

18

IV. Hasil Percobaan

Gambar 16. Rangkaian Sistem Minimym dan Komunikasi Serial Mikrokontroler AT89S52 dengan LCD

Pada percobaan yang dilakukan ini adalah pengujian rangkaian komunikasi serial dari Mikrokontroler ke PC yaitu Penghitung Jumlah Orang Masuk. Pada percobaan ini mikrokontroler at89s52 akan memerintah PC, sehingga PC dapat menampilkan jumlah yang telah dihitung oleh Mikrokontroler. Dengan menggunkan software Microsoft Visual Basic 6.0 yang akan menampilkan apa yang di perintah oleh mikrokontroler AT89S52. Dalam hal ini di perlukan kabel port usb to serial. Kabel disambungkan pada rangkaian dan di hubungkan ke PC. Adapun langkah pengujian pada rangkaian komunikasi serial adalah sebagai berikut. 1. Masukkan program bascom 8051 yang telah di program sebelumnya dalam bentuk .hex pada software prog isp

19

Gambar 17. Software Prog ISP

Gambar 18. Simulasi Mendownload Program pada Bascom 8051 2. Setelah program selesai di flash, sambungkan rangkaian LCD pada rangkaian sistem minimum.

Gamabar 19. Rangakaian LCD

20

3. Sambungkan kabel serial pada rangkaian dan hubungkan pada PC.

Gambar 20. Pemasangan Kabel Serial Ke PC dan Rangkaian Mikrokontroler 4. Sambungkan rangkaian pada sumber tegangan (seperti baterai atau sebagainya) dan jalankan Mikrokontroler.

Gambar 21. Menjalankan Mikrokontroler 5. Tekan tombol reset pada mikrokontroler agar program dapat beroperasi dengan baik 6. Buka software Microsoft Visual Basic 6.0 untuk menjalankan komunikasi serial antara PC ke Mikrokontroler AT89S52. 7. Ambil file yang telah di program dan jalankan.

21

Gambar 22. Mengambil File yang Telah di Buat pada Microsoft Visual Basic 6.0 8. Sebelumnya atur terlebih dahulu comport pada microsoft visual basic, sesuai com yang telah digunakan sebelumnya.

Gambar 23. Pengaturan Comport 9. Jalankan program pada Microsoft Visual Basic 6.0

22

Gambar 24. Simulasi Program Pada Microsoft Visual Basic 6.0

Gambar 25. Tampilan LCD pada Rangkaian Pada percobaan yang dilakukan, ketika Sensor Pertama yaitu pada P1.0 diberi data 1 atau berlogika high yang diibaratkan sebagai orang masuk maka A akan sama dengan A+1 yaitu jumlah akan terus bertambah dari 1, 2, 3 dan sampai batas 255.

23

Sensor 1 (Orang Masuk)

Gambar 26. Input Sensor Pada Rangkaian Sedangkan ketika sensor 2 diberi data 1 atau berlogika high yaitu pada P1.1 yang diibaratkan sebagai orang keluar, maka A akan sama dengan A1 yaitu jumlah akan terus berkurang dari 255, 254, 253 dan seterusnya hingga sampai ke nilai 0 (nol).

Sensor 2 (Orang Keluar)

Gambar 27. Input Sensor Pada Rangkaian Data tersebut dikirim ke VB sebagai input dan hasilnya akan ditampilkan pada Microsoft Visual Basic 6.0. Tampilan yang ada di LCD pada rangkaian akan sama dengan tampilan yang ada pada Microsoft Visual Basic 6.0.

24

10. Hasil tampilan pada rangkaian adalah sebagai berikut.

Gambar 28. Tampilan Pada Microsoft Visual Basic 6.0 dengan LCD pada Rangkaian

V.

Analisa

5.1 Rangkaian Pada dasarnya pengendalian rangkaian komunikasi serial bergantung pada program yang dimasukkan ke dalam mikrokontroler. Pada rangkaian yang kami gunakan yaitu menggunakan rangkaian sistem minimum AT89S52. Dimana pada port 1.0 berfungsi sebagai sensor 1 yang mengibaratkan orang masuk dan port 1.1 yang mengibaratkan orang keluar. Pada port 1.2 sampai port 1.7 merupakan portport yang dihubungkan pada rangkaian LCD yang akan menampilkan jumlah yang masuk dan keluar selain pada tampilan di Microsoft Visual Basic 6.0. Sedangkan pada port 2 sebagai indikator yang menunjukkan bilangan biner 8 bit yang dihasilkan dari program penghitung jumlah. Dimana ketika jumlah yang dihasilkan program adalah 3 maka led pada port 2 akan mengindikatorkan 00000011, led pada port 2.0 dan 2.1 menyala. Pada rangkaian sistem minimum ini menggunakan kristal 11.0952 MHz sebagai pembangkit clock dan kapasitor 33 pF agar kristal dapat bekerja. Kristal yang digunakan sangat berpengaruh pada kecepatan eksekusi pada mikrokontroler

25

jika menggunakan kristal 11.0952 MHz maka setiap eksekusi memerlukan waktu 1 mikrodetik. Ketika Sensor mengalami perubahan data dari 0 ke 1 melalui pin P1.0 atau P1.1 maka data tersebut kemudian akan di proses di IC mikrokontroler dan akan menghasilkan output yang dikeluarkan melalui LCD rangkaian yang kemudian akan di kirim sebagai input ke Microsoft Visual Basic 6.0.

5.2 Program Bascom 8051 $regfile = "8052.dat" $crystal = 11059200 $baud = 9600 library yang digunakan XTAL yang digunakan adalah 11,0592MHz komunikasi serial dengan baudrate 9600 Menunjukkan LCD yang digunakan adalah LCD 16*2 Karakter

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = P1.4 , Db5 = P1.5 , Db6 = P1.6 , Db7 = P1.7 , E = P1.3 , Rs = P1.2 Port-port mikrokontroler yang terkoneksi ke LCD, Pin Db4 dihubungkan ke Port 1.4, Pin Db5 dihubungkan ke Port 1.5, Pin Db6 dihungkan ke Port 1.6, Pin Db7 dihubungkan kePort 1.7, Pin E dihubungkan ke Port1.3, Pin Rs dihubungkan ke Port1.1 sebagai input sensor orang masuk sebagai input sensor orang keluar A sebagai output Sensor1 berlogika 0 atau belum aktif Sensor2 berlogika 0 atau belum aktif Jumlah maksimal untuk 8 bit B sama dengan 0 Waktu delay selama 200 ms atau 0,2 s

Sensor1 Alias P1.0 Sensor2 Alias P1.1 A Alias P2

Sensor1 = 0 Sensor2 = 0 A = 255 B=0 Waitms 200

26

Cursor Off Locate 1 , 1

Cursor pada LCD tidak aktif Tampilan LCD pada baris pertama kolom pertama LCD menampilkan tulisan Penghitung Tampilan LCD pada baris selanjutnya Tampilan LCD pada baris kedua kolom sembilan LCD menampilkan tulisan Jumlah Waktu delay selama 3 sekon Layar pada LCD terhapus Tampilan LCD pada baris pertama kolom pertama LCD menampilkan tulisan by:Ninglagita J Tampilan LCD pada baris selanjutnya Tampilan LCD pada baris kedua kolom kedua LCD menampilkan tulisan Kelas 5 EE B Waktu delay selama 3 sekon Layar pada LCD terhapus Tampilan LCD pada baris pertama kolom ketiga LCD menampilkan tulisan (: Welcome :)" Waktu delay selama 3 sekon Mulai melakukan perintah Jika sensor1 = 1, maka Perintah akan dijalankan sampai kondisi sensor1 = 0 Output akan ditambah 1 Waktu delay selama 100 ms Tampilan LCD pada baris pertama kolom kedua

Lcd "Penghitung" Lowerline Locate 2 , 9 Lcd "Jumlah" Wait 3 Cls Locate 1 , 1

Lcd "by:Ninglagita J"

Lowerline Locate 2 , 2 Lcd "Kelas 5 EE B" Wait 3 Cls Locate 1 , 3 Lcd "(: Welcome :)" Wait 3

Do If Sensor1 = 1 Then Do Loop Until Sensor1 = 0

A=A+1 Waitms 100 Locate 1 , 2

27

Lcd "Jumlah Orang:" Locate 2 , 8 Lcd A Wait 1 Cls End If

LCD menampilkan tulisan Jumlah Orang:" Tampilan LCD pada baris kedua kolom delapan LCD menampilkan output A" Waktu delay selama 1 sekon Layar pada LCD terhapus Pengkondisian selesai Jika sensor2 = 1, maka Perintah akan dijalankan sampai kondisi sensor2 = 0 Output akan dikurang 1 Waktu delay selama 200 ms Tampilan LCD pada baris pertama kolom kedua LCD menampilkan tulisan Jumlah Orang:" Tampilan LCD pada baris kedua kolom delapan LCD menampilkan output A" Waktu delay selama 1 sekon Layar pada LCD terhapus Pengkondisian selesai Data B sama dengan A Data B akan di kirim ke VB Waktu delay selama 100 ms Program akan di ulang dari awal

If Sensor2 = 1 Then Do Loop Until Sensor2 = 0 A=A1 Waitms 200 Locate 1 , 2 Lcd "Jumlah Orang:" Locate 2 , 8 Lcd A Wait 1 Cls End If

B=A Print B Waitms 100

Loop

28

5.3 Program Microsoft Visual Basic 6.0 Private Sub cmdConnect_Click() cmdKirim.Enabled = True cmdTes.Enabled = True Dim port As Integer On Error GoTo errcode Select Case Combo1.ListIndex Case -1 port = 1 Case 0 port = 1 Case 1 port = 2 Case 2 port = 3 Case 3 port = 4 Case 4 port = 5 Case 5 port = 6 Case 6 port = 7 Case 7 port = 8 Case 8 port = 9 Case 9 port = 10 Case 10 port = 11 Tools untuk menyediakan berbagai pilihan port yang akan digunakan Pilihan port yang tersedia yaitu dari 1 sampai 16 yang dapat terbaca oleh Microsoft Visual Basic 6.0 Tipe data sebagai integer Perintah untuk menghubungkan port serial

29

Case 11 port = 12 Case 12 port = 13 Case 13 port = 14 Case 14 port = 15 Case 15 port = 16 End Select If MSComm1.PortOpen = False Then MSComm1.CommPort = port MSComm1.RThreshold = 1 MSComm1.InputLen = 40 MSComm1.Settings = Combo2.List(Combo2.ListIndex) & ",N,8,1" MSComm1.PortOpen = True cmdConnect.Enabled = False cmdDisconnect.Enabled = True End If Konfigurasi COM agar dapat terbaca oleh VB ketika dihubungkan

Exit Sub Message box akan keluar jika salah errcode: dalam memilih port

MsgBox "Port Salah !", vbOKOnly, "Peringatan" Combo1.SetFocus End Sub Program diatas akan dijalankan ketika button Connect diklik, yang berarti jika pemilihan port yang digunakan benar maka port serial akan terbuka atau True, dan jika salah maka akan tampil peringatan Port Salah!.

30

InputLen adalah banyaknya data yang diterima port serial pada sekali pengiriman, diberi nilai semaksimal mungkin, misalnya 40 karakter.

Settings adalah pengaturan komunikasi serial, baud rate didapatkan dari pemilihan nilai pada Combo2, N adalah Parity None, 8 adalah Data bits, dan 1 adalah Stop bits. Jika port serial sudah terhubung maka cmdConnect disabled dan cmdDisconnect enabled. Perintah untuk memutuskan sambaungan serial

Private Sub cmdDisconnect_Click() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If cmdConnect.Enabled = True cmdDisconnect.Enabled = False End Sub

Jika port serial terputus, maka cmdConnect enabled, cmdDisconnect disabled, dan Timer1 non aktif.

Private Sub cmdKirim_Click() MSComm1.Output = textdata.Text & Chr$(13) MSComm1_OnComm End Sub

Private Sub cmdTes_Click() MSComm1.Output = "S" & Chr$(13) End Sub Perintah untuk keluar dari program

Private Sub Command1_Click() Unload Me End Sub

31

Private Sub Form_Load() cmdKirim.Enabled = False cmdTes.Enabled = False With Combo1 .AddItem "COM1" .AddItem "COM2" .AddItem "COM3" .AddItem "COM4" .AddItem "COM5" .AddItem "COM6" .AddItem "COM7" .AddItem "COM8" .AddItem "COM9" .AddItem "COM10" .AddItem "COM11" .AddItem "COM12" .AddItem "COM13" .AddItem "COM14" .AddItem "COM15" .AddItem "COM16" End With

With Combo2 .AddItem "2400" .AddItem "4800" .AddItem "9600" .AddItem "19200" .AddItem "38400" .AddItem "56600" End With

32

Timer1.Enabled = False cmdConnect.Enabled = True cmdDisconnect.Enabled = False End Sub Program diatas berarti akan dijalankan ketika form di load, atau ketika program VB Tes Port Serial ini dibuka. Perintah pada saat kabel serial dihubungkan dan VB di jalankan Tipe data yang digunakan yaitu string buffer = MSComm1.Input If buffer <> "" Then With Text1 .SelStart = Len(.Text) .SelText = buffer End With End If End Sub Buffer merupakan variabel yang akan menerima data dari port serial atau MsComm1.Input, jika data tidak kosong atau , maka pada Textbox1 ditambahkan baris setiap menerima data. Timer yang digunakan untuk proses background yang diaktifkan berdasarkan interval waktu tertentu. Merupakan kontrol non visual

Private Sub MSComm1_OnComm() Dim buffer As String Dim temp As String

Private Sub Timer1_Timer() MSComm1_OnComm End Sub

33

Yang berarti akan memanggil sub program MsComm1_OnComm sebagai pengambilan data serial, setiap interval waktu timer, yaitu 1 detik. Pengaturan interval waktu pengambilan data ini bisa dilakukan dengan program VB dengan timer seperti ini, tetapi bisa juga tidak menggunakan timer dan menerima interval waktu yang sudah diatur pada mikrokontroler.

Jika tidak ingin menggunakan Timer dari VB, alias Timer sesuai dengan data pengiriman mikrokontroler, maka sub program Timer tidak perlu dipakai.

34

VI. Kesimpulan Kesimpulan dari percobaan ini adalah sebagai berikut. Pada percobaan penghitung jumlah ini adalah komunikasi serial yang dilakukan dari Mikrokontroler AT89S52 ke PC. Dimana terdapat 2 input sensor yang kemudian akan menghasilkan jumlah yang masuk dan keluar. Komunikasi serial dilakukan dengan menggunakan software Microsoft Visual Basic 6.0 dimana VB sebagai output dan mikrokontroler sebagai input. Microsoft Visual Basic 6.0 yang dapat diperintah oleh mikrokontroler untuk menampilkan hasil dari penghitung jumlah pada program bascom Agar rangkaian dapat berkomunikasi dengan PC digunakan lah kabel port USB to serial untuk dihubungkan pada PC. Program yang dibuat di Bascom 8051 harus sesuai atau

berkesinambungan dengan program yang telah di buat pada Microsoft Visual Basic 6.0 agar rangkaian dapat berjalan sebagaimana mestinya.

35

Daftar Pustaka

http://www.google.com/PENGKABELAN PORT SERIAL, PORT PARALEL, USB, DAN PORT SERIAL RS-232 _ Sukawiryanto's Blog.htm (diakses pada tanggal 25 September 2013) http://www.google.com/ Pengenalan Komunikasi Serial.htm (diakses pada tanggal 25 September 2013) http://ilmubawang.blogspot.com/2011/04/mengenal-mikrokontroller-at89s52.html (diakses pada tanggal 23 September 2013) http://onelka.wordpress.com/mikrokontroler-at89s52/ (diakses pada tanggal 23 September 2013) Rojak, Abdul. 2011. Belajar Pemula Visual Basic. http://njak-iyek.blogspot.com (diakses pada 6 Desember 2013) Nalwan, Paulus Andi. 2003. Panduan Praktis Teknik Antarmuka dan Pemograman Mikrokontroler AT89C51. Jakarta: PT.Elex Media Komputindo Kelompok Gramedia. Andiero.2010. INTERFACING SERIAL PORT (LED) Dengan Visual Basic(VB) 6.0. http://bocah-cakil.blogspot.com (diakses pada 7 Desember 2013)