Mikrokontroller (2)

Preview:

DESCRIPTION

teory of mikrokontroller

Citation preview

MIKROKONTROLLER(UC)

• 1. Apakah PERBEDAAN mikrokontroler danmikroprosesor?

• 2. Apakah yang dimaksud dengan CPU, piranti memoridan I/O port?

• 3. Apakah Bit dan Byte

• 4. 1111100011101 + 1011000011101 ?

• 5. ubahlah bilangan hexa berikut menjadi biner : FFAB234

• Mikrokontroler adalah merupakan one chip microcomputer, dimana dalam satu chip sudah terdapat piranti sebuah komputersecara umum, yaitu RAM, ROM, CPU, dan I/O port

• Mikroprosesor adalah piranti pemrosesansental/cpu yang merupakan tempat proses-proses sebuah komputer dijalankan. Sebuahmikroprosesor memerlukan periperal lain seperti RAM, ROM dan I/O untuk dapatmelakukan tugas-tugasnya. Mikroprosesoradalah “otak”nya PC (personal Computer)

• hardware adalah perangkat fisik yangnampak berupa sebuah chip yang langsungberhubungan dengan piranti fisik lain.

• Software adalah perangkat lunak berupasoftware yang mapu menggerakkanperangkat fisik

• Antara hardware dan software dalammikrokontroler tidak bisa dipisahkan satusama lainnya. Tanpa softwaremikrokontroler hanyalah sebuah chip kosongyang tidak berarti apa-apa, sedangkan tanpahardware mikrokontroler tidak bisa berjalan.

• Perkembangan teknologi semionduktor begitu pesatsehingga di pasaran beredar ribuan jenis IC (integrated circuit dengan kegunaan beragam, kebutuhan manusiayang semakin kompleks memungkinkan untuk dibuat IC yang bisa di program sesuai dengan kebutuhan, semikonduktor yang masuk jenis ini adalahmikroprosesor, mikrokontroler, CPLD (Complex Programable Logic Device) dan FPGA (Field ProgramableGate Array)

APLIKASI MIKROKONTROLER

• Mikrokontroler digunakan mulai dari mainan anak-anak, perangkat elektronik rumah tangga, perangkat pendukungotomotif, peralatan industri, peralatan telekomunikasi, peralatan medis dan kedokteran, sampai denganpengendali robot serta persenjataan militer.

Kegunaan uC?

• Kegunaan dari mikrokontroler pada umumnya banyakdigunakan untuk aplikasi sistem kendali atau monitoring, misalnya sebagai alat kontrol penampil tulisan, sistempengukuran jarak jauh (telemetri), berbagai mainan anak-anak dan sistem elektronika lainnya

Keuntungan piranti yang bisadiprogram antara lain:(1)Biaya yang bisa di tekan

(2)Penghematan ruang dan fleksibilitas tinggi

(3)Dengan manipulasi software dapatmeminimumkan penggunaan piranti fisik danmengoptimalkan unjuk kerja sistem

Bagian-bagian Mikrokontroler: • (1)Unit Memori• (2)CPU (Central Processing Unit) • (3)Bus • (4)Unit I/O • (5)Pembangkit Clock-Osilator• (6)Unit Timer/Counter • (7)Piranti Tambahan• (8)Program

(1) Unit Memori• Memori adalah bagian mikrokontroler yang berfungsi

untuk menyimpan data. 3 hal yang perlu diperhatikanmengenai memori yaitu:

• (1)Alamat adalah lokasi tempat memori berada. • (2)Data adalah isi dari memori yang diakses • (3)Jalur kendali (kontrol) adalah jalur yang berisi perintah

CPU, apakah suatu lokasi memori akan di baca atauditulis

Menurut Sifatnya Memori dibagi 2: • (1) Memori menguap (Volatile memory) adalah sifat

memori yang akan hilang jika catudaya dimatikan. Memorijenis ini dikenal juga sebagai RAM (random Access Memory)

• (2) Memori tidak menguap (Non Volatile Memory) memorijenis ini tidak akan hilang jika catudaya dimatikan, memorijenis ini dinamakan ROM (Read Only Memory)

(2) CPU (Central Processing Unit) • CPU merupakan pengendali utama dari seluruh aktivitas

mikrokontroler. CPU bertugas melakukan eksekusi program dan melakukan koordinasi dengan bagian lain dari mikrokontroler.

• Dalam Mikrokontroler terdapat ALU (Arithmetic Logic Unit) yang bertugas melaukan perhitungan aritmatika danfungsi logic.

• Selain itu di dalam CPU terdapat memori sementara yang bisa diakses selama proses eksekusi berlangsung disebutsebagai register

(3) Bus • Bus adalah jalur-jalur fisik yang mengubungkan CPU

dengan memori dan unit lain dari mikrokontroler. • Jalur-jalur ini tergabung dalam satu grup, jalur inilah yang

disebut sebagai Bus

(4) I/O (input-output port) • I/O digunakan untuk mengontrol dan menerima data dari

lingkungan luar• 2 macam inteface I/Oyang biasa digunakan adalah

• I/O serial standard RS 232/UART digunakan untuk komunikasidengan PC

• Interface paralel/PIO (setiap pabrik mengeluarkan nama sendiri[PIA (motorolla), PPI (intel), PDC (rockwell)

(5) Pembangkit Clock - Oscilator• Rangkaian osilator pada mikrokontroler berfungsi sebagai

penyedia clock • Clock digunakan oleh mikrokontroler untuk dapat

mengeksekusi instruksi program secara serempak(sinkron)

• Frekuensi clock yang dibangkitkan oleh osilator akanmenentukan waktu yang diperlukan oleh mikrokontroleruntuk mengeksekusi suatu instruksi

(6) Unit Timer/Counter • Timer digunakan untuk keperluan menghasilkan: Delay

(waktu tunda) yang berfungsi untuk keperluan operasipewaktuan dan kontrol

• Mencacah pulsa• Mengetahui keberadaan proses yang sedang

berlangsung dan sebagainya

(7) Komponen Tambahan• Pada mikrokontroler selain komponen standar ada juga

komponen tambahan dengan fungsi tambahan pula. • Contoh komponen tambahan adalah: ADC (analog to

digital converter) yang berfungsi untuk pengubah analog ke digital. ADC dan komparator sebagai penghubung kesistem analog

• PWM (Pulse Width Modulation) adalah format sinyaloutput mikrokontroler yang nilainya dinyatakan dalambentuk lebar pulsa, PWM digunakan untuk pengendalikecepatan motor.

(8) Program (Perangkat Lunak) • Mikrokontroler adalah piranti yang harus di program

supaya dapat bekerja, program mikrokontroler ditulisdalam berbagai bahasa.

• Program untuk mikrokontroler harus dikompilasi agar mendapatkan hasil file eksekusi dengan ekstensi “.HEX”, “.File” kemudian di download ke memori program denganperantaraan sebuah programmer.

• Mikrokontroler bekerja harus diprogram!, BahasaPemrograman MCU ini adalah Low Level Programming , ada 2 bahasa yang digunakan: • Bahasa Mesin (machine language) Contoh EP2732b pada

Mottorolla MC68HC908GP32 atau MC68705U3 • Bahasa perakit (Assembly Language), Contoh: ASM51 untuk MCU

89C51 Intel

Interupsi• Interupsi adalah suatu permintaan khusus kepada

mikroposesor untuk melakukan sesuatu. Bila terjadiinterupsi, maka komputer akan menghentikan dahulu apayang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi.

Mikrokontroler MCS-51

• Mikrokontroler dengan arsitektur MCS-51 merupakansalah satu jenis arsitektur mikrokontroler yang paling lama, paling populer dan paling banyak digunakan di dunia. Arsitektur ini dikeluarkan pertama kali oleh Intel dan kemudian menjadi banyak dipakai dan dipelajari di seluruh dunia.

• Di Indonesia, mikrokontroler MCS-51 banyak dipakaikarena telah lama populer, mudah untuk didapatkan, danharganya yang murah.

• Berbagai seri mikrokontroler berarsitektur MCS-51 telahdiproduksi oleh berbagai vendor dan digunakan di duniasebagai mikrokontroler yang bersifat low cost dan high performance.

• Antar seri mikrokontroler berarsitektur MCS-51 memilikiberagam tipe dan fasilitas, namun kesemuanya memilikiarsitektur yang sama, dan juga set instruksi yang relatiftidak berbeda.

Berikut tabel perbandingan beberapa serimikrokontroler MCS-51 buatan Atmel.

Keterangan:

• Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusiayang harus dijalankan oleh mikrokontroler

• RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara danpengolahan data ketika program sedang running

• EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running

• Pin I/O adalah kaki untuk jalur keluar atau masuk sinyalsebagai hasil keluaran ataupun masukan bagi program

• Timer adalah modul dalam hardware yang bekerja untukmenghitung waktu/pulsa

• UART (Universal Asynchronous Receive Transmit) adalahjalur komunikasi data khusus secara serial asynchronous

• SPI (Serial Peripheral Interface) adalah jalur komunikasidata khusus secara serial secara serial synchronous

• ISP (In System Programming) adalah kemampuan khususmikrokontroler untuk dapat diprogram langsung dalamsistem rangkaiannya dengan membutuhkan jumlah pin yang minimal

Arsitektur Mikrokontroler MCS-51 • Arsitektur mikrokontroler MCS-51 diotaki oleh CPU 8 bit

yang terhubung melalui satu jalur bus dengan memoripenyimpanan berupa RAM dan ROM serta jalur I/O berupa port bit I/O dan port serial. Selain itu terdapatfasilitas timer/counter internal dan jalur interface address dan data ke memori eksternal.

•Salah satu tipe mikrokontrolerarsitektur MCS-51 yang banyakdigunakan saat ini adalah tipeAtmel 89S51/52

Pengenalan Mikrokontroller AT89S51/52 • Merupakan versi terbaru dibandingkan mikrokontroler

AT89C51 yang telah banyk digunakn saat ini. Mikrokontroler ini merupakan mikrokontroler CMOS 8 bit dengan 8 Kbyte Flas Programmable dan Erasable Read Only Memori (PEROM). Mikrokontroler ini berteknologimemori non volatile kerapatan tinggi dari AMTEL yang kompatibel dengan mikrikontroler standar industri MCS-51.

• Dalam 89S51/52 terdapat 32 jalur port yang dikelompokkan dalam 4 buah port yang masing-masingterdiri dari 8 bit.

• Masing-masing bit dapat diprogram secara individual danbebas sebagai input maupun output dan dapatdikonfigurasikan secara dinamis lewat perangkat lunak.

• A.Port 0 Merupakan dual-purpose port (port yang memiliki duakegunaan). Pada desain yang minimum (sederhana) digunakansebagai port I/O (Input/Output).Port 0 terdapat pada pin 32-39. • B. Port 1 Merupakan port yang hanya berfungsi sebagai port I/O, kecualipada IC 89S52 yang menggunakan P1.0 dan P1.1 sebagai input eksternal untuk timer ketiga (T3). Port 1 terdapat pada pin 1-8. • C. Port 2 Merupakan dual-purpose port. Pada desain minimum digunakansebagai port I/O. Pada desain lebih lanjut Port ini digunakanuntuk mengirim byte alamat bila pengaksesan dilakukan padamemori eksternal. Port 2 terdapat pada pin 21-28.

• D. Port 3 Merupakan dual-purpose port. Selain sebagai port I/O jugamempunyai fungsi khusus yang ditunjukkan pada tabelberikut.

Port Fungsi KhususP3.0 RXD, merupakan masukan untuk port serial/receiver

P3.1 TXD, merupakan output dari port serial/transmitter

P3.2 INT0, merupakan masukan untuk interupsi eksternal 0

P3.3 INT1, merupakan masukan untuk interupsi eksternal 1

P3.4 T0, merupakan masukan untuk pulsa eksternal Timer 0

P3.5 T1, merupakan masukan untuk pulsa eksternal Timer 1

P3.6 WR, merupakan sinyal tulis (write strobe) untukmenulis data ke memori data eksternalP3.7 RD, merupakan sinyal baca (read strobe) untukmembaca data dari memori eksternal

• E. PSEN (Program Store Enable) PSEN atau Program Store Enable adalah sinyal baca pada saatmenjalankan program dari memori eksternal. Di dalam aplikasi, PSEN akan dihubungkan dengan sinyal RD memori program eksternal(EEPROM).PSEN terdapat pada pin 29. • F. ALE (Address Latch Enable) ALE atau Addres Latch Enable adalah pulsa keluaran latch padaproses pengaksesan memori eksternal (program maupun data). Di dalam aplikasi, ALE biasanya dihubungkan dengan masukan latch enable dari IC latch, misalnya 74373.. ALE terdapat pada pin 30. • G. EA (External Access) EA atau External Access Enable menentukan apakah alamat awalmemori program berada di memori eksternal atau internal. Biladihubungkan dengan GND, alamat awal program memori akan beradadi memori eksternal, sebaliknya bila dihubungkan dengan VCC, makaalamat awal memori program AT89S52 akan berada di memori internal. EA terdapat pada pin 31.

• H. RST (Reset) RST pada pin 9 merupakan pin reset. Jika pada pin ini diberi masukan1 selama minimal 2 machine cycle maka system akan di-reset danregister-register internal akan berisi nilai default tertentu dan program kembali mengeksekusi dari alamat paling awal. • I.XTAL2 dan XTAL1 XTAL2 merupakan keluaran dari rangkaian penguat osilator internal. Sedangkan XTAL1 merupakan masukan ke penguat osilator internal. Sebuah kristal dan dua buah kapasitor yang dihubungkan ke pin inisudah cukup untuk menyediakan sinyal detak (clock) untukmikrokontroler. • J. Koneksi Power VCC dan GND merupakan pin untuk tegangan DC. MikrokontrolerAT89S52 membutuhkan tegangan DC sebesar 5 volt agar bisa bekerjadengan baik (standar TTL). Pin Vcc terdapat pada pin 40 sedangkanground terdapat pada pin 20.

• Rangkaian Sistem Minimum Atmel 89S51 Sistemminimum (sismin) mikrokontroler adalah rangkaianelektronik minimum yang diperlukan untuk beroperasinyaIC mikrokontroler. Sismin ini kemudian bisa dihubungkandengan rangkaian lain untuk menjalankan fungsi tertentu. Suatu sismin bisa saja ditambahkan dengan rangkaianpelengkap lainnya sehingga menjadi suatu sistem yang lebih lengkap dan memiliki fungsi lebih banyak.

Untuk membuat rangkaian sismin Atmel 89S diperlukanbeberapa komponen yaitu: • IC mikrokontroler AT89S • 1 XTAL 12 MHz atau 11.0592 MHz • 2 kapasitor kertas 33 pF • 1 kapasitor elektrolit 10 uF• 1 resistor 10 Kohm

Mengenal DT-51

• Pada percobaan pemrograman praktikum, yang akandipelajari adalah penggunaan mikrokontroler 89S52 yang diproduksi oleh Innovative Elektronics dengan nama DT-51 Minimum sistem.

• Minimum sistem mikrokontroler merupakan sebuah kit mikrokontroler yang sudah dapat berfungsi sebagaipengontrol suatu sistem elektronika. Minimum sistemmemiliki kemampuan mengakses memori eksternal, biasanya menggunakan sebuah IC latch, yaitu 74HCT573 dan 74HCT08.

• DT-51 membutuhkan bantuan PC untuk mendownloadprogram dan komunikasi pada bagian akses serial. Kabelserial akan digunakan untuk menghubungkan PC dan DT-51 melalui serial port. Serial port pada PC sering disebutCOM1 dan COM2.

Spesifikasi DT-51 • berbasis mikrokontroler berbasis 89S51 standar industri. • Port serial standar RS 232 untuk komunikasi antara

komputer dengan DT-51. • 8 kbyte non volatile memori (EEPROM) untuk menyimpan

program dan data. • 4 port input/output (I/O) dengan kapasitas 8 bit tiap

portnya. • Port Liquid Crystal (LCD) umtuk keperluan tampilan. • Control port (bertuliskan CONTROL), meliputi Interrupt

eksternal dan counter eksternal.

Memori eksternal di DT-51 • Memori internal Dt-51 sudah diisi program yang tidak bisa

kita tulis ulang. Oleh karena itu, DT-51 menggunakanmemori eksternal AT28C64B. Memori jenis ini adalahEEPROM kualitas tinggi berukuran 64 Kbyte, sehinggandapat mmemprogram aplikasi yang lebih besar.

Register Utama• Keluarga MCS-51 memiliki banyak register yang meliputi• akumulator, • register R, • register B, • DPTR (Data Pointer), • PC (Program Counter),• SP (Stack Pointer).

Akumulator

• digunakan sebagai register umum untuk• mengakumulasikan hasil dari instruksi-instruksi.

Akumulator dapat menampung 8 bit (1 byte) data

Register R dan B• Register R adalah delapan set register yang dinamakan

R0, R1, R2, R3, R4, R5, R6, dan R7• Register B menyimpan sebuah harga 8 bit (1 byte),

digunakan misal pada MUL AB dan DIV AB, jikadiinginkan untuk mengalikan atau membagi akumulator A dengan suatu harga, maka simpanlah harga tersebutdalam register B dan kemudian jalankan instruksinya

DPTR, PC, Dan SP• DPTR (Data Pointer)

• Digunakan untuk menunjuk pada lokasi suatu data• register 16 bit (2 byte)• Mengakses memori eksternal dengan alamat yang ditunjukkan oleh DPTR

• PC (Program Counter)• alamat 2 byte yang memberitahu 89C51 di mana instruksi selanjutnya akan

dilaksanakan• Saat 89C51 inisialisasi, PC selalu berisi 0000h dan bertambah satu setiap satu

instruksi terkerjakan• perintah LJMP 2340h akan mengisi PC dengan 2340h

• SP (Stack Pointer)• menyimpan 8 bit (1 byte) data• menunjukkan di mana harga berikutnya yang akan diambil dari stack• Jika suatu harga dimasukkan dalam stack, 89C51 petama-tama akan

menambah harga SP dan kemudian menyimpan harga tersebut pada alamatmemori yang bersesuaian. Demikian pula jika suatu harga diambil dari stack, maka 89C51 akan mengambil harga dari stack dan kemudian mengurangiharga SP.

Mode Pengalamatan• Immediate Addressing

• harga yang akan disimpan dalam memori langsung• Contohnya: MOV A,#20h

• Direct Addressing• harga yang akan dipakai diambil langsung dalam alamat memori

lain• Mode pengalamatan ini cukup cepat, meskipun harga yang didapat

tidak langsung seperti immediate, namun cukup cepat karenadisimpan dalam RAM internal

• Contohnya: MOV A,30h• Indirect Addressing

• Mode digunakan untuk mengakses 128 byte lebih dari RAM internal pada keluarga 8052

• Contoh: MOV A,@R0

Memory Program Structure Interrupt Location

• Data Memory

Internal Data Memory

Lower 128 bytes of internal RAM Upper 128 Bytes of Internal RAM

Siklus Mesin• 1 MC = 6 state = 12 periode clock• Jika frekuensi crystal yang digunakan adalah 12 MHz

maka 1 MC = 12/frekuensi crystal = 12/12 MHz =1uS

Waktu Eksekusi Instruksi• Waktu eksekusi sebuah instruksi oleh mikrokontroler tergantung dari jenis instruksi dan frekuensi clock yang

digunakan. Setiap instruksi memiliki panjang byte dan jumlah siklus yang berbeda.• Byte instruksi (Byte) menandakan jumlah lokasi memori yang dipakai• Siklus instruksi (Cycle) menandakan jumlah machine cycle yang dibutuhkan.• Waktu eksekusi dapat dihitung dengan rumus :

• Dimana :• Tinst : Waktu yang dibutuhkan untuk mengeksekusi 1 instruksi (Secon)• C : Jumlah machine cycle

• Contoh :• Diketahui sebuah mikrokontroler dengan frekuensi crystal 12 MHz.• Berapakah waktu yang diperlukan untuk mengeksekusi perintah berikut ini?

• Mov A,#30h

• Jawab :• Dari lembaran data 8051 Operational Code Mnemonics diketahui bahwa instruksi dengan format• Mov A,#n adalah instruksi dengan Byte = 1 dan Cycle = 1• Maka : Tinst = (1x12)/12MHz=1uS

Dasar Program Assembly • Bahasa Assembly adalah bahasa komputer yang

kedudukannya di antara bahasa mesin . Bahasa mesinadalah kumpulan kode biner yang merupakan instruksiyang bisa dijalankan oleh komputer. Sedangkan bahasaAssembly memakai kode Mnemonic untuk menggantikankode biner, agar lebih mudah diingat sehingga lebihmemudahkan penulisan program.

Konstruksi Program Assembly • Program sumber dalam bahasa Assembly menganut

prinsip 1 baris untuk satu perintah, setiap baris perintahtersebut bisa terdiri atas beberapa bagian (field), yaknibagian Label, bagian mnemonic, bagian operand yang bisa lebih dari satu dan terakhir bagian komentar . Untukmembedakan masing-masing bagian tersebut dibuatketentuan sebagian berikut:

• Masing-masing bagian dipisahkan dengan spasi atauTAB, khusus untuk operand yang lebih dari satu masing-masing operand dipisahkan dengan koma.

• �Bagian-bagian tersebut tidak harus semuanya adadalam sebuah baris, jika ada satu bagian yang tidak adamaka spasi atau TAB sebagai pemisah bagian tetapharus ditulis.

• �Bagian Label ditulis mulai huruf pertama dari baris, jikabaris bersangkutan tidak mengandung Label maka label tersebut digantikan dengan spasi atau TAB, yakni sebagaitanda pemisah antara bagian Label dan bagianmnemonic.

• Label mewakili nomor memori-program dari instruksi padabaris bersangkutan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakannomor memori-program yang dituju.

• Mnemonic (artinya sesuatu yang memudahkan diingat) merupakan singkatan perintah.

• Dikenal dua macam mnemonic, yakni manemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya. Ada pula mnemonic yang dipakai untuk mengatur kerja dariprogram Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur kerja dari program Assembler ini dinamakan sebagai „Assembler Directive‟.

• Operan dalam pemrograman mikrokontroller adalah data yang tersimpan dalam memori, register dan input/output (I/O). • operand bisa berupa Symbol yang mewakili data tersebut,

misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalahregister dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misalnya RET.

• Komentar merupakan bagian yang sekedar sebagaicatatan, tidak berpengaruh pada prosesor juga tidakberpengaruh pada kerja program Assembler, tapi bagianini sangat penting untuk keperluan dokumentasi

• ORG – singkatan dari ORIGIN, untuk menyatakan nomormemori yang dipakai setelah perintah itu, misalnya ORG $1000 maka memori berikutnya yang dipakai Assembler adalah $1000.

• EQU – singkatan dari EQUATE, dipakai untukmenentukan nilai sebuah Symbol. Misalnya Angka88 EQU 88 memberi nilai 88 pada Symbol Angka88, atau CR EQU $0D mempunyai makna kode ASCII dari CR (Caarriage Return) adalah $08.

• DB – singkatan dari DEFINE BYTE, dipakai untukmemberi nilai tertentu pada memori-program. Nilaitersebut merupakan nilai 1 byte, bisa berupa angkaataupun kode ASCII. DB merupakan Assembler Directive yang dipakai untuk membentuk teks maupun tabel.

• ORG $0200 • STRING DB „Atmel AT89C2051‟

Intruksi-intruksi pada mikrokontroler• Add >> intruksi ini melakukan penjumlahan pada dua

buah data yang terdapat pada alamat register yang ditunjuk oleh intriksi.

• Mul(multiply)>> melakukan perkalian data antara duaregisgter

• Call>> umtuk melakukan pemanggilan terhadap intruksiyanf terdapat dalam subrutine yang ditunjuk.

• CJNE (Compare and Jump if Not Equal)>>melakukanperbvandinganantara data sumber dengan data tujuan. Bila datany sama,maka lanjut keintruksi dibawahnya, bilatidak, maka jump ke alamat yang dituju

• Dec(Decrement)>> melakukan opersi pengurangandengan nilai 1 pada data yang terdapat pada alamatregister yang ditunjuk oleh intruksi dan menyimpannyapada register tersebut.

• Div (Divide)>> melakukan operasi pembagian pada duabuah data yang terdapat pada alamat register yang ditunjuk oleh intruksi.

• DJNZ (Degrement and Jump if Not Zero)>> melakukanpengurangan pada alamat register serbaguna (R0-R7) dengan nilai 1 dan melompat ke sub rutin jika hasilnyabukan 0.tapi jika sama dengan 0, maka program akanmenjalankan intruksi dibawanya.

Intruksi-intruksi pada mikrokontroler• Inc (Increment)>>melakukan penjumlahan dengan nilai 1

pada data yang terdapat pada alamat register yang ditunjuk oleh intruksi dan menyimpannya pada register tersebut.

• JMP(Jump)>>melakukan lompatan pada alamat kodeyang ditunjuj.

• MOV >> melakukan pemindahan data dari alamat register satu ke register lainnya.

• Push>>intruksi ini akan menaikkan stack pointer data data pada alamat register yang ditunjuk.

• RET (Return)>>intruksi ini digunakan ke subrutin.

Contoh aplikasi dasar

Port sebagai I/O

$mod51 ORG 4000H ;menggunakan alamat awal EEPRO DT51 MULAI ;Label MULAI

MOV A,#0FH ;Kirim data 0F ke akumulatorMOV P1, A ;Kirim data pada akumulator ke port 1 JMP MULAI ;Loncat ke label MULAI

END

• Program tersebut adalah program yang menerima input dariakumulator, lalu menampilkan outputnya yang berlogika 1 atau0 di port 1.

• Selanjutnya membuat label dengan nama MULAI. • Isi dari label tersebut akan menset data 0FH, lalu dikirim ke

akumulator menggunakan perintah MOV. • Untuk terjadi pengulangan terus menerus, kita dapat

menggunakan fungsi JMP untuk melompat ke label MULAI. • Program diakhiri menggunakan fungsi END. • Jika program dijalankan maka akan tampil data dimana 4 LED

akan menyala di port input. Karena 0F, maka binernya00001111

$mod51CSEG ORG 4000H LJMP START ORG 4100H

START MOV SP, #30H SETB p1.0 CLR P1.1 SETB P1.2 CLR P1.3 SETB P1.4 CLR P1.5 CLR P1.6 CLR P1.7 SJMP $

END

• Jika program dijalankan , maka menyebabkan output LED pada Trainer board Bit ke 0, 2, dan ke 4 akan menyaladan lainnya akan padam. SJMP $ pada program akanmenyebabkan program berputar (looping) pada alamat, dimana perintah SJMP $ berada.

Intruksi-intruksi lompat(JUMP) • Pada saat mikrokontroler menjalankan kelompok intruksi

JUMP, nilai program yang runtun sesuai dengan aliranprogram diganti dengan lokasi memori program baru yang dikehendaki pemrogram.

Intruksi-intruksi lompatan• JMP • CALL • RET • RETI

• Intruksi JMP pada umumnya terdiri dari tiga : • SJMP (Short jump) • LJPM (Long Jump) • AJMP (Absolute Jump)

• Yang membedakan antara ketiga nya adalah dalamformat alamat tujuannya dan urutan intruksinya.

• SJMP • Panjang intruksinya 2 byte. Jarak lompatan terbatas pada

jangkauan -128 hingga +127 byte

• LJM• Panjang intruksinya 3 byte. Jarak lompatan terbatas pada

jangkauan 64 K P

• AJMP • Panjang intruksinya 2 byte. Alamat tujuan berada pada

blok 2 K. • Penulisan alamat tujuan lompat bisa langsung dituliskan

alamatnya atau menuliskan label. • Dengan menuliskan alamat secara langsung, jika alamat

awal berubah, maka alamat tujuan juga harusdiperbaharui.

• Dengan menggunakan label, hal itu tidak perlu dilakukan

Contoh

Org 0000H Start Mov A, P1 Mov P0, A Sjmp Start

• Pada contoh diatas, jika alamat awal berubah menjadi0100H Program akan tetap akan bekerja dengan baikkarena label Start akan menjadi 0100H.

• Start • Sjmp Start • Jika program dijalankan maka akan terjadi yang tak

berhenti. • Program diatas bisa digantikan dengan mengganti alamat

tujuan lompatan dengan tanda $ • Start Sjmp $

• CALL • Org 0000H • Start • clr A • Mov A, @A+DPTR • Mov P0,A ACALL DELAY• …… • DELAY: MOV R0,#2H • …… ……. • …… ……. • RET

• LCALL • Menggunakan format 16 bit, dan subrutinnya bisa ditulis

dalam ruang memori 64 K

• ACALL • Menggunakan format 11 bit, dan subrutinnya bisa ditulis

dalam ruang memori 2K

RET / RETI • Sebuah subrutin harus diakhiri dengan intruksi RET, yang

menyatakan perintah untuk kembali (return) ke intruksiberikutnya setelah intruksi CALL yang bersangkutanselesai dijalankan dan menjalankan intruksi tersebut.

• Intruksi RETI berfungsi untuk memberitahukan kepadasistem kontrol intrupsi bahwa intrupsi yang sedangdijalankan telah selesai.

Register Fungsi Khusus (SFR)• SFR pada dasarnya adalah memori internal yang memiliki

fungsi tertentu. • Melalui SFR inilah fasilitas-fasilitas internal mikrokontroler

bisa diakses dan dimanfaatkan dengan cara membacaatau menulis SFR tersebut.

• SFR menepati alamat memori 80H –FFH.

• Secara garis besar SFR terdiri atas register-regitser untukmengatur kerja port (P0-P3), mengatur mode kerja timer, mengatur kerja port serial , menatur kerja interupsi danmengatur kerja prioritas kerja intrupsi, data pointer untukmode pengalamayan 16 bit, stack pointer, menyimpaninformasi status program, akumulator dan register B sertaregistre untuk fungsi penghematan daya.

Akumulator dan Register B

• ACC atau akumulator atau register A adalah register multiguna yang dipakai pada operasiaritmetika(pembagian,penjumlahan atapun perkalian), pemindahan data baik mode baik pengalamatan langsungatau indeks, dan juga operasi logika(AND, OR danEXOR).

• Selain itu juga digunakan untuk menguji apakah suatudata itu nol atau tidaks, pembacaan tabel, danpembacaan RAM tambahan

• Register A menempati alamat E0H. Register A

Akumulator dan Register B• Register B menempati alamat F0H. Register ini

digunakan bersama-sama dengan register A pada operasiaritmatika (perkalian dan pembagian) atau digunakansebagai register multiguna.

PSW (Program Status Word) • Adalah register yang menyimpan informasi status

program, bit bawaan (carry) pada operasi aritmatika, bit paritas, bit overflow, bit-bitpemilih bankregister, dan bit multiguna.

• P0 – P3 (Register Port) • Adalah SFR yang mengatur kerja port-port mikrokontroler

(8051). Pada mode akses bit, register ini bisa di aksesdengan identitas PX.n. X memperlihatkan nomor port (dari 0-3), dan n memperlihatkan urutan bit yang diakses(bit 0 - 7)

7 Segmen LED

ANGKA

POSISI LEDG F E D C B A

0 – O O O O O O1 – – – – O O –2 O – O O – O O3 O – – O O O O4 O O – – O O –5 O O – O O – O6 O O O O O – O7 – X – – O O O8 O O O O O O O9 O O – O O O O

HURUF

POSISI LEDG F E D C B A

A O O O – O O Ob O O O O O – –C – O O O – – Od O – O O O O –E O O O O – – OF O O O – – – O

saat ingin menampilkan dalam format heksa maka menggunakan jenis CMOS 5068

Contoh-contoh program : • Aplikasi pada lampu LED • 1. Program Lampu Flip Flop pada Port 0

• Program Lampu Flip Flop pada Port 0

3. Program Lampu berjalan pada Port 0

; Program Lampu berjalan pada Port 0

Program Lampu Flip Flop pada Port 0

Aplikasi pada 7 Segment $mod51 org 0h main: mov p2,#11000000b ;0 clr p1.4 call delay mov p2,#11110011b ;1 call delay mov p2,#10001001b ;2 call delay mov p2,#10100001b ;3 call delay mov p2,#10110010b ;4 call delay mov p2,#10100100b ;5 call delay mov p2,#10000100b ;6call delay mov p2,#11110001b ;7 call delay mov p2,#10000000b ;8 call delay mov p2,#10100000b ;9 call delay jmp main

delay: mov r7,#100 delay_loop1: mov r6,#100 delay_loop2: mov r5,#100 djnz r5,$ djnz r6,delay_loop2 djnz r7,delay_loop1 ret end

BufferData data 09hLED_Data data p0LED_Digit data p1Pulsa_LE bit p1.7LED_Display:

mov r0, #BufferDatamov r7, #8clr a

LED_Pindah:mov LED_Digit, amov LED_Data, @r0inc r0inc asetb Pulsa_LEdjnz r7, LED_Pindahclr Pulsa_LE

sebuah mikrokontroler harus meluangkan waktu untuk memproses instruksi menampilkan ke-8 LED 7 segmen selama 60 siklus mesin atau sekitar 65 us dengan kristal 11,0592 MHz.

Penampil LED 7 segmen dengan teknik “scanning” diperlihatkan di bawah ini:

BufferData data 09hLED_Data data p0LED_Digit data p1

LED_Display:mov r0, #BufferDatamov r7, #8mov a, #255clr c

LED_Scan:mov LED_Data, @r0inc r0rlc amov LED_Digit, aacall Delay2u5smov LED_Digit, #255djnz r7, LED_Scanajmp LED_Display

Delay2u5s:mov r5, #5

Del: mov r6, #228djnz r6, $djnz r5, Delret