• Tidak ada hasil yang ditemukan

BAB I P E N D A H U L U A N. Man-Machine Interface (MMI) adalah kebutuhan standar di dunia industri

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB I P E N D A H U L U A N. Man-Machine Interface (MMI) adalah kebutuhan standar di dunia industri"

Copied!
79
0
0

Teks penuh

(1)

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.

1.2 Tujuan

o Mengetahui cara kerja Servo Motor DC type ED-4400 serta dapat

merangkainya membentuk sistem pengontrolan kecepatan motor loop

tertutup.

PROSES INDUSTRI

(INDUSTRIAL PROCESSES)

Pengendalian (Control)

Pemantauan

(Monitoring and Data

Acquisition)

MMI

(2)

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 pada

(3)

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

(4)

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

(5)

Gambar 2.1 Tata letak komponen dalam modul SK-8051

Tabel 2.1 Peta alamat SK-8051

ALAMAT DESKRIPSI KETERANGAN 0000 – 7FFF 8000 – FEFF FF00 – FFFF ROM RAM I/O PROGRAM MEMORY

PROGRAM MEMORY + DATA MEMORY I/O

Tabel 2.2 Peta alamat I/O SK-8051

ALAMAT DEFENISI KETERANGAN FF00

FF01

LCD_CMD

LCD_DATA LCD

FF10 KEYPAD INPUT BUFFER 8 BIT UNTUK KEYPAD FF20 FF21 FF22 FF23 EXT_A EXT_B EXT_C EXT_CMD 8255 UNTUK EKSTERNAL

FF24 DAC OUTPUT LATCH 8 BIT UNTUK D/A CONVERTER

FF28 BUTTON INPUT BUFFER PEMBALIK 8 BIT FF2C FND INPUT LATCH 8 BIT UNTUK FND

(6)

FF30 FF31 FF32 FF33 DOT_A DOT_B DOT_C DOT_CMD

8255 UNTUK DOT MATRIKS

FF34 FF35 FF36 FF37 WR_A WR_B WR_C WR_CMD AT89C51 PROGRAMMER 8255

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

(7)

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

(8)

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

(9)

Format ANL A, Alamat data

Operasi (A) ← (A) AND (Alamat data)

Keterangan instruksi ini meng-ANL kan isi alamat data dengan isi akumulator Contoh 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.

(10)

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

(11)

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

(12)

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

(13)

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.

(14)

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.

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

Format MOVC A, @A + DPTR Operasi (A) ← ((A) + (DPTR))

Keterangan instruksi ini menjumlahkan isi data pointer dengan ini akumulator. Hasil penjumlahan merupakan alamat kode memory dan isinya akan dipindahkan ke akumulator.

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

(20)

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

(21)

Keterangan instruksi ini meng-OR kan isi memori yang lokasinya ditunjukkan oleh isi register r dengan isi akumulator. Hasilnya disimpan di akumulator.

Contoh 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

(22)

Format ORL Alamat data, A

Operasi (Alamat data) ← (Alamat data) OR A

Keterangan instruksi ini meng OR kan isi akumulator dengan isi alamat data tertentu. Hasilnya disimpan dalam memori data pada alamat yang bersangkutan

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

(23)

Operand A Akumulator Format RL A

Operasi

Keterangan instruksi ini memutar setiap bit dalam akumulator serta posisi ke kiri. Bit paling besar (MSB) bergerak ke bit paling kecil (LSB).

Contoh RL A

RLC (Rotate Accumulator And Carry Flag Left)

Operand A Akumulator Format RLC A

Operasi

Keterangan 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

Contoh 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 Carry Flag Format SETB C

Operasi (C) <-I Contoh SETB C

SETB (Set Bit)

Operand Alamat bit 0 <= Alamat bit <= 255 Format SETB Alamat bit

Operasi (Alamat bit) <- 1

(24)

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.

(25)

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

(26)

Keterangan instruksi ini akan menukar isi nibble bawah dari lokasi memori yang alamatnya ditunjukkan oleh isi register r dengan isi nibble bawah akumulator.

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

(27)

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

(28)

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

(29)

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

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 In3 In4 In5 In6 SC EOC D3 OE Clock Vcc Vref (+) Gnd D1 In2 In1 In0 ADD A ADD B ADD C ALE D7 D6 D5 D4 D0 D2

A

D

C

0

8

0

9

(30)

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 Simbol I/O Deskripsi 1-5 26-28 In7 – In3 In0 – In2 I I

Input analog pin, salah satu dari pin dapat dipilih, tergantung pada pengaturan data pin ADD A, ADD B ADD C.

21-18 17 14 8 15 D7 – D4 D0 D1 D3 D2 O O O O O

Pin output ini adalah hasil dari pengubahan. Hasilnya adalah 8 bit data paralel.

10 Clock I Masukan detak 23 24 25 ADD A ADD B ADD C I I I

Pin input untuk pemilihan saluran masukan analog.

6 Star Conversion I Pin untuk memulai konversi

22 ALE I Address Latch Enable, penguncian alamat 7 EOC I Pin untuk sinyal akhir conversi

9 OE I Output Enable, agar output dapat dibaca 12 Vref(+) - Tegangan referensi +

16 Vref(-) - Tegangan referensi - 11 VCC - Pin catu daya 13 GND - 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 ADD A ADD B ADD C 0 1 2 3 4 L L L L H L L H H L L H L H L

(31)

5 6 7 H H H L H H H L H

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

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 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 NC kompensasi Gnd V reff- Vee Vreff+ Iout Vcc D7 D0 D6 D1 D5 D2 D4 D3 DAC 0 8 0 8

(32)

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’

(33)

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

Gambar 2.5. Pengiriman huruf A tanpa paritas

Kecepatan transmisi (baud rate) dapat dipilh bebas dalam rentang waktu

tertentu. Baud rate yang umum dipakai hádala 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 hádala estándar

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. 5V

0 V

(34)

Estándar ini hanya menyangkut komunikasi data antara komputer (Data Terminal

Equipment – DTE) dengan alat-alat pelengkap komputer (Data

Circuit-Terminating Equipment-DCE). Estándar RS232 inilah yang biasa digunakan pada

port serial IBM-PC kompatibel.

Stándar 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.

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 +25V

0 V

-25V

START

(35)

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 karákter Xon (tipikalnya karákter ASCII 17) dan karákter Xoff

(tipikalnya karákter 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 karákter Xon ke komputer dan komputer

akan mengirimkan data selanjutnya sampai data terkirim semua atau komputer

menerima carácter Xoff lagi. Keuntungan flow control secara software ini ádalah

hanya diperlukan kabel sedikit karena carácter 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

(36)

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

Nama

Sinyal Direction Keterangan 1 2 3 4 5 6 7 8 9 DCD RxD TxD DTR GND DSR RST CTS RI 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.

(37)

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

register yang digunakan untuk komunikasi port serial ini. Tabel 2.7 berikut ini

(38)

Tabel 2.7 Nama register dan alamatnya

Nama Register COM1 COM2 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

3F8h 3F8h 3F8h 3F9h 3F9h 3FAh 3FBh 3FCh 3FDh 3FEh 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) Angka Pembagi 300 600 1200 1800 2400 4800 9600 0180h 0C00h 0060h 0040h 0030h 0018h 000Ch

(39)

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

1 2

3

4,5,6, dan 7

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 Keterangan 0 0 : Interupsi menunggu

1 : No interrupt pending

1 dan 2

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 3,4,5,6, dan 7 Diisi 0

7. Line Control Register, digunakan untuk menentukan jumlah bit data, jumlah

(40)

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 Keterangan

0 dan 1

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

2

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

3 Bit Parity 0 : Tanpa Parity 1 : Dengan Parity 4 0 : Parity ganjil 1 : Parity genap

5 1 : Bit Parity ikut dikirimkan (stick parity) 6 0 : Set break control tidak diaktifkan

1 : Set break control diaktifkan

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

0

Bit DTR

0 : Saluran DTR diaktifkan (aktif 0)

1 : Saluran DTR dibuat normal (tidak aktif)

1

Bit RST

0 : Saluran RST diaktifkan (aktif 0)

1 : Saluran RST dibuat normal (tidak aktif)

2

Bit OUT1, digunakan untuk penghubung ke perangkat lain, dapat dibuat logika high atau logika low. Secara normal tidak digunakan.

(41)

3 Bit OUT2, digunakan untuk penghubung ke perangkat lain, dapat dibuat logika high atau logika low.

4 0 : Loop back internal diaktifkan 1 : Loop back internal tidak diaktifkan 5, 6, 7 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 Keterangan 0 1 2 3 4 5 6 7

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 Keterangan

0 1 : Menyatakan adanya perubahan keadaan di saluran Clear To Send.

1 1 : Menyatakan adanya perubahan keadaan di saluran Data Set Ready

3 1 : Menyatakan adanya perubahan keadaan di saluran Ring Indicator dari low ke high

4 1 : Menyatakan saluran Clear To Send (CTS) sudah dalam keadaan aktif

5 1 : Menyatakan saluran Data Set Ready (DSR) sudah dalam keadaan aktif

(42)

keadaan aktif

7 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

(43)

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.

(44)

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:

(45)

Tombol-tombol yang terletak pada bagian toolbar dapat ditambah atau dikurangi sesuai

kebutuhan.

Component Pallete

Component Palette berisi kumpulan ikon yang melambangkan

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

(46)

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

kode-kode sumber, karena Delphi telah menyediakan kerangka penulisan sebuah

program seperti pada gambar 2.11 di bawah ini.

(47)

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

(48)

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.

Gambar 2.13 Konfigurasi dasar Penguat Non Inverting

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

xVin R R Vout       + = 2 1 1 2.4.2 Penguat Inverting

Penguat Inverting mempunyai isyarat keluaran yang terbalik dari

masukannya. Gambar 2.14 berikut ádalah konfigurasi dasar dari penguat

Inverting. R1 R2 Vo Vin + -

Gambar

Gambar 2.1 Tata letak komponen dalam modul SK-8051  Tabel 2.1 Peta alamat SK-8051
Gambar 2.2. Konfigurasi Penyemat AT89C51
Gambar 2.3. Dagram penyemat ADC 0808
Tabel 2.4 Deskripsi pin-pin ADC 0808
+7

Referensi

Dokumen terkait

Où, Quel, Quand, Qu’est-ce que, Comment - Article indéfini/défini - adverbe VOCABULAIRE - Noms de métiers - le corps - Nom de pays - Memberikan suatu bacaan dengan

Setelah persoalan ganti rugi keuangan berakhir diatasi, Sultan HB VII merasakan bahwa dirinya kini berhak kembali memegang kendali pemerintahan seutuhnya. Ia menyadari bahwa

Sementara usia perkawinan ditunda, norma-norma agama tetap berlaku dimana orang tidak boleh melaksanakan hubungan seksual sebelum menikah. Pada masyarakat modern bahkan

Setiap instansi atau perusahaan yang berbadan hukum yang telah memenuhi persyaratan untuk melakukan usaha dapat memperoleh izin pemanfaatan atau pemakaian zat radioaktif dan

Jenis ketrampilan proses sains siswa yang diamati meliputi ketrampilan siswa mengamati (observasi), merumuskan hipotesis, menentukan ruang dan waktu, dan berkomunikasi.

Pembelajaran dengan model Teams Games Tournament adalah salah satu model dalam belajar kelompok yang dapat digunakan sebagai alternatif bagi pengajar untuk menyelesaikan

Berdasarkan hasil penelitian diperoleh simpulan bahwa 1)secara simultan kebijakan dividen, kebijakan hutang dan profitabilitas berpengaruh signifikan terhadap nilai

19 Adanya penyewaan lahan sawah pertanian oleh industri gula yang di dalamnya terdapat pabrik beserta perkebunannya yang tidak sesuai dengan ketentuan,