BAB IV

24
erna kumalasari nurnawa erna kumalasari nurnawa ti ti BAB IV BAB IV TEKNIK PEMROGRAMAN TEKNIK PEMROGRAMAN

description

BAB IV. TEKNIK PEMROGRAMAN. BAB IV Teknik Pemrograman. Proses Mikrokontroller membaca instruksi di memory adalah membaca kombinasi biner “0” dan “1” yang telah dirubah oleh assembler dari source program dalam bentuk kode-kode mnemonic. - PowerPoint PPT Presentation

Transcript of BAB IV

Page 1: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati

BAB IVBAB IV

TEKNIK PEMROGRAMANTEKNIK PEMROGRAMAN

Page 2: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 2

BAB IVBAB IVTeknik PemrogramanTeknik Pemrograman

Proses Mikrokontroller membaca instruksi Proses Mikrokontroller membaca instruksi di memory adalah membaca kombinasi di memory adalah membaca kombinasi biner “0” dan “1” yang telah dirubah oleh biner “0” dan “1” yang telah dirubah oleh assembler dari source program dalam assembler dari source program dalam bentuk kode-kode mnemonic. bentuk kode-kode mnemonic.

Page 3: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 3

Penyusunan source program adalah Penyusunan source program adalah merupakan konversi dari merupakan konversi dari permasalahan yang akan permasalahan yang akan diselesaikan dengan mikrokontroller. diselesaikan dengan mikrokontroller. Dimulai dari merubah permasalahan Dimulai dari merubah permasalahan ke bentuk flowchart atau algorithma ke bentuk flowchart atau algorithma program, kemudian baru ditulis program, kemudian baru ditulis program assembler nya. program assembler nya.

Page 4: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 4

Untuk itu perlu memahami tata Untuk itu perlu memahami tata cara penulisan program dalam cara penulisan program dalam aturan yang baku, berikut aturan yang baku, berikut diberikan contoh penulisan diberikan contoh penulisan source program dengan source program dengan struktur yang baku. struktur yang baku. Selanjutnya dari source Selanjutnya dari source program tersebut dirubah program tersebut dirubah menjadi kode mesin (kombinasi menjadi kode mesin (kombinasi “0” dan “1” )“0” dan “1” )

Page 5: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 5

STATUSSTATUS EQUEQU 20H.020H.0 ; ;Bit 0 dari lokasi 20HBit 0 dari lokasi 20H

ORGORG 0H0H ; ;Mulai alamat 0000HMulai alamat 0000H

MULAI:MULAI: MOVMOV SP,#60H ;SP,#60H ;Set Stack Pointer pd 60HSet Stack Pointer pd 60H

L1:L1: MOVMOV P1,#0AAH ; 1010 1010 BP1,#0AAH ; 1010 1010 BCALL CALL DELAYDELAYMOVMOV P1,#55H ; 0101 0101 BP1,#55H ; 0101 0101 BCALLCALL DELAYDELAYSJMPSJMP L1L1

ENDENDDELAY:DELAY: MOVMOV R0,#100R0,#100L11:L11: MOVMOV R1,#10R1,#10L2:L2: NOPNOP

DJNZDJNZ R1,L2R1,L2DJNZDJNZ R0,L11R0,L11RETRET

Page 6: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 6

Jika diamati, pola Jika diamati, pola penyusunan program dalam penyusunan program dalam bahasa assembly adalah bahasa assembly adalah terdiri paling tidak 4 terdiri paling tidak 4 (empat) kolom, (empat) kolom, yaitu:yaitu:

Label, Operation Code, Label, Operation Code, Operand Operand dan Comment (komentar) dan Comment (komentar)

LabelLabel OpcodeOpcode OperandOperand CommentComment

Page 7: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 7

Hasil dari Source Program tersebut adalah Hasil dari Source Program tersebut adalah kode-kode Biner yang selanjutnya diberikan kode-kode Biner yang selanjutnya diberikan ke memory atau langsung ke ke memory atau langsung ke mikrokontroler yang menggunakan Internal mikrokontroler yang menggunakan Internal ROMROM

00000000 75 81 60 75 81 60 MULAI: MULAI: MOVMOV SP,#$60 SP,#$6000030003 75 90 AA75 90 AA L1:L1: MOVMOV P1,#$AA P1,#$AA00060006 12 0012 00 11 11 LCALL DELAYLCALL DELAY00090009 75 90 5575 90 55 MOVMOV P1,#$55 P1,#$55000C000C 12 00 1112 00 11 LCALL DELAYLCALL DELAY000F000F 80 F280 F2 SJMPSJMP L1 L100110011 78 6478 64 DELAY:DELAY: MOVMOV R0,#$64 R0,#$64

dstdst

Page 8: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 8

Assembler DirectiveAssembler Directive( Pengarah Assembler )( Pengarah Assembler )

Seperti telah disebutkan sebelumnya, Seperti telah disebutkan sebelumnya, pengarah assembler merupakan pengarah assembler merupakan mnemonic yang akan diproses oleh mnemonic yang akan diproses oleh Program Assembler. Berikut adalah Program Assembler. Berikut adalah pengarah assembler yang biasa pengarah assembler yang biasa digunakan untuk program – program digunakan untuk program – program assembler.assembler.

Page 9: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 9

Kontrol Kondisi AssemblerKontrol Kondisi Assembler

ORG ( Origin )ORG ( Origin ) ORG digunakan untuk menunjukkan ORG digunakan untuk menunjukkan

lokasi memori tempat instruksi atau lokasi memori tempat instruksi atau perintah yang ada di bawahnya disimpan. perintah yang ada di bawahnya disimpan.

Bentuk dari ORG adalah :Bentuk dari ORG adalah :

ORGORG ekspresiekspresi

Page 10: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 10

Contoh :Contoh :

ORGORG 2000H2000H

MOVMOV DPTR, #4000HDPTR, #4000H

Di sini, perintah MOV DPTR, #4000H yang Di sini, perintah MOV DPTR, #4000H yang berada di bawah ORG 2000H akan berada di bawah ORG 2000H akan terletak di alamat 2000H.terletak di alamat 2000H.

Page 11: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 11

ENDEND

END biasanya diletakkan di akhir baris dari END biasanya diletakkan di akhir baris dari file program sumber assembly sebagai file program sumber assembly sebagai tanda akhir pernyataan ( tanda akhir pernyataan ( statementstatement ) bagi ) bagi program assembler dalam melakukan program assembler dalam melakukan proses assembly. proses assembly.

Bentuk dari END adalah :Bentuk dari END adalah :................

................ ................

ENDEND

Page 12: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 12

USINGUSING

Bentuk dari USING adalah :Bentuk dari USING adalah :USINGUSING EkspresiEkspresi

Pengarah assembler ini digunakan oleh Pengarah assembler ini digunakan oleh program assembler ( ASM51 ) untuk program assembler ( ASM51 ) untuk menentukan register bank yang aktif menentukan register bank yang aktif sehingga lambang – lambang yang sehingga lambang – lambang yang didefinisikan terlebih dahulu oleh program didefinisikan terlebih dahulu oleh program assembler, seperti AR0 hingga AR7 dapat assembler, seperti AR0 hingga AR7 dapat menunjuk sesuai dengan alamat yang menunjuk sesuai dengan alamat yang ditentukan oleh register bank yang aktifditentukan oleh register bank yang aktif

Page 13: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 13

Contoh 1. Contoh 1.

UsingUsing 33

PushPush AR7AR7

Perintah Push AR7 yang diawali dengan Perintah Push AR7 yang diawali dengan using 3 menunjukkan bahwa R7 yang using 3 menunjukkan bahwa R7 yang terletak di Register Bank 3, yaitu 1FH terletak di Register Bank 3, yaitu 1FH sehingga setelah dilakukan proses sehingga setelah dilakukan proses assembly, perintah tersebut akan assembly, perintah tersebut akan menghasilkan kode operasi yang sama menghasilkan kode operasi yang sama dengan Push 1FH yaitu C0 1F.dengan Push 1FH yaitu C0 1F.

Page 14: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 14

Contoh 2. Contoh 2.

UsingUsing 00

PushPush AR7AR7

Perintah Push AR7 yang diawali dengan Perintah Push AR7 yang diawali dengan using 0 menunjukkan bahwa R7 yang using 0 menunjukkan bahwa R7 yang terletak di Register Bank 0, yaitu 07H terletak di Register Bank 0, yaitu 07H sehingga setelah dilakukan proses sehingga setelah dilakukan proses assembly, perintah tersebut akan assembly, perintah tersebut akan menghasilkan kode operasi yang sama menghasilkan kode operasi yang sama dengan Push 07H yaitu C0 07dengan Push 07H yaitu C0 07

Page 15: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 15

Pengarah assembler ini hanya berfungsi Pengarah assembler ini hanya berfungsi bagi program assembler untuk bagi program assembler untuk menentukan bank yang aktif saja dan tidak menentukan bank yang aktif saja dan tidak mengubah nilai bit – bit RS0 dan RS1 di mengubah nilai bit – bit RS0 dan RS1 di Register PSW dari MCS-51 sehingga Register PSW dari MCS-51 sehingga perlu ditambahkan perintah-perintah yang perlu ditambahkan perintah-perintah yang mengatur nilai RS0 dan RS1 terlebih mengatur nilai RS0 dan RS1 terlebih dahulu. dahulu.

Dengan demikian, mikrokontroler juga Dengan demikian, mikrokontroler juga mengenai register bank yang aktif saat itu.mengenai register bank yang aktif saat itu.

Page 16: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 16

Contoh 3. Contoh 3.

UsingUsing 00PushPush AR7AR7UsingUsing 33MovMov R7,#05R7,#05PushPush AR7AR7SetbSetb RS1RS1SetbSetb RS0RS0MovMov R7,#00R7,#00

Page 17: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 17

Definisi LambangDefinisi LambangEQU ( Equate )EQU ( Equate ) EQU digunakan untuk mendefinisikan sebuah EQU digunakan untuk mendefinisikan sebuah

simbol atau lambang assembler secara bebas.simbol atau lambang assembler secara bebas.

Contoh :Contoh :Bilangan Bilangan EQU EQU 50H50H

Mov Mov A,#BilanganA,#Bilangan

Pada perintah di atas, akumulator diisi dengan Pada perintah di atas, akumulator diisi dengan konstanta “bilangan”. Konstanta ini telah konstanta “bilangan”. Konstanta ini telah didefinisikan sebelumnya dengan nilai 50H didefinisikan sebelumnya dengan nilai 50H dengan menggunakan assembler directive EQU.dengan menggunakan assembler directive EQU.

Page 18: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 18

SETSET

Sama dengan pengarah EQU, pengarah Sama dengan pengarah EQU, pengarah SET digunakan untuk mendefinisikan SET digunakan untuk mendefinisikan lambang assembler secara bebas. lambang assembler secara bebas. Perbedaan dengan pengarah EQU adalah Perbedaan dengan pengarah EQU adalah pengarah ini dapat didefinisi ulang seperti pengarah ini dapat didefinisi ulang seperti padapada

Page 19: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 19

Contoh berikut:Contoh berikut:

POINTER SETPOINTER SETR0R0

; Lambang pointer ; Lambang pointer didefinisikan didefinisikan

; sama dengan R0; sama dengan R0

POINTER SETPOINTER SETR1R1

; Lambang pointer kembali ; Lambang pointer kembali

; didefinisikan sebagai R1; didefinisikan sebagai R1

Page 20: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 20

BITBIT

Pengarah Bit digunakan untuk Pengarah Bit digunakan untuk mendefinisikan suatu lambang yang mendefinisikan suatu lambang yang menunjuk ke suatu lokasi bit pada memori menunjuk ke suatu lokasi bit pada memori yang dapat dialamati secara pengamatan bit.yang dapat dialamati secara pengamatan bit.

Contoh :Contoh :

Flag Flag BitBit 00

; Lambang flag menunjukkan ke ; Lambang flag menunjukkan ke

; lokasi 0 secara pengamatan bit; lokasi 0 secara pengamatan bit

Page 21: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 21

CODECODE

Pengarah CODE digunakan untuk Pengarah CODE digunakan untuk menyatakan alamat yang dilokasikan menyatakan alamat yang dilokasikan dalam area memori program dengan dalam area memori program dengan sebuah lambang. Nilai dari alamat sebuah lambang. Nilai dari alamat tersebut tidak boleh melebihi 65535 atau tersebut tidak boleh melebihi 65535 atau FFFFH.FFFFH.

Contoh.Contoh.

RESET RESET CODECODE 00

EXTIOEXTIO CODECODE RESET + (1024 / RESET + (1024 / 16)16)

Page 22: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 22

DATADATA

Pengarah DATA digunakan untuk menyatakan Pengarah DATA digunakan untuk menyatakan secara langsung alamat pada memori internal secara langsung alamat pada memori internal dengan sebuah lambang. Alamat yang di mulai dengan sebuah lambang. Alamat yang di mulai dari 00 hingga 7FH menunjukkan RAM Internal dari 00 hingga 7FH menunjukkan RAM Internal dan alamat 80H hingga FFH menunjukkan dan alamat 80H hingga FFH menunjukkan alamat dari Register Fungsi Khusus.alamat dari Register Fungsi Khusus.

Contoh :Contoh :

BUFFERBUFFER DATA 32HDATA 32H

; Lambang buffer menunjukkan ; Lambang buffer menunjukkan

; alamat 32H; alamat 32H

Page 23: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 23

IDATAIDATA

Pengarah IDATA digunakan untuk Pengarah IDATA digunakan untuk menyatakan alamat RAM Internal dalam menyatakan alamat RAM Internal dalam sebuah lambang dengan pengalamatan sebuah lambang dengan pengalamatan tidak langsung. Alamat tersebut dapat tidak langsung. Alamat tersebut dapat dimulai dari 00 hingga FFH.dimulai dari 00 hingga FFH.

Contoh :Contoh :

BUFFERBUFFER IDATAIDATA 30H30H

BUFFER2BUFFER2 IDATAIDATA BUFFER+1BUFFER+1

Page 24: BAB IV

erna kumalasari nurnawatierna kumalasari nurnawati 24

XDATAXDATA

XDATA digunakan menyatakan alamat yang XDATA digunakan menyatakan alamat yang ada pada memori eksternal dalam sebuah ada pada memori eksternal dalam sebuah lambang. Nilai dari alamat ini tidak boleh lambang. Nilai dari alamat ini tidak boleh melebihi 65535 atau FFFFH.melebihi 65535 atau FFFFH.

Contoh :Contoh :

SektorEksternal1 XDATASektorEksternal1 XDATA 2000H2000H

SektorEksternal2 XDATA SektorEksternal2 XDATA SektorEksternal1+2000HSektorEksternal1+2000H