Anda di halaman 1dari 66

MODUL PRAKTIKUM

ANTAR MUKA

DATA PEMILIK MODUL


Nama

NIM

Kelas

Asisten Dosen

: Aulia Rahman Thoharsin, S.Kom

LABORATORIUM ELEKTRONIKA DASAR


DAN RANGKAIAN DIGITAL

FAKULTAS ILMU KOMPUTER

UNIVERSITAS SRIWIJAYA
2013

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

PRAKTIKUM I
PORT PARALEL
I.

PENDAHULUAN

Port Paralel adalah sarana port yang sederhana dan murah untuk membuat
projek-projek atau alat-alat yang dikendalikan menggunakan komputer. Sederhana
karena, sebagaimana akan dilihat nanti, hanya melibatkan 3 macam register saja,
murah karena hampir semua komputer, desktop maupun portable, selalu dilengkapi
dengan Port Paralel atau yang dikenal juga dengan Port Printer.
Kesederhanaan dan kemudahan pemrograman menggunakan Port Paralel
membuat Port ini semakin populer di kalangan para hobis. Port Paralel ini sering
digunakan untuk, misalnya, robot yang dikendalikan komputer, pemrogram
mikrokontroler Atmel atau PIC, otomasi rumah, akuisisi data praktis dan lain
sebagainya.
Standar IEEE 1284 yang dipublikasikan pada tahun 1994 mendefinisikan 5
(lima) macam mode transfer data Port Paralel:
1. Mode Kompatbel;
2. Mode Nibel;
3. Mode Byte;
4. EPP, dan
5. ECP
Port Paralel ini terhubungkan dengan dunia luar melalui konektor DB25, yang
terbagi atas tiga kelompok register, yaitu:
1. Register Data / Port Data(DP)
2. Register Control / Port Control (PC)
3. Register Status / Port Status (PS)

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Gambar 1. Konfigurasi port Paralel


Seperti namanya, masing-masing register tersebut digunakan untuk mentransfer
data, melakukan pengontrolan periferal serta memeriksa atau mendapatkan status
periferal eksternal. Masing-masing register terhubungkan ke konektor DB25 tetapi
tidak semua bit yang terhubungkan ke masing-masing pin.
Ada beberapa pin (selain pin-pin pada register data) yang bersifat sungsang
atau inverse, jika pin tersebut sebagai masukan, maka jika terbaca 0 artinya
mendapatkan logika 1 (demikian juga sebaliknya). Jika pin tersebut adalah keluaran,
jika dikirimkan logika 1, maka yang terkirim sesungguhnya adalah logika 0
(demikian juga sebaliknya). Selain itu sifatnya normal.
Table 1. Pin pada Port Paralel
Nomor Pin
(DB25)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 25

Nama Sinyal

Arah

Register

Inverse

Strobe
Data 0
Data 1
Data 2
Data 3
Data 4
Data 5
Data 6
Data 7
Ack
Busy
Paper-Out/Paper-End
Select
Auto-Linefeed
Error/Fault
Initialize
Select-Printer/ Select-in
Ground

In/Out
Out
Out
Out
Out
Out
Out
Out
Out
In
In
In
In
In / Out
In
In / Out
In / Out
Gnd

Control Bit 0
Data bit 0
Data bit 1
Data bit 2
Data bit 3
Data bit 4
Data bit 5
Data bit 6
Data bit 7
Status bit 6
Status bit 7
Status bit 5
Status bit 4
Control bit 1
Status bit 3
Control bit 2
Control bit 3

Ya

Ya

Ya
Ya

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Untuk dapat menggunakan port paralel, harus diketahui dahulu alamat


registernya, Base address LPT1 biasanya adalah 888 (378h) dan LPT2 biasanya 632
(278h). Alamat tersebut adalah alamat yang umumnya digunakan, tergantung dari
jenis komputer. Tepatnya kita bias melihat pada peta memori tempat menyimpan
alamat tersebut, yaitu memori 0000.0408h untuk base address LPT1 dan memori
0000.040A untuk base address LPT2.
Alamat DP adalah base address dari alamat port paralel tersebut, alamat PS
adalah base address + 1, dan alamat PC adalah base address + 2 tabel 2 adalah table
alamat masing-masing port yang umumnya digunakan.
Tabel 2
Nama port
LPT1 DP
LPT1 PS
LPT1 PC

Alamat Register
378h / 888
379h / 889
37Ah / 890

II.

PEMOGRAMAN PORT PARALEL MENGGUNAKAN VISUAL BASIC


Dibutuhkan suatu cara agar VB bisa melakukan akses perangkat keras. Salah
satunya
dengan
lib
io.dll,
yang
bisa
didownload
dari
http://www.geekhideout.com/iodll.shtml secara gratis, yang harus disimpan atau
ditempatkan pada folder C:/windows/system32 pada komputer.
Cara penggunaannya sangat mudah, pertama definisikan terlebih dahulu fungsi
dan prosedur untuk akses masukan maupun keluaran perangkat keras pada bagian
modul khusus VB sebagai berikut:
Public Declare Sub PortOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Byte)
Public Declare Sub PortWordOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Integer)
Public Declare Sub PortDWordOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Long)
Public Declare Function PortIn Lib "io.dll" _
(ByVal Port As Integer) As Byte
Public Declare Function PortWordIn Lib "io.dll" _
(ByVal Port As Integer) As Integer

Laboratorium Mikroprosessor dan Sistem Kendali

Public Declare Function PortDWordIn


Lib Komputer
"io.dll" _
Fakultas Ilmu
(ByVal Port As Integer) As Long
Universitas Sriwijaya
Public Declare Sub SetPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Public Declare Sub ClrPortBit Lib "io.dll" _


(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub NotPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Function GetPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Public Declare Function RightPortShift Lib "io.dll" _
(ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function LeftPortShift Lib "io.dll" _
(ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function IsDriverInstalled Lib "io.dll" () As Boolean
Kedua tinggal penggunaan fungsi dan prosedur tersebut secara biasa, fungsi
PortIn membutuhkan dua parameter yaitu alamat perangkat keras dan variabel hasil
pembacaan data dari perangkat keras dengan tipe data byte. Sedangkan prosedur
PortOut membutuhkan dua parameter juga yaitu alamat perangkat keras dan nilai
atau variabel yang menyimpan nilai yang akan dikirimkan ke perangkat keras yang
bersangkutan.
PortOut
PortWordOut
PortDWordOut
PortIn
PortWordIn

: Mengirim data dalam format byte (8-bit) ke port tertentu.


: Mengirim data dalam format word (16-bit) ke port tertentu.
: Mengirim data dalam format double word (32-bit) ke port
tertentu.
: Membaca data falam format byte (8-bit) dari port tertentu.
: Membaca data falam format word (16-bit) dari port tertentu.

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

PortDWordIn

: Membaca data falam format double word (32-bit) dari port


tertentu.
GetPortBit
: Membaca status dari bit tertentu.
SetPortBit
: Set bit (=1) pada port tertentu.
ClrPortBit
: Reset bit (=0) pada port tertentu.
NotPortBit
: Lakukan inversi (NOT) bit pada port tertentu
RightPortShift : Geser bit dari port tertentu ke kanan, LSBMSB.
LeftPortShift
: Geser bit dari port tertentu ke kiri, MSB LSB.
IsDriverInstalled : Akan memberikan nilai bukan-NOL jika io.dll sudah terinstal dan
berfungsi. Tujuan utama dari fungsi ini adalah untuk memastikan
bahwa penggerak mode kernel pada NT/2000/XP telah diinstal
dan dapat diakses.

PRAKTIKUM II
LED DRIVER

I.

DASAR TEORI
Pemograman LED Driver adalah sebuah program yang digunakan untuk

melakukan pengontrolan nyala LED melalui port parallel. Program ini memerlukan
rangkaian LED driver yang dipasangkan pada port paralel dan program LED driver
untuk menjalankannya.
Rangkaian berikut digunakan untuk interfacing LED dengan port paralel :

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

II.

Gambar 2.1 Rangkaian LED Driver


PEMROGRAMAN LED DRIVER

1.

Menghidupkan dan mematikan LED


Program ini digunakan untuk mematikan dan menghidupkan LED-LED yang

terpasang pada pin-pin data secara bersama-sama. Menggunakan bantuan komponen


CheckBox, Anda bisa mengganti dengan komponen lainnya selama bisa digunakan
untuk proses Toggle (ON-OFF secara bergantian). Status dari LED langsung
ditunjukkan pada komponen tersebut.

Gambar 2.2 Tampilan Program menghidupkan dan mematikan LED


Komponen Visual Basic :
Komponen

Properti

Subroutin

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Form
CheckBox
CommandButton

Name : Form1
Caption : Led Driver1
Name : Check1
Caption : ON/OFF
Name : Command1
Caption : Keluar

Private Sub Form_Load()


Private Sub Check1_Click()
Private Sub
Command1_Click()

Listing Program :
Private Sub Form_Load()
If Not IsDriverInstalled Then
MsgBox "error", vbOKOnly
Unload Me
End If
End Sub

Private Sub Check1_Click()


If Check1.Value = 1 Then
PortOut &H378, &HFF
Check1.Caption = "Lampu ON semua"
Else
PortOut &H378, &H0
Check1.Caption = "Lampu OFF semua"
End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
2.

Menghidupkan dan mematikan LED per bit


Program yang ini lebih spesifik, karena menghidupkan LED di pin-pin data
dilakukan satu persatu.

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Gambar 2.2 Tampilan Program menghidupkan dan mematikan LED per bit
Komponen Visual Basic :
Komponen
Form
Label
Label
Label
Label
Label
Label

Properti
Name : Form1
Caption : Led Driver1
Name : LED0
Caption : LED0
Name : LED1
Caption : LED1
Name : LED2
Caption : LED2
Name : LED3
Caption : LED3
Name : LED4
Caption : LED4
Name : LED5
Caption : LED5

Subroutin
Private Sub Form_Load()
-

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Label
Label
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton

Name : LED6
Caption : LED6
Name : LED7
Caption : LED7
Name : L0ON
Caption : ON
Name : L1ON
Caption : ON
Name : L2ON
Caption : ON
Name : L3ON
Caption : ON
Name : L4ON
Caption : ON
Name : L5ON
Caption : ON
Name : L6ON
Caption : ON
Name : L7ON
Caption : ON
Name : L0OFF
Caption : OFF
Name : L1OFF
Caption : OFF
Name : L2OFF
Caption : OFF
Name : L3OFF
Caption : OFF
Name : L4OFF
Caption : OFF
Name : L5OFF
Caption : OFF
Name : L6OFF
Caption : OFF
Name : L7OFF
Caption : OFF
Name : Keluar
Caption : Keluar

Private Sub L0ON_Click()


Private Sub L1ON_Click()
Private Sub L2ON_Click()
Private Sub L30ON_Click()
Private Sub L4ON_Click()
Private Sub L5ON_Click()
Private Sub L6ON_Click()
Private Sub L7ON_Click()
Private Sub L0OFF_Click()
Private Sub L1OFF_Click()
Private Sub L2OFF_Click()
Private Sub L3OFF_Click()
Private Sub L4OFF_Click()
Private Sub L5OFF_Click()
Private Sub L6OFF_Click()
Private Sub L7OFF_Click()
Private Sub
Command1_Click()

Listing Program :

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Private Sub Form_Load()


If Not IsDriverInstalled Then
MsgBox "error", vbOKOnly
Unload Me
End If
PortOut &H378, &HFF
End Sub
Private Sub keluar_Click()
Unload Me
End Sub
Private Sub L0ON_Click()
ClrPortBit &H378, 0
LED0.BackColor = vbRed
End Sub
Private Sub L0OFF_Click()
SetPortBit &H378, 0
LED0.BackColor = &H8000000F
End Sub
Private Sub L1ON_Click()
ClrPortBit &H378, 1
LED1.BackColor = vbRed
End Sub
Private Sub L1OFF_Click()
SetPortBit &H378, 1
LED1.BackColor = &H8000000F
End Sub
Private Sub L2ON_Click()
ClrPortBit &H378, 2
LED2.BackColor = vbRed
End Sub
Private Sub L2OFF_Click()
SetPortBit &H378, 2
LED2.BackColor = &H8000000F
End Sub
Laboratorium Mikroprosessor dan Sistem Kendali

10

Fakultas Ilmu Komputer


Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Private Sub L3ON_Click()


ClrPortBit &H378, 3
LED3.BackColor = vbRed
End Sub
Private Sub L3OFF_Click()
SetPortBit &H378, 3
LED3.BackColor = &H8000000F
End Sub
Private Sub L4ON_Click()
ClrPortBit &H378, 4
LED4.BackColor = vbRed
End Sub
Private Sub L4OFF_Click()
SetPortBit &H378, 4
LED4.BackColor = &H8000000F
End Sub
Private Sub L5ON_Click()
ClrPortBit &H378, 5
LED5.BackColor = vbRed
End Sub

Private Sub L5OFF_Click()


SetPortBit &H378, 5
LED5.BackColor = &H8000000F
End Sub
Private Sub L6ON_Click()
ClrPortBit &H378, 6
LED6.BackColor = vbRed
End Sub

11

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Private Sub L6OFF_Click()


SetPortBit &H378, 6
LED6.BackColor = &H8000000F
End Sub
Private Sub L7ON_Click()
ClrPortBit &H378, 7
LED7.BackColor = vbRed
End Sub
Private Sub L7OFF_Click()
SetPortBit &H378, 7
LED7.BackColor = &H8000000F
End Sub

3.

Geser Kiri dan Geser Kanan


Program ini merupakan program untuk menyalakan dan mematikan led dengan
cara menggeser kekanan atau kekiri.

Gambar 2.3 Tampilan Program Geser kanan dan Geser kiri


Komponen Visual Basic :

12

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Komponen
Form
CommandButton
CommandButton
CommandButton
CommandButton
CommandButton

Properti
Name : Form1
Caption : Led Driver1
Name : Command1
Caption : SHIFT LEFT ON
Name : Command2
Caption : SHIFT LEFT OFF
Name : Command3
Caption : SHIFT RIGHT ON
Name : Command4
Caption : SHIFT RIGHT OFF
Name : Keluar
Caption : Exit

Subroutin
Private Sub Form_Load()
Private Sub
Command1_Click()
Private Sub
Command2_Click()
Private Sub
Command3_Click()
Private Sub
Command4_Click()
Private Sub keluar_Click()

Listing Program :
Private Sub Form_Load()
If Not IsDriverInstalled Then
MsgBox "error", vbOKOnly
Unload Me
End If
PortOut &H378, &HFF
End Sub

Private Sub Command1_Click()


LeftPortShift &H378, 0
End Sub
Private Sub Command2_Click()
LeftPortShift &H378, 1
End Sub
Private Sub Command3_Click()
RightPortShift &H378, 0
End Sub
Private Sub Command4_Click()
RightPortShift &H378, 1
End Sub
Private Sub keluar_Click()
Unload Me
End Sub

13

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

PRAKTIKUM III
MEMBACA INPUT DARI PORT PARALEL
Ada dua buah port dari port paralel yang bisa dijadikan input yaitu port Status
dan Port Control.
A. PORT STATUS
Port status memiliki 8 Bit data register, akan tetapi yang menjadi input dari
port paralel hanya 5 bit data yaitu mulai bit ke-3 sampai dengan bit ke 7

14

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Register
Pin
Inverse

S7
11
ya

S6
10
tidak

Tabel 3.1
S5
S4
12
13
tidak
tidak

S3
15
tidak

S2
S1
S0
Tidak terhubung ke
Pin di port paralel

PERCOBAAN
1.
Pembacaan Data dari Port Status
a.
Buat Rangkaian seperti gambar 3.1

Gambar 3.1 Input Port Status


b.

Buat program seperti gambar 3.2 :

15

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Gambar 3.2 Tampilan Program


Komponen Visual Basic :
Komponen

Properti
Name : Form1
Caption : Input Status
Name : Label1
Caption : Data Input
Name : Label2
Caption : Name : timer1
Interval : 100

Form
Label
Label
timer

Subroutin
Timer1_timer()

Listing Program :
Private Sub Timer1_Timer()
Dim k As Byte
k = PortIn(&H379)
Label1.Caption = k
End Sub
c.

Lengkapi Tabel 3.2


Tabel 3.2

SW3

SW4

SW5

SW6

1
1

1
1

1
1

1
0

Data
Desimal S7

16

S6

Data Status Register


S5 S4 S3 S2

S1

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

S0

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

1
1
0
0
0
1
0
1
2.

1
0
1
0
1
0
1
0

0
1
1
0
1
0
0
1

1
1
1
0
0
1
1
0

Pembacaan Bit dari Port Status


a.
Buat Rangkaian seperti gambar 3.1
b.
Buat Program seperti gambar 3.3

Gambar 3.3 Tampilan program


Komponen Visual Basic :
Komponen
Form
Label (4 Buah)
Shape (4 buah)
Timer

Properti
Name : Form1
Caption : Pembacaan Bit
Name : Label1, Label2, Label3,Label4
Caption : Bit 3, Bit 4, Bit 5, Bit 6
Name : Shape1, Shape2, Shape3, Shape4,
Backstyle : Opaque
Name : timer1
Interval : 100

17

Subroutin
Timer1_timer()

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Listing program :
Private Sub Timer1_Timer()
Dim a As Boolean
Dim b As Boolean
Dim c As Boolean
Dim d As Boolean
a = GetPortBit(&H379, 3)
If a = True Then
Shape1.BackColor = vbBlack
Label1.Caption = "OFF"
Else
Shape1.BackColor = vbYellow
Label1.Caption = "ON"
End If
b = GetPortBit(&H379, 4)
If b = True Then
Shape2.BackColor = vbBlack
Label2.Caption = "OFF"
Else
Shape2.BackColor = vbYellow
Label2.Caption = "ON"
End If
c = GetPortBit(&H379, 5)
If c = True Then
Shape3.BackColor = vbBlack
Label3.Caption = "OFF"
Else
Shape3.BackColor = vbYellow
Label3.Caption = "ON"
End If
d = GetPortBit(&H379, 6)
If d = True Then
Shape4.BackColor = vbBlack
Label4.Caption = "OFF"
Else
Shape4.BackColor = vbYellow
Laboratorium Mikroprosessor dan Sistem Kendali
Label4.Caption = "ON"
Fakultas Ilmu Komputer
End If
Universitas Sriwijaya
End Sub

18

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

B.

PORT CONTROL
Port Control memiliki 8 Bit data register, akan tetapi yang menjadi input dari
port paralel hanya 4 bit data yaitu mulai bit ke-0 sampai dengan bit ke 3
Register
Pin
Inverse

Tabel 3.3
C7
C6
C5
C4
C3
Tidak terhubung ke Pin di port
17
paralel
ya

C2
16
tidak

C1
14
ya

C0
1
ya

PERCOBAAN
1.
Pembacaan data dari Port Control
a.
Buat Rangkaian seperti gambar 3.4

Gambar 3.4 Input Port Control


b.

Buat program seperti gambar 3.5

19

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Gambar 3.5 Tampilan program


Komponen Visual Basic :
Komponen
Form
Label
Label
Timer

Properti
Name : Form1
Caption : Input Control
Name : Label1
Caption : Data Input
Name : Label2
Caption : Name : timer1
Interval : 100

Subroutin
Timer1_timer()

Listing Program :
Private Sub Timer1_Timer()
Dim k As Byte
k = PortIn(&H37A)
Label1.Caption = k
End Sub
c.

Lengkapi Tabel 3.4


Tabel 3.4

SW1 SW2 SW3 SW4 Data


Data Control Register
Desimal C7 C6 C5 C4 C3 C2 C1 C0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1

20

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

0
0
1
0
1
2.

0
1
0
1
0

0
1
0
0
1

0
0
1
1
0

Pembacaan Bit dari Port Control


a.
Buat Rangkaian seperti gambar 3.4
b.
Buat Program seperti gambar 3.6

Gambar 3.6 Tampilan program


Komponen Visual Basic :
Komponen
Form

Properti

Name : Form1
Caption : Pembacaan Bit
Label (4
Name : Label1, Label2, Label3,Label4
Buah)
Caption : Bit 3, Bit 4, Bit 5, Bit 6
Shape (4
Name : Shape1, Shape2, Shape3, Shape4,
buah)
Caption : Backstyle : Opaque
timer
Name : timer1
100
PrivateInterval
Sub :Timer1_Timer()
Dim a As
Listing program
Dim b :As
Dim c As
Dim d As

Subroutin
Timer1_timer()

Boolean
Boolean
Boolean
Boolean

a = GetPortBit(&H37A, 0)
If a = True Then
Shape1.BackColor = Laboratorium
vbYellow Mikroprosessor dan Sistem Kendali
Fakultas Ilmu Komputer
Label1.Caption = "ON"
Universitas Sriwijaya
Else
Shape1.BackColor = vbBlack
Label1.Caption = "OFF"
End If

21

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

b = GetPortBit(&H37A, 1)
If b = True Then
Shape1.BackColor = vbYellow
Label1.Caption = "ON"
Else
Shape1.BackColor = vbBlack
Label1.Caption = "OFF"
End If
c = GetPortBit(&H37A, 2)
If c = True Then
Shape3.BackColor = vbBlack
Label3.Caption = "OFF"
Else
Shape3.BackColor = vbYellow
Label3.Caption = "ON"
End If
d = GetPortBit(&H37A, 3)
If d = True Then
Shape1.BackColor = vbYellow
Label1.Caption = "ON"
Else
Shape1.BackColor = vbBlack
Label1.Caption = "OFF"
End If
End Sub

22

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Latihan :
Buatlah Rangkaian dan Program dengan ketentuan sebagai berikut :
1.
Rangkaian terdiri dari 4 buah switch dan 4 buah led
2.

Switch 1 dan 2 terhubung ke port status bit 3 dan 4

3.

Switch 3 dan 4 terhubung ke port control bit 0 dan 1

4.

led 1 sampai 4 terhubung ke port data bit 0 sampai 4

5.

buatlah program di VB untuk menjalankan rangkaian tersebut, jika switch 1


ditekan led 1 menyala, jika switch 2 ditekan led 2 dan seterusnya.

PRAKTIKUM IV
PEMROGRAMAN PORT SERIAL
A.

PENDAHULUAN
Dalam Komunikasi Serial dikenal dua cara komunikasi data secara serial, yaitu

a.

Komunikasi data serial secara sinkron


Pada komunikasi data serial sinkron, clock dikirimkan bersama-sama dengan
data serial.

b.

Komunikasi data serial secara asinkron.


Komunikasi data serial asinkron, clock tidak dikirimkan bersama data serial,

tetapi dibangkitkan secara sendiri-sendiri balk pada sisi pengirim (transmitter)


maupun pada sisi penerima (receiver).
Pada IBM PC kompatibel port serialnya termasuk jenis asinkron. Komunikasi
data

serial

ini

dikerjakan

oleh

UART

(Universal

Asynchronous

Receiver/Transmitter). IC UART dibuat khusus untuk mengubah data paralel

23

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

menjadi data serial dan menerima data serial yang kemudian diubah kembali menjadi
data paralel.
Pada UART, kecepatan pengiriman data (baud rate) dan fase clock pada sisi
transmitter dan pada sisi receiver harus sinkron. Untuk itu diperlukan sinkronisasi
antara transmitter dan receiver. Hal ini dilakukan oleh bit 'Start' dan bit 'Stop'. Ketika
saluran transmisi dalam keadaan idle, output UART adalah dalam keadaan logika '1'.
Ketika transmitter ingin mengirimkan data, output UART akan diset lebih dulu ke
logika 0 untuk waktu satu bit. Sinyal ini pada receiver akan dikenali sebagai sinyal
'Start' yang digunakan untuk mensinkronkan fase clocknya sehingga sinkron dengan
fase clock transmitter. selanjutnya, data akan dikirim secara serial dari bit paling
rendah (bit 0) sampai bit tertinggi. Selanjutnya, akan dikirim sinyal 'Stop' sebagai
akhir dari pengiriman data serial. Cara pemberian kode data yang disalurkan tidak
ditetapkan secara pasti.
1

Idle

Start

8 Data Bit

Bit

Stop
Bit

Gambar 4.1 Pengirirnan data serial tanpa bit paritas


Kecepatan transmisi (baud rate) dapat dipilih bebas dalam rentang tertentu.
Baud rate yang umum dipakai adalah 110, 300, 1200, 2400, 4800, 9600, 19200,
38400, 57600, 115200, 230400, 460800, 921600 (bit/detik). Dalam komunikasi data
serial, baud rate dari kedua alai yang berhubungan harus diatur pada kecepatan yang
sama. Selanjutnya, harus ditentukan panjang data (6,7 atau 8 bit), paritas (genap
ganjil atau tanpa paritas), dan jumlah bit 'Stop' (1, 1, atau 2 bit)
Dalam komunikasi serial ada beberap konfigurasi yang harus di tentukan, yaitu :
1.

Kecepatan Transmisi (Baud rate)

24

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Baud rate yang umum dipakai adalah adalah 110, 300, 1200, 2400, 4800, 9600,
19200, 38400, 57600, 115200, 230400, 460800, 921600 (bit/detik). Baudrate
pada kedua sistem harus sama
2.

Pajang Data
Panjang data memiliki 3 pilihan, yaitu 6 bit, 7 bit dan 8 bit

3.

Paritas
Ganjil, genap dan tanpa paritas

4.

Jumlah Stop bit


Jumlah stop bit ada 3 pilihan yaitu 1, 1, dan 2 bit

5.

Flow Control
Xon/Xoff , Hardware atau None

B.

KONFIGURASI PORT SERIAL


Pada komputer IBM PC kornpatibel blasanya kita dapat menemukan dua

konektor port serial DB-9 yang biasa dinamai COM I dan COM2. Gambar 4.2 adalah
gambar konektor port serial DB-9 pada PC.

Gambar 4.2 Konektor serial DB-9 pada PC

25

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Tabel 4.1 Konfigurasi pin dan nama sinyal konektor serial DB-9
Nomor Pin Nama Sinyal

Direction

Keterangan

DCD

In

Data Carrier Detect /


Received Line Signal Detect

RxD

In

Receive Data

TxD

Out

Transmit Data

DTR

Out

DataTerminal Ready

GND

DSR

In

Data Set Ready

RST

Out

Request to Send

CTS

In

Clear to Send

RI

In

Ring Indicator

Ground

Keterangan mengenai fungsi saluran RS232 pada konektor DB-9 adalah


sebagai berikut:
a. Received Line Signal Detect, dengan saluran ini DCE memberitahukan ke DTE
bahwa pada terminal masukan ada data masuk.
b. Receive Data, digunakan DTE menerima data dari DCE.
c. Transmit Data, digunakan DTE mengirimkan data ke DCE.
d. Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan
terminalnya.
e. Signal Ground, saluran ground.
f. Ring Indicator, pada saluran ini DCE memberitahu ke DTE bahwa sebuah
stasiun menghendaki hubungan dengannya.
g. Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh
mulai mengirim data.

26

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

h. Reques To Send, dengan saluran ini DCE diminta mengirim data oleh DTE.
i. DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap.
C. PENGAKSESAN PORT SERIAL PADA VISUAL BASIC
Untuk pengaksesan port serial kita dapat mengaksesnya secara langsung
melalui register UART atau meggunakan kontrol MSComm yang telah disediakan
Visual Basic.
1.

Pengaksesan Secara Langsung Melalui Register UART


Saluran yang digunakan UART untuk komunikasi baik untuk pengiriman

maupun penerimaan data adalah saluran RxD dan saluran TxD serta saluran-saluran
untuk kontrol, yaitu saluran DCD, DSR, RTS, CTS, DTR, dan RI. Saluran-saluran ini
ada yang sebagai output dan ada yang sebagai input. Kecuali saluran RxD, saluransaluran ini dapat diakses secara langsung melalui register UART. Berikut adalah
tabel alamat dan lokasi bit saluran tersebut pada register UART.
Tabel 8.10 Alamat dan lokasi bit pada register UART
Namapin

Nomor pin pada BD-9

COM1

COM2

Bit

Arah

TxD

3FBh

2FBh

Output

DTR

3FCh

2FCh

Output

RTS

3FCh

2FCh

Output

CTS

3FEh

2FEh

Input

DSR

3FEh

2FEh

Input

RI

3FEh

2FEh

Input

DCD

3FEh

2FEh

Input

Untuk dapat mengaksesnya, kita dapat menggunakan fungsi PortOut dan


fungsi PortIn yang terdapat pada IO.DLL dan untuk menset atau mengclearkan bit-

27

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

bit tertentu kita dapat menggunakan prosedur Set_Bit atau prosedur ClearBit yang
telah dibahas pada modul Port Paralel.
Berikut adalah contoh untuk menset bit DTR, yaitu membuat saluran DTR
berlogika low yang dalam port serial IBM PC kompatibel bertegangan +12 V. Alamat
register pengontrol DTR adalah 3FCh untuk COMI pada bit 0. Perintahnya adalah
sebagai berikut.
Set_Bit (&H3FC, 0)
Untuk mengclearkannya, yaitu membuat saluran DTR berlogika high yang
dalam port serial IBM PC kompatibcl bertegangan -12 V, kita menggunakan
perintah:
Clear_Bit (&H3FC, 0)
2.

Pengaksesan dengan menggunakan kontrol MSComm


Kontrol MSComm menyediakan fasilitas komunikasi antara program aplikasi

yang dibuat dengan port serial untuk mengirim atau menerima data melalui port
serial. Setup MSComm hanya menangani satu port serial sehingga jika ingin
menggunakan lebih dari satu port serial, maka harus menggunakan MSComm
sebanyak port serial yang kita pakai.
3.

Properti MSComm
Jumlah properti pada MSComm sangat banyak sehingga kita tidak akan

membahas seluruhnya. Kita hanya akan membahas bcberapa properti yang perlu
kita ketahui sebelum kita dapat menggunakan MSComm. Properti-properti yang
sering dipakai adalah sebagai berikut:
CommPort

: Digunakan untuk menentukan nomor port serial yang akan dipakai.

Setting

: Digunakan untuk untuk menset nilai baud rate, pariti, jumlah bit
data, dan jumlah bit stop.

PortOpen

: Digunakan untuk membuka ataupun menutup port serial yang


dihubungkan dengan MSComm ini. Input digunakan untuk

28

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

mengambil data string yang ada pada buffer penerima.


Output

: Digunakan untuk menulis data string pada buffer kirim.

Berikut adalah contoh penggunaan properti tersebut untuk komunikasi menggunakan


modem:
Private Sub Form Load()
MSComml.CommPort = 1
MSComml.Settings = "9600,N,8,1"
MSComml.InputLen = 0 MSComml
PortOpen = True MSComml.Output = "ATV1Q0" & Chr$(13)
Do
DoEvents
Buffer$ = Buffer$ & MSComml.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
MSComml.PortOpen = False
End Sub
Kode-kode program pada prosedur di alas akan melakukan aksi sebagai berikut:
a. Port serial yang digunakan adalah COM I
b. Setting MSComm adalah baud rate 9600, tanpa paritas, jumlah data 8 bit,
danjumlah bit stop adalah 1 bit.
c. Memerintahkan kontrol MSComm membaca seluruh isi buffer ketika
menggunakan perintah Input (MSComml.InputLen = 0)
d. Membuka port serial
e. Mengirim perintah "ATV I QO" diikuti ASCII 13 (enter) ke modem
f.

Menunggu modem mengirimkan jawaban "OK" ke komputer

g. Menutup port serial

PRAKTIKUM V
PEMOGRAMAN MIKROKONTROLER AT89S52
A.

MIKROKONTROLER AT89S52

29

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Mikrokontroler adalah mikroprosessor yang dirancang khusus untuk aplikasi


kontrol, dan dilengkapi dengan ROM, RAM dan fasilitas I/O pada satu chip.
AT89S52 adalah salah satu anggota dari keluarga MCS-51/52 yang dilengkapi
dengan internal 8 Kbyte Flash PEROM (Programmable and Erasable Read Only
Memory), yang memungkinkan memori program untuk dapat deprogram kembali.
AT89S52 dirancang oleh Atmel sesuai dengan instruksi standar dan susunan pin
80C5.
Mikrokontroler AT89S52 memiliki :
Sebuah CPU ( Central Processing Unit ) 8 Bit.
256 byte RAM ( Random Acces Memory ) internal.
Empat buah port I/O, yang masing masing terdiri dari 8 bit
Osilator internal dan rangkaian pewaktu.
Dua buah timer/counter 16 bit
Lima buah jalur interupsi ( 2 buah interupsi eksternal dan 3 interupsi
internal).
Sebuah port serial dengan full duplex UART (Universal Asynchronous
Receiver Transmitter).
Mampu melaksanakan proses perkalian, pembagian, dan Boolean.
EPROM yang besarnya 8 KByte untuk memori program.
Kecepatan maksimum pelaksanaan instruksi per siklus adalah 0,5 s pada
frekuensi clock 24 MHz. Apabila frekuensi clock mikrokontroler yang
digunakan adalah 12 MHz, maka kecepatan pelaksanaan instruksi adalah 1 s

1.

Konfigurasi Pin

30

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Mikrokontroler AT89S52 mempunyai 40 pin dengan catu daya tunggal 5 Volt.


Ke-40 pin tersebut digambarkan seperti pada gambar 5.1

Gambar 5.1 konfigurasi pin AT89S51 PDIP


Fungsi dari masing-masing pin AT89S52 adalah :
a.

Pin 1 sampai 8 (Port 1) merupakan port pararel 8 bit dua arah (bidirectional)
yang dapat digunakan untuk berbagai keperluan (general purpose).

b.

Pin 9 merupakan pin reset, reset aktif jika mendapat catuan tinggi.

c.

Pin 10 sampai 17 (Port 3) adalah port pararel 8 bit dua arah yang memiliki
fungsi pengganti sebagai berikut :
-

P3.0 (10) : RXD (port serial penerima data)

P3.1 (11) : TXD (port serial pengirim data)

P3.2 (12) : INT0 (input interupsi eksternal 0, aktif low)

P3.3 (13) : INT1 (input interupsi ekstrernal 1, aktif low)

31

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

P3.4 (14) : T0 (eksternal input timer / counter 0)

P3.5 (15) : T1 (eksternal input timer / counter 1)

P3.6 (16) : WR (Write, aktif low) Sinyal kontrol penulisan data dari port 0
ke memori data dan input-output eksternal.

P3.7 (17) : RD (Read, aktif low) Sinyal kontrol pembacaan memori data
input-output eksternal ke port 0.

d.

Pin 18 sebagai XTAL 2, keluaran osilator yang terhubung pada kristal.

e.

Pin 19 sebagai XTAL 1, masukan ke osilator berpenguatan tinggi, terhubung


pada kristal.

f.

Pin 20 sebagai Vss, terhubung ke 0 atau ground pada rangkaian.

g.

Pin 21 sampai 28 (Port 2) adalah port pararel 8 bit dua arah. Port ini mengirim
byte alamat bila pengaksesan dilakukan pada memori eksternal.

h.

Pin 29 sebagai PSEN (Program Store Enable) adalah sinyal yang digunakan
untuk membaca, memindahkan program memori eksternal (ROM / EPROM)
ke mikrokontroler (aktif low).

i.

Pin 30 sebagai ALE (Address Latch Enable) untuk menahan alamat bawah
selama mengakses memori eksternal. Pin ini juga berfungsi sebagai PROG
(aktif low) yang diaktifkan saat memprogram internal flash memori pada
mikrokontroler (on chip).

j.

Pin 31 sebagai EA (External Accesss) untuk memilih memori yang akan


digunakan, memori program internal (EA = Vcc) atau memori program
eksternal (EA = Vss), juga berfungsi sebagai Vpp (programming supply
voltage) pada saat memprogram internal flash memori pada mikrokontroler.

k.

Pin 32 sampai 39 (Port 0) merupakan port pararel 8 bit dua arah. Berfungsi
sebagai alamat bawah yang dimultipleks dengan data untuk mengakses
program dan data memori eksternal.

l.

Pin 40 sebagai Vcc, terhubung ke +5 V sebagai catuan untuk mikrokontroler.

32

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

B. MODUL AT89S25
Untuk praktikum interfacing ini modul sistem miimum yang dipakai telah di
lengkapi dengan modul ISP programmer untuk IC AT89S51 serta telah
dilengkapi RS 232 buffer untuk komunikasi serial dengan komputer. Gambar 5.2
merupakan diagram blok modul AT89S52.

PC

RS
232
Buffer

ISP
Programmer

P0
AT89S52

P1
P2
P3

Gambar 5.2 Diagram Blok modul AT89S52


Regulator

Downloader

IC AT89S52

P0
P1

P2
P3

RS 232
Buffer
JP2
JP1

33

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Gambar 5.3 Modul AT89S52


Fungsi dan Konfigurasi JP1 dan JP2
JP1 dan JP2 digunakan untuk konfigurasi dalam proses memprogram IC
AT89S52 dan komunikasi antara IC S89S52 dengan komputer. Konfigurasi JP1
dan JP2 seperti tercantum dalam tabel 5.1

Tabel 5.1 Konfigurasi JP1 dan JP2


Proses

JP1

JP2

Memprogram IC AT89S52

Melakukan Komunikasi Antara AT89S52


dengan PC

Menyambungkan Pin Reset ke Push Button

Dalam proses memprogram mikrokontroler, diperlukan sebuah software pada


PC, software yang digunakan adalah ISP_PROG v1.4. tampilan program dapat
dilihat pada gambar 5.4

34

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Gambar 5.4 ISP_PROG v1.4

C. PEMOGRAMAN AT89S52
Pemograman Mikrokontroler ini bisa menggunakan berbagai bahasa,
diantaranya adalah bahasa pemograman C, Basic dan Assembler, dalam modul
ini, kita akan memprogram mikrokontroler dengan menggunakan bahasa
pemograman Assembler menggunakan compiler pinnacle.
1. Mengeluarkan data ke Port
1.1.
-

Mengeluarkan 8 bit data ke port


Buatlah rangkaian seperti gambar 5.5

35

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Gambar 5.5 Rangkaian Led


-

Tuliskan sintax program dibawah pada Pinnacle :


Org 100h
AWAL:
MOV P1,#0FH
ACALL DELAY
MOV P1,#0F0H
ACALL DELAY
SJMP AWAL
END

DELAY:
MOV TMOD,#01H

36

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

MOV TH0,#3CH
MOV TL0,#0AFH
SETB TR0
JNB TF0,$
CLR TR0
CLR TFO
RET
-

Simpan dan compile program tersebut

Programkan file *.hex hasil compile kedalam mikrokontroler


AT89S52

1.2

Pemograman bit pada Port


Org 100h
AWAL:
SETB P1.0
SETB P1.1
SETB P1.2
SETB P1.3
CLR P1.4
CLR P1.5
CLR P1.6
CLR P1.7
ACALL DELAY
CLR P1.0
CLR P1.5
CLR P1.2
CLR P1.3

37

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

SETB P1.4
SETB P1.5
SETB P1.6
SETB P1.7
ACALL DELAY
SJMP AWAL
END
DELAY:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0AFH
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
2. Membaca masukan dari port
2.1.

membaca masukan 8 bit data dari port


-

Buatlah rangkaian seperti gambar 5.6

38

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Gambar 5.6 Rangkaian Led dan switch


-

Tuliskan sintax program dibawah pada Pinnacle :


Org 100h
AWAL:
MOV A,P2
MO P1,A
SJMP AWAL
END

Simpan dan compile program tersebut

Programkan file *.hex hasil compile kedalam mikrokontroler


AT89S52

2.2.

Membaca masukan bit dari Port


Org 100h
AWAL:
JB P2.0,NEXT
MOV P1,#0FH
SJMP AWAL

39

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

NEXT:
JB P2.1, NEXT2
MOV P1,#0F0H
NEXT2:
SJMP AWAL
END
Latihan:

hubungkan port 1 mikrokontroler dengan rangkaian LED

hubungkan Port 3 mikrokontroler dengan Port Data DB 25 pada PC

buatlah program di VB untuk menyalakan led-led yang terhubung ke


mikrokontroler

PRAKTIKUM VI
KOMUNIKASI MIKROKONTROLER AT89S52 DENGAN PC
MENGGUNAKAN PORT SERIAL
A.

PENDAHULUAN
Sebelum melakukan komunikasi serial, perlu di perhatikan beberapa hal, yaitu:
a.

Kecepatan Transmisi (Baud rate)


Baud rate yang umum dipakai adalah adalah 110, 300, 1200, 2400, 4800,
9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 (bit/detik).
Baudrate pada kedua sistem harus sama

b.

Pajang Data
Panjang data memiliki 3 pilihan, yaitu 6 bit, 7 bit dan 8 bit

40

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

c.

Paritas
Ganjil, genap dan tanpa paritas

d.

Jumlah Stop bit


Jumlah stop bit ada 3 pilihan yaitu 1, 1, dan 2 bit

e.

Flow Control
Xon/Xoff , Hardware atau None

B.

PEMOGRAMAN AT89S52 UNTUK KOMUNIKASI SERIAL


Dalam melakukan komunikasi serial, Ada beberapa register yang terlibat

untuk melakukan komunikasi serial ini, diantaranya :


1.

Power Control (PCON)


Register Power Control ber-alamat di 87H berguna untuk mengatur

kebutuhan daya mikrokontroler. Dengan adanya register pengatur daya ini


memungkinkan mikrokontroler ke mode "idle" atau "sleep" yang mana akan lebih
menghemat pemakaian daya. Selain itu ada bit-bit pada register PCON ini untuk
mengatur Baud Rate pada serial port. Bit-bit pada PCON adalah sebagai berikut:
MSB
SMOD(7)

(6)

(5)

(4)

GF1(3)

GFO(2)

PD(1)

LSB
IDL(0)

Keterangan :
Bit(7) SMOD = digunakan untuk membuat dobel (2 kali) baud rate pada
Timer1
Bit(4-6) = tidak digunakan, untuk pengembangan selanjutnya
Bit(3) GF1
= Bit Flag serbaguna
Bit(2) GFO
= Bit Flag serbaguna
Bit(1) PD
= Bit power down. Bila berlogika. 1 mode power down aktif
Bit(0) IDL
= Bit idle mode. Aktif jika berlogika 1.
2.

Serial Port Control (SCON)

41

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Isi dari SCON adalah sebagai berikut :


MSB
SM0(7) SM1(6) SM2(5) REN(4) TB8(3) RB8(2) TI(1)

LSB
RI(0)

Keterangan :
Bit(0) RI

= Receive Interupt Flag. Di-set oleh hardware untuk menunjukkan


suatu byte telah komplit diterima.

Bit(1) TI

= Transmit Interupt Flag. Di-set oleh hardware untuk menunjukkan


suatu byte telah komplit dikirimkan.

Bit(2) RB8

= Receive bit 8. Bit ini digunakan sesuai mode pengoperasian. Pada


mode 2 dan 3 dimana 9 bit diterima, bit terakhir akan dicopy
ke RB8. Pada mode 1 dimana 8 bit data dikirimkan, dimana
bit SM2 dibuat rendah, maka stop bit akan dicopy ke RB8.

Bit(3) TB8

= Transmit bit 8. Adalah data ke 9 yang akan dikirimkan pada


mode 2 dan 3. Diset atau dihapus dengan software sesuai kebutuhan.

Bit(4) REN

= Receive Enable. Bit ini harus diset untuk menerima data. Jika
tidak data akan diblok.

Bit (5) SM2

= Serial Mode (bit 2) Digunakan pada mode 2 dan 3 untuk


mendukung komunikasi multiprosesor.

Bit(6) SM1

= Serial Mode bit 1

Bit(7) SMO

= Serial Mode bit 0

Tabel 6.1 menunjukkan hubungan bit SM0 dan SM1 dalam membentuk mode serial
port
Tabel 6.1 Mode Komunikasi Data Serial
SM0
0

SM1
0

Serial Mode
0

Keterangan
8 bit Shift register

42

Baudrate
Osilator/12

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

0
1
1
3.

1
0
1

1
2
3

8 bit UART
9 bit UART
9 bit UART

Set oleh timer 1


Osilator/32
Set oleh timer 1

Serial Data Buffer


Register SBUF ini berada pada alamat memory 99H, fungsi dari register ini

untuk menyimpan data sementara yang akan dikirimkan dan diterima, setelah serial
port di konfigurasi, maka penulisan ke SBUF akan memulai pengiriman secara serial.
4.

Timer dan Counter


Pada mikrokontroler MCS-51 terdapat dua buah Timer/Counter. Adanya

timer/counter menambah fungsionalitas dari mikrokontroler ini. Dengan adanya


timer/counter maka dapat digunakan misalnya untuk menghitung kejadian
(event), untuk menghasilkan baud rate, atau untuk menghitung waktu.
Sebagaimana peralatan lain pada mikrokontroler ini, timer/ counterjuga
diatur oleh special function register yaitu Timer/Counter Control (TCON alamat
88H), dan Timer/Couter Mode Control (TMOD alamat 89H). Selain itu nilai byte
bawah dan byte atas dari Timer/ Counter disimpan dalam register TL dan TH.
Jika difungsikan sebagai Timer, maka akan menggunakan sistem clock
sebagai sumber masukan pulsanya. Jika difungsikan sebagai

Counter

(penghitung) maka akan menggunakan pulsa dari luar (eksternal) sebagai


masukan pulsanya. Anda pasti ingat bahwa pada Port 3 pada fungsi khususnya
terdapat TO (masukan luar untuk Timer / Counter 0) dan T1 (masukan luar untuk
Timer / Counter 1). TO berpadanan dengan Port 3 pin 4 (P3.4) dan T1
berpadanan dengan Port 3 pin 5 (P3.5).
Pemilihan mode pada Timer / Counter dikontrol oleh register TMOD. Bitbit pada register TMOD adalah sebagai berikut:
.

43

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

MSB

LSB

Timer/Counter 1
Timer/Counter 0
GATE(7) C/T(6) M0(5) M1(4) GATE(3) C/T(2) M1(1) M0(0)
Keterangan :
Bit GATE

= jika bit ini diset timer akan berjalan hanya jika INT1 (P3.3)
sedang tinggi.Jika bit ini diclear timer akan berjalan tanpa
mempertimbangkan kondisi INT1.

Bit C/T

= Saat bit ini diset timer akan menghitung kejadian


pada T1 (P3.5) sebagai fungsi counter. Jika bit ini diclear maka
timer akan menghitung tiap siklus mesin (sebagai fungsi
timer).

Bit MO dan M1 = Bit mode Timer / Counter.


Tabel 6.2 Pemilihan Mode Timer
MO
0
1
0
1

Timer Mode
0
1
2
3

Keterangan
13 bit Timer
16 bit Timer
8 bit
split mode

Selain Timer Mode, ada lagi register yang digunakan untuk


mengontrol timer yaitu register TCON. Pada register TCON ini bitbitnya ada
yang digunakan untuk mengatur timer dan adapula bit- bit untuk mengatur
interupsi. Bit-bit pada register ini adalah sebagai berikut.
MSB
TF1(7)

LSB
TR1(6)

TF0(5)

TR0(4)

44

IE

IT

(3)

(2)

IE0(1)

IT0(0)

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Keterangan :
Bit (7) TF1

= Timer 1 Overflow, diset oleh mikrokontroler jika hitungan Timer 1


melimpah (overflow).

Bit (6) TR1

= Timer 1 Run, jika bit ini diset maka timer 1 on, Jika bit ini diclear
maka Timer 1 off (berhenti).

Bit (5) TF0

= Timer 0 Overflow, Bit ini diset oleh mikrokontroler saat timer 0


melimpah.

Bit (4) TR0

= Timer 0 Run, jika bit ini diset maka timer 0 on, jika diclear maka
timer 0 off.

Bit (3) IE1

= Interupt 1 Edge Flag. Diset oleh hardware jika sisi suatu


interrupt luar terdeteksi. Di-clear jika instruksi RETI dijalankan.

Bit (2) IT1

= Interupt 1 type. Berhubungan dengan I interript luar 1. Fungsinya


sama dengan IT0.

Bit (1) IE0

= Interupt 0 Edge Flag. Diset oleh hardware jika sisi

suatu

interrupt luar terdeteksi. Diclear jika instruksi RETI dijalankan.


Bit (0) IT0

= Interupt 0 type. Interrupt luar 0 diterima melalui bit 2 Pada


port 3. Jika bit ini diset, maka INTO (Interrupt luar 0) dikenali
pada sisi turun sinyai. Jika bit ini diclear maka suatu seta akan
dikenali pada saat suatu sinyal berlogika rendah.

Konfigurasi Baudrate untuk pemograman komunikasi serial dapat di buat dari


sistem clock atau dengan menggunakan timer1, jika timer 1 dioperasikan pada mode
2 (8 bit auto reload), maka baud rate diberikan melalui persamaan berikut:

Maka untuk mencari nilai TH1 adalah :

45

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Jika bit SMOD berlogika 0

Jika bit SMOD berlogika 1

Sebagai

contoh

kita

menggunakan

frekuensi

kristal

11,059

MHz dan

mengharapkan baud rate 9800 bps, maka nilai TH1 adalah sebagai berikut.
TH1 = 256 (11059000 / 384) / 9800)
= 256 28799,4791 / 9800)
= 256 (2,93)
=256-3
= 253 = OFDH
Contoh lain dimana kita menggunakan Kristal dengan frekuensi 11,059 MHz dan
mengharapakan baud rate 19200 bps, maka :
TH1 = 256 ((Frek.Kristal / 384) / Baud)
= 256 ((11059000 / 384) / 19200)
= 256 ((28799.4791) / 19200)
= 256 1,5
=254,5
Jadi jika ingin mengharapkan baud rate 19200 bps, TH1 harus diset ke 254,5.
Jika kita set TH1 ke 254 akan didapatkan baud rate 11400 bps, namun jika
diset ke 255 akan didapatkan baud rate 28800 bps. Oleh karena itu kita harus
menggunakan persamaan yang kedua dimana bit SMOD harus diset (logika 1).
TH1 = 256 ((Frek.Kristal / 192) / Baud

46

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

= 256 (11059000 / 192) / 19200)


= 256 57598,95 / 19200)
= 256 (2,999)
=256-3
= 253 = OFDH
Jadi nilai TH1 yang harus diisikan adalah OFDH. Berdasarkan hal diatas jika
diberikan kristal dengan frekuensi 11,059 MHz maka untuk mengkonfigurasi
serial port (UART) memiliki baud rate 19200 bps harus dilakukan hal-hal berikut.
a. Konfigurasikan serial port pada mode 1 atau 3
b. Konfigurasikan Timer 1 pada mode 2 (8 bit auto reload)
c. Set TH1 pada niai 253 = OFDH untuk menghasilkan 19200 bps
d. Set bit SMOD (PCON.7)
5.

Interupt
In te rr up t mer up a ka n fi tu r pe nt in g p ad a s u at u mikrokontroler.

Dengan adanya interrupt, maka mikrokontroler dapat menghentikan proses yang


sedang dijalankan dan melaksanakan rutin interrupt. Contoh interrupt adalah
jika suatu perhitungan pada Timer telah melimpah (overflow) maka akan terjadi
interrupt TF0 dan TF1. Interrupt ini akan memberitahukan pada mikrokontroler
bahwa hitungan timer/ counter telah melimpah. Atau jika serial port menerima
data, maka akan terjadi interrupt serial port sehingga mikrokontroler akan
mengetahui bahwa ada data yang datang dari serial port.
Setelah interrupt diketahui, maka bergantung pada program yang telah
diberikan kepada mikrokontroler hal apakah yang harus dikerjakan. Untuk
lebih memahami tentang interrupt perhatikan gambar 6.1
Program Utama

47

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Interrupt
Gambar 6.1 Interrupt
Ada dua buah special function register yang digunakan untuk mengontrol
interrupt, yaitu IE (Interupt Enable) alamat A8H dan IP (Interupt Priority Control)
alamat B8H. IE digunakan untuk mengontrol interrupt mana saja yang akan
diaktifkan, sedangkan IP akan menentukan interrupt mana yang memiliki
prioritas tinggi dan interrupt mana pula yang memiliki prioritas rendah.
Bit-bit pada register IE adalah sebagai berikut.
MSB
EA(7)

(6)

(5)

ES(4)

E T 1 (3)

E X 1 (2)

ET0(1)

LSB
EX0(0)

Keterangan :
Bit (7) EA

= Bit pengaktif interrupt global

Bit (4) ES

= Bit pengaktif interrupt serial port

Bit (3) ET1

= Bit pengaktif interrupt Timer 1

Bit (2) EX1

= Bit pengaktif interrupt luar 1

Bit (1) ET0

= Bit pengaktif interrupt Timer 0

Bit (0) EX0

= Bit pengktif interrupt luar 0

Pada mikrokontroler MCS-51 ada 5 buah sumber interrupt. Masing masing sumber interrupt memiliki vector alamat masing-masing. Sebagai
contoh Interrupt luar 0 (IEO) memiliki vector interrupt 03H, hal ini maksudnya
adalah jika interrupt tersebut sudah diaktifkan (enable) kemudian interrupt
tersebut terjadi maka aliran program akan menuju alamat vector interrupt yaitu
03H. Berikut daftar interrupt pada mikrokontroler MCS-51 dan alamat vector
interruptnya.

48

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Tabel 4 Tabel Interrupt dan alamat vektornya


Nama Interrupt

Flag

Interrupt Luar 0
lEO
Timer 0
TFO
Interrupt Luar 1
IE1
Timer 1
TH
Serial
TI atau RI

Alamat Vektor
Interrupt
3H
BH
13H
1BH
23H

Prioritas
1 (tertinggi)
2
3
4
5 (terendah)

Jika register IE (Interupt Enable) digunakan untuk mengatur interrupt


mana saja yang aktif, maka register IP (Interupt Priority Control) digunakan
untuk mengatur prioritas dari interrupt. Bit-bit pada register IP didefinisikan
sebagai berikut.
MSB
(7)

(6)

(5)

PS(4)

P T 1 (3)

P X 1 (2)

PT0(1)

LSB
PX0(0)

Keterangan :
Bit (7) -

bit tidak didefinisikan

Bit (6) -

bit tidak didefinisikan

Bit (5) -

bit tidak didefinisikan

Bit (4) PS

Serial Interupt Priority

Bit (3) PT1

Timer 1 Interupt Priority

Bit (2) PX1

External 1 Interupt Priority

Bit (1) PT0

Timer 0 Interupt Priority

Bit (0) PX0

External 0 Interupt Priority

Contoh Pemograman Mikrokontroler AT89S52 untuk menangani Interrupt


Serial:

49

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

ORG 00H
SJMP start

;lompat ke start

;------------------------------------------------------;VEKTOR INTERUPSI SERIAL


org 0023h
;lokasi vektor interupsi port serial
sjmp seri_int ;jika terjadi interupsi lompat ke
seri_int
;------------------------------------------------------start:
mov tmod,#20h ;timer mode 2 ( 8 bit isi
ulang)
mov th1,#0fdh ;baudrate = 9600 it per second
mov scon,#50h ;mode serial 8 bit UART
;( 1 bit start, 8 bit data, no
; parity, 1 bit stop )
setb tr1
;timer 1 dijalankan
setb es
;Enable Interupsi Serial
setb ea
;Interupsi dijalankan
;--------------------Main_Program---------------------Here: sjmp here
End
;------------------------------------------------------;penanganan interupsi serial
seri_int:
jb RI,get_data ;
;
clr TI
;
pengiriman,hapus TI
reti
;
get_data:
mov a,SBUF

50

apakah ada inerupsi serial?


jika ya lompat ke "ya"
jika interupsi
kembali

; baca karakter yang diterima

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

clr RI

; hapus RI agar bisa menerima

mov R1,a
CLR TI
MOV SBUF,a
JNB TI,$
dikirim

; simpan isi acc di register r1

lagi

; cek sampai karakter selesai

reti

C.

KONFIGURASI HYPER TERMINAL PADA PC UNTUK


KOMUNIKASI SERIAL
Untuk melakukan pengujian apakah antara mikro dan PC sudah dapat

berkomunikasi melalui data serial, maka akan dilakukan pengujian melalui Hyiper
terminal. Langkah-langkah komfigurasi hyiper terminal sebagai berikut:
1.

Klik Start All Programs Accessories communication Hyper


Terminal

51

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

2.

Jika tampil Jendela Location Information, isikan kolom-kolom yang


kosong.

3.

Jika tampil jendela Phone and Modem Option, langsung klik tombol OK

4.

52

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

5.

Akan Tampil Jendela Connection Description, Ketikkan Nama Koneksi


dan pilih icon untuk Koneksi, Misal Test1

6.

Pada Jendela Connect To, pilih COM yang akan digunakan untuk
komunikasi serial pada kolom Connect Using.

7. Pada Jendela COM Properties, isikan kolom-kolom sesuai dengan setting


pada mikrokontroler.

53

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

8. Terakhir akan terbuka jendela Hyper Terminal yang akan digunakan untuk
pengujian pengiriman dan penerimaan data serial.

54

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

LATIHAN :
Buatlah Program untuk menyalakan LED pada port 1 di mikrokontroler dengan
ketentuan :
1. Jika ditekan huruf Q semua LED akan menyala
2. Jika ditekan huruf W 4 led low byte akan menyala dan 4 led high byte akan
mati
3. Jika ditekan huruf E 4 led low byte akan mati dan 4 led high nyte akan
menyala.
4. Jika ditekan huruf R nyala led bergeser dari lowbyte menuju highbyte
5. Jika ditekan huruf T nyala led bergeser dari highbyte menuju lowbyte
6. Pada setiap langkah 1 s.d 5 diatas, jika data diterima mikrokontroler dan
program di mikrokontroler dijalankan, akan tampil tulisan OK pada jendela
Hyper Terminal.

55

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

MODUL VII
PEMOGRAMAN DATA SERIAL DENGAN VISUAL BASIC 6

A.

PENDAHULUAN
Sebagai media komunikasi dengan dunia luar, VB 6 telah menyediakan MS

Comm Control 6.0 (tambahkan melalui : Project > Components).

Gambar 7.1 componen MS Comm Control


Component ini berfungsi untuk :

Mengadakan hubungan dengan serial port PC

56

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Berhubungan dengan alat komunikasi lain (contoh : modem)

Melakukan pertukaran data

Memonitor dan merespon event dan error yang terjadi pada hubungan serial

Untuk mengadakan suatu komunikasi serial antara 2 peralatan, kita harus melakukan
langkah langkah berikut :
1. Membuka serial port
2. Mengatur serial device
3. Setting Receive and Transmit Buffer Properties
4. Managing Receive and Transmit Buffer
1.

Membuka Serial Port


Pada komunikasi serial, bit bit data yang masuk dari dunia luar ke dalam

komputer melalui serial port akan ditampung dulu di receive buffer sebelum akan
dieksekusi oleh main controller. Demikian pula sebelum dikirim ke luar, data akan
ditampung dulu di transmit buffer. Skema lengkapnya dapat di lihat pada gambar di
bawah

Sebelum membuka serial port, dilakukan pengaturan protokol komunikasi serial


dengan property MSComm berikut :

57

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

CommPort : menentukan nomor port komunikasi

Setting : menentukan baud rate, parity, data bits, stop bits dalam string

Untuk membuka serial port cukup dengan property :


PortOpen : membuka dan menutup port

Sehingga kode program akan tertulis sebagai berikut :


MSComm1.ComPort = 2
MSComm1.Settings = 9600,N,8,1
MSComm1.PortOpen = True
2.

Mengatur Serial Device


Pada tahap ini kita perlu memastikan bahwa pengaturan protokol komunikasi

serial yang digunakan pada peralatan lain yang kita akses (misal : PLC, modem,
mikrokontroler) sesuai dengan pengaturan pada komputer yang kita pakai.
3.

Setting Receive and Transmit Buffer Properties


Ada beberapa property dari receive buffer dan transmit buffer (property dari

MS Comm) yang perlu kita atur.

InBufferSize : mengatur ukuran receive buffer

OutBufferSize : mengatur ukuran transmit buffer

Rthreshold : menentukan jumlah karakter yang diterima oleh receive buffer


sebelum OnComm event dipicu

Sthreshold : menentukan jumlah karakter yang diterima oleh transmit buffer


sebelum OnComm event dipicu

Jika bernilai 0 berarti tidak pernah dipicu

Jika bernilai 1 berarti dipicu setiap satu karakter

InputLen : menentukan jumlah karakter yang dibaca CPU dari receive buffer

Jika bernilai 0 , maka seluruh isi receive buffer akan dibaca CPU

InputMode : menentukan tipe data input yang akan dibaca CPU

58

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

4.

comInputModeText : untuk data string/teks

comInputModeBinary : untuk data biner

Managing Receive and Transmit Buffer


Untuk menampilkan data dari peralatan lain ke dalam aplikasi VB, digunakan

properti : Input. Sehingga kode akan berbentuk :


TxtDisplay.Text = MSComm1.Input
Untuk mengirim data dari aplikasi VB ke peralatan lain digunakn properti :
Output. Sehingga kode akan berbentuk :
MSComm1.Output = Ini nilai string
Untuk mengawasi jumlah bit yang ada di transmit buffer dan receive buffer,
property berikut dapat ditampilkan.

InBufferCount

OutBufferCount

MSComm hanya memiliki 1 event, yaitu OnComm. Event ini akan terjadi
jika properti dari CommEvent berubah, yaitu saat terjadi :

Event komunikasi

Error

Contoh dari event komunikasi OnComm :

comEvSend : mengirim sejumlah karakter ke transmit buffer

comEvReceive : menerima sejumlah karater di receive buffer

etc

Sedang contoh dari error pada OnComm :

comEventBreak : sinyal break diterima

comEventFrame : ada kesalahan framing

comEventRxOver : receive buffer mengalami overflow

comEventTXFull : transmit buffer penuh

59

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

B.

etc

MENGIRIMKAN KARAKTER KE MIKROKONTROLER


Program ini akan mengirimkan 1 karakter dari VB ke mikrokontroler,

kemudian karakter tersebut akan diterima oleh mikrokontroler dan menyalakan led
yang ada di mikrokontroler.
1. Hubungkan rangkaian Led ke P2.0 mikrokontroler
2. Buat program di pinacle untuk program mikrokantroler:
ORG 00H
SJMP start
org 0023h
sjmp seri_int
start:
mov tmod,#20h
mov th1,#0fdh
mov scon,#50h
setb tr1
setb es
setb ea
kalang:
CJNE A,#41h,next
clr p2.0
next:
CJNE A,#42h,kalang
setb p2.0
sjmp kalang
seri_int:
jb RI,get_data
clr TI
reti

60

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

get_data:
mov a,SBUF
clr RI
reti
end
3. Simpan, compile dan masukkan program tersebut ke mikrokontroller.
4. Buat program di VB dengan tampilan sebagai berikut:

Komponen VB :
Komponen
Form
MS Comm
CommandButton
Label
TextBox

Properti
Name : Form1
Caption : Led Driver1
Name : MS Comm1
Caption :
Name : Command2
Caption : SHIFT LEFT OFF
Name : Label1
Caption : Karakter Dikirim
Name : Text1.text
Caption : Karakter Dikirim

Subroutin
Private Sub Form_Load()
Private Sub
Command2_Click()

Listing Program :
Private Sub Form_Load()
MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1

61

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

MSComm1.InputLen = 1
MSComm1.RThreshold = 1
End Sub
Private Sub Command1_Click()
MSComm1.PortOpen = True
MSComm1.Output = Text1.Text
MSComm1.PortOpen = False
End Sub

TUGAS :
Buatlah Program untuk menyalakan dan mematikan 8 buah Led dengan
menggunakan komunikasi serial Tampilan program seperti gamabar di bawah ini :

62

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

C. MENERIMA KARAKTER DARI MIKROKONTROLER

63

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

Contoh :
Program pada mikrokontroler :
ORG 00H
SJMP start
;lompat ke start
;-------------------------------------------------------;VEKTOR INTERUPSI SERIAL
org 0023h
;lokasi vektor interupsi port serial
sjmp seri_int
;jika terjadi interupsi lompat ke seri_int
;-------------------------------------------------------start:
mov tmod,#20h
;timer mode 2 ( 8 bit isi ulang)
mov th1,#0fdh
;baudrate = 9600 it per second
mov scon,#50h
;mode serial 8 bit UART
;( 1 bit start, 8 bit data, no
; parity, 1 bit stop )
setb tr1
;timer 1 dijalankan
setb es
;Enable Interupsi Serial
setb ea
;Interupsi dijalankan
;---------------------Main_Program---------------------HERE:
jb P1.7, NEXT1
MOV A,#41H
acall SENDDATA
NEXT1:
jb P1.6, NEXT2
MOV A,#43H
acall SENDDATA
NEXT2:
jb P1.5, HERE
MOV A,#42H
acall SENDDATA
sjmp HERE
;-------------------------------------------------------SENDDATA:
CLR TI
MOV SBUF,A
JNB TI,$

64

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Modul Praktikum
Fakultas Ilmu Komputer
Universitas Sriwijaya

RET
Program Visual Basic

Private Sub Form_Load()


MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.InputLen = 1
MSComm1.RThreshold = 1
End Sub
Private Sub MSComm1_OnComm()
MSComm1.PortOpen = True
Dim buffer As Variant
buffer = MSComm1.Input
Text1.Text = MSComm1.Input
MSComm1.PortOpen = False
End Sub

65

Laboratorium Mikroprosessor dan Sistem Kendali


Fakultas Ilmu Komputer
Universitas Sriwijaya

Anda mungkin juga menyukai