Anda di halaman 1dari 79

BAB I

PENDAHULUAN

1.1

Pendahuluan
Man-Machine Interface (MMI) adalah kebutuhan standar di dunia industri

manufaktur. Perangkat teknologi informasi dan komunikasi yang membangun


MMI berfungsi sebagai penghubung antara manusia dan mesin-mesin yang
menjalankan proses industri yang kompleks. MMI adalah bagian utama dari
sistem-sistem teknologi kendali proses (Process Control Technology) di dunia
industri manufaktur.

Pengendalian (Control)

MMI
PROSES INDUSTRI
(INDUSTRIAL PROCESSES)

1.2

Pemantauan
(Monitoring and Data
Acquisition)

Tujuan
o Mengetahui cara kerja Servo Motor DC type ED-4400 serta dapat
merangkainya membentuk sistem pengontrolan kecepatan motor loop
tertutup.

Tugas MicroControl MMI Server

o Mengetahui cara kerja modul mikroprosesor trainer SK-8051 dan dapat


menggunakannya

sebagai

antarmuka

dengan

PC

dalam

sistem

pengontrolan kecepatan motor


o Mengetahui aplikasi bahasa pemrograman Borland Delphi dalam
penggunaannya sebagai software MMI
o Mampu membuat aplikasi PC Client-Server dengan software MMI untuk
pengontrolan kecepatan motor.
o Mampu membuat sistem pengendalian MMI Motor Servo DC
1.3

Batasan masalah
o Pengontrolan yang dilakukan dalam praktikum ini hanya
pengontrolan kecepatan motor bukan pengontrolan posisi motor

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


1

pada

Tugas MicroControl MMI Server

BAB II
TINJAUAN PUSTAKA

2.1

Mikroprosesor Trainer SK-8051


Dalam perencanaan suatu sistem rangkaian elektronik, langkah teknis yang

dilakukan pertama dalah menggambarkan seluruh sistem dalam blok diagram.


Dari blok diagram, dapat diketahui bagaimana prinsip kerja umum dan hubungan
antara sub blok yang satu dengan yang lain dalam bentuk sistem kerja yang
terpadu. Blok diagram merupakan media penerjemahan pertama tentang
bagaimana mempelajari kelakuan sistem.
Rangkaian kontrol elektronik dengan memberikan penekanan pada kata
kontrol mempunyai arti yang lebih aplikatif, bahwa rangkaian itu digunakan
sebagai alat untuk sistem pengontrol. Fenomena sistem control dalam pengertian
keteknikan bermakna statu sistem yang mempunyai piranti penerima data-data
dari sistem yang dikontrol, sedangkan piranti output berfungsi sebagai pemberi
aksi lepada sistem yang dikontrol.
Sebuah mikrokomputer dalah sebuah perangkat yang sangat kompleks dan
serba guna. Dimana sistem yang digunakan dalah sebuah mikroprosesor sebagai
eemen utama yang mempunyai kemampuan sebagai CPU (Central Processing
Unit).
Mikroprosesor bersifat dapat diprogram (Programable) sehingga dapat
menggunakan perangkat keras (hardware) yang sama atau hampir sama dapat

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


2

Tugas MicroControl MMI Server

diperoleh dan dibuat beberapa fungsi yang berbeda hanya dengan mengganti atau
merubah programnya.
SK-8051 merupakan suatu modul yang dapat digunakan untuk mempelajari
sistem mikroprosesor yang dilengkapi dengan beberapa peripheral tambahan.
Bagian-bagian dari modul SK-8051 adalah :
1. LCD dengan 16 character x 2 baris
2. Eksternal ROM-32KByte, eksternal RAM-32KByte
3. Keypad model Built-in dan program monitor serial RS-232C
4. Program dapat dieksekusi pada eksternal RAM
5. PPI 8255
6. 3 Warna dot matriks
7. Speaker interface
8. 8 Channel Analog/Digital Converter
9. 12 Volt DC, 1A bipolar untuk mengerakkan motor
10. 8 bit FND set yang mengindikasikan 16 antilogaritma
11. 16 bit counter/timer 8253
12. Pin-pin chek counter timer dan A/D Converter
13. Fungsi satu langkah internal/eksternal memory dump, modifikasi data
14. AT89C51 12 V. Programming/Blank Chek
15. Terminal percobaal eksternal untuk P1 dan led display
16. 8 bit Port input inverted buffer, tombol tekan 8 buah
17. 8 bit port output : inverted match 8 buah
18. Select Pin (eks/in) untuk mengantikan fungsi fungsi int/eks ROM
19. Select Pin (ROM/RAM)
20. Ground
21. Power Supl : 110~220V AC input DC 12V/ +5V

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


3

Tugas MicroControl MMI Server

Gambar 2.1 Tata letak komponen dalam modul SK-8051


Tabel 2.1 Peta alamat SK-8051
ALAMAT
0000 7FFF
8000 FEFF
FF00 FFFF

DESKRIPSI
KETERANGAN
ROM
PROGRAM MEMORY
RAM
PROGRAM MEMORY + DATA MEMORY
I/O
I/O

Tabel 2.2 Peta alamat I/O SK-8051


ALAMAT DEFENISI
KETERANGAN
FF00
LCD_CMD
LCD
FF01
LCD_DATA
FF10
KEYPAD
INPUT BUFFER 8 BIT UNTUK KEYPAD
FF20
EXT_A
FF21
EXT_B
8255 UNTUK EKSTERNAL
FF22
EXT_C
FF23
EXT_CMD
OUTPUT LATCH 8 BIT UNTUK D/A
FF24
DAC
CONVERTER
FF28
BUTTON
INPUT BUFFER PEMBALIK 8 BIT
FF2C

FND

INPUT LATCH 8 BIT UNTUK FND

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


4

Tugas MicroControl MMI Server

FF30
FF31
FF32
FF33
FF34
FF35
FF36
FF37

DOT_A
DOT_B
DOT_C
DOT_CMD
WR_A
WR_B
WR_C
WR_CMD

FF38

L538

8255 UNTUK DOT MATRIKS

AT89C51 PROGRAMMER 8255

INPUT LATCH PEMBALIK 8 BIT UNTUK LED

Instruksi-instruksi keluarga MCS-51


Instruksi yang dimiliki oleh keluarga mikrokontroler MCS-51 yang digunakan
dalam modul mikroprosesor trainer SK-8051 pada dasarnya digolongkan menjadi

instruksi operasi aritmatika

operasi logika

transfer data

operasi manipulasi boolean

perintah percabangan.

Aturan penulisan bahasa assembly-nya tidak jauh berbeda dengan bahasa assembly
untuk IBM PC. Masing-masing instruksi dapat dijelaskan sebagai berikut :
ADD (Add Immediate Data)
Operand
A
Accumulator
Data - 256 <= data <= + 255
Format
ADD A, #data
Operasi
(A) (A) + data
Keterangan: instruksi ini menambah 8 bit data langsung ke dalam isi akumulator
dan menyimpan hasilnya pada akumulator
ADD (Add Indirect Address)
Operand
A
Akkumulator
Rr
Register 0 <= r <= 1
Format
ADD A, @Rr
Operasi
(A) (A) + ((Rr))
Keterangan: instruksi ini menambah isi data memori yang lokasinya ditunjukkan
oleh nilai register r ke isi akumulator dan menyimpan hasilnya
dalam akumulator
Contoh:
ADD A, Rl
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
5

Tugas MicroControl MMI Server

ADD (Add Register)


Operand
A
Accumulator
Rr
Register 0 7
Format
ADD A, Rr
Operasi
(A) (A) + (Rr)
Keterangan instruksi ini menambah isi register r dengan isi akumulator dan
menyimpan hasilnya dalam akumulator
Contoh ADD A, R6
ADD (Add Memori)
Operand
A
Accumulator
Alamat
data 0<=Alamat data<=256
Format
ADD A, Alamat data
Keterangan instruksi ini menambah isi alamat data ke isi akumulator dan
menyimpan hasilnya dalam akumulator
Contoh
ADD A, 30H
ADDC (Add Carry Plus Immediate Data To Accumulator)
Operand
A
Accumulator
data -256 <= data <= +255
Format
ADDC A, # data
Operasi:
(A) (A) + (C) + data
Keterangan instruksi ini menambah isi carry flag (0 atau 1) ke dalam isi
akumulator. Data langsung 8 bit ditambahkan ke akumulator.
Contoh
ADDC A, #OAFH
ADDC (Add Carry Plus Indirect Address To Accumulator)
Operand
A
Accumulator
data Register 0 <= r <= 1
Format
ADDC A, @Rr
Operasi
(A) (A) + (C) + ((Rr))
Keterangan instruksi ini menambah isi carry flag (0 atau 1) dengan isi
akumulator. Isi data memori pada lokasi yang ditunjukkan oleh
register Rr ditambahkan dan hasilnya disimpan dalam akumulator.
Contoh
ADDC A,@R1
ADDC (Add Carry Plus Register To Accumulator)
Operand
A
Accumulator
data Register 0 <= r <= 7
Format
ADDC A, Rr
Operasi
(A) (A) + (C) + (Rr)
Keterangan instruksi ini menambah isi carry flag dengan isi akumulator. Isi
register r ditambahkan dan hasilnya disimpan dalam akumulator
Contoh
ADDC A,R7

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


6

Tugas MicroControl MMI Server

ADDC (Add Carry Plus Memory To Accumulator)


Operand
A
Accumulator
Alamat data 0 <= Alamat data <= 255
Format
ADDC A, Alamat data
Operasi
(A) (A) + (C) + (Alamat data)
Keterangan instruksi ini menambah isi carry flag dengan isi akumulator. Isi
dari alamat data tertentu ditambahkan pula dan hasilnya disimpan
dalam akumulator
Contoh
ADDC A,30H
AJMP (Absolute Jump Within 2K byte Page)
Operand
Alamat kode
For rmat
AJMP alamat kode
Operasi
(PC) (PC) + 2
(PC) 0 -10 page address
Keterangan instruksi ini meletakkan bagian bawah 11 bit dari pencacah
program dengan 1 bit alamat yang dikodekan.
ANL (Logical AND Immediate Data to Accumulator)
Operand
A
Accumulator
data -256 <= data <= +255
Format
ANL A, #data
Operasi
(A) (A) AND data
Keterangan instruksi ini meng-AND kan data 8 bit secara langsung dengan isi
akumulator
Contoh
ANL A, #00001000B
ANL (Logical AND Indirect Address to Accumulator)
Operand
A
Accumulator
Data Register 0<= r<=1
Format
ANL A, @Rr
Operasi
(A) (A) AND ((Rr))
Keterangan instruksi ini meng-AND kan isi memori yang lokasinya ditunjukkan
oleh isi register r dengan isi akumulator
Contoh
ANL A,@RO
ANL (Logical AND Register to Accumulator)
Operand
A
Accumulator
data 0 <= Rr <= 7
Format
ANL A, Rr
Operasi
(A) (A) AND (Rr)
Keterangan instruksi ini meng-AND kan isi register r dengan isi akumulator
ANL (Logical AND Memory to Accumulator)
Operand
A
Accumulator
Alamat data 0 <= Alamat data <= 255
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
7

Tugas MicroControl MMI Server

Format
Operasi
Keterangan
Contoh

ANL A, Alamat data


(A) (A) AND (Alamat data)
instruksi ini meng-ANL kan isi alamat data dengan isi akumulator
ANL A, 35H

ANL (Logical AND Bit to Carry Flag)


Operand
C
Carry flag
Alamat bit
0 <= alamat bit <= 255
Format
ANL C, Alamat bit
Operasi
(C) (C) AND (Alamat bit)
Keterangan instruksi ini meng-AND kan isi alamat bit tertentu dengan isi carry
flag. Jika keduanya 1 maka hasilnya 1, selain itu hasilnya 0.
Hasilnya ditempatkan pada carry flag.
Contoh
ANL C, 37.3
ANL (Logical AND Complement of Bit to Carry Flag)
Operand
C
Carry flag
Alamat bit 0 <= alamat bit <= 255
Format
ANL C, /alamat bit
Operasi
(C) (C) AND NOT (alamat bit)
Keterangan instruksi ini meng-AND kan hasil komplemen isi alamat bit tertentu
dengan isi carry f1ag. Hasilnya ditempatkan pada carry flag. Isi
alamat bit semula tidak berubah.
Contoh
ANL A,/40.5
ATL (Logical AND Immediate Data to Memory)
Operand
Alamat data 0 <= alamat data <= 255
Data
-256 <= data <= +255
Format
ANL Alamat data, #data
Operasi
(Alamat data) (Alamat data) AND data
Keterangan instruksi ini meng-AND kan data 8 bit secara langsung dengan isi
alamat data tertentu. Hasilnya akan disimpan dalam memori data
pada alamat tersebut.
Contoh
ANL 571-1,#01H
ANL (Logical AND Accumulator to Memory)
Operand
Alamat data 0 <= Alamat data <= 255
A
Accumulator
Format
ANL Alamat data, A
Operasi
(Alamat data) (Alamat data) AND A
Keterangan instruksi ini meng- AND kan isi akumulator dengan isi alamat data
tertentu. Hasilnya disimpan dalam memori data pada alamat yang
bersangkutan.
Contoh
ANL l0H,A

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


8

Tugas MicroControl MMI Server

CALL (Generic Call)


Operand
Alamat kode
Format
Call alamat kode
Keterangan instruksi ini akan ditranslasikan ke ACALL atau LCALL
CJNE (Compare Indirect Address to Immediate Data) Jump if Nol Equal
Operand
Rr
Register 0<= r <= 1
Data
-256 <= data <= +255
Alamat kode
Format
CJNE @,Rr, #data, alamat kode
Operasi
(PC') (PC) + 3
Jika ((Rr)) <> data, maka (PC) (PC) + offset relatif
Jika ((Rr)) < data, maka (C) 1, lainnya (C) 0
Keterangan instruksi ini akan membandingkan data langsung dengan lokasi
memori yang dialamati oleh register r. Apabila tidak sama,
eksekusi akan menuju ke alamat kode. Bila sama, instruksi
selanjutnya yang akan dijalankan. Jika data langsung lebih besar
dari isi alamat data tertentu, carry flag akan diset menjadi 1.
Contoh
CJNE @R1, #01H, 0009H
CJNE (Compare Immediate Data to Accumulator) Jump if Not Equal
Operand
A
Accumulator
data
-256 <=data<= +255
Alamat kode
Format
CJNE A, #data, Alamat kode
Operasi
(PC) (PC) + 3
Jika (A) <> data, maka (PC) (PC) + offset relative
Jika. (A) < data, maka (C) 1
lainnya (C) 0
Keterangan instruksi ini akan membandingkan data langsung dengan isi
akumulator. Apabila tidak sama, eksekusi akan menuju ke alamat
kode. Bila sama, instruksi selanjutnya yang akan dijalankan. Jika
data langsung lebih besar dari isi alamat data tertentu, carry flag akan
di set menjadi 1.
CJNE (Compare Memory to Accumulator) Jump if Not Equal
Operand
A
Akumulator
Alamat data 0 <= Alamat data <= 255
Alamat kode
Format
CJNE A, Alamat data, alamat kode
Operasi
(PC) (PC) + 3
Jika (A) <> Alamat data, make (PC) (PC) + offset relatif
Jika (A) < Aiamat data, make (C) 1,
lainnya (C) 0
Keterangan instruksi ini akan membandingkan isi lokasi memori tertentu
dengan isi akumulator. Apabila tidak lama, eksekusi akan
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
9

Tugas MicroControl MMI Server

menuju ke alamat kode. Bila lama, instruksi selanjutnya yang


akan dijalankan. Jika data langsung lebih besar dari isi akumulator,
carry flag akan di - set menjadi 1.
CJNE (Compare Immediate Data to Register) Jump if Not Equal
Operand
Rr
Register 0<= r <= 7
Data
-255 <= data <= +255
Alamat kode
Format
CJNE Rr, #data, Alamat kode
Operasi
(PC) (PC) + 3
Jika (Rr) <> data, make (PC) (PC) + offset relatif
Jika (Rr) < data, make (C) 1
lainnya (C) 0
Keterangan instruksi ini akan mernbandingkan data langsung dengan isi register
r. Apabila tidak sama, eksekusi akan menuju ke alamat kode. Bila
sama, instruksi selanjutnya yang akan dijalankan. jika data langsung
lebih besar dari isi register, carry flag akan diset meiljadi 1.
CLR (Clear Accumulator)
Operand
A
Akumulator
Format
CLR A
Operasi
(A) 0
Keterangann instruksi ini akan me-reset akuniulator menjadi 00H
Contoh
CLR A
CLR (C1ear Carry Flag)
Operand
C
Format
CLR C
Operasi
(A) 0
Keterangan
instruksi ini akan me-reset carry flag menjadi 00H
Contoh
CLR C
CLR (Clear Bit)
Operand
Alamat bit 0 <= Alamat bit <= 255
Format
CLR Alamat bit
Operasi
(Alamat bit) 0
Keterangan instruksi ini akan mereset alamat bit menjadi 00H
Contoh
CLR 40.5
CPL (Complement Accumulator)
Operand
A
Akumulator
Format
CPL A
Operasi
(A) NOT (A)
Keterangan instruksi ini akan mengkomplemen isi akumulator
Contoh
CPL A

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


10

Tugas MicroControl MMI Server

CPL (Complement Carry Flag)


Operand
CPL C
Forma
CPL C
Operasi
(C) NOT
Keterangan instruksi ini akan mengkomplemen isi carry flag
Contoh
CPL C
CPL (Complmen Bit)
Operand
Alamat bit 0 <= Alamat bit <_ 255
Format
CPL, Alamat bit
Operasi
(Alamat bit) NOT (Alamat bit)
Keterangan instruksi ini akan mengkomplemen isi suatu alamat bit.
Contoh
CPL 33.7
DA (Decimal Adjust Accumulator)
Operand
A
Akumulator
Format
DA A
Keterangan instruksi ini mengatur isi akumulator ke padanan BCD-nya, setelah
penambahan dua angka BCD. Jika auxiliary carry flag 1 atau isi
nibble bawah (bit 0-3) dari akumulator lebih tinggi dari 9, isi
akumulator akan ditambah 6. Jika carry flag diset sebelum atau
sesudah penambahan atau isi nibble atas (bit 4-7) lebih tinggi dari
9, isi akumulator akan ditambah 60H.
DEC (Decrement Indirect Address)
Operand
Rr
Register 0 <= r <= 1
Format
DEC @Rr
Operasi
((Rr)) ((IZr)) -1
Keterangan instruksi ini akan mengurangi isi lokasi memori yang ditunjukkan
oleh register r dengan 1. Hasilnya disimpan dalam lokasi tersebut.
DEC (Decrement Accumulator)
Operand
A
Akumulator
format
DEC A
Operasi
(A) (A) -1
Keterangan instruksi ini akan mengurangi isi akumulator dengan 1. Hasilnya
disimpan dalam akumulator
Contoh
DEC A
DEC (Decrement Register)
Operand
Rr
Register 0 <= r <= 7
Format
DEC Rr
Operasi
(Rr) (Rr) -1
Keterangan instruksi ini akan mengurangi isi register r dengan 1. Hasilnya
disimpan dalam register r
Contoh
DEC R7
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
11

Tugas MicroControl MMI Server

DEC (Decrement Memory)


Operand
Alamat data 0 <= Alamat data <= 255
Format
DEC Alamat data
Operasi
(Alamat data) (Alamat data) - 1
Keterangan Instruksi ini akan mengurangi isi akumulator dengan 1. Hasilnya
disimpan dalam akumulator.
DIV (Divide Accumulator by B)
Operand
AB
Pasangan register
Format
DIV AB
Operasi
(AB) (A)/(B)
Keterangan instruksi ini membagi isi akumulator dengan isi register B. Kedua
operand adalah bilangan integer tak bertanda. Akumulator berisi
hasil bagi, register B berisi sisa pembagian
Contoh
MOV B, #5H
DIV AB
DJNZ (Decrement Register And Jump If Not Zero)
Operand
Rr
Register 0 <= r <= 7 Alamat kode
Format
DJNZ Rr, Alamat kode
Operasi
(PC) (PC) + 2
(Rr) (Rr) -1
Jika (Rr) <> 0, maka. (PC) (PC) + offset r:latif
Keterangan instruksi ini mengurangi register r dengan 1 dan menempatkan
hasilnya pada register tertentu. Jika hasilnya sudah 0, instruksi
selanjutnya yang akan dieksekusi. jika belum 0, eksekusi akan menuju
ke alamat kode.
DJNZ (Decrement Memory And Jump If Not Zero)
Operand
Alamat data 0 <= Alamat data <= 255
Alamat kode
Format
DJNZ Alamat data, Alamat kode
Operasi
(PC} (PC) + 3
(Alamat data) (Alamat data) - 1
Jika (Alamat data) <> 0, maka (PC) (PC) + offset relatif
Keterangan instruksi ini mengurangi. alamat data dengan 1 dan menempatkan
hasilnya pada alamat tersebut. Jika hasilnya sudah 0, instruksi
selanjutnya yang akan dieksekusi. Jika belum 0, eksekusi akan
menuju ke alamat kode.
INC (Increment Indirect Address)
Operand
Rr
Register 0 <= r <= 1
Format
INC @Rr
Opcras:
((R-r)) <-((Rr)) + 1
Keterangan instruksi ini akan menambah isi lokasi memori yang ditunjukkan
oleh register r dengan 1. Hasilnya disimpan dalam lokasi tersebut.
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
12

Tugas MicroControl MMI Server

INC (Increment Accumulator)


Operand
A
Accmulator
Format
INC A
Operasi
(A) (A) + 1 ,
Keterangan instruksi ini akan menambahkan isi akumulator dengan 1. Hasilnya
disimpan dalam akumulator.
Contoh
INC A
INC (Increment Data Pointer)
Operand
DPTR
Data Pointer
Format
INC DPTR
Operasi
(DPTR) (DPTR) + 1
Keterangan instruksi ini akan menambah isi data pointer dengan 1. Hasilnya
disimpan pada data pointer.
Contoh
INC DPTR
INC (Increnent Register)
Operand
Rr
Register 0 <= r <= 7
Format
INC Rr
Operasi
(Rr) (Rr) + 1
Keterangan instruksi ini akan menambah isi register r dengan 1. Hasilnya
disimpan dalam register tersebut.
Contoh
INC R7
INC (Increment Memory)
Operand
Alamat data 0 <= Alamat data <= 255
Format
INC Alamat data
Operasi
(Alamat data) (Alamat data) + 1
Keterangan instruksi ini akan menambah isi alamat data dengan 1. Hasilnya
disimpan dalam alamat tersebut.
Contoh
INC 37H
JB (Jump if Bit is Set)
Operand
Alamat bit 0 <= Alamat bid <= 255
Alamat kode
Format
JB Alamat bit, alamat kode
Operasi
(PC) (PC) + 3
Jika (Alamat bit) = 1, maka (PC) (PC) + offset relatif
Keterangan instruksi ini akan menguji, suatu alamat bit. Jika berisi 1, eksekusi
akan menuju alamat kode. Jika tidak, instruksi selanjutnya akan
dieksekusi. Pencacah program akan dinaikkan pada instruksi
selanjutnya. Jika pengujian berhasil, offset relatif akan
ditambahkan ke pencacah program yang telah dinaikkan dan
instruksi pada alamat ini akan dieksekusi.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


13

Tugas MicroControl MMI Server

JBC (Jump And Clear if Bit is Set)


Operand
Alamat bit 0 <= Alamat bit <= 255
Alamat kode
Format
JBC Alamat bit, alamat kode
Operasi
(PC) (PC) + 3
Jika (Alamat bit) = 1, maka (alamat bit) 0
(PC) (PC) + offset relatif
Keterangan instruksi ini akan menguji suatu alamat bit. Jika berisi 1, bit tersebut
akan diubah menjadi 0 dan eksekusi akan menuju ke alamat
kode. Jika berisi 0, instruksi selanjutnya yang akan dieksekusi.
JC (Jump if Carry is Set)
Operand
Alamat kode
Format
JCC Alamat kode
Operasi
(PC) (PC) + 2
Jika (PC) = 1, maka (PC) (PC) + offset relative
Keterangan instruksi ini akan menguji isi carry flag. Jika berisi 1, eksekusi
akan menuju ke alamat kode. Jika berisi 0, instruksi
selanjutnyaakan dieksekusi
JMP (Generic Jump)
Operand
Alamat kode 0 <= Alamat kode <= 65535
Format
JMP Alamat kode
Keterangan instruksi ini akan diubah menjadi SJMP, AJMP atau LJMP
JMP (Jump to Sum of Accumulator and Data Pointer)
Operand
A
Akumulator
DPTR Data Pointer
Format
JMP @A+ DPTR
Operasi
(PC) (A) + (DPTR)

Keteragan
instruksi ini akan menambah isi akumulator dengan isi data pointer
dan meloncat ke alamat kode sesuai hasil penjumlahan
Contoh
JMP @A + DPTR
JNB (Jump if Bit is Not Set)
Operand
Alamat bit
Alamat kode
Format
JNB Alamat bit, alamat kode
Operasi
(PC) (PC) + 3
Jika (alamat bit) = 0, maka (PC) (PC) + offset relative
Keterangan instruksi ini akan menguji suatu alarnat bit. Jika isinya 0, eksekusi
akan menuju ke alamat kode. Jika isinya 1, instruksi selanjutnya
yang akan dieksekusi.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


14

Tugas MicroControl MMI Server

JNC (Jump if Carry is Not Set)


Operand
Alamat kode
format
JNC Alamat kode
Operasi
(PC) (PC) + 2
Jika (C) = 0, maka (PC) (PC) + offset relatif
Keterangan instruksi ini akan menguji isi carry flag. Jika isinya 0, eksekusi
akan menuju ke alamat kode. Jika isinya 1, instruksi selanjutnya yang
akan dieksekusi.
JNZ (Jump if Accumulator is Not Zero)
Operand
Alamat kode
Format
JNZ Alamat kode
Operasi
(PC) (PC) + 2
Jika (A) <> 0, maka (PC) (PC) + offset relative
Keterangan instruksi ini. akan menguji isi akumulator. Jika tidak sama
dengan 0, eksekusi akan menuju ke alamat kode. Jika sama
dengan 0, instruksi selanjutnya yang akan dieksekusi.
JZ (Jump if Accumulator is Zero)
Operand
Alamat kode
Format
JZ Alamat kode
Operasi
(PC) (PC) + 2
Jika (A) = 0, maka (PC) (PC) + offset relatif
Keterangan instruksi ini akan menguji isi akumulator. Jika sama dengan 0,
eksekusi akan menuju ke alamat kode. Jika tidak sama dengan 0,
instruksi selanjutnya yang akan dieksekusi.
LCALL (Long Call)
Operand
Alamat kode 0<= Alamat kode <= 65535
Format
LCALL Alamat kode
Operasi
(PC) (PC) + 3
(SP) <= (SP) + 1
((SP)) (PC Low)
(SP) <= (SP) + 1
((SP)) (PC high)
(PC) <= Alamat kode
Keterangan instruksi ini akan menyimpan pencacah program pada stack dan
eksekusi akan menuju ke alamat kode
LJMP (Long J amp)
Operand
Alamat kode 0 <= Alamat kode <= 65535
Format
LJMP Alamat kode
Operasi
(PC) Alamat kode
Keterangan instruksi ini akan menuju alamat kode

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


15

Tugas MicroControl MMI Server

MOV (Move Immediate Data to Indirect Address)


Operand
Rr
Register 0 <= r <= 1
Data
- 256 <= data <= + 255
Format
MOV @Rr, #data
Operasi
((Rr)) data
Keterangan instruksi ini akan memindahkan data 8 bit secara langsung ke lokasi
memori yang ditunjukkan oleh isi register r
Contoh
MOV @R1, #01H
MOV (Move Accumulator to Indirect Address)
Operand
Fr
Register 0 <= r <= 1
A
Accmulator
Format
MOV @Rr, A
Operasi
((Rr)) (A)
Keterangan instruksi ini menambah isi akumulator ke lokasi memori yang
ditunjukkan oleh isi register r.
Contoh
MOV @R0, A.
MOV (Move 1liemorv to indirect Address)
Operand
Rr
Register 0 <= r <= 1
Alamat data 0 <= Alamai data <= 255
Format
MOV @Rr, alamat data
Operasi
((Rr)) (alamat data)
Keterangan instruksi ini memindahkan isi suatu alamat data ke lokasi memori
yang ditunjukkan oleh isi register r.
Contoh
MOV @R1, 77H
MOV (Move Immediate Data to Accumulator)
Operand
A
Accumulator
Data
-256 <= data <= +255
Format
MOV A, #data
Operasi
(A) data
Keterangan instruksi ini memindahkan data 8 bit secara langsung ke
akumulator
Contoh
MOV A, #02H
MOV (Move Indirect Address to Accumulator)
Operand
A
Akcmulator
Rr
Register 0 <= r <= 1
Format
MOV A, @Rr
Operasi
(A) ((Rr))
Keterangan instruksi ini memindahkan isi data memori yang lokasinya
ditunjukkan oleh register r ke akumulator
Contoh
MOV A, @RO

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


16

Tugas MicroControl MMI Server

MOV (Move Register to Accumulator)


Operand
A
Akkumulator
Rr
Register 0<= r <= 7
.
Format
MOV A, Rr
Operasi
(A) (Rr)
Keterangan instruksi ini memindahkan isi register r ke akumulator
Conloh
MOV A, #02H
MOV (Move Memory to Accumulator)
Operand
A
Akkumulator
Alamat data 0<= Alamat data <= 255
Format
MOV A, alamat data
Operasi
(A) (Alamat data)
Keterangan instruksi ini memindahkan isi memori data pada suatu alamat ke
akumulator
Contoh
MOV A, P3 pindahkan isi port 3 ke akumulator
MOV (Move Bit to Carry Flag)
Operand
C
Carry Flag
Alamat bit 0<= Alamat bit <= 255
Format
MOV C, alamat bit
Operasi
(C) (alamat bit)
Keterangan instruksi ini memindahkan isi suatu alamat bit ke carry flag
Contoh
MOV C, P1.0
MOV (Move Immediate Data to Data Pointer)
Operand
Data Pointer
Data
0 <= data <= 65535
Format
MOV DPTR, #data
Operasi
(DPTR) data
Keterangan instruksi ini memindahkan data 16 bit secara langsung ke data
pointer (DPTR)
Contoh
MOV DPTR, #0B 19H
MOV (Move Memory to Memory)
Operand
Alamatl
0 <=Alamat1 <= 255
Alamat2
0 <= Alamat2 ,<= 255
Format
MOV alamat1, alamat2
Operasi
(Alamat 1) (Alamat 2)
Keterangan instruksi ini memindahkan isi memori alamat data sumber
(alamat 2) ke alamat data tujuan (alamat1)
Contoh
MOV 13H, 12H
MOVC (Move Code Memory Offset from Data Pointer to Accumulator)
Operand
A
Akumulator
DPTR
Data Pointer
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
17

Tugas MicroControl MMI Server

Format
Operasi
Keterangan

Contoh

MOVC A, @A + DPTR
(A) ((A) + (DPTR))
instruksi ini menjumlahkan isi data pointer dengan ini akumulator.
Hasil penjumlahan merupakan alamat kode memory dan isinya akan
dipindahkan ke akumulator.
MOVC, @A+DPTR

MOVC (Move Code Memory Offset from Program Counter to Accumulator)


Operand
A
Akumulator
PC
Program Counter
Format
MOVC A, @A + PC
Operasi
(PC) (PC) + 1
(A) ((A)+(PC))
Keterangan instruksi ini menjumlahkan isi pencacah program yang telah
dinaikkan dengan isi akumulator. Hasil penjumlahan tersebut
digunakan sebagai alamat kode memori dan isinya dipindahkan ke
akumulator.
Contoh
MOVC, @A+PC
MOVX (Move Accumulator to External Memory addressed by Data Pointer)
Operand
DPTR
Data Pointer
A
Akumulator
Format
MOVX, @DPTR, A
Operasi
((DPTR)) <- (A)
Keterangan
Instruksi ini akan memindahkan isi akumulator ke memori data eksternal (off
chip) yang alamatnya ditunjukkan oleh data pointer.
Contoh
MOVX @ DPTR, A
MOVX (Move Accumulator to External Memory addressed by Register)
Operand
Rr
Register 0 < = r < = 1
A
Akumulator
Format
MOVX, @Rr, A
Operasi
((Rr)) <- (A)
Keterangan
Instruksi ini akan memindahkan isi akumulator ke memori data eksternal yang
alamatnya ditunjukkan oleh register r dan SFR P2. P2 menampung byte atas
alamat dan register r menampung byte bawah.
Contoh
MOV P2, #00H
MOVX @R0, A
MOVX (Move External Memory Addressed by Data Pointer to Accumulator)
Operand
A
Akumulator
DPTR
Data Pointer
Format
MOVX A, @DPTR
Operasi
(A) ((DPTR))
Keterangan instruksi ini akan memindahkan isi memori data eksternal yang
alamatnya ditunjukkan oleh data pointer ke akumulator.
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
18

Tugas MicroControl MMI Server

Contoh

MOVX A, @DPTR

MOVX (Move External Memory Addressed by Register to Accumulator)


Operand
A
Akumulator
Rr
Register 0 <= r <= 1
Format
MOVX A, @Rr
Operasi
(A) ((Rr))
Keterangan instruksi ini akan memindahkan isi memori data eksternal yang
alamatnya ditunjukkan oleh register r dan SFR P2 ke akumulator.
P2 menampung byte atas alamat dan register r menampung byte
bawah.
Contoh
MOV P2, #55H
MOVX A, @R I
MUL (Multiply Accumulator by B)
Operand
AB
Format
MUL AB
Operasi
(AB) (A) * (B)
Keterangan instruksi ini akan mengalikan isi akumulator dengan isi register
pengali (B). Byte bawah hasil perkalian dimasukan ke akumulator
dan byte atas dimasukkan ke register pengali.
Contoh
MOV B, #10
MUL AB
NOP (No Operation)
Operand
Format
NOP
Operasi
Tak ada operasi
Keterangan instruksi ini tidak melakukan apa pun selama satu siklus.
Contoh
NOP
ORL (Logical OR Immediate Data to Accumulator)
Operand
A
Accumulator
Data -256<=data<=255
Format
ORL A, #data
Operasi
(A) (A) OR data
Keterangan instruksi ini meng-OR kan data 8 bit secara langsung dengan isi
akumulator
Contoh
OR A,#00001000B
ORL (Logical OR Indirect Address to Accumulator)
Operand
A
Accumulator
Rr
Register 0 <= r <= 1
Format
ORL A, @Rr
Operasi
(A) (A) OR ((Ri)),

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


19

Tugas MicroControl MMI Server

Keterangan

Contoh

instruksi ini meng-OR kan isi memori yang lokasinya ditunjukkan


oleh isi register r dengan isi akumulator. Hasilnya disimpan di
akumulator.
ORL A,@RO

ORL (Logical OR Register to Accumulator)


Operand
A
Accumulator
Alamat data 0 <= Alamat data <= 255
Format
ORL A, Alamat data
Operasi
(A) (A) OR (Alamat data)
Keterangan
instruksi ini meng-OR kan isi alamat data dengan isi
akumulator. Hasilnya disimpan di akumulator
Contoh
ORL A, 35
ORL (Logical OR Bit to Carry Flag)
Operand
C
Carry flag
Alamat bit 0 <= alamat bit <= 255
Format
ORL C, Alamat bit
Operasi
(C) (C) OR (Alamat bit)
Keterangan
instruksi ini meng-OR kan isi alamat bit tertentu dengan isi
carry flag. Hasilnya ditempatkan pada carry flag.
Contoh
ORL C, 46.2
ORL (Logical OR Complement of Bit to Carry Flag)
Operand
C
Carry flag
Alamat bit 0 <= alamat bit <= 255
Format
ORL C, /alamat bit
Operasi
(C) (C) OR NOT (alamat bit)
Keterangan
instruksi ini meng-OR kan hasil komplemen isi alamat bit tertentu
dengan isi carry flag. Hasilnya ditempatkan pada carry flag. Isi
alamat bit semula tidak berubah.
Contoh
ORL C,/25H.5
ORL (Logical OR Immediate Data to Memory)
Operand
Alamat data 0 <= alamat data <= 255
Data
-256 <= data <= +255
Format
ORL Alamat data, #data
Operasi
(Alamat data) (Alamat data) OR data
Keterangan
instruksi ini meng-OR kan data 8 bit secara langsung dengan isi
alamat data tertentu. Hasilnya akan disimpan dalam memori data
pada alamat tersebut.
Contoh
ORL 57H,#01H
ORL (Logical OR Accumulator to Memory)
Operand
Alamat data 0 <= Alamat data <= 255
A
Akumulator
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
20

Tugas MicroControl MMI Server

Format
Operasi
Keterangan

Contoh

ORL Alamat data, A


(Alamat data) (Alamat data) OR A
instruksi ini meng OR kan isi akumulator dengan isi alamat
data tertentu. Hasilnya disimpan dalam memori data pada
alamat yang bersangkutan
ORL 10H,A

POP (Pop Stack to Memory)


Operand
Alamat data 0 <= Alamat data <= 255
Format
POP Alamat dataI
Operasi
(Alamat data) <- ((SP))
(SP) <- (SP) - 1
Keterangan
instruksi ini menempatkan byte yang ditunjukkan oleh stack
pointer ke suatu alamat data, kemudian mengurangi sate isi
stack pointer.
Contoh
POP PSW
PUSH (Push Memory onto Stack)
Operand
Alamat data 0 <= Alamat data <= 255
Format
PUSH Alamat data
Operasi
(SP) <- (SP) + I
((SP)) <- (Alamat data)
Keterangan
instruksi ini menaikkan stack pointer kemudian menyimpan
isinya ke suatu alamat data pada lokasi yang ditunjukkan oleh
stack pointer.
Contoh
PUSH 4DH
RET (Return from Subi outine) (Non Interrupt) Operand
Format
RET
Operasi
(PC high) <- ((SP))
(SP) <- (SP) - 1
(PC low) <- ((SP))
(SP) <- (SP) -1
Keterangan
instruksi ini dipakai untuk kembali dari suatu subroutine ke
alamat terakhir seat subroutine dipanggil.
RETI (Return from Interrupt Routine) Operand
Format
RETI
Operasi
(PC high) <- ((SP))
(SP) <- (SP) - 1
(PC low) <- ((SP))
(SP) <- (SP) -1
Keterangan
instruksi ini dipakai untuk kembali dari suatu routine
pelayanan interupsi.
RL (Rotate Accumulator Left)
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
21

Tugas MicroControl MMI Server

Operand
Format
Operasi
Keterangan

Contoh
RLC (Rotate
Operand
Format
Operasi
Keterangan

Contoh

A
RL A

Akumulator

instruksi ini memutar setiap bit dalam akumulator serta posisi


ke kiri. Bit paling besar (MSB) bergerak ke bit paling kecil
(LSB).
RL A
Accumulator And Carry Flag Left)
A
Akumulator
RLC A
instruksi ini memutar bit bit dalam akumulator satu posisi ke
kiri. Bit paling besar (MSB) bergerak ke dalam carry flag.
Sedangkan isi carry flag menuju ke LSB
RLC A

RR (Rotate Accumulator Right)


Operand
A
Akumulator
Format
RR A
Operasi
Keterangan
instruksi ini memutar setiap bit dalam akumulator serta posisi
ke kanan. Bit paling kecil (LSB) bergerak ke bit paling besarl
(MSB).
Contoh
RR A
RRC (Rotate Accumulator And Carry Flag Right)
Operand
A
Akumulator
Format
RRC A
Operasi
Keterangan
instruksi ini memutar bit bit dalam akumulator satu posisi ke
kanan. Bit paling kecil (LSB) bergerak ke dzlam carry flag.
Sedangkan isi carry flag menuju ke MSB
Contoh
RRC A
SETB (Set Carry Flag)
Operand
C
Format
SETB C
Operasi
(C) <-I
Contoh
SETB C

Carry Flag

SETB (Set Bit)


Operand
Alamat bit 0 <= Alamat bit <= 255
Format
SETB Alamat bit
Operasi
(Alamat bit) <- 1
Keterangan
Instruksi ini akan men-set isi suatu alamat bit menjadi 1
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
22

Tugas MicroControl MMI Server

Contoh

SETB 41.5

SUBB (Subtract Indirect Address from Accumulator with Borrow)


Operand
A
Akumulator
Rr
Register 0 <= r <= 1
Operasi
(A) <- (A) - (C) - ((Rr);
Keterangan
instruksi ini akan mengurangkan isi akumulator dengan carry
nag dan isi lokasi memori yang ditunjukkan oleh isi register r.
Hasilnya disimpan dalam akumulator.
SUBB (Subtract Immediate Data from Accumulator with Borrow)
Operand
A
Akumulator
Data
-256 <= data <= +255
Format
SUBB A, #data
Operasi
(A) <- (A) - (C) - data
Keterangan :instruksi ini akan mengurangkan isi carry flag dan data langsung
dari isi kumulator. Hasilnya disimpan dalam akumulator.
Contoh
SUBB A, #OC1H
SUBB (Subtract Register firom Accumulator with Borrow)
Operand
A
Akumulator
Rr
Register 0<= r <= 7
Format
SUBB A, Rr
Operasi
(A) <- (A) - (C) - (Rr)
Keterangan
instruksi ini akan mengurangi isi akumulator dengan isi carry
flag dan isi register r. Hasilnya disimpan dalam akumulator.
Contoh
SUBB A, R6
SUBB (Subtract Memory from Accumulator with Borrow)
Operand
A
Akumulator
Alamat data 0 <= Alamat data <= 255
Format
SUBB A, Alamat data
Operasi
(A) <- (A) - (C) - (Alamat data)
Keterangan
instruksi ini akan mengurangkan isi akumulator dengan isi
carry flag dan isi suatu alamat data. Hasilnya disimpan dalam
akumulator.
Contoh
SUBB A, 32H
SJMP (Short Jump)
Operand
Alamat data
Format
SJMP alamat kode
Operasi
(PC) <- (PC) + 2
(PC) <- (PC) + offset relatif
Keterangan
instruksi ini akan menyebabkan operasi melompat ke alamat
kode.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


23

Tugas MicroControl MMI Server

SWAP (Excharge Nibbles in Accumulator)


Operand
A
Akumulator
Format
SWAP A
Keterangan
instruksi ini akan mempertukarkan nibble bawah dengan nibble
atas
Contoh
SWAP A
XCH (Exchange Indirect Address with Accumulator)
Operand
A
Akumulator
Rr
Register 0 <= r <= 1
Format
XCH A, @Rr
Operasi
temp <- ((Rr))
((Rx)) <-(A)
(A) <- temp
Keterangan
instruksi ini akan menukar isi lokasi memori yang ditunjukkan
oleh isi register r dengan isi akurnulator
Contoh
XCH A, @RO
XCH (Exchange Register with Accumulator)
Operand
A
Akumulator
Rr
Register 0 <= r <= 7
Format
XCH A, Rr
Operasi
temp <- ((Rr))
((R-r)) <-(A)
(A) <- temp
Keterangan
instruksi ini akan menukar isi register dengan isi akumulator
Contoh
XCH A, R6
XCH (Exchange Memory with Accumulator )
Operand
A
Akumulator
Alamat data 0<:= Alamat data <= 255
Format
XCH A, alamat data
Operasi
temp <- (Alamat data)
(Alamat data) <-(A)
(A) <- temp
Keterangan
instruksi ini akan menukar isi suatu alamat data dengan isi
akumulator
Contoh
XCH A, 37H
XCHD (Exchange Low Nibbles of Indirect Address with Accumulator)
Operand
A
Akumulator
Rr
Register 0 <= r <= 1
Format
XCHD A, @Rr
Operasi
temp <- ((Rr)) 0 3
((Rr))0 3 <- (A)0 - 3
(A) 0 3 <- temp
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
24

Tugas MicroControl MMI Server

Keterangan

Contoh

instruksi ini akan menukar isi nibble bawah dari lokasi memori
yang alamatnya ditunjukkan oleh isi register r dengan isi nibble
bawah akumulator.
XCHD A, @R0

XRL (Logical XOR Immediate rata to Accumulator)


Operand
A
Akumulator
data
-256 <= data <= +255
Format
XRL A, #data
Operasi
(A) <- (A) XOR data
Keterangan
instruksi ini meng-XOR kan data 8 bit secara langsung dengan isi
akumulator
Contoh
XOR A, #OFH
XRL (Logical XOR Indirect Address to Accumulator)
Operand
A
Akumulator
Rr
Register 0 <= r <= I
Format
XRL A, @Rr
Operasi
(A) <- (A) XOR ((Rr))
Keterangan
instruksi ini men-XOR kan isi memori yang lokasinya ditunjukkan
oleh isi register r dengan isi akumulator. Hasilnya disimpan di
akumulator.
Contoh
XRL A, @R0
XRL (Logical XOR Register to Accumulator)
Operand
A
Akumulator
Rr
Register 0 <- IZr <- 7
Format
XRL A, Rr
Operasi
(A) <- (A) XRL (Rr)
Keterangan
instruksi ini meng-XOR kan isi register r dengan isi akumulator.
Hasilnya disimpan di akumulator
Contoh
XRL A, R4
2.1.1. MIKROKONTROLLER AT89C51
Operasi dan struktur port
Mikrokontroller AT89C51 mempunyai 32 jalur I/O yang digolongkan
menjadi empat port yaitu P0, P1, P2, dan P3. P0 dan P2 digunakan untuk
mengakses eksternal memory sebagai pembangkit 16 bit address dan 8 bit data.
P0 akan membangkitkan address A0-A7 dan data D0-D7 secara multipleks,
sedangkan P2 akan membangkitkan address A8-A15.
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
25

Tugas MicroControl MMI Server

Gambar 2.2. Konfigurasi Penyemat AT89C51


Port 1 merupakan port I/O yang dapat digunakan per bit. Port 3 merupakan
port kontrol sinyal yang memiliki konfigurasi sebagai berikut :
Tabel 2.3 Konfigurasi Port AT89C51
Port
Signal
Fungsi
P3.0
RXD
Receive data for serial port
P3.1
TXD
Transmit data for serial port
P3.2
INT0
External interrupt 0
P3.3
INT1
External interrupt 1
P3.4
T0
Timer/ Counter 0 external input
P3.5
T1
Timer/ Counter 1 external input
P3.6
WR
External data memori write strobe
P3.7
RD
External data memori read strobe

Organisasi memori
Memori pada mikrokontroller keluarga MCS-51 dibagi menjadi dua bagian,
yaitu : program memori dan data memori. Pada program memori dan data memori
terpisah secara logika, dengan membedakan sinyal yang mengaktifkannya. Untuk
mengakses program memori digunakan sinyal PSEN, sedangkan untuk data
memori digunakan sinyal RD dan WR. Hal ini menyebabkan processsor keluarga

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


26

Tugas MicroControl MMI Server

MCS-51 mampu mengakses 64 Kbyte eksternal program memori dan eksternal


data memori.
1. Program memori.
Mikrokontroler AT89C51 mempunyai 4 Kbyte internal program memori.
Untuk memakai internal program memori, maka pin EA harus diberi level
logic high, untuk mengakses eksternal program memori maka bit EA diberi
logic low.
2. Data memori
Mikrokontroler AT89C51 mempunyai dua bagian data memori yaitu internal
data memori dan eksternal data memori. Eksternal data mempunyai fungsi
yang hampir sama dengan program memori, namun pada eksternal memori
dapat dilakukan proses pembacaan dan penulisan data.
Secara umum mikrokontroler keluarga MCS-51 membagi internal data
memori menjadi tiga blok, yaitu:
-

Lower 128 byte RAM

Upper 128 byte RAM

Special Function Register (SFK)

Tetapi pada mikrokontroler 8031/ 8051/ 8751 upper 128 byte RAM tidak
tersedia, daerah memori tersebut hanya ada pada mikrokontroler 8052.
2.1.2 ADC (Analog to Digital Converter)
Analog to Digital Converter (ADC) adalah sebuah piranti elektronik yang
banyak digunakan oleh perangkat-perangkat digital berupa komputer dan
mikroprosesor Kebutuhan akan ADC saat ini sangat penting karena untuk

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


27

Tugas MicroControl MMI Server

mengolah isyarat analog oleh perangkat digital tidak akan bisa diproses. Jadi ADC
menjadi jembatan antara perangkat analog dan perangkat digital. Setelah data
diproses oleh komputer atau perangkat digital yang lain, data digital yang
dihasilkan dapat diubah menjadi data analog kembali dengan menggunakan
perangkat Digital to Analog Converter.
Contoh ADC 8 bit yang mampu menerima 8 input dan banyak digunakan
ialah ADC 0808. ADC ini mampu diprogram umtuk memulai konversi melalui
pin SC (Start Conversion), mampu juga berjalan dengan mode free running,
artinya akan mengkonversi terus menerus sinyal input yang masuk dengan cara
menghubungkan pin EOC (End of Conversion) ke SC. Gambar 2.3 adalah
diagram penyemat ADC 0808
In3
In4
In5
In6
SC
EOC
D3
OE
Clock
Vcc
Vref (+)
Gnd
D1

A
D
C
0
8
0
9

In2
In1
In0
ADD A
ADD B
ADD C
ALE
D7
D6
D5
D4
D0
D2

Gambar 2.3. Dagram penyemat ADC 0808


IC ADC 0808 merupakan IC yang terdiri dari 28 buah pin. Multiplekser
yang terdiri dari 8 saluran dapat mengakses secara langsung beberapa dari 8 sinyal
analog. Masing-masing pin mempunyai fungsi yang berbeda-beda. Dari

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


28

Tugas MicroControl MMI Server

perbedaan ini ada beberapa pin yang termasuk dalam kategori yang sama.
Misalnya, untuk data hasil pengubahan terdiri dari 8, pemilihan alamat saluran
terdiri dari 3 pin dalam kategori yang sama.
Tabel 2.4 Deskripsi pin-pin ADC 0808
No pin
1-5
26-28

Simbol
In7 In3
In0 In2

21-18
17
14
8
15
10
23
24
25
6
22
7
9
12
16
11
13

D7 D4
D0
D1
D3
D2
Clock
ADD A
ADD B
ADD C
Star Conversion
ALE
EOC
OE
Vref(+)
Vref(-)
VCC
GND

I/O
Deskripsi
I Input analog pin, salah satu dari pin dapat
I dipilih, tergantung pada pengaturan data pin
ADD A, ADD B ADD C.
O Pin output ini adalah hasil dari pengubahan.
O Hasilnya adalah 8 bit data paralel.
O
O
O
I Masukan detak
I Pin input untuk pemilihan saluran masukan
I analog.
I
I Pin untuk memulai konversi
I Address Latch Enable, penguncian alamat
I Pin untuk sinyal akhir conversi
I Output Enable, agar output dapat dibaca
- Tegangan referensi +
- Tegangan referensi - Pin catu daya
- Pin ground

Karena input ADC 0808 sebanyak 8 buah ter-multipleks, maka untuk


memilih kanal input diatur melalui pin-pin ADD A, ADD B, dan ADD C. Tabel
2.5 berikut adalah tabel pemilihan kanal input ADC 0808
Tabel 2.5 Pemilihan kanal input ADC 0808
Kanal Input
0
1
2
3
4

ADD A
L
L
L
L
H

ADD B
L
L
H
H
L

ADD C
L
H
L
H
L

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


29

Tugas MicroControl MMI Server

5
6
7

2.2

H
H
H

L
H
H

H
L
H

Digital To Analog Converter


Digital to Analog Converter adalah piranti elektronik yang berfungsi untuk

mengkonversi data digital menjadi data analog. Salah satu jenis DAC yang umum
adalah DAC 0808, yaitu merupakan digital to analog converter R-2R 8 bit yang
dilengkapi dengan sumber arus acuan dan 8 buah transistor saklar untuk
mengarahkan arus biner yang lazim berlaku yaitu 2mA. DAC0808 menpunyai
waktu pemantapan 150 nS dan ketelitian relatif LSB. Gambar 2.4 seperti
yang ditunjukkan di bawah ini adalah konfigurasi penyemat dari DAC 0808.
NC
Gnd
Vee
Iout
D7
D6
D5
D4

1
2
3
4
5
6
7
8

DAC
0
8
0
8

16
15
14
13
12
11
10
9

kompensasi
V reffVreff+
Vcc
D0
D1
D2
D3

Gambar 2.4 Konfigurasi penyemat dari DAC 0808.


Penyemat 1 tidak dipakai (NC, No Connection) Penyemat 2 adalah saluran
ground. Penyemat 3 (Vee) harus dipasang pada catu tegangan -15V. Penyemat 4
adalah saluran balik dari tanah (ground return) bagi arus yang keluar dari
rangkaian tangga, penyemat ini biasa dihubungkan dengan sebuah Operational
Amplifier (Op-Amp). Penyemat 5 sampai 12 merupakan saluran bagi 8 bit data
masukan. Penyemat 13 harus dipasang pada catu tegangan +5V. Penyemat 14
dihubungkan dengan catu tegangan positif melalui sebuah hambatan R14, dan
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
30

Tugas MicroControl MMI Server

penyemat 15 ditanahkan melalui subuah hambatan. Antara penyemat 16 dan


penyemat 13 dipasang sebuah kapasitor yang berfungsi untuk memberi
kompensasi frekuensi bagi piranti ini.
2.3

Pemrograman Port Serial

2.3.1 Tata Cara Komunikasi Data Serial


Dalam komunikasi data secara serial dikenal dua cara yaitu asinkron dan
sinkron. Pada komunikasi data serial sinkron clock dikirimkan bersama-sama
dengan data serial, sedangkan komunikasi data serial asinkron clock tidak
dikirimkan bersama data serial tapi dibangkitkan secara sendiri-sendiri baik pada
sisi pengirim (transmitter) maupun pada sisi penerima (receiver). Pada IBM-PC
compatible port serialnya termasuk jenis asinkron. Komunikasi data serial ini
dikerjakan oleh UART (Universal Asinkron Receiver/Transmiiter). IC UART
dibuat khusus untuk mangubah data paralel menjadi data serial dan menerima data
serial yang kemudian diubah kembali menjadi data paralel. IC UART 8250 dari
intel merupakan salah satunya. Selain berbentuk IC mandiri, berbagai macam
mikrokontroller ada yang dilengkapi UART, misalnya keluarga mikrokontroller
MCS51.
Pada UART, kecepatan pengiriman data (baud rate) dan fase clock pada sisi
transmitter dan 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 dalam keadaan logika
1. Ketika transmitter ingin mengirim data, output UART diset lebih ke logika 0
untuk waktu satu bit. Sinyal ini pada receiver dikenali sebagai sebagai sinyal

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


31

Tugas MicroControl MMI Server

start yang digunakan untuk mensinkronkan fase clocknya sehingga sinkron


dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara serial dari
bit paling rendah sampai bit tertinggi. Selanjutnya, akan dikirim sinyal stop
sebagai akhir dari pengiriman data serial. Cara pemberian kode data yang
disalurkan tidak ditetapkan secara pasti. Gambar 2.5 berikut ini adalah contoh
pengiriman huruf A dalam format ASCII (41 heksa / 1000001 biner) tanpa bit
paritas.
5V

0V
START

STOP

Gambar 2.5. Pengiriman huruf A tanpa paritas


Kecepatan transmisi (baud rate) dapat dipilh bebas dalam rentang waktu
tertentu. Baud rate yang umum dipakai hdala 110, 135, 150, 300, 600, 1200,
2400, dan 9600 (bit/detik). Dalam komunikasi data serial, baud rate dari kedua
alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus
ditentukan panjang data, paritas (genap, ganjil, atau tanpa paritas), dan jumlah bit
stop (1,1, atau 2 bit).
2.3.2 Karakteristik Sinyal Port Serial
Standar sinyal komunikasi serial yang banyak digunakan hdala estndar
RS232 yang dikembangkan oleh Electronic Industry Association and the
Telecommunications Industry Association (EIA/TIA) yang pertama kali
dipublikasikan pada tahun 1962. Ini jauh sebelum IC TTL populer sehingga sinyal
ini tidak ada hubungannya sama sekali dengan dengan level tegangan IC TTL.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


32

Tugas MicroControl MMI Server

Estndar ini hanya menyangkut komunikasi data antara komputer (Data Terminal
Equipment DTE) dengan alat-alat pelengkap komputer (Data CircuitTerminating Equipment-DCE). Estndar RS232 inilah yang biasa digunakan pada
port serial IBM-PC kompatibel.
Stndar sinyal serial RS232 memiliki ketentuan level tegangan sebagai
berikut :
1. Logika 1 disebut Mark terletak antara -3 Volt hingga -25 Volt.
2. Logika 0 disebut space terletak antara +3 Volt hingg +25 Volt.
3. Daerah tegangan antara -3 Volthingga +3 Volt adalah invalid level, yaitu
daerah tegangan yang tidak memiliki level logika pasti sehingga harus
dihindari. Demikian juga, level tegangan lebih negatif dari -25 Volt atau lebih
positif dari +25 Volt juga harus dihindari karena tegangan tersebut dapat
merusak line driver pada saluran RS232.
Gambar 2.6 berikut ini dalah contoh level tegangan RS232 pada
pengiriman huruf A dalam format ASCII tanpa bit paritas.
+25V
0V
1

0 0 0 0 1 0 STOP

-25V
START
Gambar 2.6. Level tegangan RS232 pada pengiriman huruf A tanpa bit paritas
2.3.3 Flow Control
Jika kecepatan tranfer data dari DTE ke DCE (misalnya komputer ke
modem) lebih cepat daripada transfer data dari DCE ke DCE (misalnya modem ke

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


33

Tugas MicroControl MMI Server

modem), cepat atau lambat kelilangan data akan terjadi karena buffer pada DCE
akan mengalami over flor. Untuk itu diperlukan flor control untuk mengatasi hal
tersebut.
Dikenal dua macam flow control, yaitu secara software dan secara hardware.
Flow control secara software atau sering disebut Xon/Xoff flor control
menggunakan karkter Xon (tipikalnya karkter ASCII 17) dan karkter Xoff
(tipikalnya karkter ASCII 19) untuk melakukan kontrol. DCE akan mengirimkan
Xoff ke komputer untuk memberitahukan komputer agar menghentikan
pengiriman data jira buffer pada DCE telah penuh. Jika buffer telah kembali siap
menerima data, DCE akan mengirimkan karkter Xon ke komputer dan komputer
akan mengirimkan data selanjutnya sampai data terkirim semua atau komputer
menerima carcter Xoff lagi. Keuntungan flow control secara software ini dalah
hanya diperlukan kabel sedikit karena carcter control dikirimkan lewat saluran
Tx/Rx. Akan tetapi kecepatan pengiriman data menjadi lambat.
Flow control secara hardware atau sering disebut RTS/CTS flow control
menggunakan dua kabel untuk melakukan pengontrolan. Komputer akan menset
saluran Request To Send jikan akan mengirimkan data ke DCE. Jika buffer di
DCE siap menerima data, maka DCE akan membalas dengan menset saluran
Clear To Send dan komputer akan mulai mengirimkan data. Jika buffer telah
penuh, maka saluran akan direset dan komputer akan menghentikan pengiriman
data sampai saluran ini diset kembali.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


34

Tugas MicroControl MMI Server

2.3.4 Konfigurasi Port Serial


Gambar 2.7 adalah gambar konektor port serial DB9 pada bagian belakang
CPU dan tabel 2.6 adalah konfigurasi pin dan nama sinyal konektor serial DB9.
Pada komputer IBM-PC kompatibel biasanya kita dapat menemukan dua
connector port serial DB9 yang biasa dinamai COM1 dan COM2.

Gambar 2.7. Konektor serial DB9


Tabel 2.6. Konfigurasi pin dan nama sinyal konektor serial DB9
Nomor
Pin
1
2
3
4
5
6
7
8
9

Nama
Sinyal
DCD
RxD
TxD
DTR
GND
DSR
RST
CTS
RI

Direction

Keterangan

in
in
out
out
in
out
in
in

Data Carrier Detect/Received Line Signal Detect


Receive Data
Transmit Data
Data Terminal Ready
Ground
Data Set Ready
Request To Send
Clear To Send
Ring Indicador

Keterangan mengenai fungsi saluran RS232 pada conector DB9 adalah


sebagai berikut :
1. Received Line Signal Detect, dengan saluran ini DCE memberitahukan ke
DTE bahwa pada terminal masukan ada data masuk.
2. Receive Data, digunakan DTE menerima data dari DCE.
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
35

Tugas MicroControl MMI Server

3. Transmit Data, digunakan DTE mengirimkan data ke DCE.


4. Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan
terminalnya.
5. Signal Ground, saluran ground.
6. Ring Indicator, pada saluran ini DCE memberitahu ke DTE bahwa sebuah
stasiun menghendaki hubungan dengannya.
7. Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh
mengirim data.
8. Request To Send, dengan saluran ini DCE diminta mengirim data oleh DTE
9. DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah
siap.
Untuk dapat menggunakan port serial perlu diketahui alamatnya. Biasanya
tersedia dua port serial pada CPU, yaitu COM1 dan COM2. Base Address COM1
biasanya dalah 1016 (3F8H) dan COM2 biasanya 760 (2F8H). Alamat tersebut
dalah yang biasa digunakan tergantung dari komputer yang digunakan. Tepatnya
bisa dilihat pada peta memori tempat menyimpan alamat tersebut, yaitu memori
0000.0400h untuk base address COM1 dan memori 0000.0402h untuk base
address COM2.
setelah mengetahui base addressnya maka dapat ditentukanalamat registerregister yang digunakan untuk komunikasi port serial ini. Tabel 2.7 berikut ini
dalah tabel register-register tersebut beserta alamat-alamatnya.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


36

Tugas MicroControl MMI Server

Tabel 2.7 Nama register dan alamatnya


Nama Register

COM1
3F8h
3F8h
3F8h
3F9h
3F9h
3FAh
3FBh
3FCh
3FDh
3FEh

TX Buffer
RX Buffer
Baud Rate Divisor Match LSB
Baud Rate Divisor Match MSB
Interrupt Enable Register
Interrupt Identification Register
Line Control Register
Modem Control Register
Line Status Register
Modem Status Register

COM2
2F8h
2F8h
2F8h
2F9h
2F9h
2FAh
2FBh
2FCh
2FDh
2FEh

Keterangan mengenai fungsi register tersebut adalah sebagai berikut :


1. Tx Buffer, digunakan untuk menampung dan menyimpan data yang akan
dikirim ke port serial.
2. Rx Buffer, digunakan untuk menampung dan menyimpan data dari DCE
3. Baud Rate Divisor Match LSB, digunakan untuk menampung byte robot
rendah untuk pembagi clock pada IC UART agar didapat baud rate yang tepat
4. Baud Rate Divisor Match MSB, digunakan untuk menampung byte bobot
tinggi untuk pembagi clock pada IC UART sehingga total angka pembagi
dalah empat byte yang dapat dipilih dari 0001h sampai FFFFh. Tabel 2.8
berikut ini dalah tabel angka pembagi clock pada IC UART.
Tabel 2.8 Angka pembagi clock pada IC UART
Baud Rate (bit/detik)
300
600
1200
1800
2400
4800
9600

Angka Pembagi
0180h
0C00h
0060h
0040h
0030h
0018h
000Ch

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


37

Tugas MicroControl MMI Server

Register Baud Rate Divisor Match bisa diisi jira bit 7 pada register Line
Control Register diisi logika 1.
5. Interrupt Enabled Register, digunakan untuk menset interupsi apa saja yang
akan dilayani komputer. Tabel 2.9 berikut ini dalah tabel rincian bit pada
Interrupt Enabled register.
Tabel 2.9. Rincian bit pada Interrupt Enabled Register.
Nomor bit
0
1
2
3
4,5,6, dan 7

Keterangan
1 : Interupsi akan diaktifkan jika menerima data
1 : Interupsi akan diaktifkan jika register Tx kosong
1 : Interupsi akan diaktifkan jika ada perubahan
keadaan pada Line Status Register
1 : Interupsi akan diaktifkan jika ada perubahan
keadaan pada Modem Status Register
Diisi 0

6. Interrupt Identification Register, digunakan untuk menentukan urutan


prioritas interupsi. Tabel 2.10 berikut ini dalah rincian bit Interrupt
Identification Register.
Tabel 2.10 Rincian bit Interrupt Identification Register.
Nomor bit
0

1 dan 2
3,4,5,6, dan 7

Keterangan
0 : Interupsi menunggu
1 : No interrupt pending
00 : Prioritas tertinggi oleh Line Status Register
01 : Prioritas tertinggi oleh register Rx jika menerima data
10 : Prioritas tertinggi oleh register Tx telah kosong
11 : Prioritas tertinggi oleh Modem Status Register
Diisi 0

7. Line Control Register, digunakan untuk menentukan jumlah bit data, jumlah
bit parity, jumlah bit stop, serta untuk menentukan apakah baud rate divisor

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


38

Tugas MicroControl MMI Server

dapat diubah atau tidak. Tabel 2.11 berikut ini dalah tabel rincian bit pada
Line Control Register.
Tabel 2.11 Rincian bit pada Line Control Register.
Nomor bit

0 dan 1

3
4
5
6
7

Keterangan
Jumlah bit data
00 : Jumlah bit data dalah 5
01 : Jumlah bit data dalah 6
10 : Jumlah bit data dalah 7
11 : Jumlah bit data dalah 8
Bit Stop
0 : Jumlah bit stop adalah 1
1 : Jumlah bit stop adala 1,5 untuk 5 bit data dan 2 untuk 6
hingga 8 bit data
Bit Parity
0 : Tanpa Parity
1 : Dengan Parity
0 : Parity ganjil
1 : Parity genap
1 : Bit Parity ikut dikirimkan (stick parity)
0 : Set break control tidak diaktifkan
1 : Set break control diaktifkan
0 : Baud rate divisor tidak dapat diakses
1 : Baud rate divisor dapat diakses

8. Modem Control Register, digunakan untuk mengatur saluran pengatur


modem terutama saluran DTR dan saluran RST. Tabel 2.12 berikut ini dalah
tabel rincian bit pada modem Modem Control Register.
Tabel 2.12 Rincian bit pada Modem Control Register
Nomor bit
0

Keterangan
Bit DTR
0 : Saluran DTR diaktifkan (aktif 0)
1 : Saluran DTR dibuat normal (tidak aktif)
Bit RST
0 : Saluran RST diaktifkan (aktif 0)
1 : Saluran RST dibuat normal (tidak aktif)
Bit OUT1, digunakan untuk penghubung ke perangkat lain,
dapat dibuat logika high atau logika low. Secara normal tidak
digunakan.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


39

Tugas MicroControl MMI Server

3
4
5, 6, 7

Bit OUT2, digunakan untuk penghubung ke perangkat lain,


dapat dibuat logika high atau logika low.
0 : Loop back internal diaktifkan
1 : Loop back internal tidak diaktifkan
Diisi 0

9. Line Status Register, digunakan untuk menampung bit-bit yang menyatakan


keadaan penerimaan atau pengiriman data dan status kesalahan operasi. Tabel
2.13 berikut ini dalah tabel rincian bit pada Line Status Register.
Tabel 2.13 Rincian bit Line Status Register.
Nomor bit
0
1
2
3
4
5
6
7

Keterangan
1 : Menyatakan adanya data yang masuk pada buffer Rx
1 : Data yang masuk mengalami overrun
1 : Terjadi kesalahan pada bit parity
1 : Terjadi kesalahan framing
1 : Terjadi Break Interupsi
1 : Menyatakan Rx telah kosong
1 : Menyatakan bahwa Trasmitter Shift Register telah kosong
Diisi 0

10. Modem Status Register, digunakan untuk menampung bit-bit yang


menyatakan status dari saluran hubungan dengan modem. Tabel 2.14 berikut
ini adalah tabel rincian bit pada Modem Status Register.
Tabel 2.14 Rincian bit Modem Status Register.
Nomor bit
0
1
3
4
5
6

Keterangan
1 : Menyatakan adanya perubahan keadaan di saluran Clear To
Send.
1 : Menyatakan adanya perubahan keadaan di saluran Data Set
Ready
1 : Menyatakan adanya perubahan keadaan di saluran Ring
Indicator dari low ke high
1 : Menyatakan saluran Clear To Send (CTS) sudah dalam
keadaan aktif
1 : Menyatakan saluran Data Set Ready (DSR) sudah dalam
keadaan aktif
1 : Menyatakan bahwa saluran Ring Indicator sudah dalam

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


40

Tugas MicroControl MMI Server

keadaan aktif
1 : Menyatakan bahwa saluran Receiver Line Signal Detect
(DCD) sudah dalam keadaan aktif

2.3.5 Alasan Penggunaan Port Serial


Dibandingkan dengan menggunakan port paralel, penggunaan port serial
terkesan lebih rumit. Berikut ini keuntungan-keuntungan penggunaan port serial
dibandingkan dengan port paralel :
1. Pada komunikasi dengan kabel yang panjang, masalah cable loss tidak
akan menjadi masalah besar dari pada kabel paralel. Port serial
mentransmisikan 1 pada level tegangan -3V sampai -25V dan 0 pada
level tegangan +3V sampai dengan +25V, sedangkan port paralel
mentransmisikan 0 pada level tegangan 0V dan 1 pada level tegangan
+5V.
2. Dibutuhkan jumlah kabel yang lebih sedikit, bisa hanya menggunakan tiga
kabel, yaitu saluran Transmit Data, saluran Receive Data, dan saluran
Ground (konfigurasi Null Modem).
3. Saat ini penggunaan mikrokontroller semakin populer. Kebanyakan
mikrokontroller sudah dilengkapi dengan SCI (Serial Communication
Interface) yang sudah digunakan untuk komunikasi dengan port serial
komputer.
2.3.6 Pengaksesan Port Serial Pada Borland Delphi
Borland Delphi menyediakan komponen khusus untuk mengakses port serial
komputer yaitu komponen TComport. TComport menyediakan fasilitas-fasilitas

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


41

Tugas MicroControl MMI Server

untuk mengirim dan menerima data melalui port serial. Properti-properti


komponen TComport yang sering digunakan antara lain:

Port : Menentukan port dari Com yang digunakan apakah COM1, COM2,
COM3 dan seterusnya

BaudRate : Menentukan Nilai Baud Rate yang digunakan

DataBits : Jumlah Bit data yang digunakan

StopBits : Jumlah Bit Stop yang digunakan

Parity : Menentukan paritas yang digunakan

Connected : Jika bernilai true, maka koneksi ke COM aktif dan jika
bernilai false maka koneksi ke COM tidak aktif.

2.3.7 Borland Delphi


Borland Delphi merupakan suatu bahasa pemrograman yang memberikan
berbagai fasilitas pembuatan aplikasi visual. Untuk mengetahui pemrograman
visual terutama Borland Delphi, bagian ini membahas komponen-komponen pada
Delphi, bagaimana cara menjalankan program Borland Delphi dan Mengenal IDE
Delphi.
2.3.8 Menjalankan Program Borland Delphi
Langkah pertama adalah:
1. Mengklik tombol Start yang terletak pada bagian Taskbar
2. Memilih menu Programs
3. Memilih Borland Delphi 7, kemudian klik Delphi 7
4. Sesaat kemudian akan muncul tampilan lembar kerja Borland Delphi
seperti yang terlihat pada gambar 2.8.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


42

Tugas MicroControl MMI Server

Gambar 2.8. Lembar kerja Borland Delphi


2.3.9 Mengenal IDE Delphi
IDE (Integrated Development Environment) atau lingkungan pengembangan
terpadu pada program Delphi terbagi menjadi delapan bagian utama, yaitu: Main
Window, ToolBar, Component Palette, Form Designer, Code Editor, Object
Inspector, Code Explorer, dan Object TreeView .
Main Window
Jendela utama ini adalah bagian dari IDE yang mempunyai fungsi yang
sama dengan semua fungsi utama dari program aplikasi Windows lainnya. Jendela
utama Delphi terbagi menjadi tiga bagian, yaitu: Main Menu, Toolbar dan
Componen Pallete
Tollbar
Delphi memiliki beberapa toolbar yang masing-masing memiliki perbedaan
fungsi dan setiap tombol pada bagian toolbar berfungsi sebagai pengganti suatu
menu perintah yang sering digunakan. Toolbar terletak pada bagian bawah baris
menu. Pada kondisi default Delphi memiliki enam bagain toolbar, antara lain:
Standart, View, Debug, Desktops, Custom dan Componen Palette. Tombol-

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


43

Tugas MicroControl MMI Server

tombol yang terletak pada bagian toolbar dapat ditambah atau dikurangi sesuai
kebutuhan.
Component Pallete
Component Palette berisi kumpulan ikon yang melambangkan komponenkomponen yang terdapat pada VCL (Visual Component Library). Pada Componen
Palette Anda akan menemukan beberapa page control, seperti Standart,
Additional, Win32, System, Data Access dan lain-lain seperti tampak pada
gambar 2.9.

Gambar 2.9 Component Palette


Ikon tombol Pointer terdapat di setiap page control. Tombol ini dipakai untuk
menekan atau memilih posisi. untuk memilih sebuah item dari sebuah page
control, tombol pointer ini akan berada dalam keadaan tidak aktif. Hal ini berarti
Anda akan meletakkan komponen pada form, cukup dengan mengklik pada form.
Form Designer
Merupakan suatu objek yang dapat dipakai sebagai tempat untuk merancang
program aplikasi. Form berbentuk sebuah meja kerja yang dapat diisi dengan
komponen-komponen yang diambil dari Component Palette. Pada saat memulai
Delphi, Delphi akan memberikan sebuah form kosong yang disebut form1, seperti
gambar 2.10 di bawah ini.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


44

Tugas MicroControl MMI Server

Gambar 2.10 Lembar kerja Form


Sebuah form mengandung unit yang berfungsi untuk mengendalikan form
dan dapat mengendalikan komponen-komponen yang terletak dalam form dengan
menggunakan Object Inspector dan Code Editor.
Code Editor
Code Editor merupakan tempat untuk menuliskan kode program. Pada
bagian ini dapat dituliskan pernyataan-pernyataan dalam Object Pascal. Satu
diantara keuntungan bagi pengguna Delphi adalah tidak perlu menuliskan kodekode sumber, karena Delphi telah menyediakan kerangka penulisan sebuah
program seperti pada gambar 2.11 di bawah ini.

Gambar 2.11 Lembar kerja Code Editor

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


45

Tugas MicroControl MMI Server

Object Inspector
Digunakan untuk mengubah properti atau karakteristik dari sebuah
komponen. Object Inspector terdiri dari dua tab, yaitu Properties dan Events
seperti gambar 2.12 di bawah ini.

Gambar 2.12 Lembar kerja Object Inspector


Code Explorer
Code Explorer merupakan lembar kerja baru yang terdapat di dalam Delphi7
yang tidak ditemukan pada versi-versi sebelumnya. Code Explorer digunakan
untuk memudahkan pemakai berpindah antar file unit yang terdapat di dalam
jendela Code Editor. Untuk menutup Code Explorer, klik tanda silang yang
terdapat di sudut kanan atas, dan untuk membukanya kembali pilih menu View
Code Explorer dari main menu atau klik kanan dalam jendela Code Editor
kemudian pilih View Explorer.
Object TreeView
Object TreeView menampilkan diagram pohon dari komponen-komponen
yang bersifat visual maupun nonvisual yang telah terdapat dalam form, data
module, atau frame. Object TreeView juga menampilkan hubungan logika antar

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


46

Tugas MicroControl MMI Server

komponen. Apabila mengklik kanan salah satu item yang terdapat di dalam
diagram pohon, dapat dilihat konteks menu komponen versi sebelumnya. Untuk
mengakses menu secara penuh, klik kanan pada komponen yang sama dalam
form, data module, atau frame.
2.4

Operational Amplifier
Operasional Amplifier (Op-Amp) adalah piranti elektronik yang bisa

digunakan sebagai penguat arus ataupun penguat tegangan dengan sedikit


tambahan komponen ekstern.
2.4.1 Penguat Non Inverting
Penguat Non Inverting mempunyai isyarat keluaran yang tidak terbalik dari
masukannya. Gambar 2.13 berikut dalah konfigurasi dasar dari penguat Non
Inverting.
Vin

Vo

R1
R2

Gambar 2.13 Konfigurasi dasar Penguat Non Inverting


Besarnya Vout ditentukan oleh componen ekstenal R1 dan R2 dengan persamaan :
R1

Vout = 1 +
xVin
R2

2.4.2 Penguat Inverting


Penguat Inverting mempunyai isyarat keluaran yang terbalik dari
masukannya. Gambar 2.14 berikut dalah konfigurasi dasar dari penguat
Inverting.
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
47

Tugas MicroControl MMI Server

R1
R2
Vin

Vo

Gambar 2.14 Konfigurasi dasar Penguat Non Inverting


Besarnya Vout ditentukan oleh componen ekstenal R1 dan R2 dengan persamaan :
Vout =

R1
xVin
R2

2.4.3 Penguat Penjumlah


Penguat Penjumlah dalah penguat yang mempunyai beberapa masukan dan
satu keluaaran. Konfigurasi penguat penjumlah terlihat seperti pada gambar 2.15
berikut.
R1
R2
V1

R3
V2
Vn

Vo

Rn

Gambar 2.15. Konfigurasi Dasar Penguat Penjumlah


Besarnya Vout ditentukan oleh komponen ekstenal R1, R2, R3, ..Rn dengan
persamaan :
R1
R1
R1

Vout =
xV 1 +
xV 2 + .......... +
xVn
R3
Rn
R2

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


48

Tugas MicroControl MMI Server

2.5

Servo Motor DC
Servo Motor DC type ED-4400 adalah servo system yang mempunyai

berberapa modul. Tabel 2.15 dan Gambar 2.16 adalah tabel deskripsi fungsi dan
gambar skema rangkaian dari tiap modul tersebut.
Tabel 2.15. Deskripsi fungsi tiap modul ED-4400 servo system
Modul
U-151
U-152
U-153
U-154
U-155
U-156
U-157
U-158
U-159
U-161

Deskripsi
Dual Attenuator (0, 9/10 ....1/10 attenuations)
Summing Amplifier (gain : 0 dB, EXT, NET)
Pre-amplifier (gain : 20 dB)
Motor driver amplifier (10 watts)
Tacho Amp Unit
DC power suplly ( 15V 0.2 and motor power)
Potensiometer (reference) (1K or 10K 5W)
Potensiometer (Motor Coupling) (1K or 10K 5W)
Tachometer (FS 4000 RPM)
Servo motor :
- Motor : 12V, 4.5W
- Tacho Generator : Aprox 3Vp-p / 4000RPM
Function Generator (0.1 1Hz, 1Hz-10Hz and Ramp output)
Magnet Brake :
- Air gap : 4mm, 10 step variable
- Input Power : AC 220V, 50 60Hz

U-162
U-163

-15V COM +15V

-15V COM +15V

To Motor Drive Amp


G

-O/L

-15V

+O/L

COM

-O/L

+5V
+O/L

+
-+

SERVO DC POWER SUPPLY

U-153

U-156

DC AMPERE +

ON

U-154
OFF

-15V COM +15V

Tacho Motor
-

T
P

O
M

IN

GEAR

U-161

U-159

U-155

Gambar 2.16. Modul Sistem Servo Motor ED-4400

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


49

Tugas MicroControl MMI Server

BAB III
PERANCANGAN DAN ANALISIS
Man-Machine Interface untuk Sistem Servo Motor DC terdiri dari dua
bagian yaitu perangkat keras dan perangkat lunak. Perangkat kerasnya terdiri dari
satu set sistem servo motor DC, Microprocessor Trainer SK-8051, rangkaian
Digital to Analog Converter, rangkaian penyesuai level tegangan, dan beberapa
PC yang berfungsi sebagai server MMI dan Client MMI sedangkan perangkat
lunaknya yaitu software Microprocessor Trainer SK-8051, software server dan
Client MMI yang dibuat dalam bahasa pemrograman Borland Delphi Enterprise
Edition. Gambar 3.1 berikut ini adalah blok diagram Man-Machine Interface
untuk Sistem Servo Motor DC.
MICROPROCESSOR
TRAINER SK - 8051

DIGITAL TO
ANALOG
CONVERTER

PENYESUAI LEVEL
TEGANGAN

PENYESUAI LEVEL
TEGANGAN

SISTEM SERVO
MOTOR DC

RS232

SERVER MMI
(PC)

CLIENT MMI
(PC)
CLIENT MMI
(PC)

Jaringan komputer
Gambar 3.1. Blok Diagram Man-Machine Interface untuk Sistem Servo Motor

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


50

Tugas MicroControl MMI Server

Berikut ini penjelasan, rancangan, dan analisis dari masing-masing blok pada
gambar 3.1 di atas.

3.1

Perangkat Keras

A. Modul Mikroprosesor Trainer SK-8051


Modul Mikroprosesor Trainer SK-8051 adalah modul dengan 1 set
rangkaian yang di dalamnya sudah terdapat beberapa komponen pendukung yang
membentuk One Board Computer System Training Kit dengan MPU 8051
system. Namun tidak semua komponen tersebut dipakai dalam praktikum MMI
Server untuk Servo Motor DC ini. Komponen yang digunakan dalam Modul SK8051 hanya Mikrocontroller AT89C51 dan ADC0808. ADC0808 digunakan
untuk mengkonversi isyarat analog keluaran Servo Motor DC menjadi data digital
yang selanjutnya oleh mikrocontroller 89C51 mengirimkan data tersebut ke
komputer server. ADC0808 seperti dijelaskan pada bab 2 adalah ADC dengan 8
kanal input termultipleks. Pada praktikum ini digunakan kanal 2 karena kanal
lainnya telah digunakan untuk fungsi internal dalam modul SK-8051. Pada Modul
SK-8051 terdapat keluaran 8 bit yang terhubung langsung dengan port1 (P1)
mikrokontroller. Keluaran 8 bit ini digunakan untuk input DAC0808 yang dibuat
khusus untuk mengendalikan servo motor DC dalam modul

ED-4400 servo

system. Untuk berkomunikasi dengan Komputer Server Modul SK-8051


dilengkapi dengan fasilitas komunikasi serial RS232.

B. Rangkaian Digital To Analog Converter


Rangkaian Digital To Analog Converter berfungsi untuk mengkonversi data
digital keluaran Mikrocontoller menjadi tegangan analog yang akan diinputkan ke

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


51

Tugas MicroControl MMI Server

rangkaian servo motor DC. Dalam rancangan ini digunakan DAC0808. Gambar
3.2 adalah gambar rangkaian DAC0808 sebagai berikut :
3K

Port P1
AT89C51
(SK-8051)

D7
D6
D5
D4
D3
D2
D1
D0

5 13 14
6
15
7
2
8 DAC
9 0808
10
4
11
11
12 3

+15V
3K
1K

741
1uF

Vout (0V-+5V)

Gambar 3.2. Gambar Rangkaian DAC 0808


Dengan tegangan +15V dan hambatan 3Kohm pada penyemat 14,
didapatkan arus referensi sebesar 5mA. Pada rangkaian OP-Amp 741 diberi
hambatan 1Kohm, sehingga tegangan keluaran DAC sebesar +5V.
Keluaran P1 dari mikrokontroller AT89C51 yang tersedia pada modul SK8051 dihubungkan dengan masukan D0 D7 DAC 0808. Keluaran rangkaian
DAC0808 pada gambar 3.2 di atas berlevel tegangan 0V sampai +5V. Sedangkan
masukan servo motor menurut pengukuran yang telah dilakukan berlevel
tegangan -1,1V sampai +1,1V untuk kecepatan 0 sampai 4000 rpm dengan
polaritas negatif dan positif. Oleh karena itu, keluaran rangkaian DAC0808 tidak
bisa dihubungkan secara langsung dengan masukan rangkaian servo motor DC.
Untuk itu diperlukan rangkaian penggeser level dan penyesuai tegangan keluaran
DAC0808.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


52

Tugas MicroControl MMI Server

C. Rangkaian Penggeser Level dan Penyesuai Tegangan Keluaran DAC0808


Rangkaian Penggeser Level dan Penyesuai Tegangan Keluaran DAC0808
dibuat dengan menggunakan Op-Amp dengan memperhatikan kondisi keluaran
DAC0808 dan masukan Rangkaian Servo Motor DC. Tugas utama rangkaian ini
adalah menggeser setengah level tegangan positif dari 0V sampai +5V ke level
tegangan negatif sekaligus menyesuaikan level tegangan tersebut agar masuk
dalam range -1,1V sampai +1,1V yang diinginkan oleh masukan rangkaian servo
motor DC. Untuk merealisasikannya dibuat grafik linier keluaran DAC (sebagai
masukan rangkaian) dan masukan rangkaian servo motor DC (sebagai keluaran
rangkaian) seperti gambar 3.3 berikut ini :
Vout
+1,1V

0V

+2,5

+5V

Vin

-1,1V

Gambar 3.3. Grafik Masukan dan Keluaran Rangkaian Penggeser dan Penyesuai
level Tegangan DAC0808

Persamaan matematis dari grafik tersebut adalah :


Vout =

2,2
Vin 1,1
5

................................. pers. 3.1

Dari persamaan tersebut dibuat rangkaian dengan menggunakan Op-Amp


seperti terlihat dalam gambar 3.4 berikut.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


53

Tugas MicroControl MMI Server

2,2K

Vin
+15
V

5K
30K

Vou

Gambar 3.4. Rangkaian Penggeser Level dan penyesuai Tegangan DAC0808


Keluaran rangkaian tersebut membalik (inverting). Untuk mengembalikan
ke kondisi semula, keluarannya diinputkan ke rangkaian inverting dengan
penguatan 1, sehingga rangkaian lengkap penggeser level dan penyesuai tegangan
keluaran DAC adalah seperti terlihat dalam gambar 3.5 berikut ini.
2,2
K

1K

5K
Vin
+15
V

1K

30K
+

Vo

Gambar 3.5. Rangkaian Lengkap Penggeser Level dan penyesuai Tegangan DAC

D. Sistem Servo Motor DC


Sistem Servo Motor DC type ED4400 seperti yang dijelaskan pada bab II
mempunyai beberapa modul. Pada percobaan ini, tidak semua modul tersebut
digunakan. Hal ini disesuaikan dengan kebutuhan pengendalian kecepatan putaran
motor. Modul-modul yang digunakan adalah : U-153 (Pre-amplifier), U-154
(Motor Driver Amplifier), U-156 (DC Power Supply), U-155 (Tacho Amplifier
unit), U-161 (Servo Motor), dan U-159 (Tacho Meter). Gambar 3.6 adalah
gambar rangkaian sistem servo motor yang digunakan untuk percobaan ini

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


54

Tugas MicroControl MMI Server

-15V COM +15V

-15V COM +15V

To Motor Drive Amp

-O/L

-15V

+O/L

COM

-O/L

+15V
+O/L

+
-+

SERVO DC POWER SUPPLY


-

U-156

DC AMPERE +

ON

U-154

U-153

OFF

-15V COM +15V

Tacho Motor
-

T
P

O
M

IN

GEAR

U-161

U-159

U-155

Ke Rangkaian Penggesel Level dan Penyesuai Tegangan Servo Motor DC


DariRangkaian Penggesel Level dan Penyesuai Tegangan DAC0808

Gambar 3.6. Rangkaian sistem servo motor DC


Keluaran rangkaian Servo Motor DC di atas menurut pengukuran yang telah
dilakukan berlevel tegangan -10,6V sampai +10,6V dengan polaritas putar kiri
dan putar kanan. Sedangkan masukan ADC0808 pada modul SK-8051 berlevel
tegangan 0V sampai +5V. Oleh karena itu, keluaran rangkaian Servo Motor DC
ini tidak bisa dihubungkan secara langsung dengan masukan ADC0808. Untuk itu
diperlukan rangkaian penggeser dan penyesuai level tegangan keluaran Servo
Motor DC.

E. Rangkaian Penggeser Level dan Penyesuai Tegangan Keluaran Servo


Motor DC
Rangkaian Penggeser Level dan Penyesuai Tegangan Keluaran Servo Motor
DC dibuat dengan menggunakan Op-Amp dengan memperhatikan kondisi
keluaran Servo Motor DC dan masukan rangkaian ADC0808 pada modul SK-

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


55

Tugas MicroControl MMI Server

8051. Tugas utama rangkaian ini adalah menggeser setengah level tegangan
negatif keluaran servo motor DC dari -10,6V sampai +10,6V ke level tegangan
positif sekaligus menyesuaikan level tegangan tersebut agar masuk dalam range
0V sampai +5V seperti yang diinginkan oleh masukan rangkaian ADC0808.
Untuk merealisasikannya dibuat grafik linier keluaran Servo Motor DC (sebagai
masukan rangkaian) dan masukan rangkaian ADC0808 (sebagai keluaran
rangkaian) seperti gambar 3.7 berikut ini :
Vout

+5V

2,5V

Vin
-10,6V

0V

+10,6V

Gambar 3.7. Grafik Masukan dan Keluaran Rangkaian Penggeser Level dan
Penyesuai Tegangan Servo Motor DC
Persamaan matematis dari grafik tersebut adalah :

Vout =

5
Vin + 2,5
21,2

......................................... per. 3.2

Dari persamaan tersebut dibuat rangkaian dengan menggunakan Op-Amp


seperti terlihat dalam gambar 3.8 berikut.
5K
Vin
+15V

50K
30K

Vout

Gambar 3.8. Rangkaian Penggeser Level dan penyesuai Tegangan DAC

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


56

Tugas MicroControl MMI Server

Keluaran rangkaian tersebut membalik (inverting). Untuk mengembalikan


ke kondisi semula, keluarannya diinputkan ke rangkaian inverting dengan
penguatan 1, sehingga rangkaian lengkap penggeser level dan penyesuai tegangan
keluaran Servo Motor DC adalah seperti terlihat dalam gambar 3.9 berikut ini.
5K

1
K

50K
Vin
+15
V

1K

30K
+

Vout

Gambar 3.9. Rangkaian Lengkap Penggeser Level dan penyesuai Tegangan Servo
Motor DC

F. Server/Client MMI
MMI merupakan sistem interface yang digunakan oleh pengguna (operator)
dalam melakukan monitoring dan pengendalian sistem. MMI dapat berupa Sistem
komputer yang terdiri komputer server, komputer-komputer klien yang saling
terkoneksi dalam suatu jaringan.
Dalam praktikum ini dibangun sistem MMI berupa :
-

1 buah komputer server

2 buah laptop sebagai klien

Perangkat jaringan (sistem wireless) : 1 buah Access Point & 1 buah USB
Wireless Client untuk komputer server & 2 buah builtin wireless client
pada laptop klien

Perangkat Lunak Server MMI dan Client MMI

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


57

Tugas MicroControl MMI Server

Gambar 3.10. Konfigurasi MMI pada Percobaan Praktikum


Langkah-langkah dilakukan adalah sebagai berikut :
-

Melakukan setup wireless pada komputer server dan laptop klien dan access
point

Melakukan konfigurasi protokol TCP/IP dengan penentuan alamat IP bagi


masing-masing komputer dan perangkat jaringan.

Melakukan tes koneksi jaringan

Uji coba fungsi software MMI server dan klien.

Setting Protocol TCP/IP

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


58

Tugas MicroControl MMI Server

Setting WLAN IP komputer server

Setting WLAN IP komputer client1

Setting WLAN IP komputer client2

Setting WLAN IP Access Point

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


59

Tugas MicroControl MMI Server

3.2

Perangkat Lunak
Agar dapat dapat bekerja menjadi sebuah Man-Machine Interface untuk

Sistem Servo Motor DC, perangkat keras seperti yang dijelaskan di atas harus
didukung oleh perangkat lunak (software). Dalam hal ini ada tiga bagian
perangkat lunak yang dibuat yaitu perangkat lunak pada mikrokontroller (modul
SK-8051), perangkat lunak pada MMI-Server, dan perangkat lunak pada Client.
Ketiga perangkat lunak tersebut mempunyai cara kerja yang berbeda.

3.2.1 Mikrokontroller (Modul SK-8051)


Untuk dapat menerima dan mengirim data ke server, mikrokontroller pada
modul SK-8051 harus diprogram terlebih dahulu. Data yang dikirim/diterima dari
server berupa data biner 8 bit dalam format serial melalui port serial RS232.
Program yang dibuat akan mengikuti alur seperti dalam flowchart berikut :
Start
Inisialisasi port serial Uc

Data siap
diterima ?

Y
Data =Buffer
Port1 = Data
Baca Data ADC

Data siap dikirim

Y
SBuff = Data
Selesai

Gambar 3.11. Flowchart Program mikrokontroller

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


60

Tugas MicroControl MMI Server

Berikut ini linsting program untuk mikrokontroller SK-8051


ORG 8000H
MOV SP,#40H
SJMP START
L563
EQU
CTC_0
EQU
CTC_1
EQU
CTC_2
EQU
CTC_CWR EQU
ADC_0
EQU
ADC_1
EQU
ADC_2
EQU

0FF38H
0FF40H
0FF41H
0FF42H
0FF43H
0FF48H
0FF49H
0FF4AH

START: ACALL INIT


UTAMA: ACALL RX
ACALL KONV
ACALL TX
SJMP UTAMA
INIT:

MOV TMOD,#20H
MOV TH1,#0FDH
MOV SCON,#50H
SETB TR1
RET

; timer 1 mode 2(8-bit,isi-ulang)


; 9600 baud rate
; Mode serial: 8-bit UART
; Jalankan Timer 1

RX:

JNB RI,$
MOV A,SBUF
MOV P1,A
CLR RI
RET

; tunggu data dari serial


; pindahkan data serial ke ACC
; data ACC ke Port1
; clear flag RI

TX:

MOV SBUF,A
JNB TI,$
CLR TI
RET

; memindahkan isi akumulator ke buffer


; tunggu sampai data terkirim semua
; hapus TI

KONV:

MOV DPTR,#CTC_CWR
MOV A,#01110110B
MOVX @DPTR,A
MOV DPTR,#CTC_1
MOV A,#10
MOVX @DPTR,A
MOV A,#0
MOVX @DPTR,A
CALL T_adc
MOV DPTR,#ADC_1
MOVX @DPTR,A
MOV B,#100
DJNZ B,$

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


61

Tugas MicroControl MMI Server

MOVX A,@DPTR
MOV DPTR,#L563
MOVX @DPTR,A
RET
T_adc:

PUSH 1EH
PUSH 1FH
MOV 1EH,#100

T_a1:

MOV 1FH,#0
DJNZ 1FH,$
DJNZ 1EH,T_a1
POP 1FH
POP 1EH
RET
END

3.2.2 MMI-Server
Man-Machine Interface Server adalah software yang dirancang untuk
mengatur koneksi Client dan memberikan layanan tranfer data dari client ke
server untuk mengatur kecepatan servo motor.

Gambar tampilan program

Gambar 3.12. Tampilan Software MMI-Server

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


62

Tugas MicroControl MMI Server

Linsting Program
unit UnitMMI;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ScktComp, jpeg, Buttons, CPort;
const WM_REFRESHCLIENT = WM_USER + 100;
type
TFormServer = class(TForm)
Timer1: TTimer;
ServerMMI_1: TServerSocket;
ServerMMI_2: TServerSocket;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label10: TLabel;
Label11: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
CB1: TCheckBox;
CB2: TCheckBox;
Bevel1: TBevel;
Panel1: TPanel;
Panel2: TPanel;
Bevel2: TBevel;
Label2: TLabel;
Image1: TImage;
SettingPort: TSpeedButton;
OpenPort: TSpeedButton;
Port: TComPort;
TutupProgram: TSpeedButton;
Bevel3: TBevel;
Label5: TLabel;
procedure WMNCHitTest(var msg :
TWMNCHitTest);
WM_NCHitTest;
procedure ServerMMI_1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


63

message

Tugas MicroControl MMI Server

procedure ServerMMI_1ClientRead(Sender: TObject;


Socket: TCustomWinSocket);
procedure ServerMMI_1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure CB1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ServerMMI_2ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerMMI_2ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerMMI_2ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure CB2Click(Sender: TObject);
procedure SettingPortClick(Sender: TObject);
procedure OpenPortClick(Sender: TObject);
procedure TutupProgramClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormServer: TFormServer;
data_terima, data_kirim : byte;
selisih : integer;
implementation
procedure TFormServer.WMNCHitTest(var msg : TWMNCHitTest);
begin
inherited;
if (msg.Result = htClient ) then
if (msg.YPos < Top + 20)then msg.Result:=htCaption;
end;
{$R *.dfm}
procedure TFormServer.SettingPortClick(Sender: TObject);
begin
Port.ShowSetupDialog;
end;
procedure TFormServer.OpenPortClick(Sender: TObject);
begin
if Port.Connected then Port.Close

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


64

Tugas MicroControl MMI Server

else Port.Open;
end;
procedure TFormServer.Timer1Timer(Sender: TObject);
var a : byte;
begin
a:=data_kirim+selisih;
Port.Write(a,1);
Port.Read(data_terima,1);
selisih:=data_kirim-data_terima;
end;
procedure TFormServer.ServerMMI_1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Label15.caption:='Connected
'+Socket.RemoteHost+'('+Socket.RemoteAddress+')';
PostMessage(Handle,WM_REFRESHCLIENT,0,0);
CB1.Checked:=false;
CB1.Enabled:=true;
end;
procedure TFormServer.ServerMMI_1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Label10.Caption:='-';
Label11.Caption:='-';
Label5.Caption:='-';
Label15.caption:='Disconnected
'+Socket.RemoteHost+'('+Socket.RemoteAddress+')';
PostMessage(Handle,WM_REFRESHCLIENT,0,0);
CB1.Checked:=false;
CB1.Enabled:=false;
end;
procedure TFormServer.ServerMMI_1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var DataClient1:string[5];
Pol
:string[1];
Kec
:string[4];
begin
DataClient1:=Socket.ReceiveText;
pol:=copy(DataClient1,1,1);
Kec:=copy(DataClient1,2,4);
if pol='0' then
begin

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


65

Tugas MicroControl MMI Server

Label10.Caption:='Putar Kanan';
Label11.Caption:=kec+' rpm';
data_kirim:=round(128*StrToInt(kec)/4000) + 127;
Label5.Caption:=IntToStr(data_kirim)+' desimal';
end else
if pol='1' then
begin
Label10.Caption:='Putar Kiri';
Label11.Caption:=kec+' rpm';
data_kirim:=round(127-127*StrToInt(kec)/4000);
Label5.Caption:=IntToStr(data_kirim)+' desimal';
end
end;
procedure TFormServer.CB1Click(Sender: TObject);
begin
selisih:=0;
if CB1.Checked=true then
begin
ServerMMI_1.Socket.Connections[0].SendText('YA');
CB2.Checked:=false;
Timer1.Enabled:=true;
end;
if CB1.Checked=false then
begin
ServerMMI_1.Socket.Connections[0].SendText('TIDAK');
Label10.Caption:='-';
Label11.Caption:='-';
Label5.Caption:='-';
if CB2.Checked=false then timer1.Enabled:=false;
end;
end;
procedure TFormServer.ServerMMI_2ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Label16.caption:='Connected
'+Socket.RemoteHost+'('+Socket.RemoteAddress+')';
PostMessage(Handle,WM_REFRESHCLIENT,0,0);
CB2.Checked:=false;
CB2.Enabled:=true;
end;
procedure TFormServer.ServerMMI_2ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


66

Tugas MicroControl MMI Server

Label10.Caption:='-';
Label11.Caption:='-';
Label5.Caption:='-';
Label16.caption:='Disconnected
'+Socket.RemoteHost+'('+Socket.RemoteAddress+')';
PostMessage(Handle,WM_REFRESHCLIENT,0,0);
CB2.Checked:=false;
CB2.Enabled:=false;
end;
procedure TFormServer.ServerMMI_2ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var DataClient2:string[5];
Pol
:string[1];
Kec
:string[4];
begin
DataClient2:=Socket.ReceiveText;
pol:=copy(DataClient2,1,1);
Kec:=copy(DataClient2,2,4);
if pol='0' then
begin
Label10.Caption:='Putar Kanan';
Label11.Caption:=kec+' rpm';
data_kirim:=round(128*StrToInt(kec)/4000) + 127;
Label5.Caption:=IntToStr(data_kirim)+' desimal';
end else
if pol='1' then
begin
Label10.Caption:='Putar Kiri';
Label11.Caption:=kec+' rpm';
data_kirim:=round(127-127*StrToInt(kec)/4000);
Label5.Caption:=IntToStr(data_kirim)+' desimal';
end;
end;
procedure TFormServer.CB2Click(Sender: TObject);
begin
selisih:=0;
if CB2.Checked=true then
begin
ServerMMI_2.Socket.Connections[0].SendText('YA');
CB1.Checked:=false;
Timer1.Enabled:=true;
end;
if CB2.Checked=false then
begin

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


67

Tugas MicroControl MMI Server

ServerMMI_2.Socket.Connections[0].SendText('TIDAK');
Label10.Caption:='-';
Label11.Caption:='-';
Label5.Caption:='-';
if CB1.Checked=false then timer1.Enabled:=false;
end;
end;
procedure TFormServer.TutupProgramClick(Sender: TObject);
var stop : byte;
begin
stop:=127;
port.Write(stop,1);
Close;
end;
end.

3.2.3 Client 2
Gambar tampilan program

Gambar 3.13. Tampilan Software MMI-Client1

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


68

Tugas MicroControl MMI Server

Linsting Program
unit UnitClientMMI_1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ScktComp, Buttons, jpeg, Mask;
type
TFormClient = class(TForm)
ClientMMI: TClientSocket;
Label2: TLabel;
Image1: TImage;
Panel1: TPanel;
Label3: TLabel;
Label7: TLabel;
Polaritas: TLabel;
Label4: TLabel;
Label8: TLabel;
Label5: TLabel;
Label6: TLabel;
SB: TScrollBar;
Label1: TLabel;
Label9: TLabel;
InIP: TEdit;
Koneksi: TCheckBox;
Label10: TLabel;
SpeedButton1: TSpeedButton;
OK: TSpeedButton;
procedure WMNCHitTest(var msg :
TWMNCHitTest); message
WM_NCHitTest;
procedure PolaritasClick(Sender: TObject);
procedure KoneksiClick(Sender: TObject);
procedure ClientMMIRead(Sender: TObject; Socket: TCustomWinSocket);
procedure InIPChange(Sender: TObject);
procedure SBChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure OKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


69

Tugas MicroControl MMI Server

FormClient: TFormClient;
data_terima, data_kirim : byte;
pol:string[1];
kec:string[4];
implementation
procedure TFormClient.WMNCHitTest(var msg : TWMNCHitTest);
begin
inherited;
if (msg.Result = htClient ) then
if (msg.YPos < Top + 20)then msg.Result:=htCaption;
end;
{$R *.dfm}
procedure TFormClient.PolaritasClick(Sender: TObject);
begin
if polaritas.Caption='Putar Kanan' then Polaritas.Caption:='Putar Kiri'
else Polaritas.Caption:='Putar Kanan';
SBChange(sender);
OKClick(Sender);
end;
procedure TFormClient.KoneksiClick(Sender: TObject);
begin
if not ClientMMI.Active then
begin
ClientMMI.Address:=InIP.Text;
end;
ClientMMI.Active:=Koneksi.Checked;
if koneksi.Checked=false then
begin
Panel1.Enabled:=false;
Label2.Visible:=false;
end;
end;
procedure TFormClient.ClientMMIRead(Sender: TObject;
Socket: TCustomWinSocket);
var status:string[5];
begin
status:=ClientMMI.Socket.ReceiveText;
if status='YA' then
begin
Label2.Visible:=true;

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


70

Tugas MicroControl MMI Server

Label2.Caption:='Status : Client diperbolehkan mengirim data';


Panel1.Enabled:=true;
SBChange(sender);
end;
if status='TIDAK' then
begin
Label2.Caption:='Status : Client tidak diperbolehkan mengirim data';
Panel1.Enabled:=false;
end;
end;
procedure TFormClient.InIPChange(Sender: TObject);
begin
if InIP.Text='' then Koneksi.Enabled:=false else Koneksi.Enabled:=true;
end;
procedure TFormClient.SBChange(Sender: TObject);
begin
Label1.Caption:=IntToStr(SB.Position);
kec:=Label1.Caption;
if Polaritas.Caption='Putar Kanan' then pol:='0' else
if Polaritas.Caption='Putar Kiri' then pol:='1';
end;
procedure TFormClient.SpeedButton1Click(Sender: TObject);
begin
Close;
end;
procedure TFormClient.OKClick(Sender: TObject);
begin
ClientMMI.Socket.SendText(pol+kec);
end;
end.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


71

Tugas MicroControl MMI Server

3.2.4 Client 2
Gambar tampilan program

Gambar 3.14. Tampilan Software MMI-Client2

Linsting Program
unit UnitClientMMI_2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ScktComp, Buttons, jpeg, Mask;
type
TFormClient = class(TForm)
ClientMMI: TClientSocket;
Label2: TLabel;
Image1: TImage;
Panel1: TPanel;
Label3: TLabel;
Label7: TLabel;
Polaritas: TLabel;
Label4: TLabel;
Label8: TLabel;

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


72

Tugas MicroControl MMI Server

Label5: TLabel;
Label6: TLabel;
SB: TScrollBar;
Label1: TLabel;
Label9: TLabel;
InIP: TEdit;
Koneksi: TCheckBox;
Label10: TLabel;
SpeedButton1: TSpeedButton;
OK: TSpeedButton;
procedure WMNCHitTest(var msg : TWMNCHitTest); message
WM_NCHitTest;
procedure PolaritasClick(Sender: TObject);
procedure KoneksiClick(Sender: TObject);
procedure ClientMMIRead(Sender: TObject; Socket: TCustomWinSocket);
procedure InIPChange(Sender: TObject);
procedure SBChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure OKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormClient: TFormClient;
data_terima, data_kirim : byte;
pol:string[1];
kec:string[4];
implementation
procedure TFormClient.WMNCHitTest(var msg : TWMNCHitTest);
begin
inherited;
if (msg.Result = htClient ) then
if (msg.YPos < Top + 20)then msg.Result:=htCaption;
end;
{$R *.dfm}
procedure TFormClient.PolaritasClick(Sender: TObject);
begin
if polaritas.Caption='Putar Kanan' then Polaritas.Caption:='Putar Kiri'
else Polaritas.Caption:='Putar Kanan';

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


73

Tugas MicroControl MMI Server

SBChange(sender);
OKClick(Sender);
end;
procedure TFormClient.KoneksiClick(Sender: TObject);
begin
if not ClientMMI.Active then
begin
ClientMMI.Address:=InIP.Text;
end;
ClientMMI.Active:=Koneksi.Checked;
if koneksi.Checked=false then
begin
Panel1.Enabled:=false;
Label2.Visible:=false;
end;
end;
procedure TFormClient.ClientMMIRead(Sender: TObject;
Socket: TCustomWinSocket);
var status:string[5];
begin
status:=ClientMMI.Socket.ReceiveText;
if status='YA' then
begin
Label2.Visible:=true;
Label2.Caption:='Status : Client diperbolehkan mengirim data';
Panel1.Enabled:=true;
SBChange(sender);
end;
if status='TIDAK' then
begin
Label2.Caption:='Status : Client tidak diperbolehkan mengirim data';
Panel1.Enabled:=false;
end;
end;
procedure TFormClient.InIPChange(Sender: TObject);
begin
if InIP.Text='' then Koneksi.Enabled:=false else Koneksi.Enabled:=true;
end;
procedure TFormClient.SBChange(Sender: TObject);
begin
Label1.Caption:=IntToStr(SB.Position);
kec:=Label1.Caption;
if Polaritas.Caption='Putar Kanan' then pol:='0' else

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


74

Tugas MicroControl MMI Server

if Polaritas.Caption='Putar Kiri' then pol:='1';


end;
procedure TFormClient.SpeedButton1Click(Sender: TObject);
begin
Close;
end;
procedure TFormClient.OKClick(Sender: TObject);
begin
ClientMMI.Socket.SendText(pol+kec);
end;
end.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


75

Tugas MicroControl MMI Server

BAB IV
KESIMPULAN DAN SARAN
A.

Kesimpulan

 Tegangan input dari sistem servo motor ED 4400 adalah 0V sampai


1,1V untuk polaritas positif dan 0V sampai -1,1V untuk polaritas negatif
yang sebanding dengan kecepatan putaran motor sebesar 0 rpm sampai
4000 rpm.

 Tegangan output servo motor adalah sebesar 0V sampai 10,6V untuk


polaritas positif dan 0V sampai -10,6V untuk polaritas negatif yang
sebanding dengan kecepatan putaran motor sebesar 0 rpm sampai 4000
rpm.

 Tegangan keluaran DAC 0808 yang dibuat adalah sebesar 0V sampai


+5V. Agar dapat diinputkan ke sistem servo motor digunakan rangkaian
penggeser level dan penyesuai tegangan.

 Data biner yang dikirim ke modul SK-8051 untuk menggerakkan motor


dengan polaritas positif adalah 01111111b (127) sampai 11111111b
(255) yang merepresentasikan kecepatan putaran motor dari 0 rpm
sampai 4000 rpm putar kanan, sedangkan data biner yang dikirim untuk
mengerakkan motor dengan polaritas negatif adalah 01111111b (127)
sampai 00000000b (0) yang merepresentasikan kecepatan putaran motor
dari 0 rpm sampai 4000 rpm putar kiri.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


76

Tugas MicroControl MMI Server

B.

Saran

 Untuk praktikum MMI berikutnya, supaya dilanjutkan dengan


pengaturan posisi motor.

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


77

Tugas MicroControl MMI Server

DAFTAR PUSTAKA

Paulus A. Nalwan, 2003, Teknik Antar Muka dan Pemrograman, Elex Media
Computindo, Jakarta
Retna prasetyo, 2004, Interfacing Port Paralel & Port Serial Komputer dengan
VB, Yogyakarta
Rahmat Setyawan, 2006, Mikrokontroller MCS-51, Graha Ilmu, Yogyakarta
Tim Lab Mikroprosessor, 2006, Pemrograman Mikrokontroller AT 89S51 deng
an /C++ dan Assembler, Andi, Yogyakarta
Users Manual One Chip 8 Bit Microprocessor Control Trainer, SkLab
Hasmini dkk, 2007, Penuntun Praktikum Sistem Kendali Digital, Unhas,
Makassar
Userss Manual Servo Motor System ED-4400

Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait


78

Anda mungkin juga menyukai