pemrograman mikroprosesor/mikrokontroler · contoh:basic, fortran. mikroprosesor 8 ... suatu...

103
Mikroprosesor 1 Pemrograman Mikroprosesor/Mikrokontroler Nuryono S.W.,S.T., M.Eng.

Upload: nguyennguyet

Post on 22-Apr-2018

315 views

Category:

Documents


11 download

TRANSCRIPT

Mikroprosesor 1

PemrogramanMikroprosesor/Mikrokontroler

Nuryono S.W.,S.T., M.Eng.

Mikroprosesor 2

Program & Instruksi

• Program: sekumpulan instruksi ygberurutan yg diberikan kepada MPU/MCU

• Instruksi: operasi yg diperintahkan kepadaMPU/MCU utk dilakukan

• Instruksi dievaluasi dan dieksekusi secaraberurutan mulai dari atas kebawah(kecuali pd kondisi khusus)

Mikroprosesor 3

Program&Instruksi

Mikroprosesor 4

Program&Instruksi

Mikroprosesor 5

Terminologi• Mnemonics: Kode 3 atau 4 huruf yg

mendeskripsikan fungsi suatu operasi/instruksi• Operation Code:Kode biner(1 byte) yg diberikan

kepada MPU/MCU utk melakukan suatu operasitertentu

• Operand:Data yg dioperasikan oleh suatuinstruksi, merupakan pelengkap suatuinstruksi(0, 1 atau 2 byte)

• Machine Language: Kode biner/hexadecimal ygdipakai MPU/MCU sbg perwujudan suatuprogram

Mikroprosesor 6

Terminologi

• Contoh pada M68HC11

Mikroprosesor 7

Terminologi

• Assembly Language: Kumpulan instruksiyg ditulis dlm bentuk mnemonic

• Assembly Language disebut juga low level language karena kedekatannya denganmachine code/machine language

• High level language:instruksi yg ditulisdengan sesuatu yg menyerupai bahasamanusia, memiliki sintaks serupa denganstruktur kalimat. Contoh:BASIC, FORTRAN

Mikroprosesor 8

Terminologi

• Mid Level language:instruksi yg ditulisdengan sesuatu yg terletak di antara high level & low level language. Contoh : C, C++, FORTH

• High&Mid level language relatifportable(dapat dikompilasi dan dijalankanpada hardware yg berbeda dengan sedikitpenyesuaian)

• Low level language cenderung lebih kecildan lebih cepat eksekusinya

Mikroprosesor 9

High & Low Level Language

Mikroprosesor 10

Terminologi

• Source Program/Source Code: Program yg ditulis dlmAssembly Language atau bahasa pemrograman yg lain

• Hand Assembly: Proses konversi setiap instruksi dlmsuatu source program dari mnemonics menjadi op codes& machine code yg bersesuaian dilakukan secaramanual

• Assembler: Suatu aplikasi(software) yg mampumelakukan proses konversi setiap instruksi dlm suatusource program dari mnemonics menjadi op codes& machine code yg bersesuaian

• Kompiler/crossassembler : Suatu aplikasi(software) ygmampu melakukan proses konversi setiap instruksi dlmsuatu source program dari bahasa program yang lainmenjadi assembly codes (mnemonics) atau op codes& machine code yg bersesuaian

Mikroprosesor 11

Terminologi

• Linking : Proses penggabungan library functions kode program yang lain menjadisuatu hasil kompilasi yang utuh

• Locating: proses menetapkan memory program (code memory) untuk setiapinstruksi yang ada di dalam program ygdikompilasi

Mikroprosesor 12

Terminologi

Mikroprosesor 13

Level Bahasa Pemrograman

Mikroprosesor 14

Pemrograman

Mikroprosesor 15

Pemrograman

Mikroprosesor 16

Pemrograman

Mikroprosesor 17

Konsep Pemrograman• Loop:suatu perulangan instruksi atau

sekuen/rangkaian instruksi tertentu• Label:suatu kata/kode yg

menyatakan/mewakili suatu alamat• Komentar: suatu kata/kalimat yg

digunakan sbg penjelasan dr program(tdkdiproses oleh assembler/compiler)

• Flow-Chart:representasi grafis dr algoritmayg dinyatakan dlm blok fungsional dangaris yg menunjukkan progress drprogram

Mikroprosesor 18

Look-Up Tables

• Look-up table:adalah suatu tabel 1 dimensi yg berisi dua kelompok angka ygbersesuaian dari sisi ke sisi

• Look-Up table bisa berisi:– Codes

– Equations– Messages

Mikroprosesor 19

Bagian-Flowchart• Start/End

• Proses

• Input/Output

• Decision/Keputusan

• Subrutin

Mikroprosesor 20

Bagian-Flowchart• On page connector

• Off page connector

• Persiapan/preparation

Mikroprosesor 21

Contoh Struktur Dasar Flow-chart

• Sequence

• Branch Proses B

A True?

Proses C

Yes

No

Proses A

Proses B

Mikroprosesor 22

IF-THEN-ELSE

Mikroprosesor 23

Contoh Struktur Dasar Flow-chart

• Loop

Proses B

Proses A

A True?

Yes

No

Mikroprosesor 24

While & Until

Mikroprosesor 25

Contoh

Mikroprosesor 26

Contoh

Mikroprosesor 27

AVR dan bahasa C• AVR dikembangkan secara khusus untuk dapat

diprogram menggunakan bahasa Assembly dan bahasaC

• Bahasa C adalah suatu general-purpose programming language yang dapat digunakan denganmikroprosesor/mikrokontroler apapun, sepanjangterdapat Kompilernya.

• Bahasa C menampilkan secara lebih mudah konsep ttgapa yg harus dilakukan oleh mikrokontroler(komputer) dengan teks yang bisa dibaca dengan mudah dan logis.

• Setelah menguasai bahasa C, secara umum kita dapatberpindah dari satu mikrokontroler ke yg lain denganlebih mudah, mampu menyusun program yg mudahdipahami & dikembangkan dgn lbh cepat.

Mikroprosesor 28

AVR dan bahasa C

• Secara umummenyusun program dalam High Level Language (BASIC atau C) lebihmudah dibandingmenggunakanbahasa assembly.

Mikroprosesor 29

AVR dan bahasa C

• Kompiler bahasa C untuk mikrokontrolerAVR– WinAVR

– IAR C– GCC AVR (GNU Compiler Collection)

– ICC AVR(Imagecraft C Compiler for AVR)– CodeVision AVR

Mikroprosesor 30

Dasar-dasar bahasa C

• Bentuk paling sederhana suatu program dalam bahasa C

void main()

{

while(1) //do forever

;

}

Mikroprosesor 31

Dasar-dasar bahasa C

• Bentuk lebih lengkap#include <stdio.h>

void main()

{

printf(“HELLO WORD”);

while(1) //do forever

;

}

Mikroprosesor 32

Struktur Program C• Struktur Penulisan Program dlm bahasa C

secara umum terdiri dari :– Preprocessor

– Deklarasi Konstanta global atau variabel– Fungsi atau Prosedur

– Program Utama

• Ada kalanya dapat dilakukanPemrograman secara sederhana yaitudilakukan dengan menuliskan program utamanya saja

Mikroprosesor 33

Preprocessor• Preprocessor

– Digunakan untuk menyertakan teks dari file lain,misalnya header file yg berisi library yang akandigunakan dalam pemrograman, dengan # include file (*.hex),

– Digunakan untuk mendefinisikan macro, dengan#define

– Contoh: # include <mega8535.h># include <stdio.h># include <math.h>#define PULSE PORTC.0#define OUT 1

Mikroprosesor 34

Konstanta&Variabel• Deklarasi Konstanta&Variabel

– Berisi tentang nama konstanta & variabel, tipedata yg digunakan serta nilai awalnya(jikaada)

– Penulisan konstanta mengikuti aturan sbb:• Integer ditulis dengan format desimal biasa• Biner dengan awalan 0b (misal:0b10100011)• Heksadesimal dengan awalan 0x (misal: 0xff)• Unsigned Integer dengan akhiran U (misal: 1000U)• Long Integer dengan akhiran L (misal:99L)• Floating point dengan akhiran F(misal: 1.234F)

Mikroprosesor 35

Tipe Data• Tipe Data yg ada pada Codevision AVR

Mikroprosesor 36

Program• Untuk kemudahan dalam menyusun &

membaca suatu program terdapat:– Komentar

– Identifier– Fungsi

– Prosedur

Mikroprosesor 37

Komentar• Komentar tidak akan dikompilasi oleh

kompiler, keberadaan komentar hanyaberguna bagi kita(programmer) untukmembantu mengingat kembali kegunaansuatu program atau bagian programContoh :

// line comment/* block comment */ /* this is another

block comment*/

Mikroprosesor 38

Identifier• Identifier adalah suatu nama yg dapat

diberikan pada suatu variabel, fungsi, label atau obyek lainnya.

• Suatu identifier dapat berisi huruf (A...Z, a...z) dan angka (0...9), ataupun tandaunderscore character (_).

• Suatu identifier harus dimulai dengansuatu huruf atau underscore.

• Bersifat Case sensitif , variable1 tidaksama dengan Variable1.

• Identifiers memiliki panjang 64 characters

Mikroprosesor 39

Reserved Keywords• Ada beberapa kata yg tidak boleh digunakan

untuk identifier, di antaranya :breakbitbool_Boolcasecharconstcontinuedefaultdefined

Mikroprosesor 40

Flow Control

• Flow Control adalah bagian program ygdigunakan untuk mengatur/mengendalikanjalannya aliran program

• Dengan adanya flow control maka:– Dapat dibentuk suatu percabangan

– Dapat dibentuk suatu perulangan

• Flow control ini ada yg bersyarat(conditional) dan tidak bersyarat(unconditional)

Mikroprosesor 41

CodevisionAVRDecision and structures• IF-THEN• IF-THEN-ELSE• SWITCH-CASE-BREAK• SWITCH-CASE-DEFAULT• FOR• WHILE• DO-WHILE• BREAK• CONTINUE• GOTO-LABEL

Mikroprosesor 42

IF-THEN• Bentuk Umumif (kondisi) {

Pernyataan;

};

Contohif (a<0x50) {

PORTD=0xFF;

};

IF

Proses

(Pernyataan)

Ya

Tidak

Mikroprosesor 43

IF-THEN-ELSE• Bentuk Umumif (kondisi a) {

pernyataan a;

}

else {

pernyataan b;

};

IF

Proses a

(Pernyataan a)

Proses b

(Pernyataan b)

Ya

Tidak

Mikroprosesor 44

SWITCH-CASE• Bentuk Umumswitch (ekspresi) {

case konstanta1:penyataan1;

break;

case konstanta2:penyataan2;

break;

case konstantaN:penyataanN;

break;};

Mikroprosesor 45

SWITCH-CASE-DEFAULT• Bentuk Umumswitch (ekspresi) {

case konstanta1:

penyataan1;

break;

case konstanta2:

penyataan2;

break;

case konstantaN:

penyataanN;

break;

default:

pernyataanD;

};

K1

Proses 1

(Pernyataan 1)

K2

Proses 2

(Pernyataan 2)

K3

Proses 3

(Pernyataan 3)

Kn

Proses n

(Pernyataan n)

Default

Mikroprosesor 46

FOR• Bentuk Umumfor

(mulai;kondisi;penambahan/pengurangan) {

pernyataan1;penyataan2;

};

• Contoha=1;for (i=1;i<50;i++) {a=a*2;b=a-2;

};

Uji Proses

Mulai

Ya

Tidak

Mikroprosesor 47

WHILE• Bentuk Umumwhile (kondisi) {

pernyataan1;

Pernyataan2;

};

Uji ProsesYa

Tidak

Mikroprosesor 48

DO-WHILE• Bentuk Umumdo {

pernyataan1;

pernyataan2;

}

while (kondisi);

Uji

Proses

Ya

Tidak

Mikroprosesor 49

Flow Control lainnya

• BREAKDigunakan untuk menghentikan ataumengeluarkan dari suatu blok program

• CONTINUEDigunakan untuk melakukan kembaliproses perulangan dari awal

• GOTO-LABELDigunakan untuk melakukan loncatan kelabel yg sesuai.

Mikroprosesor 50

Flow Control lainnya

• Super Loop (perulangan terus menerustanpa syarat)

while (1) {

pernyataan1;

Pernyataan2;

};

Mikroprosesor 51

OPERATOR dalam C

• Operator adalah suatusimbol yang menyatakan suatu operasi tertentu.

• Dalam bahasa C ada 3 kelompok– Unary, operator yg beroperasi pada satu

operand– Binary, Operator yg beroperasi pada dua

operand

– Ternary, Operator yg memerlukan tiga ataulebih operand

Mikroprosesor 52

OPERATOR ARITMATIKA

Mikroprosesor 53

OPERATOR ARITMATIKA

Mikroprosesor 54

OPERATOR LOGIKA

Mikroprosesor 55

MANIPULASI BIT

Mikroprosesor 56

Prosedur• Prosedur adalah suatu kumpulan instruksi

untuk mengerjakan suatu keperluantertentu tanpa mengembalikan suatu nilai

void nama_prosedur(par 1,..,par N) {

Pernyataan-pernyataan;

}

Mikroprosesor 57

Fungsi• Fungsi adalah kumpulan instruksi untuk

mengerjakan suatu keperluan tertentu denganhasil akhir pengembalian nilai dari keperluantersebut.

Type data nama_fungsi (par1,..parN)

{

Pernyataan-pernyataan;

return variabel_hasil;

}

Mikroprosesor 58

Fungsi

• Fungsi untuk menghitung luas persegipanjang

Luas=panjang x lebar

Int luas ( int panjang, int lebar)

{

luas=panjang*lebar;

return luas;

}

Mikroprosesor 59

CodeVision AVR• CodevisionAVR adalah C COMPILER under

Windows untuk keluarga mikrokontroler AVR. • Dapat dijalankan pada Windows 98, Me, NT 4,

2000, XP dan Vista • Merupakan software tool yg bersifat IDE,

Integrated Development Environment, sehinggaterdapat fasilitas editor, assembler/kompiler,simulator dan emulator serta programmer

• Secara umum mengikuti kaidah bahasapemrograman bahasa C

• Hasil Kompilasi kompatibel dengan USB Programmer AVR910, Kanda System, dsbnya

Mikroprosesor 60

CodeVisionAVR IDE

Mikroprosesor 61

CodewizardAVRTerdapat Fasilitas Codewizard yg dapat kita

gunakan untuk kemudahan membuatprogram

• Setting jenis chip dan kristal yg digunakan• Mengakomodasi fitur-fitur AVR• Konfigurasi pada program dilakukan

secara otomatis• Pengguna tinggal melanjutkan/melengkapi

program sesuai dengan aplikasi yg dibuat

Mikroprosesor 62

CodewizardAVR• Tentukan Chip&Crystal yg

digunakan• Konfigurasi I/O• Setting Interupt• Setting Timer/Counter• Setting LCD• Setting I2C,SPI,1Wire• Setting USART,ADC,

Analog Comparator• Tab fitur yg muncul

mengikuti type chip ygdigunakan

Mikroprosesor 63

CodeVision AVR

• Pengaturan programmer

• Pilih Atmel AVRProg (AVR910)

Mikroprosesor 64

CodeVision AVR

• Click File>New

• Muncul Dialog Box, pilih Project, click OK

Mikroprosesor 65

CodeVision AVR

• Muncul dialog box bantuanCodeWizard

• Pilih Yes, aturcodewizard sesuaikebutuhan, laluGenerate, save&exit

Mikroprosesor 66

CodevisionAVR IDE

• Anda akan diminta menyimpan(save) tigajenis file yaitu:*.c,*.prj,*.cwp

Mikroprosesor 67

CodevisionAVR IDE

• Lengkapilah program anda melalui editor yg ada pada CodeVision AVR, anda akanmelakukan perubahan pada file *.c

• Setelah selesai editing program, aturproject agar sesuai dengan jenis aplikasiyg dibuat , type data yg dipergunakan(pada Codevision type data yg bisadigunakan terbatas)

Mikroprosesor 68

CodeVision AVR

Mikroprosesor 69

CodevisionAVR IDE

• Atur pada tab After Build, agar secaraotomatis setelahselesai kompilasidan anda dapatlangsungmendownload kechip mikrokontroler(aktifkan pilihanProgram the Chip)

Mikroprosesor 70

CodevisionAVR IDE• Untuk memperoleh suatu executable program

dibutuhkan langkah berikut:1. Mengkompilasi Program dlm bahasa C yg dari

suatu project, menggunakan CodeVisionAVR C Compiler, dan menghasilkan file object ygdibutuhkan oleh linker

2. Melakukan Linking file object files yg dihasilkanpada tahap kompilasi dan menghasilkan satu file assembler source file

3. Melakukan Assembling terhadap assembler source file, menggunakan Atmel AVR assembler AVRASM2.

Mikroprosesor 71

CodevisionAVR IDE• Terhadap suatu Project terdapat tiga

aktifitas yg terkait dengan proseskompilasi– Compile, hanya melakukan proses 1– Build, melakukan proses 1,2 dan 3 namun

hanya terhadap bagian/modul program ygtelah diubah dari sebelumnya

– Build All, melakukan proses 1,2 dan 3 terhadap semua bagian/modul program darisuatu project

Mikroprosesor 72

CodevisionAVR IDE

• Build membutuhkan waktu yg lebih singkatdibanding dengan Build All

• Build All lebih terjamin• Untuk lebih amannya pilih saja Build All

Mikroprosesor 73

CodevisionAVR IDE

• Muncul Informasitentang hasilkompilasi

• Jika tidak terdapaterror maka andadapat langsungmendownloaddengan memilihtombol Program the Chip

Mikroprosesor 74

DT AVR LC Micro

• Dilengkapi dengan RS232

Mikroprosesor 75

Sistem Minimal

• ATmega 8535

Mikroprosesor 76

Sistem Minimal

Mikroprosesor 77

Sistem Minimal

• Sebenarnya mikrokontroler AVR memungkinkan untuk beroperasi dengantidak menggunakan crystal, yg digunakanadalah internal osilator AVR

• Konfigurasi yg harus dibuat hanya koneksipada Vcc dan ground serta AVcc danAGND

• Harus dilakukan pengubahan pada fuse bit yg mengatur pilihan sumber clock (setting dilakukan pada programmer)

Mikroprosesor 78

PROGRAMMER/DOWNLOADER

• KandaSystem STK200/STK300

Mikroprosesor 79

PROGRAMMER/DOWNLOADER

• KandaSystem STK200/STK300

Mikroprosesor 80

PROGRAMMER/DOWNLOADER

• KandaSystem STK200/STK300

Mikroprosesor 81

USB ISP AVR910

• AVR 910

Mikroprosesor 82

AVRDOPER USB ISP

Mikroprosesor 83

K 125-i

Mikroprosesor 84

Programmer

• Contoh Programmer lain– AVRdude-SP12 (http://xs4all.nl/~sbolt/e-

index.html)– TwinAVR (www.rowalt.de/mc/)

Mikroprosesor 85

Bootloader• Bootloader :aplikasi pada mikrokontroler

yang memungkinkan untuk memprogramulang program utama pada mikrokontrolertersebut.

• Bootloader memungkinkan pengubahanprogram pada mikrokontroler dilakukanmelalui komunikasi serial tanpamembutuhkan programmer yang berupahardware khusus.

Mikroprosesor 86

Pemrograman Motorola M68HC11

Nuryono S.W.,S.T., M.Eng.

Mikroprosesor 87

EVBU• Terdiri dari:

– M68HC11(seri E9)– MC68HC68 (Real Time Clock)– RS232 Communication– Expanded Devices (EPROM/EEPROM, RAM dan PPI

8255)

Mikroprosesor 88

BUFFALO

• Bit User Fast Friendly Aid To Logical Operations

• Program Monitor, suatu program ygmenyediakan suatu lingkungan kerja ygterkontrol di mana sistem (M68HC11) dapat beroperasi

• Dilengkapi User Interface (UI) agar pengguna dapat mengakses memory, menjalankan program aplikasi danmemonitor fungsi dan kerja M68HC11

Mikroprosesor 89

BUFFALO• Bersama dengan EVBU, memungkinkan

– On-line assembler (Memasukkan program secaralangsung ke memory)

– Program Download (Program yg telah dibuat dandiassembly secara eksternal dapat dimasukkan kedalam memory)

– Debugging/trace (menjalankan program secara step atau instruksi per instruksi agar pengguna bisamengamati jalannya program dan isi dari register danmemory M68HC11)

• BUFFALO sudah ada di dalam M68HC11 sejakdari Pabrik (di dalam ROM),namun bisa dinonaktifkan

Mikroprosesor 90

Konfigurasi• Untuk menggunakan

EVBU dan BUFFALO dibutuhkan :– PC dengan program yg

dbutuhkan(Programmer’s Notepad & AxIDE atauHyperterminal atauProComm dan AS11, Q Editor)

– EVBU dan Power Supplynya

– Kabel serial

HOST COMPUTER

EVBU 68HC11

POWERSUPPLY

COM1COM2

RS 232

Mikroprosesor 91

Assembler Directives• ORG (Originate)

Directive yang digunakan untuk mengeset lokasi Program Counter dari assembler. Assembler akan menterjemahkan statemenprogram ke dalam kode instruksi mesin dan data pada lokasimemori yang ditunjukkan oleh ORG ini dan kemudian Program Counter akan menunjukkan lokasi memori berikutnya. Setiapprogram setidaknya mempunyai satu ORG untuk menentukanalamat awal program dalam memori. Program yang lengkapmemiliki ORG kedua yang menentukan alamat vektor reset danvektor interrupt.

• EQU (Equate)Directive yang digunakan untuk mengasosiasikan nilai biner dengansuatu label. Nilai ini bisa 8 bit maupun 16 bit. Directive ini tidakmembentuk kode objek apa pun. Dalam proses assembly, assembler harus selalu melihat daftar referensi di mana diamenyimpan nilai biner ekuivalen untuk setiap label. Jika ada label yang muncul dalam program, assembler akan melihat padareferensi untuk mendapatkan nilai biner ekuivalennya.

Mikroprosesor 92

Assembler Directives• FCB (Form Constant Byte) memiliki argumen

berupa label atau angka, yang dipisahkandengan koma, yang dapat dikonversikanmenjadi data-data byte tunggal. Setiap byte yang dispesifikasikan dalam directive FCB menghasilkan sebuah byte kode mesin dalamfile objek. Karena itu FCB digunakan untukmendefinisikan suatu konstanta dalam suatuprogram

• FDB (Form Double Byte) memiliki argumenberupa label atau angka, yang dipisahkandengan koma, yang dapat dikonversikanmenjadi data 16 bit.

Mikroprosesor 93

Assembler Directives• FCC (Form Constant Character)

digunakan untuk mengisi suatu memoridengan suatu karakter dlm kode ASCII

• RMB (Reserve Memory Byte) digunakanuntuk mengeset suatu spasi dalam RAM untuk tempat variabel program.

• FILL digunakan untuk mengisi sejumlahmemori dengan suatu konstanta

• BSZ (Block Store Zeros) & ZMB (Zero Memory Byte) digunakan untuk mengisisejumlah memori dengan nol

Mikroprosesor 94

Assembler Directives• Contoh penggunaan directive dalam

assembler adalah:

PORTA EQU$00ORG $0200

DATA FCB $35,$89,$67ADD_DATA FDB STARTTEMPA RMB 1TEMPX RMB 1

Mikroprosesor 95

Simbol KhususInformasi yang disediakan dalam listing program menggunakanbeberapa simbol untuk menentukan tipe dari numerik yang digunakan. Simbol khusus ini adalah:

• Tanpa simbol mengindikasikan numerik desimal. Angka ini akanditerjemahkan menjadi nilai biner sebelum disimpan dalam memoridan digunakan oleh CPU.

• Simbol $ mengindikasikan numerik heksadesimal, seperti $24 adalah 24 dalam heksadesimal yang bernilai sama dengan 36 desimal.

• Simbol @ mengindikasikan numerik oktal, seperti @10 bernilaisama dengan 8 desimal.

• Simbol % mengindikasikan numerik biner, seperti %000100 bernilaisama dengan 8 desimal.

• Simbol ‘ (apostrof) mengindikasikan karakter ASCII tunggal. • Simbol # mengindikasikan operand langsung (immediate) dan

angka ditemui langsung dalam lokasi memori yang mengikuti kodeoperasi. Beberapa macam simbol dan ekspresi dapat mengikutisimbol # ini.

Mikroprosesor 96

File Kode Objek• File Kode Objek• Telah dipelajari bahwa komputer meminta program dalam bentuk nilai 8-bit di dalam

memori. Sejauh ini, program yang ditulis terlihat sebagai tulisan manusia, sedangkanyang diinginkan oleh komputer untuk dimuat ke memori adalah yang disebut denganobject code file (file kode objek). Untuk mikrokontroler Motorola, bentuk umum darifile kode objek adalah S-record file. Assembler dapat digunakan untuk menghasilkanlisting file maupun file kode objek ini.

• Suatu file S-record adalah file teks ASCII yang dapat dilihat dengan program tekseditor atau pengolah kata biasa. Setiap baris dari file ini adalah sebuah record. Setiaprecord dimulai dengan huruf kapital S dan diikuti oleh angka-angka kode dari 0 sampai 9. Angka-angka kode yang penting adalah S0, S1, dan S9. S0 adalah header record opsional yang berisi nama dari file untuk kepentingan pemakai yang inginmenggunakan file ini. S1 adalah data record utama. Dan suatu record S9 digunakanuntuk menandai akhir dari file S-record. Gambar di bawah menunjukkan sintaks dariS1-record.

• Semua angka di dalam file S-record ditulis dalam format heksadesimal. Field length(panjang) adalah jumlah pasangan digit heksadesimal di dalam record tanpatermasuk field type dan length. Field address (alamat) adalah alamat 16-bit di manabyte data pertama akan disimpan di dalam memori. Setiap pasangan dari digit heksadesimal di dalam field object code data adalah kode mesin yang mewakili suatuharga 8-bit yang akan disimpan dalam suatu lokasi di memori. Field checksumadalah harga 8-bit yang mewakili komplemen (1’s complement) dari jumlah semuabyte dalam record S untuk mem-verify bahwa data sudah benar dan komplit.

Mikroprosesor 97

Addressing Mode• Immediate:

Dalam mode pengalamatan ini, operand ditempatkan pada lokasialamat setelah opcode. Jumlah byte yang dibuthkan tergantungpada ukuran memori atau register yang dioperasikan. Contoh :LDAA #23LDAB #%01000110

• ExtendedAlamat efektif operand disimpan pada dua byte setelah opcode, satu byte untuk high-order dan satu byte untuk low-order. Instruksiyang menggunakan mode pengalamatan ini membutuhkan tiga atauempat byte. Satu atau dua byte untuk opcode dan dua byte untukoperand. Contoh :LDAA $1023STAA $10FF

Mikroprosesor 98

Addressing Mode• Direct

Alamat operand low-order byte ditempatkan sesudah opcode. Alamat operand high-order byte adalah $00. Mode pengelamatn inihemat memori dan waktu eksekusi karena hanya membutuhkansatu byte untuk alamat operand.Contoh :LDAA $20LDAA $30

• InherentPada mode pengalamatan inherent semua informasi yang dibutuhkan untuk melaksanakan instruksi terdapat dalam opcodesehingga tidak memerlukan operand. Contoh :INCAINCBINXINY

Mikroprosesor 99

Addressing Mode• Indexed

Alamat efektif ditentukan dengan menjumlahkan ofsetalamt 8 bit pada instruksi dengan isi register index (IX atau IY). Contoh :LDX #$1000LDAA $20,XADDA $30,X

• RelativeMode pengalamatan relatif hanya digunakan padainstruksi percabangan(branch). Jika kondisipercabangan benar maka alamat ofset 8 bit yang terdapat pada instruksi ditambahkan dengan isi Program Counter untuk membentuk alamat efektif percabangan.

Mikroprosesor 100

Konsep Pemrograman

• Mode Pengalamatan

Mikroprosesor 101

Konsep Pemrograman

• Mode Pengalamatan

Mikroprosesor 102

Konsep Pemrograman

• Mode Pengalamatan

Mikroprosesor 103

Referensi• Ken Stiffler, 1996, Design with Microprocessor

for Mechanical Engineers, McGraw Hill,hal 44-85

• John Crisp, 2004, Introduction to Microprocessors & Microcontrollers, NewnesPublishing

• Technician’s Guide to M68HC11 Microcontroller

• Dhananjay V. G., 2001, Programming & Customizing the AVR Microcontroller, McGraw Hill

• www.freescale.com• www.microchip.com