Upload
ayuaster
View
284
Download
6
Embed Size (px)
DESCRIPTION
laporan komunikasi serial
Citation preview
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. PC (Laptop)
2. Kabel port USB to serial
3. Downloader
4. Papan PCB
5. Solder
6. Timah
7. FeCl3
8. Multimeter
9. Pinset
10. Kabel jumper
11. Rangkaian Sistem Minimum AT89S52
Komponen terdiri dari :
IC AT89S52 1 buah
Kapasitor 30 pF 2 buah
Kapasitor 10 µF 1 buah
LED 8 buah
Kristal 11,0592 MHz 1 buah
Resistor 330 Ω 8 buah
Saklar Push Button 1 buah
Resistor 10 KΩ 1 buah
Socket 40 1 buah
Pin Header Single Secukupnya
2
12. Rangkaian Komunikasi Serial
Komponen terdiri dari :
IC MAX 232 1 buah
Kapasitor 1 µF 4 buah
DB9 Female 1 buah
Socket 16 1 buah
Pin Header Single Secukupnya
13. Rangkaian Catu Daya 5 Volt
Komponen terdiri dari :
Dioda Bridge 1 buah
IC 7805 1 buah
Kapasitor 1000 µF 1 buah
Kapasitor 100 µF 1 buah
Resistor 100 Ω 1 buah
Led 1 buah
Jumper Secukupnya
14. Rangkaian LCD
LCD 1 buah
Trimpot 100 KΩ 1 buah
Kapasitor 104 pF 1 buah
Pin header male Secukupnya
Pin header female Secukupnya
II. Teori Dasar
II.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
3
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).
Gambar 1. Konfigurasi Pin Mikrokontroler AT89S52
Port 1
Merupakan salah satu port yang berfungsi sebagai general purpose I/O
dengan lebar 8bit.
RST
4
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
5
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.
II.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
6
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 Nama Sinyal Direction Keterangan
1 DCD InData Carrier Detect/Recieved Line
Signal Detect
2 RxD In Recieve Data
3 TxD Out Transmit Data
4 DTR Out Data Terminal
5 GND - Ground
6 DSR In Data Set Ready
7
7 RTS Out Request To Send
8 CTS In Clear To Send
9 RI In 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 charge-
pump voltage converter, driver RS232, dan receiver RS232. Berikut gambar IC
MAX232 dan pinout IC MAX232.
8
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 1µF.
9
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
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 A-
1 yaitu jumlah akan terus berkurang dari 255, 254, 253 dan seterusnya
hingga sampai ke nilai 0 (nol).
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.
Sensor 1 (Orang Masuk)
Sensor 2 (Orang Keluar)
24
10. Hasil tampilan pada rangkaian adalah sebagai berikut.
Gambar 28. Tampilan Pada Microsoft Visual Basic 6.0 dengan LCD
pada Rangkaian
V. Analisa
V.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 port-
port 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.
V.2 Program Bascom 8051
$regfile = "8052.dat" “library yang digunakan”
$crystal = 11059200 “XTAL yang digunakan adalah 11,0592MHz”
$baud = 9600 “komunikasi serial dengan baudrate 9600”
Config Lcd = 16 * 2 “Menunjukkan LCD yang digunakan adalah LCD
16*2 Karakter”
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”
Sensor1 Alias P1.0 “sebagai input sensor orang masuk”
Sensor2 Alias P1.1 “sebagai input sensor orang keluar”
A Alias P2 “A sebagai output”
Sensor1 = 0 “Sensor1 berlogika 0 atau belum aktif”
Sensor2 = 0 “Sensor2 berlogika 0 atau belum aktif”
A = 255 “Jumlah maksimal untuk 8 bit”
B = 0 “B sama dengan 0
Waitms 200 “Waktu delay selama 200 ms atau 0,2 s”
26
Cursor Off “Cursor pada LCD tidak aktif”
Locate 1 , 1 “Tampilan LCD pada baris pertama kolom
pertama”
Lcd "Penghitung" “LCD menampilkan tulisan Penghitung”
Lowerline “Tampilan LCD pada baris selanjutnya”
Locate 2 , 9 “Tampilan LCD pada baris kedua kolom sembilan”
Lcd "Jumlah" “LCD menampilkan tulisan Jumlah”
Wait 3 “Waktu delay selama 3 sekon”
Cls “Layar pada LCD terhapus”
Locate 1 , 1 “Tampilan LCD pada baris pertama kolom
pertama”
Lcd "by:Ninglagita J" “LCD menampilkan tulisan by:Ninglagita J”
Lowerline “Tampilan LCD pada baris selanjutnya”
Locate 2 , 2 “Tampilan LCD pada baris kedua kolom kedua”
Lcd "Kelas 5 EE B" “LCD menampilkan tulisan Kelas 5 EE B”
Wait 3 “Waktu delay selama 3 sekon”
Cls “Layar pada LCD terhapus”
Locate 1 , 3 “Tampilan LCD pada baris pertama kolom ketiga”
Lcd "(: Welcome :)" “LCD menampilkan tulisan (: Welcome :)"
Wait 3 “Waktu delay selama 3 sekon”
Do “Mulai melakukan perintah”
If Sensor1 = 1 Then “Jika sensor1 = 1, maka”
Do
Loop Until Sensor1 = 0 “Perintah akan dijalankan sampai kondisi sensor1
= 0”
A = A + 1 “Output akan ditambah 1”
Waitms 100 “Waktu delay selama 100 ms”
Locate 1 , 2 “Tampilan LCD pada baris pertama kolom kedua”
27
Lcd "Jumlah Orang:" “LCD menampilkan tulisan Jumlah Orang:"
Locate 2 , 8 “Tampilan LCD pada baris kedua kolom delapan”
Lcd A “LCD menampilkan output A"
Wait 1 “Waktu delay selama 1 sekon”
Cls “Layar pada LCD terhapus”
End If “Pengkondisian selesai”
If Sensor2 = 1 Then “Jika sensor2 = 1, maka”
Do
Loop Until Sensor2 = 0 “Perintah akan dijalankan sampai kondisi sensor2
= 0”
A = A – 1 “Output akan dikurang 1”
Waitms 200 “Waktu delay selama 200 ms”
Locate 1 , 2 “Tampilan LCD pada baris pertama kolom kedua”
Lcd "Jumlah Orang:" “LCD menampilkan tulisan Jumlah Orang:"
Locate 2 , 8 “Tampilan LCD pada baris kedua kolom delapan”
Lcd A “LCD menampilkan output A"
Wait 1 “Waktu delay selama 1 sekon”
Cls “Layar pada LCD terhapus”
End If “Pengkondisian selesai”
B = A “Data B sama dengan A”
Print B “Data B akan di kirim ke VB”
Waitms 100 “Waktu delay selama 100 ms”
Loop “Program akan di ulang dari awal”
28
V.3 Program Microsoft Visual Basic 6.0
Private Sub cmdConnect_Click() “Perintah untuk menghubungkan
cmdKirim.Enabled = True port serial”
cmdTes.Enabled = True
Dim port As Integer “Tipe data sebagai integer”
On Error GoTo errcode
Select Case Combo1.ListIndex “Tools untuk menyediakan berbagai
Case -1 pilihan port yang akan digunakan”
port = 1 “Pilihan port yang tersedia yaitu
Case 0 dari 1 sampai 16 yang dapat
port = 1 terbaca oleh Microsoft Visual Basic
Case 1 6.0”
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
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 “Konfigurasi COM agar dapat
MSComm1.CommPort = port terbaca oleh VB ketika
MSComm1.RThreshold = 1 dihubungkan”
MSComm1.InputLen = 40
MSComm1.Settings = Combo2.List(Combo2.ListIndex) & ",N,8,1"
MSComm1.PortOpen = True
cmdConnect.Enabled = False
cmdDisconnect.Enabled = True
End If
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.”
Private Sub cmdDisconnect_Click() “Perintah untuk memutuskan
If MSComm1.PortOpen = True Then sambaungan serial”
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
Private Sub Command1_Click() “Perintah untuk keluar dari
Unload Me program”
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.”
Private Sub MSComm1_OnComm() “Perintah pada saat kabel serial
Dim buffer As String dihubungkan dan VB di jalankan”
Dim temp As String “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.”
Private Sub Timer1_Timer() “Timer yang digunakan untuk proses
MSComm1_OnComm background yang diaktifkan
End Sub berdasarkan interval waktu tertentu.
Merupakan kontrol non visual”
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)