PETUNJUK PEMROGRAMAN DAN SET INSTRUKSI

dokumen-dokumen yang mirip
Ringkasan Set Instruksi Dan Mode pengalamatan ( Addressing Mode )

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

MIKROKONTROLER ATMEL AT89C51

INSTRUKSI DAN BAHASA PEMOGRAMAN MIKROKONTROLER

Tabel Perbandingan ROM dan RAM pada beberapa seri ATMEL

DESKRIPSI SINGKAT INSTRUKSI-INSTRUKSI PADA AT89S51

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

MODUL 5 SISTEM PENGENDALIAN BERBASIS MIKROKONTROLER

Mengenal bahasa assembly

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

LAMPIRAN D DATA SHEET

Menggunakan Bahasa Pemrograman Assembly

BAB 2 LANDASAN TEORI. Dalam bab ini penulis akan membahas tentang komponen-komponen yang

Lab Elektronika Industri Mikrokontroler - 1 AT89C1051

Program Studi Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lambung Mangkurat

PERTEMUAN. SET INSTRUKSI MIKROKONTROLER AT 89C51 (Lanjutan)

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

Instruction Set Mikrokontroler

PERTEMUAN BAHASA PEMOGRAMAN ASSEMBLER

BELAJAR MIKROKONTOLER AT89C51/52/55 (Teori dan aplikasi)

BAB 2 LANDASAN TEORI. Agar kendaraan lebih teratur dan tidak terlalu padat, biasanya tempat perparkiran ini dibagi

PORT SERIAL MIKROKONTROLER ATMEL AT89C51

BAB VI MIKROKONTROLER

PEMBUATAN ALAT PRAKTIKUM MIKROKONTROLER (AT89S51)

Gambar 1.1. Diagram blok mikrokontroller 8051

Laporan Modul 2, EL3006 Timer/Counter dan Interrupt Jongguran Sondang DN ( )/ Kelompok 48/ Jumat, 14 Maret 2008 Asisten: Virgilius

Percobaan 5 PENGENALAN MIKROKONTROLER 8051

Pengendalian 8 buah Motor oleh DST-51

PORT PARALEL MIKROKONTROLER ATMEL AT89C51

Microcontroller: Bahasa Pemrograman Assembly 8051

KBK 635 MIKROKONTROLER PENDAHULUAN

Daftar Isi Daftar Isi. I. Pendahuluan A. Pengenalan DT51 Debugger. B. Istilah pada Instruksi MCS-51 1) Program Status Word (PSW).

4. Port Input/Output Mikrokontroler MCS-51

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT.

Pendahuluan Mikrokontroler 8051

Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus

TIMER DAN COUNTER MIKROKONTROLER ATMEL

Memprogram Port sebagai Output dan Input Sederhana

BAB 2 LANDASAN TEORI. Dalam bidang elektronika, perlahan-lahan peralatan-peralatan manual mulai digantikan

Memprogram Interupsi AT89S51

Bahasa Pemrograman Assembler 8051

BAB II TEORI DASAR PENUNJANG

I/O dan Struktur Memori

APLIKASI MODUL DST -52 SEBAGAI JAM DIGITAL DENGAN INPUT DARI PC KEYBOARD DAN M1632 LCD SEBAGAI PENAMPIL

BAB III RANCANGAN DAN CARA KERJA ALAT

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN TEORITIS

LM124/LM224/LM324/LM2902

AT89S52 8kByte In-System Programmable Mikrokontroler

TUGAS AKHIR JAM DIGITAL BERBASIS MIKROKONTROLER AT89S51. Disusun oleh : MUHAMAD YUSUF PARDEDE NIM:

ORGANISASI MEMORI MIKROKONTROLER MCS-51. Yoyo Somantri dan Erik Haritman Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

Mikrokontroler 89C51 Bagian II :

BAB II LANDASAN TEORI

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

MIKROKONTROLLER AT89S51

Tabel 1. Karakteristik IC TTL dan CMOS

PERCOBAAN 2 SAKLAR PUSH BUTTON

Struktur Bahasa Assembler Mikrokontroller MCS51

AKSES MEMORI Menggunakan DT-51 MinSys

Alarm Pintu, Harap Pintu Tutup Kembali, Jangan Buka Pintu Lama-lama versi 2

Percobaan 5. TIMER/COUNTER Menggunakan DT-51 MinSys

BAB II DASAR TEORI. Laporan Tugas Akhir Controller Aktuator Plant/Process. Gambar 2.1 Sistem Kontrol Closed Loop

PENGENALAN DASAR MIKROKONTROLER MCS-51 AT89S51/52. DI SUSUN OLEH: RENI NURAENI,ST M.Pd

Register-register MT8888

PENAMPIL TOMBOL-TOMBOL REMOTE CONTROL SONY PADA M1632 LCD OLEH MODUL DST-52

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika

BAB 2 DASAR TEORI. membantu perkembangan didunia elektronika. Arsitektur mikrocontroler banyak

DASAR INPUT/OUTPUT (1) (PORT PPI DAN PORT 1 SEBAGAI OUTPUT)

MESIN KETIK ELEKTRONIK DENGAN TAMPILAN M1632 LCD OLEH MODUL DST-52

BAB II LANDASAN TEORI

PENGGUNAAN KEYPAD 4X3 DAN PC KEYBOARD PADA MODUL DST-52 DENGAN TAMPILAN M1632 LCD

PETUNJUK PRAKTIKUM MIKROKONTROLER. (AT89Sxx) Disusun oleh : Sumarna.

PERCOBAAN 9 T I M E R/ COUNTER

Pencipta bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada. sekitar tahun C adalah bahasa pemrograman terstruktur, yang membagi

PENGENALAN SISTEM KENDALI BERBASIS MIKROPROSESOR

BAB II DASAR TEORI. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan di dalam

BAB 3 MODE AKSES MEMORI, PENGGUNAAN VARIABEL DAN STACK

BAB 2 LANDASAN TEORI

Instruksi logika (1) Memanipulasi isi Accumulator, dibagi menjadi 2. Panjang instruksi : 1 byte. Panjang instruksi : 2 byte

SISTEM INTERUPSI MIKROKONTROLER ATMEL

DASAR INPUT/OUTPUT (2) (PORT PPI DAN PORT 1 SEBAGAI INPUT/OUTPUT)

digunakan untuk pembahasan dan cara kerja dari rangkaian Teori komponen-komponen pendukung.

PANDUAN DASAR MIKROKONTROLER KELUARGA MCS-51

TAMPILKAN NADA DTMF DAN DERING TELEPHONE OLEH MODUL DF-88 DAN MODUL DST-51 PADA LCD

MIKROKONTROLER AT89S52

BAB II LANDASAN TEORI

BAB 3 SET ARAHAN. Bahasa Tahap Rendah. Bahasa yang memudahkan pengaturcaraan tanpa memikirkan bagaimana data diolah (pindahmemindah)

MENAMPILKAN 1000 KARAKTER PESAN PADA MODUL M1632 LCD OLEH MODUL DST-51

BAB 2 DASAR TEORI. Dalam bab ini penulis akan membahas tentang komponen komponen yang digunakan

BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3)

PERCOBAAN 1 DISPLAY LED

BAB IV ANALISA DAN HASIL UJI COBA RANGKAIAN

BAB II LANDASAN TEORI. Dalam merancang sebuah peralatan yang cerdas, diperlukan suatu

PENULISAN KARAKTER DENGAN MENGGUNAKAN TEKNIK PENULISAN PADA KEYPAD HANDPHONE OLEH MODUL DST-51, KEYPAD 4X3 DAN M1632 LCD

BAB 2 LANDASAN TEORI

Simple As Posible 2 (bag-2)

Aplikasi Pengukur Ketinggian Air Mengunakan Modul Sensor InfraRed Object Detector

LAMPIRAN A PERANGKAT LUNAK

ANTAR MUKA DST-51 DENGAN MODUL AD-0809

BAB II LANDASAN TEORI

Transkripsi:

Lab Elektronika Industri Mikrokontroler - 1 PETUNJUK PEMROGRAMAN DAN SET INSTRUKSI I. ORGANISASI MEMORI AT89C51 AT89C51 memisahkan antara memori untuk program dan untuk data dalam FLASH dan RAM. Metode ini membuat CPU 8 bit dapat dengat sangat efisien mengakses kedua memori. PROGRAM MEMORI (FLASH) AT89C51 hanya terdapat flash sebesar 4kB untuk menyimpan program. Jika program yang dibuat lebih besar dari 4kB (0000H 0FFFH) tentu ini membutuhkan tambahan memori. Tambahan untuk ROM bisa dipasang secara eksternal dan totalnya AT89C51 dapat mengakses program memori sebesar 64kB (0000H FFFFH). Ketika pertama kali mikrokontroler dihidupkan (atau di-reset), secara otomatis CPU akan melaksanakan perintah/instruksi pada memori program di alamat 0000H (memori paling bawah). Sedangkan ketika terjadi interupsi, maka program akan loncat ke alamat instruksi di lokasi 0003H jika sumber interupsi 0 dari luar, 000B jika Timer 0 habis dst. MEMORI DATA (RAM) Memori data internal terlihat seperti gambar berikut. Ruang memori data dikelompokkan ke dalam 3 yaitu ruang memori 128 atas, ruang memori 128 bawah dan SFR (Special Function Register). Sebenarnya AT89C51 hanya bisa mengakses memori data sebesar 256 alamat, tetapi dalam kenyataannya dengan cara pengalamatan yang berbeda dapat diakses 384 alamat yaitu yang dikelompokkan dalam 3 ruang memori di atas. Ruang 128 Bawah

Lab Elektronika Industri Mikrokontroler - 2 Memori data internal bagian 128 bawah terlihat seperti gambar berikut. Lokasi ini bisa dialamati dengan cara direct (langsung) dan indirect (tak-langsung). Lokasi 00H 1FH digunakan untuk 8 buah register keperluan umum yaitu R0, R1, R3, R4, R5, R6, dan R7. Sebenarnya register ini hanya menempati 8 alamat, tetapi dengan PSW (Program Status Word) akan dapat dipilih satu diantara 4 bank yang aktif untuk lokasi register R0 R7. Mulai alamat 20H 2FH adalah RAM yang bisa dialamati bit per bit. Dan alamat 30H 7FH adalah area bebas yang bisa dipakai untuk keperluan menyimpan data apa saja. Ruang 128 Atas Ruang 128 atas hanya dipunyai oleh mikrokontroler yang mempunyai RAM sebesar 256B atau lebih misalnya seri AT89C52, AT89C55, AT89S8252 atau AT89S53. Pada seri AT89C51 ukuran RAM hanya 128B sehingga tidak mempunyai ruang 128 atas. Ruang 128 atas hanya bisa diakses dengan pengalamatan tak langsung (indirect addressing). SFR (Special Function Register) SFR atau register fungsi khusus menempati ruang alamat seperti pada ruang 128 atas hanya saja cara akses ke SFR hanya bisa dilakukan dengan cara direct addressing. SFR terdiri dari banyak register untuk fungsi khusus seperti terlihat pada gambar di bawah. Termasuk dalam SFR adalah Port (P0, P1, P2, P3), register dalam CPU yaitu akumulator (A) dan register B (B), Timer (TH0, TH1, TL0, TL1, TCON, TMOD), interupsi (IE, IP, PCON), komunikasi serial (SBUF, SCON), Pointer (DPH, DPL), PSW (Program Status Word), SP (Stack Pointer). Register B, A, PSW, IP, P3, IE, P2, SCON, P1, TCON, P0 adalah register yang dapat dialamati bit per bit. Sedang register lain seperti SBUF, TH1, TH0, TL1, TL0, TMOD, PCON, DPH, DPL dan SP adalah register yang tidak dapat dialamati bit per bit. PENGALAMATAN RAM Ada beberapa cara mengalamati RAM yaitu: 1. Direct Addressing (pengalamatan langsung) 2. Indirect Addressing 3. Register Addressing 4. Immediate Constant 1. Direct Addressing ADD A, 7FH artinya tambahkan data di akumulator (A) dengan isi memori data di alamat 7FH dan hasilnya disimpan lagi di A. 2. Indirect Addressing ADD A, @R0

Lab Elektronika Industri Mikrokontroler - 3 artinya tambahkan data di akumulator (A) dengan isi memori yang alamatnya ada pada register R0 dan hasilnya disimpan lagi di A. 3. Register Addressing ADD A, R7 artinya tambahkan isi A dengan isi R7 dan hasilnya disimpan lagi di A atau A = A + R7 4. Immediate Constant ADD A, #127 tambahkan isi A dengan data sebesar 127 dan hasilnya disimpan lagi di A (A = A + 127). II. SET INSTRUKSI AT89C51 AT89C51 mempunyai format penulisan program adalah sebagai berikut: [Label:] Mnemonic [operand1], [operand2], [operand3] [;komentar] Suatu perintah selalu diawali oleh mnemonic (kode instruksi) dan boleh diikuti operand atau tidak sama sekali. Jika mnemonic diikuti operand maka harus dipisahkan oleh spasi. Jika operand yang dipakai lebih dari satu maka dipisahkan oleh koma. Untuk memberi komentar didahului tanda titik koma. Suatu baris perintah bisa diawali dengan label. Label ini digunakan untuk menandai pengulangan atau instruksi yang loncat dst. Contoh: 1. Instruksi yang tidak mempunyai operand RET NOP RETI 2. Instruksi dengan satu operand INC A INC R0 DEC A 3. Instruksi dengan 2 operand ADD A, #10 MUL A, B 4. Instruksi dengan 3 operand CJNE A, 45H, lompat Tabel 1. Instruksi Aritmatika Mikrokontroler Atmel. Mnemonic Operasi Mode Pengalamatan Dir Ind Reg Imm Siklus ADD A, <byte> A = A + <byte> 12 clock ADDC A, <byte> A = A + <byte> + C 12 clock SUBB A, <byte> A = A - <byte> - C 12 clock INC A A = A + 1 Akumulator saja 12 clock INC <byte> <byte> = <byte> + 1 12 clock INC DPTR DPTR = DPTR + 1 Data pointer saja 24 clock DEC A A = A - 1 Akumulator saja 12 clock DEC <byte> <byte> = <byte> - 1 12 clock MUL AB B:A = B x A Reg A dan B saja 48 clock DIV AB A = Bulat[A/B] B = Sisa[A/B] Reg A dan B saja 48 clock DA A Decimal Adjust Akumulator saja 12 clock

Lab Elektronika Industri Mikrokontroler - 4 Tabel 2. Instruksi Logika Mikrokontroler Atmel. Mnemonic Operasi Mode Pengalamatan Dir Ind Reg Imm Siklus ANL A, <byte> A = A.AND. <byte> 12 clock ANL <byte>, A <byte> = <byte>.and. A 12 clock ANL <byte>, #data <byte> = <byte>.and. #data 24 clock ORL A, <byte> A = A.OR. <byte> 12 clock ORL <byte>, A <byte> = <byte>.or. A 12 clock ORL <byte>, #data <byte> = <byte>.or. #data 24 clock XRL A, <byte> A = A.OR. <byte> 12 clock XRL <byte>, A <byte> = <byte>.or. A 12 clock XRL <byte>, #data <byte> = <byte>.or. #data 24 clock CLR A A = 00H Akumulator saja 12 clock CPL A A =.NOT. A Akumulator saja 12 clock RL A Putar kiri 1 bit Reg A Akumulator saja 12 clock RLC A Putar kiri 1 bit Reg A lewat C Akumulator saja 12 clock RR A Putar kanan Reg A Akumulator saja 12 clock RRC A Putar kanan 1 bit Reg A lewat C Akumulator saja 12 clock SWAP A Tukar 4bit rendah dan tinggi Reg A Akumulator saja 12 clock Tabel 3. Instruksi Transfer Data Pada Mikrokontroler Atmel. Mnemonic Operasi Mode Pengalamatan Dir Ind Reg Imm Siklus MOV A, <sumber> A = <sumber> 12 clock MOV <tujuan>, A <tujuan> = A 12 clock MOV <tujn>, <smbr> <tujuan> = <sumber> 24 clock MOV DPTR, #data16 DPTR = data langsung 16 bit 24 clock PUSH <sumber> INC SP ; MOV @SP, <sumber> 24 clock POP <tujuan> MOV <tujuan>, @SP ; DEC SP 24 clock XCH A, <byte> Tukar antara reg A dan <byte> 12 clock XCHD A, @Ri Tukar 4bit rendah antara reg A dan isi memori dengan alamat di R0/R1 Tabel 4. Instruksi Transfer Data Yang Mengakses Memori Data Eksternal. 12 clock Mnemonic Operasi Siklus MOVX A, @Ri A = baca memori eksternal dgn alamat pada reg R0/R1 24 clock MOVX @Ri, A tulis reg A ke memori eksternal dgn alamat pada reg R0/R1 24 clock MOVX A, @DPTR A = baca memori eksternal dgn alamat pada reg DPTR 24 clock MOVX @DPTR, A tulis reg A ke memori eksternal dgn alamat pada reg DPTR 24 clock Tabel 5. Instruksi Baca Data Dari Memori Program. Mnemonic Operasi Siklus MOVC A, @A + DPTR A = baca memori program dgn alamat pada reg (A + DPTR) 24 clock MOVC A, @A + PC A = baca memori program dgn alamat pada reg (A + PC) 24 clock

Lab Elektronika Industri Mikrokontroler - 5 Tabel 6. Instruksi Boolean. Mnemonic Operasi Siklus ANL C, bit C = C.AND. bit 24 clock ANL C, /bit C = C.AND..NOT. bit 24 clock ORL C, bit C = C.OR. bit 24 clock ORL C, /bit C = C.OR..NOT. bit 24 clock MOV C, bit C = bit 12 clock MOV bit, C bit = C 12 clock CLR C C = 0 12 clock CLR bit bit = 0 12 clock SETB C C = 1 12 clock SETB bit bit = 1 12 clock CPL C C =.NOT. C 12 clock CPL bit bit =.NOT. bit 12 clock JC rel loncat ke alamat rel (label) jika C = 1 24 clock JNC rel loncat ke alamat rel (label) jika C = 0 24 clock JB bit, rel loncat ke alamat rel (label) jika bit = 1 24 clock JNB bit, rel loncat ke alamat rel (label) jika bit = 0 24 clock JBC bit, rel loncat ke alamat rel (label) jika bit = 1 dan kemudian buat bit = 0 24 clock Tabel 7. Instruksi Loncat Tidak Bersyarat. Mnemonic Operasi Siklus JMP rel Loncat ke alamat rel (label) 24 clock JMP @A + DPTR Loncat ke alamat yang ditunjuk (A + DPTR) 24 clock CALL rel Panggil subrutin pada alamat rel (label) 24 clock RET Kembali dari subrutin 24 clock RETI kembali dari interupsi 24 clock Tabel 8. Instruksi Loncat Dengan Syarat. Mnemonic Operasi Mode Pengalamatan Dir Ind Reg Imm Siklus JZ rel Loncat jika A = 0 Akumulator saja 24 clock JNZ rel Loncat jika A 0 Akumulator saja 24 clock DJNZ <byte>, rel CJNE A, <byte>, rel <byte> dikurangi 1 dan loncat ke alamat rel (label) jika belum = 0 Loncat ke alamat rel (label) jika A <byte> 24 clock 24 clock CJNE <byte>, #data, rel Loncat ke rel jika <byte> #data 24 clock III. BAHASA ASSEMBLY AT89C51 Penulisan bahasa assembly untuk mikrokontroler Atmel AT89C51 dapat digunakan sembarang program editor. Yang perlu diperhatikan bahwa file program dalam bahasa assembly harus disimpan dalam format teks (text). Untuk menuliskan bahasa assembler haruslah dipahami beberapa istilah sbb: 1. Label dan Simbol.

Lab Elektronika Industri Mikrokontroler - 6 Label mewakili suatu alamat dari instruksi atau data. Penulisan label diakhiri titik dua (:). Simbol adalah seperti label hanya tidak diakhiri tanda titik dua. Label dan simbol harus diawali dengan huruf. PAR EQU 500 ; PAR adalah suatu simbol dari nilai 500 START: MOV A,#0FFH ; START adalah label yang menunjuk lokasi intruksi tsb. 2. Penulisan konstanta langsung. Konstanta langsung yang dipakai diakhir bilangan ditulis dengan simbol B untuk biner, D atau untuk desimal, H untuk heksadesimal. Penulisan konstanta langsung harus diawali dengan tanda # dan diikuti angka tidak boleh huruf. MOV A, #255 MOV A, #11111111B MOV A, #0FFH MOV A, #255D Semua instruksi di atas adalah sama yaitu mengisi A dengan data 255. Pemberian konstanta bisa juga dengan cara berikut: NILAI EQU 100 MOV A,#NILAI ;A diisi 100 desimal ORL 40H,#NILAI ;isi memori alamat 40H.OR. dengan 100 desimal 3. Penulisan simbol assembler lain ULANG: JNB TI, ULANG JNB TI, $ kedua instruksi itu adalah sama. 4. Pengalamatan tak langsung (Indirect Addressing) dilakukan dengan tanda at / @ bersama dengan R0, R1, PC atau DPTR. ADD A, @R0 MOVC A, @A+PC 5. Alamat Data Untuk mengakses data dalam memori dapat dengan memberikan alamatnya baik dengan pengalamatan langsung maupun tak-langsung (RAM alamat 00H 7FH), pengalamatan taklangsung (RAM alamat 80H 0FFH), pengalamatan langsung (SFR alamat 80H 0FFH) atau dengan menyebut nama baku register SFR. MOV 45H, A ;memori alamat 45H diisi nilai A MOV @R1, 30H ;memori alamat 30H disalin ke momori alamat R1 MOV A, SBUF sama seperti MOV A, 99H 6. Alamat Bit Kelebihan MCS51 adalah dapat mengakses per bit. RAM alamat 20H hingga 2FH adalah lokasi yang bisa dialamati bit dengan alamat 00H hingga 0FFH ditambah beberapa SFR seperti register A, TCON, P0, P1, P2, P3, IE dll. SETB 0Eh ;memori alamat 0Eh diset logika 1 CLR P2.0 ;port 2 bit 0 diisi logika 0 JNB TI, ULANG ;cek bit TI diregister SCON jika 1 loncat ULANG JNB SCON.1, ULANG ;sama dengan instruksi di atas 7. Alamat Memori Program (kode) Alamat memori program biasanya diwakili oleh LABEL untuk melakukan instruksi atau loncat pencabangan. LAGI:...... SJMP LAGI Instruksi JMP dan CALL dibedakan dalam SJMP (short jump), AJMP (absolute jump), LJMP (long jump) dan ACALL (absolute call), LCALL (long call). Short hanya mewakili 8 bit

Lab Elektronika Industri Mikrokontroler - 7 alamat offset sehingga lompatan hanya terbatas pada 256 lokasi terbagi 128 alamat sebelumnya atau 128 alamat sesudahnya. Absolute mewakili alaamt offset 11bit alamat sehingga lompatan terbatas pada 2K alamat dalam blok memori yang sama. Sedang Long mewakili alamat 16bit sehingga dapat melompat ke 64K alamat di mana saja. Perbedaannya short dan absolute hanya membutuhkan 2 byte kode instruksi sedang long membutuhkan 3 byte kode instruksi. 8. Karakter dan String Operand dapat berupa huruf satu karakter atau lebih (string) yang diapit tanda petik tunggal ( ). Karakter dan string akan diisikan menjadi bilangan sesuai kode ASCII. MOV A, # A MOV A,#41 ;kedua instruksi hasilnya sama 9. Operator Aritmatika Operator aritmatika dapat digunakan untuk operasi operand. Operator yang digunakana: + penambahan - pengurangan * perkalian / pembagian hasil bulat mod modulo (sisa pembagian) Dua kelompok instruksi berikut hasilnya sama: MOV A, #10 + 10h sama MOV A, #1Ah MOV A, #25 MOD 7 sama MOV A, #4 MOV A, #25 / 7 sama MOV A, #3 10. Operator Logika Operator logika dapat digunakan dalam operasi operand. Operator yang digunakan: OR logika OR AND logika AND XOR logika Ex-OR NOT logika NOT Dua kelompok instruksi berikut hasilnya sama: MOV A, # 9 AND 0Fh sama MOV A, #9 TIGA EQU 3 MinTiga EQU -3 MOV A, #(NOT TIGA) + 1 sama MOV A, #MinTiga MOV A, #MINTIGA sama MOV A, #11111101B 11. Operator Khusus SHR shift right (geser kanan) SHL shift left (geser kiri) HIGH byte tinggi (d15... d8) dari data 16 bit LOW byte rendah (d7... d0) dari data 16 bit Dua kelompok instruksi berikut hasilnya sama: MOV A, #8 SHL 1 sama MOV A, #16 MOV A, #HIGH 2354H sama MOV A, #23H MOV A, #LOW 2354H sama MOV A, #54H 12. Operator Relasional

Lab Elektronika Industri Mikrokontroler - 8 Program editor untuk penulisan program assembly bisa digunakan CRIMSON EDITOR. Tampilan program tampak seperti gambar di bawah. Program assembler yang ditulis kemudian disimpan dengan nama ekstensi file.asm. Dari file teks dengan ekstensi.asm, kemudian dicompile dengan program ASM51.EXE dengan cara sebagai berikut misal: C:\ ASM51 COBA.ASM Setelah di-compile akan terbentuk file COBA.OBJ yang merupakan kode obyek mikrokon-troler Atmel (bahasa mesin dari mikrokontroler Atmel) dan file COBA.LST. File yang berekstensi.lst adalah file report untuk mengecek bila terjadi kesalahan dengan melihat di instruksi mana terjadi kesalahan. Jika setelah di-compile tidak terjadi kesalahan, maka file obyek kemudian bisa diubah ke format heksadesemal dengan file OH.EXE dengan cara : C:\OH COBA.OBJ Setelah itu akan terbentuk lagi file dengan nama COBA.HEX. Kemudian file dengan ekstensi HEX inilah yang kita programkan ke dalam mikrokontroler Atmel. Coba.obj OH Coba.hex Coba.asm ASM51 Coba.lst X. PEMROGRAM ATMEL 89C51 Pemrogram Mikrokontroler Atmel atau Atmel programmer dapat dilihat di gambar berikut ini.

Lab Elektronika Industri Mikrokontroler - 9 Atmel programmer adalah modul untuk memprogram instruksi ke dalam flash ROM. Carannya, Atmel programmer dihubungkan ke komputer lewat serial port dan ke power supply 12V. Jalankan program UNIPROG.EXE. Pasang mikrokontroler yang akan diisi program ke soket IC TARGET. Untuk memilih menu pilih huruf depannya seperti: D : Device = memilih seri mikrokontroler yang akan diprogram H : HexFile = memilih file HEX yang akan diisikan ke mikrokontroler C : Checksum = mengecek checksum mikrokontroler A : Autoselect = mendeteksi jenis/seri mikrokontroler yang terpasang pada target R : Read = membaca isi program di mikrokontroler dan menyimpan ke file V : Verify = mengecek isi file HEX dengan yang telah diisikan ke mikrokon-troler. E : Erase = menghapus isi program dalam mikrokontroler P : Program = memulai mengisi program ke mikrokontroler L : Lock = mengunci program di mikrokontroler agar tak bisa dibaca lagi F : Fuse = dipakai juga untuk proteksi program pada beberapa tipe mikrokontroler S : Signature = membaca tanda/keterangan IC target Q : Quit = keluar program dan selesai. Setelah sukses mengisi program kedalam mikrokontroler, ambil dari soket TARGET dan kemudian pasang mikrokontroler ke modul percobaan untuk dijalankan. Perhatikan bahwa pemasangan IC tidak boleh keliru (perhatikan dengan seksama) mana pin 1 dan mana pin 40 agar tidak keliru.