Aku masih ingat
ketika kuliah dulu dan sedang mengambil mata kuliah mikroprosesor. Saat itu aku
mempelajari tentang arsitektur mikroprosesor. Sebagai orang yang baru belajar
tentu senang sekali melihat apa saja yang ada di dalam sebuah mikroprosesor.
Arsitektur sebuah mikroprosesor sederhana di dalamnya memiliki pencacah
program, matriks kendali, register dan akumulator (ALU, arithmetic logic unit).
Beberapa mikroprosesor seperti Z80 dari Zilog, 8080, 8085 dan lain-lain
memberikan pengalaman dan pengertian tentang sebuah sistem mikroprosesor.
Sebuah
mikroprosesor tidak dapat berdiri sendiri, ia membutuhkan peranti lainnya untuk
dapat berfungsi yaitu ROM (read only memory) untuk menyimpan program dan data,
RAM (random access memory) untuk menyimpan data dan hasil proses serta peranti
I/O untuk berinteraksi dengan perangkat lainnya di luar sistem mikroprosesor
itu sendiri. Bayangkan! Contoh sederhana yang pernah aku buat adalah sistem
minimum mikroprosesor 8085 di mana untuk melengkapinya dengan gerbang I/O
menggunakan sebuah PPI (programmable Peripheral Interface) 8255 dan ketika
menginginkan sistem dapat berkomunikasi secara serial menggunakan USART
(universal synchronous asynchronous receiver transmitter) 8251.
Sebagai gambaran
saja, untuk membuat sistem minimum seperti di atas setidaknya kita memerlukan 5
komponen utama seperti uP 8085, E2PROM 2864, SRAM 6264, PP1 8255 dan
USART 8251. Belum 3 komponen pendukungnya seperti 74LS373, 74LS245 dan 74LS139.
Total ada 8 komponen belum termasuk regulator dan komponen lainnya seperti
resistor, kapasitor, kristal dan diode. Tapi seru juga sih....
Sekarang sudah
banyak mikrokontroler yang bisa menggantikan sistem minimum seperti di atas.
Ambil contoh adalah seri AT89 bahkan memiliki gerbang I/O lebih banyak jika
menggunakan AT8951.
Wah jadi membahas
masa lalu ya. Sekarang kita kembali ke topik bahasan membuat perangkat keluaran
relay yang dapat dikendalikan menggunakan PC. Pada tulisan yang lalu mengenai
pewaktu 8 saluran ada sedikit fitur yang diselipkan agar keluaran relaynya
dapat dikendalikan dengan PC. Namun agar lebih segar maka aku buatkan lagi
dengan AT89C2051 seperti gambar berikut:
Rangkaian di atas
diperlukan sebagai langkah awal persiapan perangkat keras meski tidak
memperlihatkan komponen relaynya. Keluaran ULN2803 dapat digunakan untuk
keperluan apa saja tidak harus relay.
Setelah rangkaian
siap, masukkan program berikut ini ke mikrokontroler AT89C2051 agar simulasi
keluaran yang dikendalikan melalui PC dapat dijalankan.
$mod51
BufSerial data 8h
RegStack data 10h
SerialSiap bit p3.7
org 0h
Inisialisasi:
mov sp, #RegStack-1
mov pcon, #0
mov scon, #50h
mov tmod, #20h
mov ie, #90h
mov tl1, #0fdh
mov
th1, #0fdh
setb tr1
ajmp Mulai
org 23h
jnb ri, $
clr ri
mov a, sbuf
cjne a, #'<', ProsesSerial
mov r0, #BufSerial
reti
ProsesSerial:
cjne a, #'>', PeriksaSerial
cjne r0, #BufSerial+8, ResetSerial
clr SerialSiap
reti
ResetSerial:
mov r0, #0
reti
PeriksaSerial:
cjne r0, #0, SimpanSerial
reti
SimpanSerial:
mov @r0, a
inc r0
reti
Mulai:
jb SerialSiap, $
mov r0, #BufSerial
mov r1, #8
ProsesKeluaran:
mov a, @r0
cjne a, #'0', Logika1
clr c
ajmp GeserKeluaran
Logika1:
cjne a, #'1', SalahKarakter
setb c
GeserKeluaran:
rlc a
inc r0
djnz r1, ProsesKeluaran
mov p1, a
SalahKarakter:
mov r0, #0
setb SerialSiap
ajmp Inisialisasi
end
Nah, langkah persiapan perangkat keras dan lunak untuk kemudi keluaran
sudah selesai. Saatnya membuat aplikasi berbasis Visual Basic untuk
dioperasikan pada PC. Setelah aplikasi Visual Basic siap ikuti langkah berikut
untuk pembuatan aplikasinya. Kita akan membuat tampilan aplikasi seperti
berikut ini:
Pertama kita akan menamai pekerjaan ini dengan prjRelay. Selanjutnya
untuk form yang dibuat akan dinamai frmRelay dengan property caption “Simulasi
Remote Relay”. Untuk BorderStyle dipiliah 1 – Fixed Single. Setelah form
selesai selanjutnya kita akan mengisinya dengan beberapa obyek dan tool.
Tambahkan obyek CommandButton untuk perintah ON dalam bentuk
array sebanyak 8 buah untuk masing-masing relay dengan nama cmdON(0) sampai
dengan cmdON(7). Begitu juga dengan untuk perintah OFF sebanyak 8 buah dengan
nama cmdOFF(0) sampai(7). Aplikasi juga akan dilengkapi dengan perintah untuk
meng-ON-kan seluruh relay secara bersamaan dengan nama cmdAllON dan untuk
meng-OFF-kan semua dengan nama cmdAllOFF. Nah untuk tombol perintah selesai.
Untuk memberikan indikator status relay dapat kita gunakan obyek
shape yang dibuat secara array juga yaitu shpRelay(0) sampai shpRelay(7) dengan
property shape adalah 3 – Circle.
Pada perintah semua relay ditambahkan dengan label dengan nama
lblIndikator dan property caption bertuliskan “ALL” dengan property BackStyle 0
– Transparent.
Paling kanan aku secara iseng menambahkan sebuah obyek image
dengan nama imgControl. Pada property Picture Sobat bisa memilih gambar apa
saja bahkan foto juga bisa.
Terakhir adalah menyiapkan komponen komunikasi serial. Pada
keyboard ketiklah Ctrl+T atau pilih dari menubar Project dan pilih Component
untuk menampilkan jendela Components. Pilihlah pada Control dengan menandai
pada Microsoft Comm Control 6.0 lalu Apply dan OK. Pada tabulasi Toolbox
General akan muncul ikon bergambar telepon, dengan mouse klik 2 kali untuk
menambahkan pada form kita. Sekarang kita sudah mempunyai tool MSComm1 yang
mengendalikan komunikasi secara serial biarkan tetap pada property default-nya.
Setelah Option Explicit kita perlu menetapkan variabel yang akan
digunakan yaitu No as Integer dan Relay as String.
Option
Explicit
Dim No%,
Relay$
Berikut adalah pernyataan perintah yang akan dilaksanakan pada
tombol-tombol CommandButton. Untuk subrutin cmdAllON dan cmdAllOFF kita
menggunakan perintah looping For – Next untuk memanipulasi seluruh tombol cmdON
dan cmdOFF serta shpRelay. Sementara untuk masing-masing cmdON dan cmd OFF kita
memanfaatkan indeks saja. Semua perintah nantinya akan dilaksanakan pada Sub
Kirim yang dibuat.
Private Sub
cmdAllOFF_Click()
For No = 0 To 7 Step 1
cmdON(No).Enabled = True:
cmdOFF(No).Enabled = False: shpRelay(No).FillColor = vbBlack
Next No
Kirim
End Sub
Private Sub
cmdAllON_Click()
For No = 0 To 7 Step 1
cmdON(No).Enabled = False:
cmdOFF(No).Enabled = True: shpRelay(No).FillColor = vbGreen
Next No
Kirim
End Sub
Private Sub
cmdOFF_Click(Index As Integer)
cmdON(Index).Enabled = True:
cmdOFF(Index).Enabled = False: shpRelay(Index).FillColor = vbBlack
Kirim
End Sub
Private Sub
cmdON_Click(Index As Integer)
cmdON(Index).Enabled = False:
cmdOFF(Index).Enabled = True: shpRelay(Index).FillColor = vbGreen
Kirim
End Sub
Pada Private Sub Form Load kita perlu mempersiapkan kondisi awal
dengan menon-aktifkan seluruh cmdOFF dan mengaktifkan gerbang serial. Pada
imgKontrol aku menambahkan sebuah property ToolTipText yang akan tampil jika
penunjuk mouse melintasinya.
Private Sub
Form_Load()
On Error Resume Next
For No = 0 To 7 Step 1
cmdOFF(No).Enabled = False
Next No
MSComm1.PortOpen = True
imgKontrol.ToolTipText = "Klik di sini
untuk ON dan OFF"
End Sub
Berikut adalah Sub Kirim yang dibuat yang berisi pernyataan
untuk mengirim data ke perangkat secara serial. Data diawali dengan karakter
“<” kemudian dilanjutkan dengan 8 karakter angka “0” atau “1” dan diakhiri
dengan “>”.
Private Sub
Kirim()
On Error Resume Next
Relay = "<"
For No = 0 To 7 Step 1
If shpRelay(No).FillColor = vbGreen
Then
Relay = Relay & "0"
Else
Relay = Relay & "1"
End If
Next No
MSComm1.Output = Relay &
">"
End Sub
Nah,
imgKontrol juga bisa dimanfaatkan untuk perintah togle ON dan OFF untuk seluruh
relay.
Private Sub
imgKontrol_Click()
If shpRelay(0).FillColor = vbBlack Then
cmdAllON_Click
Else
cmdAllOFF_Click
End If
End Sub
Sepertinya mudah bukan? Aplikasi sederhana yang aku buat ini
selain bisa dijadikan sebuah permainan dalam bentuk pengendalian keluaran relay
juga bisa dimanfaatkan untuk apa saja. Jadi iseng tapi bisa dimanfaatkan.
Udah ya, makasih udah baca postingan aku. Semoga bisa bermanfaat dan jika
mungkin bisa diterapkan oleh sobat semua.
Salam....
mas sigit q pengen bikin skema diatas, outputnya bukan relay tapi dot matrix mohon bantuannya bagaimana skematiknya kalau ada contoh sorce code nya
BalasHapusq mau belajar mikrokontoler dengan hyper terminal windows
trims atas bantuannya salam
Perihal dot matrix bisa dilihat di
BalasHapushttp://electronicdesignportal.blogspot.com/2012/09/membuat-peraga-sederhana-dengan-led.html
Untuk komunikasi dengan PC menggunakan hyperterminal ga masalah. Untuk perintah ke unit tinggal ketik aja langsung. Tinggal tentukan formatnya aja di proggram mikrokontroler supaya dikenali.