mikrokontroller (2)

104
MIKROKONTROLLER (UC)

Upload: dwiki-abdul-rohman

Post on 08-Dec-2015

58 views

Category:

Documents


8 download

DESCRIPTION

teory of mikrokontroller

TRANSCRIPT

Page 1: Mikrokontroller (2)

MIKROKONTROLLER(UC)

Page 2: Mikrokontroller (2)

• 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

Page 3: Mikrokontroller (2)

• 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)

Page 4: Mikrokontroller (2)

• 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.

Page 5: Mikrokontroller (2)

• 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)

Page 6: Mikrokontroller (2)

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.

Page 7: Mikrokontroller (2)

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

Page 8: Mikrokontroller (2)

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

Page 9: Mikrokontroller (2)
Page 10: Mikrokontroller (2)

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

Page 11: Mikrokontroller (2)

(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

Page 12: Mikrokontroller (2)

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)

Page 13: Mikrokontroller (2)

(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

Page 14: Mikrokontroller (2)

(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

Page 15: Mikrokontroller (2)

(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)

Page 16: Mikrokontroller (2)

(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

Page 17: Mikrokontroller (2)

(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

Page 18: Mikrokontroller (2)

(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.

Page 19: Mikrokontroller (2)

(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.

Page 20: Mikrokontroller (2)

• 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

Page 21: Mikrokontroller (2)

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.

Page 22: Mikrokontroller (2)
Page 23: Mikrokontroller (2)

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.

Page 24: Mikrokontroller (2)

• 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.

Page 25: Mikrokontroller (2)

Berikut tabel perbandingan beberapa serimikrokontroler MCS-51 buatan Atmel.

Page 26: Mikrokontroller (2)

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

Page 27: Mikrokontroller (2)

• 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

Page 28: Mikrokontroller (2)

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.

Page 29: Mikrokontroller (2)
Page 30: Mikrokontroller (2)

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

Page 31: Mikrokontroller (2)

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.

Page 32: Mikrokontroller (2)
Page 33: Mikrokontroller (2)

• 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.

Page 34: Mikrokontroller (2)
Page 35: Mikrokontroller (2)

• 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.

Page 36: Mikrokontroller (2)

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

Page 37: Mikrokontroller (2)

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

Page 38: Mikrokontroller (2)

• 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.

Page 39: Mikrokontroller (2)

• 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.

Page 40: Mikrokontroller (2)

• 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.

Page 41: Mikrokontroller (2)

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

Page 42: Mikrokontroller (2)
Page 43: Mikrokontroller (2)
Page 44: Mikrokontroller (2)
Page 45: Mikrokontroller (2)

Mengenal DT-51

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

Page 46: Mikrokontroller (2)

• 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.

Page 47: Mikrokontroller (2)

• 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.

Page 48: Mikrokontroller (2)

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.

Page 49: Mikrokontroller (2)

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.

Page 50: Mikrokontroller (2)

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

Page 51: Mikrokontroller (2)

Akumulator

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

Akumulator dapat menampung 8 bit (1 byte) data

Page 52: Mikrokontroller (2)

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

Page 53: Mikrokontroller (2)

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.

Page 54: Mikrokontroller (2)

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

Page 55: Mikrokontroller (2)
Page 56: Mikrokontroller (2)

Memory Program Structure Interrupt Location

Page 57: Mikrokontroller (2)

• Data Memory

Internal Data Memory

Page 58: Mikrokontroller (2)

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

Page 59: Mikrokontroller (2)

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

Page 60: Mikrokontroller (2)

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

Page 61: Mikrokontroller (2)

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.

Page 62: Mikrokontroller (2)

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:

Page 63: Mikrokontroller (2)

• 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.

Page 64: Mikrokontroller (2)

• 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‟.

Page 65: Mikrokontroller (2)

• 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.

Page 66: Mikrokontroller (2)

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

Page 67: Mikrokontroller (2)

• 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.

Page 68: Mikrokontroller (2)

• 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‟

Page 69: Mikrokontroller (2)

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

Page 70: Mikrokontroller (2)

• 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.

Page 71: Mikrokontroller (2)

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.

Page 72: Mikrokontroller (2)

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

Page 73: Mikrokontroller (2)

• 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

Page 74: Mikrokontroller (2)

$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

Page 75: Mikrokontroller (2)

• 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.

Page 76: Mikrokontroller (2)

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.

Page 77: Mikrokontroller (2)

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

Page 78: Mikrokontroller (2)

• 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.

Page 79: Mikrokontroller (2)

• 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

Page 80: Mikrokontroller (2)

• 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

Page 81: Mikrokontroller (2)

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.

Page 82: Mikrokontroller (2)

• 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 $

Page 83: Mikrokontroller (2)

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

Page 84: Mikrokontroller (2)

• 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

Page 85: Mikrokontroller (2)

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.

Page 86: Mikrokontroller (2)

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.

Page 87: Mikrokontroller (2)

• 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.

Page 88: Mikrokontroller (2)

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

Page 89: Mikrokontroller (2)

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.

Page 90: Mikrokontroller (2)

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)

Page 91: Mikrokontroller (2)

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

Page 92: Mikrokontroller (2)

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

Page 93: Mikrokontroller (2)

saat ingin menampilkan dalam format heksa maka menggunakan jenis CMOS 5068

Page 94: Mikrokontroller (2)

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

Page 95: Mikrokontroller (2)

• Program Lampu Flip Flop pada Port 0

Page 96: Mikrokontroller (2)

3. Program Lampu berjalan pada Port 0

; Program Lampu berjalan pada Port 0

Page 97: Mikrokontroller (2)
Page 98: Mikrokontroller (2)

Program Lampu Flip Flop pada Port 0

Page 99: Mikrokontroller (2)

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

Page 100: Mikrokontroller (2)

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

Page 101: Mikrokontroller (2)
Page 102: Mikrokontroller (2)

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.

Page 103: Mikrokontroller (2)

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

Page 104: Mikrokontroller (2)

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