Jika pengaturan sudah selesai, maka tampilan Form1 menjadi seperti ini:
Klik pada bagian dalam Form yang berwarna, sehingga muncul tulisan sbb:
Kemudian isikan dengan listing program berikut:
Private Sub Form_Load()
With Combo1.AddItem "COM1"
.AddItem "COM2"
.AddItem "COM3"
.AddItem "COM4"
.AddItem "COM5"
.AddItem "COM6"
.AddItem "COM7"
.AddItem "COM8"
.AddItem "COM9"
End With
With Combo2
.AddItem "2400"
.AddItem "4800"
.AddItem "9600"
.AddItem "19200"
.AddItem "38400"
.AddItem "56600"
End With
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.
Klik pada cmdConnect sehingga muncul tulisan sbb:
dan ketikkan listing program sbb:
Private Sub cmdConnect_Click()
Dim port As Integer
On Error GoTo errcodeSelect 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
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
Exit Sub
errcode:
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!".
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, sama seperti pengaturan pada HyperTerminal yang telah dijelaskan sebelumnya.
Jika port serial sudah terhubung maka cmdConnect disabled dan cmdDisconnect enabled.
atau bisa juga untuk deteksi port secara otomatis sbb:
Private Sub cmdConnect_Click()
Dim port As IntegerOn Error Resume Next
For port = 1 To 20
If MSComm1.PortOpen = False Then
MSComm1.CommPort = port
Combo1.ListIndex = (MSComm1.CommPort) - 1
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
Next
Exit Sub
End Sub
Kalau deteksi secara otomatis, COM Port tidak perlu dipilih, yang harus dipilih baud rate nya saja, lalu nanti tampilan Combo Box untuk COM Port sesuai dengan hasil deteksi.
Klik pada cmdDisconnect dan ketikkan listing program sbb:
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.
Klik pada MsComm1 dan ketikkan listing program sbb:
Private Sub MSComm1_OnComm()
Dim buffer As String
Dim temp As 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.
Klik pada Timer dan ketikkan listing program sbb:
Private Sub Timer1_Timer()
MSComm1_OnComm
End Sub
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.
Sekarang, program antarmuka untuk menampilkan data port serial sudah selesai, jangan lupa di save. Kemudian lakukan ujicoba, ingat saat ujicoba jangan mengaktifkan HyperTerminal, karena port serial tidak bisa dipakai bersamaan.
Jalankan program, pilih COM yang digunakan, misalnya COM1, lalu Baud rate sesuai dengan program Bascom AVR diatas adalah 9600, dan klik Connect.
Maka akan tampil data yang dikirimkan dari mikrokontroler tsb sbb:
Jika menerima data dari mikrokontroler ke Visual Basic sudah dimengerti, sekarang kita coba untuk mengirim data dari visual basic ke mikrokontroler.
Tambahkan dua buah CommandButton beri nama cmdTes (caption = "Konfirmas") dan cmdKirim (caption = "Kirim"), dan satu TextBox dengan nama txtdata, seperti ini:
Tambahkan program berikut pada Private Sub Form_Load():
cmdKirim.Enabled = False
cmdTes.Enabled = False
dan tambahkan program berikut pada Private Sub cmdConnect_Click()
cmdKirim.Enabled = True
cmdTes.Enabled = True
Klik pada cmdTes dan ketikkan:
Private Sub cmdTes_Click()
MSComm1.Output = "X" & Chr$(13)End Sub
yang berarti, VB akan mengirimkan karakter "X" atau x besar melalui port serial.
Klik pada cmdKirim dan ketikkan:
Private Sub cmdKirim_Click()
MSComm1.Output = txtdata.Text & Chr$(13)
MSComm1_OnComm
End Sub
yang berarti VB akan mengirimkan tulisan pada TextBox txtdata melalui port serial.
Program Bascom AVR nya diubah menjadi seperti ini:
'=======================================
'Tes Port Serial'Wahyu Rahmaniar
'Technologination
'=======================================
$regfile = "m32def.dat"
$crystal = 11059200
$baud = 9600
Dim Char As String * 10
Mulai:
Do
Char = Inkey()
If Char = "X" Then
Print "Respon OK"
Gosub Terima_data
Else
Print "Tes Port Serial"
Wait 1
Print "By Technologination"
Wait 1
Print "Wahyu Rahmaniar"
Wait 1
End If
Loop
Terima_data:
Do
Char = Inkey()
Input Char Noecho
Print "Data yang dikirim: " ; Char
If Char = "X" Then
Goto Mulai
End If
Loop
Jika kita meng-klik button Konfirmasi pada VB maka akan dikirimkan karakter "X", dan diterima oleh bascom dengan perintah inkey(), jika bascom menerima "X" maka mikrokontroler akan mengirimkan tulisan "Respon OK" ke VB, jika VB menampilkan "Respon OK" juga maka data pada TextBox txtdata dapat diisi kemudian klik button Kirim. Data tsb diterima oleh mikrokontroler dan dikirimkan kembali ke port serial dengan tulisan "Data yang dikirimkan: " (txtdata).
Untuk kembali ke program awal menerima data dari mikrokontroler, klik kembali button Konfirmasi. Hasilnya sbb:
data yang dikirim adalah "ayuchan", kemudian diterima kembali oleh VB menjadi: "Data yang diterima: ayuchan".
Tidak ada komentar:
Posting Komentar
stroom09@gmail.com