Pengontrol Alat Berbasis Port Serial
5.1 Konsep Komunikasi Serial
Pada PC / laptop standar, biasanya
terdapat sebuah port untuk komunikasi serial. Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan
komunikasi parallel seperti
pada port printer yang mampu
mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh penerapan komunikasi serial ialah mouse,
scanner dan sistem akuisisi data yang terhubung ke port serial COM1/COM2.
5.1.1 Port Komunikasi
Serial
Komunikasi serial membutuhkan port sebagai saluran data. Berikut tampilan port serial DB9
yang umum digunakan sebagai port serial

Gambar 5.1 Port DB9 jantan

Gambar 5.2 Port DB9 betina
Untuk
menghubungkan antara 2 buah PC, biasanya digunakan format null mode, dimana pin
TxD dihubungkan dengan RxD pasangan, pin Sinyal ground (5) dihubungkan dengan
SG di pasangan, dan masing masing pin DTR, DSR dan CD dihubung singkat, dan pin
RTS dan CTS dihubung singkat di setiap devais.
5.1.3 Komunikasi Serial
AT89S51/52
Mikrokontroler AT89S51/52 atau mikrokontroler standar lainnya mempunyai On Chip Serial Port yang dapat digunakan untuk komunikasi data serial secara
Pada kenyataannya
register SBUF terdiri dari dua buah register yang memang menempati alamat yang
sama yaitu 99H. Register tersebut adalah Transmit
Buffer Register yang bersifat write
only (hanya dapat ditulis) dan Receive
Buffer Register yang bersifat read
only (hanya dapat dibaca). Pada proses penerimaan data dari Port Serial,
data yang masuk ke dalam Port Serial akan ditampung pada Receive Buffer
Register terlebih dahulu dan diteruskan ke jalur bus internal pada saat
pembacaan register SBUF sedangkan pada proses pengiriman data ke Port Serial,
data yang dituliskan dari bus internal akan ditampung pada Transmit Buffer
Register terlebih dahulu sebelum dikirim ke Port Serial. Pada Mikrokontroler
keluarga MCS-51, vektor interupsi untuk komunikasi serial ialah 23H. Penulis menyarankan Anda membaca buku penulis
sebelumnya tentang pemrograman assembly untuk komunikasi serial berjudul ”
Perancangan Sistem Dan Aplikasi Mikrokontroler”
Berikut contoh kode program komunikasi
serial yang mengirimkan data karakter ’a’ ke port serial. Intinya di dalam
komunikasi serial, gunakan register SBUF dan A sebagai berikut:
Terima.asm
$MOD51
ORG
00H
LJMP START
;interrupt penerimaan
;alamat
dimulai pada 00H
ORG 23h
CLR RI
MOV A,SBUF
;perhatikan kode ini
;untuk terima data
MOV P2,A ;P2 dihubungkan ke output/ LED
trainer board
RETI
;interrupt diaktifkan dan serial berada
pada mode 1
;dengan REN=1
START: MOV SP,#30h
MOV SCON,#50h
;inisialisasi baud rate 9600bps
MOV TMOD,#20H
MOV TL1,#0FDH
MOV TH1,#0FDH
MOV PCON,#00H
SETB TR1
SETB ES
SETB EA
SJMP $
END
Sedangkan jika Anda ingin mengirimkan data
melalui serial port gunakan fungsi MOV
SBUF, A sebagai berikut :
Kirim.asm
$MOD51
ORG 00H
SJMP MAIN
ORG 23H
ORG 30H
MOV TH1,#0F4H
MOV SCON,#50H
SETB TR1
SET ES
SET EA
CLR A
MOV A,#'a'
MOV SBUF,A ;perhatikan kode ini
;untuk mengirim
data
SJMP
END
Miliki naskah lengkap tentang komunikasi serial dan mikrokontroler 89S51 pada buku
Perancangan
Sistem dan Aplikasi Mikrokontroler

Pesan ke Widodo@widodo.com atau
desy@elexmedia.co.id
5.2 Pengontrol
Alat berbasis port Serial
Anda dapat mengontrol sekumpulan alat berbasiskan PC melalui port
serial, dengan bantuan mikrokontroler. Kit
yang dibutuhkan pada aplikasi ini terdiri
dari:
1. Kit Mikrokontroler
Smart51 beserta kabel ISP
Programmer
2. Kit Relay Board dari
Innovative Electronics
3. Kabel serial (sudah diberikan jika memiliki kit Smart51).
Anda tentunya juga dapat membuat kit
mikrokontroler yang sangat dikenal luas ini, rangkaian dan kabel ISP dapat Anda
lihat pada buku penulis sebelumnya yaitu ”Membuat Robot Cerdas”. Sebagai
tampilan interface program, digunakan Visual Studio .Net 2005. Penulis
mengharapkan para pembaca tidak menggunakan software-software lama, karena
membuat kita tidak maju. Penguasaan software terbaru mutlak jika kita ingin
memiliki daya saing. Penulis juga
menyarankan selain menguasai VB .Net, pembaca juga harus menguasai
Java (termasuk J2EE) dan
Visual C# .Net. Silahkan Anda
mengunduh program Java di www.java.sun.com.
Penulis mengharapkan Anda juga
membaca buku penulis sebelumnya berjudul “Pemrograman Visual Basic .Net
2005”. Anda juga dapat mengunduh contoh-contoh program di
situs penulis www.widodo.com.
Pada aplikasi ini, penulis telah
membuat sebuah file library bernama Mr_Widodo.dll
yang menyediakan rutin-rutin komunikasi serial berbasis .Net. Rutin-rutin ini akan Anda butuhkan sepanjang masa.
Langkah-langkahnya :
1. Siapkan Sistem Operasi minimal Windows XP SP2 atau
Windows 2003 Server dengan service pack.
Installah Visual Studio .Net 2005 yang biasanya dalam format DVD, lalu
buat sebuah proyek bernama Serial. Ada baiknya juga Anda menginstall software
database Sql Server 2005, karena buat pengembangan selanjutnya, mungkin saja
Anda ingin menyimpan data alat Anda pada database.
2. Desain form sebagai berikut, dengan menempelkan
beberapa label, button serta combobox.

Gambar
5.4 Program yang sedang berjalan
Pada konsep pemrograman Berorientasi
Objek, sebuah kelas berisi sekumpulan method (fungsi) dan variabel (properti).
Kelas yang sudah ada dapat kita buat menjadi sebuah objek. Nah, objek
tersebutlah yang dapat memanggil method atau mengeset variabel/propertinya. Berikut rumus sapu jagat pada OOP.
’Buat objek serial dari kelas Mr_Widodo.KomunikasiSerial
Dim serial as New Mr_Widodo.KomunikasiSerial
‘Panggil method
Serial.KirimSerialData(“data”,port_serial)
‘Set properti
Serial.nama_variabel=”nilai”
3. Anda harus menambahkan reference Mr_widodo.dll agar dapat menggunakan
file tersebut. Klik kanan pada Solution
Explorer, lalu pilih Add Reference.
Pilih file Mr_widodo.dll yang telah Anda kopi ke suatu direktori di
komputer Anda. Ada baiknya file ini
dimasukkan ke dalam folder bin proyek Anda, sehingga tidak hilang.
4. Buat sebuah objek dari Mr_widodo.dll agar dapat menggunakan method-method pada kelas yang
ada di .dll tersebut, berikut contoh kodenya:
Solusi Serial.sln
Public Class Form1
Dim nama_port As
String
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
‘ Bismillah
‘Buat objek about
untuk menampilkan pembuat .dll
‘Dim about As New
Mr_Widodo.KomunikasiSerial
‘panggil fungsi
tampilkanPort()
tampilkanPort()
Label4.Text =
about.DisplayPembuat
End Sub
Private Sub
Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
' sendserialdata("a")
Dim Serial As New
Mr_Widodo.KomunikasiSerial
Serial.KirimDataSerial("a",
cbPort.Text)
Label1.Text = "a"
End Sub
Sub tampilkanPort()
Dim serial As New
Mr_Widodo.KomunikasiSerial
‘menampilkan port
cbPort.Items.Add(serial.getserialPortNames)
cbPort.SelectedIndex = 0
End Sub
Private Sub
Btnb_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button5.Click
Dim Serial As New
Mr_Widodo.KomunikasiSerial
Serial.KirimDataSerial("b",
cbPort.Text)
Label1.Text =
"b"
End Sub
Private Sub
Btnc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button9.Click
Dim Serial As New
Mr_Widodo.KomunikasiSerial
Serial.KirimDataSerial("c",
cbPort.Text)
Label1.Text = "c"
End Sub
…
Private Sub
btncd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
Dim Serial As New
Mr_Widodo.KomunikasiSerial
Serial.KirimDataSerial("cd",
cbPort.Text)
Label1.Text = "cd"
End Sub
Private Sub
btnCD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button18.Click
Dim Serial As New
Mr_Widodo.KomunikasiSerial
‘kirim data CD
Serial.KirimDataSerial("CD",
cbPort.Text)
Label1.Text = "CD"
End Sub
End Class
Selanjutnya Anda dapat membuat program serial.asm yang akan diisikan
ke dalam mikrokontroler 89S51/52 atau keluarganya sebagai berikut:
Serial.asm
$MOD51
CSEG
ORG 00H
SJMP SETING
ORG 23H ;VEKTOR INTERUPSI SERIAL
SJMP COM
SETING:
MOV
SP,#30H
MOV
SCON,#50H
MOV
TMOD,#20H
MOV
TL1,#0FDH
MOV TH1,#0FDH
MOV
PCON,#00H
SETB TR1
SETB
ES
SETB
EA
STOP:
SJMP STOP
COM:
JB RI,TERIMA
CLR TI
RETI
TERIMA:
PUSH PSW
PUSH ACC
MOV A,SBUF
CLR RI
LED1ON:
CJNE
A,#'A',LED1OFF
;jika tidak sama lompat
CLR
P2.0
SJMP
EXIT
LED1OFF:
CJNE
A,#'a'
,LED2ON
SETB
P2.0
SJMP
EXIT
…
LED4ON:
CJNE
A,#'D'
,LED4OFF
CLR
P2.3
SJMP
EXIT
LED4OFF:
CJNE
A,#'d'
,LED5ON
SETB
P2.3
SJMP
EXIT
LED7ON:
CJNE
A,#'G'
,LED7OFF
CLR
P2.6
SJMP
EXIT
LED7OFF:
CJNE
A,#'g'
,LED8ON
SETB
P2.6
SJMP
EXIT
LED8ON:
CJNE
A,#'H'
,LED8OFF
CLR
P2.7
SJMP
EXIT
LED8OFF:
CJNE
A,#'h'
,MATISEMUA
SETB P2.7
SJMP
EXIT
MATISEMUA:
CJNE A,#4344H,MATISEMUA1 ;KARAKTER CD
SETB P2.0
SJMP EXIT
MATISEMUA1:
CJNE A,#6364H,EXIT ;KARAKTER cd
CLR P2.0
SJMP EXIT
EXIT:
MOV SBUF,A
POP ACC
POP PSW
RETI
SJMP $
END
Kompilasi program diatas
menggunakan ASM51. Sehingga tercipta
file Serial.hex. Anda dapat
mengisikan program Serial.hex ke dalam mikrokontroler Anda menggunakan software ATMEL
ISP Programmer.
Pada proyek ini, penulis menggunakan Kit
mikrokontroler Smart51 dari e-Technology
center.

Gambar
5.7 Blok diagram Pengontrol alat
berbasis port serial
Keluaran P2 pada mikrokontroler tersebut
dihubungkan ke kit Relay board, sehingga relay tersebut dapat
memutuskan/menyambungkan saluran listrik pada perangkat elektronika kita seperti
TV, Garasi, AC dll. Jika Anda membeli paket lengkap kit ini, akan kami sertai
contoh kode untuk login ke database Sql Server 2005, jadi hanya user yang
memasukkan username dan password saja yang dapat mengakses form diatas. Berikut
tampilan hasil pengontrolan alat melalui port serial:

Miliki Kit ini lengkap
dengan kode assembly dan
VB .Net 2005 hanya Rp
600.000
Miliki naskah lengkap buku
ini
12 Proyek Mikrokontroler untuk Pemula

Pesan ke Widodo@widodo.com atau
desy@elexmedia.co.id