mikrokontroler

34
Erna Kumalasari Nurnawati 1 mikrokontroler Pertemuan 3

description

mikrokontroler. Pertemuan 3. PERANGKAT LUNAK MIKROKONTROLER MCS-51. 2.1. Pendahuluan Sebuah mikrokontroler tidak akan dapat bekerja bila tidak diberikan program kepadanya. Sistem kerja mikrokontroler dapat dirubah setiap saat sesuai dengan program yang diberikan kepadanya. 2. - PowerPoint PPT Presentation

Transcript of mikrokontroler

Page 1: mikrokontroler

Erna Kumalasari Nurnawati 1

mikrokontroler

Pertemuan 3

Page 2: mikrokontroler

Erna Kumalasari Nurnawati 2 2

PERANGKAT LUNAK MIKROKONTROLER MCS-51

2.1. Pendahuluan

• Sebuah mikrokontroler tidak akan dapat bekerja bila tidak diberikan program kepadanya.

• Sistem kerja mikrokontroler dapat dirubah setiap saat sesuai dengan program yang diberikan kepadanya.

Page 3: mikrokontroler

Erna Kumalasari Nurnawati 3 3

• Instruksi-instruksi perangkat lunak berbeda untuk masing-masing jenis mikrokontroller.

• Sebuah mikrokontroler tidak dapat memahami instruksi-instruksi yang berlaku pada mikrokontroler jenis lain.

Contoh:

Mikrokontroler buatan Intel dengan

mikrokontroler buatan Zilog memiliki

perangkat instruksi yang berbeda • Instruksi-instruksi pada mikrokontroler

dikenal sebagai bahasa pemrograman sistem mikrokontroler

Page 4: mikrokontroler

Erna Kumalasari Nurnawati 4 4

2.2. Operand dan Ekspresi

Assembler

a. Operand

Bentuk umum semua instruksi dalam assembler Intel dapat dituliskan sebagai berikut:

[LABEL:] MNEMONIC [OPERAND] [OPERAND] [OPERAND] [;KOMENTAR]

Page 5: mikrokontroler

Erna Kumalasari Nurnawati 5 5

Jumlah operand tergantung pada type mnemonic. Semua operand dapat dibagi dalam 6 kelompok, yaitu:

1. Simbol Khusus Assembler

2. Pengalamatan Tak Langsung

3. Pengalamatan Langsung (Immediate

Data)

4. Pengalamatan Data

5. Pengalamatan Bit

6. Pengalamatan Kode

7. Operator Assembler

Page 6: mikrokontroler

Erna Kumalasari Nurnawati 6 6

• Simbol Khusus Assembler Assembler telah menyediakan beberapa simbol

untuk menunjukkan register tertentu sebagai operand.Contoh:A AkumulatorR0 …. R7 Register SerbagunaDPTR Data Pointer Register 16 BitPC Program CounterC Carry FlagB Register B

Page 7: mikrokontroler

Erna Kumalasari Nurnawati 7 7

• Pengalamatan Tak Langsung

Operand pengalamatan tak langsung menunjuk ke sebuah register yang berisi lokasi alamat memory yang akan digunakan dalam operasi.

Lokasi yang nyata tergantung pada isi register saat instruksi dijalankan.

Page 8: mikrokontroler

Erna Kumalasari Nurnawati 8 8

• Pengalamatan Tak Langsung

Untuk melaksanakan pengalamatan tak langsung digunakan simbol @

Contoh:

MOV A,@R1

MOV @R0,A

MOV @R1,24H

Page 9: mikrokontroler

Erna Kumalasari Nurnawati 9 9

• Pengalamatan Tak Langsung

Pengalamatan tak langsung (Indirect) ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori yang mempunyai urutan beraturan.

Jika proses ini dilakukan dengan menggunakan pengalamatan langsung jumlah baris program yang diperlukan akan cukup panjang.

Page 10: mikrokontroler

Erna Kumalasari Nurnawati 10 10

• Pengalamatan Tak Langsung

Contohnya penulisan data 08H pada alamat 50H hingga 57H.

Listing a.1ORG 0HMOV 50H,#08HMOV 51H,#08HMOV 52H,#08HMOV 53H,#08HMOV 54H,#08HMOV 55H,#08HMOV 56H,#08HMOV 57H,#08HEND

Page 11: mikrokontroler

Erna Kumalasari Nurnawati 11 11

• Pengalamatan Tak Langsung

Dengan digunakan sistem pengalamatan tak langsung, dapat diubah menjadi :

Listing a.2.ORG 0HMOV R0,#50H;

LOOP: MOV @R0,#08HINC R0CJNE R0,#58H,LOOPEND

Page 12: mikrokontroler

Erna Kumalasari Nurnawati 12 12

• Pengalamatan Tak Langsung

Dalam listing program a.2 diatas, R0 digunakan sebagai register yang menyimpan alamat dari data yang akan dituliskan. Dengan melakukan penambahan pada isi R0 dan mengulang perintah penulisan data ke alamat yang ditunjuk R0 hingga register ini menunjukkan nilai 57H + 1, atau 58H. Dengan demikian, barisan perintah pada Listing a.1 dapat dieliminasi.

Page 13: mikrokontroler

Erna Kumalasari Nurnawati 13 13

• Pengalamatan Tak Langsung

MCS-51 mempunyai sebuah register 16 bit (DPTR) dan dua buah register 8 bit ( R0 dan R1 ) yang dapat digunakan untuk melakukan pengalamatan tidak langsung.

Contoh-contoh perintah yang menggunakan sistempengalamatan tak langsung adalah :

MOV @R0,A ; R0 sebagai reg. penyimpan alamat

MOV A,@R1 ; R1 sebagai reg. penyimpan alamat

ADD A,@R0 ; R0 sebagai reg. penyimpan alamat MOVX@DPTR,A ; DPTR sebagai reg. penyimpan alamat

MOVC A,@A+DPTR ; DPTR sebagai register penyimpan alamat

Page 14: mikrokontroler

Erna Kumalasari Nurnawati 14 14

• Pengalamatan Langsung ( Immediate Data )

Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan data yang akan diproses.

Biasanya operand tersebut selalu diawali dengan tanda ‘#’ seperti pada contoh berikut.

MOV A,#05H

MOV A,#45H

MOV B,#0E4H

MOV DPTR,#4356H

Page 15: mikrokontroler

Erna Kumalasari Nurnawati 15 15

• Pengalamatan Langsung ( Immediate Data )

Operand yang digunakan pada immediate data juga dapat berupa bilangan bertanda mulai - 256 hingga + 256.

Contoh :MOV A,# -1

sama dengan MOV A,#0FFH

Bilangan -1 adalah sama dengan bilangan 0 dikurangi 1, dalam bentuk heksa bilangan 00H. Jika dikurangi dengan 1, hasilnya adalah 0FFH. Dengan pengertian seperti ini, bilangan -1 dapat dianggap sama dengan 0FFH.

Page 16: mikrokontroler

Erna Kumalasari Nurnawati 16 16

• Pengalamatan Data

Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan alamat dari data yang akan diisi, dipindahkan atau diproses.

Contoh :MOV P0,A

Port 0 adalah salah satu I/O pada MCS-51 yang mempunyai alamat 80H. Perintah pada contoh di atas selain mengirimkan data akumulator ke Port 0 juga merupakan perintah pemindahan data dari akumulator ke alamat 80H sehingga dapat juga dituliskan

MOV 80H,A.

Page 17: mikrokontroler

Erna Kumalasari Nurnawati 17 17

2.2. Register Pada Mikrokontroler MCS-51

Register:

Adalah tempat menyimpan/mengolah data sementara pada saat mikroprosessor / mikrokontroller bekerja.

Page 18: mikrokontroler

Erna Kumalasari Nurnawati 18 18

Pada MCS-51 terdapat antara lain:

REGISTER 8 bit

A: Accumulator R3B R4R0 R5R1 R6R2 R7

REGISTER 16 bit

DPTR DPH DPL PC PC ( Program Counter )

Page 19: mikrokontroler

Erna Kumalasari Nurnawati 19 19

2.3. Instruksi Pemrograman Pada Mikrokontroler MCS-51

• Pada MCS-51 mempunyai ± 256 instruksi pemrograman yang secara garis besar dibagi menjadi :

1. Transfer Data

2. Operasi Aritmatika

3. Operasi Logika

4. Manipulasi Variabel Boolean

5. Instruksi Percabangan

Page 20: mikrokontroler

Erna Kumalasari Nurnawati 20 20

2.3.1. Instruksi Transfer Data• Instruksi Transfer Data mempunyai beraneka

ragam bentuk yang berbeda yang disesuaikan dengan darimana data tersebut berasal (SOURCE) dan akan ditransfer kemana (DESTINATIONS).

• Instruksi ini menggunakan operand MOV yang tidak mengubah isi data pada sumber ( Source ) dan hanya mengkopi (menggandakan) data dari sumber ( Source ) ke tujuan (Destinations)

Page 21: mikrokontroler

Erna Kumalasari Nurnawati 21 21

Jenis-jenis Instruksi Transfer Data

a. ACCUMULATOR / REGISTER

Metode ini adalah mengkopi data dari suatu Register ( R0 – R7 ) ke Accumulator ( A )

Contoh : MOV A,R0

MOV A,R1

MOV A,R2

MOV A,R3

MOV A,R4

MOV A,R5

MOV A,R6

MOV A,R7

Page 22: mikrokontroler

Erna Kumalasari Nurnawati 22 22

b. REGISTER / ACCUMULATOR

Metode ini adalah mengkopi data yang berada di Accumulator ( A ) ke suatu Register ( R0 – R7 )

Contoh : MOV R0,A

MOV R1,A

MOV R2,A

MOV R3,A

MOV R4,A

MOV R5,A

MOV R6,A

MOV R7,A

Page 23: mikrokontroler

Erna Kumalasari Nurnawati 23 23

c. ACCUMULATOR / DATA ( IMMEDIATE )

Metode ini adalah untuk mengisi data ke dalam Accumulator ( A ) dengan data 8 bit secara langsung. Pada metode ini digunakan tanda # pada data yang akan diisikan.

Contoh : MOV A,#24H

MOV A,#7FH

MOV A,#0FEH

MOV A,#0F8H

MOV A,#100

MOV A,#255

MOV A,#0FFH

Page 24: mikrokontroler

Erna Kumalasari Nurnawati 24 24

d. REGISTER / DATA ( IMMEDIATE )

Metode ini adalah untuk mengisi data ke dalam suatu Register ( R0 – R7 ) dengan data 8 bit secara langsung. Pada metode ini digunakan tanda # pada data yang akan diisikan.

Contoh : MOV R0,#24H

MOV R1,#7FH

MOV R2,#0FEH

MOV R3,#0F8H

MOV R4,#100

MOV R5,#255

MOV R6,#0FFH

MOV R7,#0FH

Page 25: mikrokontroler

Erna Kumalasari Nurnawati 25 25

e. REGISTER / REGISTER

Metode ini adalah mengkopi data yang berada di Register (R0-R7) ke suatu Register (R0-R7) yang lain.

Contoh : MOV R0,R5

MOV R4,R0

MOV R2,R1

MOV R6,R2

MOV R4,R7

MOV R5,R1

MOV R3,R2

MOV R7,R3

Page 26: mikrokontroler

Erna Kumalasari Nurnawati 26 26

f. ACCUMULATOR / DIRECT

Instruksi ini akan memindahkan data dari sebuah alamat internal RAM ke Accumulator tanpa melalui register lainnya.

Contoh : MOV A,20H

MOV A,21H

MOV A,22H

MOV A,23H

MOV A,24H

MOV A,25H

MOV A,2FH

Page 27: mikrokontroler

Erna Kumalasari Nurnawati 27 27

g. DIRECT / ACCUMULATOR

Instruksi ini akan memindahkan data dari Accumulator ke sebuah alamat internal RAM tanpa melalui register lainnya.

Contoh : MOV 20H,A

MOV 21H,A

MOV 22H,A

MOV 23H,A

MOV 24H,A

MOV 25H,A

MOV 2FH,A

Page 28: mikrokontroler

Erna Kumalasari Nurnawati 28 28

h. ACCUMULATOR / INDIRECT

Type instruksi ini hanya dapat menggunakan register R0 dan R1 sebagai pointer

Contoh : MOV A,@R0

MOV A,@R1

i. INDIRECT / ACCUMULATOR

Type instruksi ini hanya dapat menggunakan register R0 dan R1 sebagai pointer

Contoh : MOV @R0,A

MOV @R1,A

Page 29: mikrokontroler

Erna Kumalasari Nurnawati 29 29

j. REGISTER / DIRECT

Instruksi ini akan memindahkan data dari sebuah alamat internal RAM ke Register-register yang berada di Mikrokontroller.

Contoh : MOV R0,20H

MOV R1,21H

MOV R2,22H

MOV R3,23H

MOV R4,24H

MOV R5,25H

MOV R6,29H

MOV R7,2FH

Page 30: mikrokontroler

Erna Kumalasari Nurnawati 30 30

k. DIRECT / REGISTER

Instruksi ini akan memindahkan data dari sebuah Register ke sebuah alamat internal RAM yang berada di Mikrokontroller.

Contoh : MOV 22H,R0

MOV 24H,R1

MOV 25H,R2

MOV 28H,R3

MOV 2AH,R4

MOV 2CH,R5

MOV 2DH,R6

MOV 2EH,R7

Page 31: mikrokontroler

Erna Kumalasari Nurnawati 31 31

l. DIRECT / DIRECT

Instruksi ini akan memindahkan data dari sebuah alamat internal RAM ke sebuah alamat internal RAM juga.

Contoh : MOV 22H,20H

MOV 24H,21H

MOV 25H,23H

MOV 28H,26H

MOV 2AH,20H

MOV 2CH,29H

MOV 2DH,2FH

MOV 2EH,21H

Page 32: mikrokontroler

Erna Kumalasari Nurnawati 32 32

m. DIRECT / DATA

Pada instruksi ini akan mengisi data pada sebuah alamat internal RAM secara langsung dengan cara memasukkan data delapan bit.

Contoh : MOV 22H,#0FEH

MOV 24H,#7EH

MOV 25H,#23H

MOV 28H,#9FH

MOV 2AH,#0D5H

MOV 2CH,#0B4H

MOV 2DH,#22H

Page 33: mikrokontroler

Erna Kumalasari Nurnawati 33 33

n. INDIRECT - DATA

Pada instruksi yang dipakai disini menggunakan register INDIRECT sebagai register pemrosesnya dengan diisi data secara langsung.

Contoh :

MOV @R0,#21H MOV @R1,#0C8H

Page 34: mikrokontroler

Erna Kumalasari Nurnawati 34 34

o. INDIRECT - DIRECT

Pada instruksi yang dipakai disini menggunakan register INDIRECT sebagai register pemrosesnya dengan diisi data dari alamat internal RAM.

Contoh :

MOV @R0,21H MOV @R1,25H