Anda di halaman 1dari 61

MODUL PRAKTIKUM

ANTARMUKA DAN PERIPHERAL

JURUSAN TEKNIK KOMPUTER

DISUSUN OLEH:

RICY FIRNANDO, S.KOM.

JURUSAN SISTEM KOMPUTER

FAKULTAS ILMU KOMPUTER

UNIVERSITAS SRIWIJAYA

MODUL I
1

Modul Praktikum Interfacing


PEMOGRAMAN PORT PARALEL

A. Pendahuluan port paralel

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)

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.

Modul Praktikum Interfacing


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.
Nomor Pin Nama Sinyal Arah Register Inverse
(DB25)
1 Strobe In/Out Control Bit 0 Ya
2 Data 0 Out Data bit 0
3 Data 1 Out Data bit 1
4 Data 2 Out Data bit 2
5 Data 3 Out Data bit 3
6 Data 4 Out Data bit 4
7 Data 5 Out Data bit 5
8 Data 6 Out Data bit 6
9 Data 7 Out Data bit 7
10 Ack In Status bit 6 Ya
11 Busy In Status bit 7
12 Paper-Out/Paper-End In Status bit 5
13 Select In Status bit 4
14 Auto-Linefeed In / Out Control bit 1 Ya
15 Error/Fault In Status bit 3
16 Initialize In / Out Control bit 2
17 Select-Printer/ Select-in In / Out Control bit 3 Ya
18 – 25 Ground Gnd

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 Alamat Register


LPT1 DP 378h / 888
LPT1 PS 379h / 889
LPT1 PC 37Ah / 890
B. Pemograman port paralel menggunakan visual basic

Modul Praktikum Interfacing


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

Public Declare Function PortDWordIn Lib "io.dll" _


(ByVal Port As Integer) As Long

Public Declare Sub SetPortBit Lib "io.dll" _


(ByVal Port As Integer, ByVal Bit As Byte)

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" _

Modul Praktikum Interfacing


(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 : Mengirim data dalam format byte (8-bit) ke port tertentu.


PortWordOut : Mengirim data dalam format word (16-bit) ke port tertentu.
PortDWordOut : Mengirim data dalam format double word (32-bit) ke port tertentu.
PortIn : Membaca data falam format byte (8-bit) dari port tertentu.
PortWordIn : Membaca data falam format word (16-bit) dari port tertentu.
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, LSBMSB.
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.

MODUL II

Modul Praktikum Interfacing


LED DRIVER

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.

A. Rangkaian LED Driver


Rangkaian berikut digunakan untuk interfacing LED dengan port Paralel :

Gambar 2.1 Rangkaian LED Driver

B. PEMOGRAMAN 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.

Modul Praktikum Interfacing


Gambar 2.2 Tampilan Program menghidupkan dan mematikan LED

Komponen Visual Basic :


Komponen Properti Subroutin
Form Name : Form1 Private Sub Form_Load()
Caption : Led Driver1
CheckBox Name : Check1 Private Sub Check1_Click()
Caption : ON/OFF
CommandButton Name : Command1 Private Sub Command1_Click()
Caption : Keluar

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

Modul Praktikum Interfacing


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

Gambar 2.2 Tampilan Program menghidupkan dan mematikan LED per bit

Komponen Visual Basic :


Komponen Properti Subroutin
Form Name : Form1 Private Sub Form_Load()
Caption : Led Driver1
Label Name : LED0 -
Caption : LED0
Label Name : LED1 -
Caption : LED1
Label Name : LED2 -
Caption : LED2
Label Name : LED3 -
Caption : LED3
Label Name : LED4 -
Caption : LED4
Label Name : LED5 -
Caption : LED5
Label Name : LED6 -
Caption : LED6
Label Name : LED7 -
8

Modul Praktikum Interfacing


Caption : LED7
CommandButton Name : L0ON Private Sub L0ON_Click()
Caption : ON
CommandButton Name : L1ON Private Sub L1ON_Click()
Caption : ON
CommandButton Name : L2ON Private Sub L2ON_Click()
Caption : ON
CommandButton Name : L3ON Private Sub L30ON_Click()
Caption : ON
CommandButton Name : L4ON Private Sub L4ON_Click()
Caption : ON
CommandButton Name : L5ON Private Sub L5ON_Click()
Caption : ON
CommandButton Name : L6ON Private Sub L6ON_Click()
Caption : ON
CommandButton Name : L7ON Private Sub L7ON_Click()
Caption : ON
CommandButton Name : L0OFF Private Sub L0OFF_Click()
Caption : OFF
CommandButton Name : L1OFF Private Sub L1OFF_Click()
Caption : OFF
CommandButton Name : L2OFF Private Sub L2OFF_Click()
Caption : OFF
CommandButton Name : L3OFF Private Sub L3OFF_Click()
Caption : OFF
CommandButton Name : L4OFF Private Sub L4OFF_Click()
Caption : OFF
CommandButton Name : L5OFF Private Sub L5OFF_Click()
Caption : OFF
CommandButton Name : L6OFF Private Sub L6OFF_Click()
Caption : OFF
CommandButton Name : L7OFF Private Sub L7OFF_Click()
Caption : OFF
CommandButton Name : Keluar Private Sub Command1_Click()
Caption : Keluar

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

Modul PraktikumPortOut
Interfacing &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() 10
SetPortBit &H378, 2
Modul Praktikum Interfacing
LED2.BackColor = &H8000000F
End Sub
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() 11
SetPortBit &H378, 5
Modul Praktikum Interfacing
LED5.BackColor = &H8000000F
End Sub
Private Sub L6ON_Click()
ClrPortBit &H378, 6
LED6.BackColor = vbRed
End Sub

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

12

Modul Praktikum Interfacing


Gambar 2.3 Tampilan Program Geser kanan dan Geser kiri

Komponen Visual basic :

Komponen Properti Subroutin


Form Name : Form1 Private Sub Form_Load()
Caption : Led Driver1
CommandButton Name : Command1 Private Sub
Caption : SHIFT LEFT ON Command1_Click()
CommandButton Name : Command2 Private Sub
Caption : SHIFT LEFT OFF Command2_Click()
CommandButton Name : Command3 Private Sub
Caption : SHIFT RIGHT ON Command3_Click()
CommandButton Name : Command4 Private Sub
Caption : SHIFT RIGHT OFF Command4_Click()
CommandButton Name : Keluar Private Sub keluar_Click()
Caption : Exit

Listing Program :
Private Sub Form_Load()
If Not IsDriverInstalled Then
MsgBox "error", vbOKOnly
Unload Me
End If
Private&H378,
PortOut Sub Command1_Click()
&HFF
LeftPortShift
End Sub &H378, 0
End Sub
Private Sub Command2_Click()
LeftPortShift &H378, 1
End Sub
Private Sub Command3_Click()
RightPortShift &H378, 0
End Sub 13
Private Sub Command4_Click()
Modul Praktikum Interfacing
RightPortShift &H378, 1
End Sub
Private Sub keluar_Click()
Unload Me
End Sub

MODUL III
MEMBACA INPUT DARI PORT PARALEL

Ada dua buah port dari port paralel yang bisa dijadikan input yaitu port Status dan Port
Control.
A. Pembacaan data dari Port Status

14

Modul Praktikum Interfacing


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

Tabel 3.1
Register S7 S6 S5 S4 S3 S2 S1 S0
Pin 11 10 12 13 15 Tidak terhubung ke
Inverse ya tidak tidak tidak tidak Pin di port paralel

Praktikum:
1. Buat Rangkaian seperti gambar 3.1

Gambar 3.1 Input Port Status

2. Buat program seperti gambar 3.2 :

Gambar 3.2 Tampilan Program

Komponen Visual basic :

15

Modul Praktikum Interfacing


Komponen Properti Subroutin
Form Name : Form1 -
Caption : Input Status
Label Name : Label1 -
Caption : Data Input
Label Name : Label2 -
Caption : -
Timer Name : timer1 Timer1_timer()
Interval : 100

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

3. Lengkapi Tabel 3.2


Tabel 3.2

SW3 SW4 SW5 SW6 Data Desimal Data Status Register


S7 S6 S5 S4 S3 S2 S1 S0
1 1 1 1
1 1 1 0
1 1 0 1
1 0 1 1
0 1 1 1
0 0 0 0
0 1 1 0
1 0 0 1
0 1 0 1
1 0 1 0

16

Modul Praktikum Interfacing


B. Pembacaan Bit dari Port Status
1. Buat Rangkaian seperti gambar 3.1
2. Buat Program seperti gambar 3.3

Gambar 3.3 Tampilan program


Komponen Visual basic :
Komponen Properti Subroutin
Form Name : Form1 -
Caption : Pembacaan Bit
Label Name : Label1, Label2, -
(4 Buah) Label3,Label4
Caption : Bit 3, Bit 4, Bit 5, Bit 6
Shape Name : Shape1, Shape2, -
(4 buah) Shape3, Shape4,
Backstyle : Opaque
Timer Name : timer1 Timer1_timer()
Interval : 100

Listing program :

17

Modul Praktikum Interfacing


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

18

Modul Praktikum Interfacing


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
Label4.Caption = "ON"
End If

End Sub

19

Modul Praktikum Interfacing


C. Pembacaan data dari 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

Tabel 3.3
Register C7 C6 C5 C4 C3 C2 C1 C0
Pin Tidak terhubung ke Pin di port 17 16 14 1
Inverse paralel ya tidak ya ya

Praktikum:
4. Buat Rangkaian seperti gambar 3.4

20

Modul Praktikum Interfacing


Gambar 3.4 Input Port Control

5. Buat program seperti gambar 3.5

Gambar 3.5 Tampilan program

Komponen Visual basic :


Komponen Properti Subroutin
Form Name : Form1 -
Caption : Input Control
Label Name : Label1 -
Caption : Data Input
Label Name : Label2 -
Caption : -
Timer Name : timer1 Timer1_timer()
Interval : 100

21

Modul Praktikum Interfacing


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

6. Lengkapi Tabel 3.4


Tabel 3.4

SW1 SW2 SW3 SW Data Desimal Data Control Register


4 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
0 0 0 0
0 1 1 0
1 0 0 1
0 1 0 1
1 0 1 0

D. Pembacaan Bit dari Port Control


3. Buat Rangkaian seperti gambar 3.4
4. Buat Program seperti gambar 3.6

22

Modul Praktikum Interfacing


Gambar 3.6 Tampilan program
Komponen Visual basic :
Komponen Properti Subroutin
Form Name : Form1 -
Caption : Pembacaan Bit
Label Name : Label1, Label2, -
(4 Buah) Label3,Label4
Caption : Bit 3, Bit 4, Bit 5, Bit 6
Shape Name : Shape1, Shape2, -
(4 buah) Shape3, Shape4,
Caption : -
Backstyle : Opaque
Timer Name : timer1 Timer1_timer()
Interval : 100

Listing program :

23

Modul Praktikum Interfacing


Private Sub Timer1_Timer()
Dim a As Boolean
Dim b As Boolean
Dim c As Boolean
Dim d As Boolean

a = GetPortBit(&H37A, 0)
If a = True Then
Shape1.BackColor = vbYellow
Label1.Caption = "ON"
Else
Shape1.BackColor = vbBlack
Label1.Caption = "OFF"
End If

24

Modul Praktikum Interfacing


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

25

Modul Praktikum Interfacing


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.
MODUL IV
PEMOGRAMAN PORT SERIAL

A. Pendahuluan Komunikasi Data Serial


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).

26

Modul Praktikum Interfacing


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 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 1 0 0 0 1 0 1 1 0 0 1 1

Start Stop
Idle 8 Data Bit
Bit 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)
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
27

Modul Praktikum Interfacing


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

Tabel 4.1 Konfigurasi pin dan nama sinyal konektor serial DB-9
Nomor Nama
Direction Keterangan
Pin Sinyal
Data Carrier Detect /
1 DCD In
Received Line Signal Detect
2 RxD In Receive Data
3 TxD Out Transmit Data
4 DTR Out DataTerminal Ready
5 GND Ground
6 DSR In Data Set Ready
7 RST Out Request to Send
8 CTS In Clear to Send
9 RI In Ring Indicator

28

Modul Praktikum Interfacing


Keterangan mengenai fungsi saluran RS232 pada konektor DB-9 adalah sebagai berikut:
 Received Line Signal Detect, dengan saluran ini DCE memberitahukan ke DTE
bahwa pada terminal masukan 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 memberitahu¬kan kesiapan
terminalnya.
 Signal Ground, saluran ground.
 Ring Indicator, pada saluran ini DCE memberitahu ke DTE bahwa sebuah
stasiun menghendaki hubungan dengannya.
 Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh
mulai mengirim data.
 Reques To Send, dengan saluran ini DCE diminta mengirim data oleh DTE.
 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, saluran-
saluran 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


Nomor pin
Namapin COM1 COM2 Bit arah
pada
BD-9
TxD 3 3FBh 2FBh 6 Output
DTR 4 3FCh 2FCh 0 Output
29

Modul Praktikum Interfacing


RTS 7 3FCh 2FCh 1 Output
CTS 8 3FEh 2FEh 4 Input
DSR 6 3FEh 2FEh 5 Input
RI 9 3FEh 2FEh 6 Input
DCD 1 3FEh 2FEh 7 Input

Untuk dapat mengaksesnya, kita dapat menggunakan fungsi Port–Out dan


fungsi Port–In yang terdapat pada IO.DLL dan untuk menset atau mengclearkan bit-
bit tertentu kita dapat menggunakan prosedur Set_Bit atau prosedur Clear–Bit 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.

 Properti MSComm
Jumlah properti pada MSComm sangat banyak sehingga kita tidak akan
membahas seluruhnya. Kita hanya akan mem¬bahas 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

30

Modul Praktikum Interfacing


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
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:
 Port serial yang digunakan adalah COM I
 Setting MSComm adalah baud rate 9600, tanpa paritas, jumlah data 8 bit,
danjumlah bit stop adalah 1 bit.
 Memerintahkan kontrol MSComm membaca seluruh isi buffer ketika
menggunakan perintah Input (MSComml.InputLen = 0)
 Membuka port serial
 Mengirim perintah "ATV I QO" diikuti ASCII 13 (enter) ke modem
 Menunggu modem mengirimkan jawaban "OK" ke komputer
 Menutup port serial

31

Modul Praktikum Interfacing


MODUL V
PEMOGRAMAN MIKROKONTROLER AT89S52

A. MIKROKONTROLER AT89S52
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

32

Modul Praktikum Interfacing


 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
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 :

33

Modul Praktikum Interfacing


 Pin 1 sampai 8 (Port 1) merupakan port pararel 8 bit dua arah (bidirectional)
yang dapat digunakan untuk berbagai keperluan (general purpose).
 Pin 9 merupakan pin reset, reset aktif jika mendapat catuan tinggi.
 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)
- 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.
 Pin 18 sebagai XTAL 2, keluaran osilator yang terhubung pada kristal.
 Pin 19 sebagai XTAL 1, masukan ke osilator berpenguatan tinggi, terhubung
pada kristal.
 Pin 20 sebagai Vss, terhubung ke 0 atau ground pada rangkaian.
 Pin 21 sampai 28 (Port 2) adalah port pararel 8 bit dua arah. Port ini mengirim
byte alamat bila pengaksesan dilakukan pada memori eksternal.
 Pin 29 sebagai PSEN (Program Store Enable) adalah sinyal yang digunakan
untuk membaca, memindahkan program memori eksternal (ROM / EPROM)
ke mikrokontroler (aktif low).
 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).
 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.

34

Modul Praktikum Interfacing


 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.
 Pin 40 sebagai Vcc, terhubung ke +5 V sebagai catuan untuk mikrokontroler.

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.

ISP P0

RS 232 Programmer AT89S52 P1


PC Buffer
P2

P3

Gambar 5.2 Diagram


Regulator Blok modul AT89S52
Downloader IC AT89S52

P0

P1

P2

P3

RS 232 Buffer
35

Modul Praktikum Interfacing JP2

JP1
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

36

Modul Praktikum Interfacing


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

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

37

Modul Praktikum Interfacing


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
MOV TH0,#3CH
MOV TL0,#0AFH
SETB TR0
JNB TF0,$
CLR TR0
CLR TFO

38

Modul Praktikum Interfacing


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
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

39

Modul Praktikum Interfacing


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

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

40

Modul Praktikum Interfacing


SJMP AWAL
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

MODUL 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)

41

Modul Praktikum Interfacing


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
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 LSB
SMOD(7) (6) (5) (4) GF1(3) GFO(2) PD(1) IDL(0)

Keterangan :
Bit(7) SMOD = digunakan untuk membuat dobel (2 kali) baud rate pada
Timer 1
Bit(4-6) - = tidak digunakan, untuk pengembangan selanjutnya
Bit(3) GF1 = Bit Flag serbaguna
Bit(2) GFO = Bit Flag serbaguna

42

Modul Praktikum Interfacing


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)


Isi dari SCON adalah sebagai berikut :
MSB LSB
SM0(7) SM1(6) SM2(5) REN(4) TB8(3) RB8(2) TI(1) 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 SM1 Serial Mode Keterangan Baudrate
0 0 0 8 bit Shift register Osilator/12
0 1 1 8 bit UART Set oleh timer 1
1 0 2 9 bit UART Osilator/32
1 1 3 9 bit UART Set oleh timer 1

3. Serial Data Buffer


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

43

Modul Praktikum Interfacing


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. Bit-bit
pada register TMOD adalah sebagai berikut:
.
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).
44

Modul Praktikum Interfacing


Bit MO dan M1 = bit mode Timer / Counter.

Tabel 6.2 Pemilihan Mode Timer

MO Timer Mode Keterangan


0 0 13 bit Timer
1 1 16 bit Timer
0 2 8 bit
1 3 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 LSB
TF1(7) TR1(6) TF0(5) TR0(4) I E (3) I T (2) IE0(1) IT0(0)

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

45

Modul Praktikum Interfacing


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 :

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
46

Modul Praktikum Interfacing


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
= 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 me ru pa ka n fi tu r p en ti ng p ad a s ua tu 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

Modul Praktikum Interfacing


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 LSB
EA(7) (6) (5) ES(4) E T 1 (3) E X 1 (2) ET0(1) 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. Masingmasing


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.
Tabel 4 Tabel Interrupt dan alamat vektornya

Alamat Vektor
Nama Interrupt Flag Prioritas
Interrupt
Interrupt Luar 0 lEO 3H 1 (tertinggi)
Timer 0 TFO BH 2
Interrupt Luar 1 IE1 13H 3
Timer 1 TH 1BH 4
Serial TI atau RI 23H 5 (terendah)

48

Modul Praktikum Interfacing


Jika register IE (Interupt Enable) digunakan untuk mengatur interrupt mana
saja yang aktif, maka register IP (Interupt Priority Con trol) digunakan untuk
mengatur prioritas dari interrupt. Bit-bit pada reg ister IP didefinisikan sebagai berikut.
MSB LSB
(7) (6) (5) PS(4) P T 1 (3) P X 1 (2) PT0(1) 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:

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


49

Modul Praktikum Interfacing


seri_int:
jb RI,get_data ; apakah ada inerupsi serial?
; jika ya lompat ke "ya"
clr TI ; jika interupsi pengiriman,hapus TI
reti ; kembali

get_data:
mov a,SBUF ; baca karakter yang diterima
clr RI ; hapus RI agar bisa menerima lagi
mov R1,a ; simpan isi acc di register r1
CLR TI
MOV SBUF,a
JNB TI,$ ; cek sampai karakter selesai dikirim
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

2. Jika tampil Jendela Location Information, isikan kolom-kolom yang kosong.

50

Modul Praktikum Interfacing


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

4. Akan Tampil Jendela Connection Description, Ketikkan Nama Koneksi dan pilih
icon untuk Koneksi, Misal “Test1”

51

Modul Praktikum Interfacing


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

6. Pada Jendela COM Properties, isikan kolom-kolom sesuai dengan setting pada
mikrokontroler.

52

Modul Praktikum Interfacing


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

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.
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).

53

Modul Praktikum Interfacing


Gambar 7.1 componen MS Comm Control
Component ini berfungsi untuk :
 Mengadakan hubungan dengan serial port PC
 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

54

Modul Praktikum Interfacing


Sebelum membuka serial port, dilakukan pengaturan protokol komunikasi serial
dengan property MSComm berikut :
 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

55

Modul Praktikum Interfacing


 Sthreshold : menentukan jumlah karakter yang diterima oleh transmit buffer
sebelum OnComm event dipicu
o Jika bernilai 0 berarti tidak pernah dipicu
o Jika bernilai 1 berarti dipicu setiap satu karakter
 InputLen : menentukan jumlah karakter yang dibaca CPU dari receive buffer
o Jika bernilai “ 0 “, maka seluruh isi receive buffer akan dibaca CPU
 InputMode : menentukan tipe data input yang akan dibaca CPU
o comInputModeText : untuk data string/teks
o comInputModeBinary : untuk data biner

4. 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

56

Modul Praktikum Interfacing


 comEventTXFull : transmit buffer penuh
 etc

B. 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
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:

57

Modul Praktikum Interfacing


Komponen VB :
Komponen Properti Subroutin
Form Name : Form1 Private Sub Form_Load()
Caption : Led Driver1
MS Comm Name : MS Comm1 -
Caption :
CommandButton Name : Command2 Private Sub
Caption : SHIFT LEFT OFF Command2_Click()
Label Name : Label1
Caption : Karakter Dikirim
TextBox Name : Text1.text
Caption : Karakter Dikirim

Listing Program :

Private Sub Form_Load()


MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
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 :

58

Modul Praktikum Interfacing


C. MENERIMA KARAKTER DARI MIKROKONTROLER
Contoh :
Program pada mikrokontroler :

ORG 00H
59

Modul Praktikum Interfacing


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,$
RET

Program Visual Basic

60

Modul Praktikum Interfacing


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

61

Modul Praktikum Interfacing

Anda mungkin juga menyukai