P. 1
4-Mikrokontroler

4-Mikrokontroler

|Views: 1|Likes:
Published by Chaeriah Wael
mengenal MikrokontrolerMCS51
mengenal MikrokontrolerMCS51

More info:

Categories:Types, School Work
Published by: Chaeriah Wael on May 27, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/23/2014

pdf

text

original

PENGENALAN MIKROKONTROLER

4.1 Pendahuluan Yang dimaksud dengan mikrokontroler adalah sebuah sistem mikroprosesor lengkap yang terkandung didalam sebuah chip yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara yang khusus. Cara kerja mikrokontroler sebenarnya hanya membaca dan menulis data. Mikrokontroler berbeda dari mikroprosesor yang digunakan di dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen-komponen pendukung, seperti : prosesor, memori, dan I/O. Namun, secara analogi mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang ditekankan untuk efisiensi dan efektifitas biaya. Secara harfiahnya juga dapat disebut "pengendali kecil" dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Kelebihan penggunaan mikrokontroler adalah sebagai berikut : Mudah dalam penggunaan Sistem jauh lebih kompak dan ringkas. Tingkat keamanan dan akurasi yang lebih baik. Harga lebih murah dan mudah didapat.

Contoh sederhana penggunaan mikrokontroler dapat dilihat di lingkungan sekitar seperti toaster, mesin cuci, microwave, magiccom, lampu lalulintas, kemudian di dunia pertanian kita dapat membuat kontrol kelembaban untuk budidaya jamur, di dunia perikanan kita dapat mengendalikan suhu air kolam. Bahkan kita dapat membuat PABX mini, SMS Gateway, atau ke arah militer kita mampu menciptakan radio militer frekuensi hopping (radio komunikasi anti sadap dengan lompatan frekuensi 100 kali dalam 1 detik), sistem pemantau cuaca menggunakan balon udara, Automatic Vehicel Locator (menggunakan GPS) dan masih banyak lagi yang bisa kita kembangkan.

4.2 Jenis Mikrokontroler Secara teknis hanya ada 2 jenis mikrokontroler yaitu :

Belakangan ini. Masing-masing keluarga juga masih terbagi lagi dalam beberapa tipe. AT89C53 12 Kilo Byte. AT89C51 mempunyai Flash PEROM dengan kapasitas 2 KiloByte. 4. tentu saja masing-masing pabrik menambahkan kemampuan pada mikrokontroler buatannya meskipun kesemuanya masih dibuat berdasarkan dasar dari 8051. CISC (Complex Instruction Set Computer) dengan instruksi yang dapat dikatakan lebih lengkap tapi dengan fasilitas secukupnya. RISC (Reduced Instruction Set Computer) dengan instruksi terbatas tapi memiliki fasilitas yang lebih banyak 2. Zilog. Renesas. Penyederhanaan ini dimaksudkan untuk membentuk mikrokontroler yang bentuk fisiknya sekecil mungkin tapi mempunyai kemampuan sama. keluarga MCS51 yang diproduksi Atmel. Notasi ”C” pada tipe sebuah mikrokontroler produksi Atmel menandakan bahwa chip tersebut dalam pemrogramannya harus menggunakan rangkaian terpisah yang biasa disebut dengan . Tipe 8051 termasuk sederhana dan harganya murah sehingga banyak digemari. pabrik IC Atmel ikut menambah anggota keluarga MCS51. Philip. Yang berkaki 20 adalah MCS51 yang disederhanakan. dan wajar apabila Atmel memasukkan Flash PEROM ke dalam mikrokontroler buatannya. yang berkaki 40 setara dengan 8051 yang asli. AT89C52 4 Kilo Byte.1. banyak pabrik IC besar lain yang ikut memproduksinya. Atmel merupakan pabrik IC yang sangat menguasai teknologi pembuatan Flash PEROM. masing-masing adalah AT89C1051 dengan kapasitas Flash PEROM 1 Kilo Byte. Mikrokontroler yang beredar di pasaran memiliki banyak varian diantaranya keluarga Motorola dengan seri 68xx. kemampuan yang lain sama sekali tidak mengalami pengurangan. penyederhanaan dilakukan dengan cara mengurangi jalur untuk input/output paralel. AT89C2051 2 Kilo Byte dan AT89C4051 4 KiloByte. Atmel memproduksi 3 buah mikrokontroler ‘mini’ ini. Ketiga mikrokontroler ini secara umum disebut sebagai AT89Cx051. Keluarga ini diawali oleh Intel yang mengenalkan IC Mikrokontroler tipe 8051 awal tahun 1980-an.3 Mikrokontroler MCS-51 Meskipun termasuk tua. Dallas. AT89C55 20 Kilo Byte dan AT89C8252 berisikan 8 Kilo Byte Flash PEROM dan 2 Kilo Byte EEPROM. bedanya mikrokontroler Atmel berisikan Flash PEROM dengan kapasitas berlainan. Produksi mikrokontroler MCS51 Atmel dibagi dua macam. Sulit sekali untuk menghitung berapa tepatnya jumlah mikrokontroler. keluarga Mikrokontroler MCS51 adalah keluarga mikrokontroler yang terpopuler saat ini. keluarga PIC dari Microchip.

sehingga memungkinkan mikrokontroler bekerja dalam mode single chip operation yang tidak memerlukan external memory untuk menyimpan source code tersebut.1 Karakteristik AT89C51 Mikrokontroler AT89C51 adalah mikrokontroler keluaran ATMEL dengan 4Kbyte Flash PEROM (Programmable and Eraseable Read Only Memory). untuk komunikasi serial. Berkemampuan Idle mode dan down mode. AT89C51 sendiri memiliki beberapa fitur sebagai berikut : • • • • • • • Memiliki RAM internal 128 byte. Sehingga apabila ingin melakukan pemrograman ulang sebuah chip AT89Cxx harus mengeluarkannya (mencabut) dari rangkaian aplikasi.1. Operasi clock dari 0 sampai 24 MHz. 4.”downloader”. Dua buah Timer/counter 16-bit.3. Susunan pin-pin mikrokontroler AT89C51 diperlihatkanan pada gambar dibawah ini. Penjelasan dari masing-masing pin adalah sebagai berikut : Gambar 1 : Susunan pin mikrokontroler AT89C51 .3. 32 jalur I/O (input/output). Memori ini biasa digunakan untuk menyimpan instruksi berstandar kode MCS-51. AT89C51 merupakan memori dengan teknologi nonvolatile memori dan dapat di isi berkali-kali (± 1000 kali). Menangani 6 sumber Interupsi.1 Arsitektur Mikrokontroler AT89C51 4. Memilki serial port.

T0 (timer 0). 10-17 Port 3 (P3) adalah port paralel 8 bit dua arah (input-output) yang memiliki fungsi pengganti. 18-19 XTAL1 XTAL2 20 21-28 Ground (GND) Port 2 (P2) dan adalah pin input osilator kristal. Bila fungsi pengganti tidak dipakai. Port 2 ini mengirim byte alamat bila dilakukan pengaksesan memori ekternal. Bila digunakan untuk mengakses memori luar. bila diberi logika rendah maka mikrokontroler akan melaksanakan seluruh intruksi dari memori program luar.Tabel 1 : Deskripsi pin-pin IC Mikrokontroler AT89C51 No 1-8 Nama Pin Port 1 (P1) Fungsi merupakan port paralel 8 bit dua arah (input-output) yang digunakan sebagai keperluan general purpose 9 Reset (RST) adalah intrupsi reset (aktif high) perpindahan kondisi rendah ke tinggi akan mereset AT89C51. dan RD (Read).INT1 (Interupt 1). 30 Address Latch digunakan untuk menambah alamat memori eksternal selama Enable (ALE) 31 EA pelaksanaan intruksi. WR (Write). RXD (Receiver Data). Pin ini dihubungkan dengan rangkaian power on reset. yang merupakan input clock bagi rangkaian osilator internal. bila pin ini diberi logika tinggi. INT0 (Interupt 0). pin-pin ini dapat digunakan sebagai port paralel 8 bit serba guna. Fungsi pengganti meliputi TXD (Transmisi Data). T1 (Timer 1). 32-39 Port 0 (P0) merupakan port paralel 8 bit open drain dua arah. 29 Program Strobe merupakan sinyal pengontrol yang membolehkan program Enable (PSEN) memori eksternal masuk ke dalam bus selamat proses pemberian/pengambilan intruksi. mikrokontroler akan melaksanakan intruksi dari ROM ketika isi program counter kurang dari 4096. port ini akan memultipleks alamat memori dengan data 40 Vcc dihubungkan ke Vcc (+5 Volt) . dihubungkan ke Vss atau Ground adalah port paralel 8 bit dua arah (input-output).

RAM internal dialamati oleh RAM Address Register sedangkan Flash PEROM yang menyimpan instruksi-instruksi MCS51 yang dialamati oleh Program Address Register. RAM yang terletak pada alamat 20H hingga 2FH dan dapat diakses secara pengalamatan bit. Byte Address 7F Bit Address Byte Address FF F0 F7 F6 F5 Bit Address F4 F3 F2 F1 F0 B E0 General Purpose RAM D0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D7 D6 D5 D4 D3 D2 - D0 PSW 30 2F 2E 2D 2C B8 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05 7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C 14 0C 04 7B 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B 13 0B 03 7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02 79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01 78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00 8D 8C 8B 8A 89 88 87 90 99 98 A0 A8 B0 - - - BC BB BA B9 B8 IP B7 B6 B5 B4 B3 B2 B1 B0 P3 AF - - AC AB AA A9 A8 IE Bit Addressable Locations 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 18 17 A7 A6 A5 A4 A3 A2 A1 A0 P2 Not bit addressable 9F 9E 9D 9C 9B 9A 99 98 SBUF SCON 97 96 95 94 93 92 91 90 P1 Not bit addressable Not bit addressable Not bit addressable Not bit addressable Not bit addressable 8F 8E 8D 8C 8B 8A 89 88 TH1 TH0 TL1 TL0 TMOD TCON PCON Bank 3 Bank 2 10 0F Bank 1 08 07 00 RAM Default Register Bank For R0 . • Bit addressabel RAM. Dengan adanya struktur memori yang terpisah tersebut. Random Acces Memory internal (RAM) merupakan memori sebesar 128 byte.4. register ini terletak pada alamat 00H hingga 07H setiap kali direset. .3.2 Struktur Memori AT89C51 mempunyai struktur memori yang terpisah antara RAM internal dan Flash PEROM.1. RAM internal sendiri terdiri atas: • Register Banks. yang biasa digunakan untuk menyimpan variabel atau data yang bersifat sementara. walaupun RAM internal dan Flash PEROM mempunyai alamat awal yang sama yaitu alamat 00 namun secara fisiknya kedua memori tersebut tudak saling berhubungan.R7 Not bit addressable 83 82 81 80 87 86 Not bit addressable Not bit addressable Not bit addressable 85 84 83 82 81 80 DPH DPL SP P0 SPECIAL FUNCTION REGISTERS Gambar 2 : Lokasi memori RAM dan Spesial Function Register Struktur memori pada AT89C51 terdiri dari : 1. Alamat memori dapat dilihat pada gambar 2.

maka data tidak akan hilang.• General purpose RAM. • Register R0-R7 Merupakan register serbaguna yang boleh dipakai untuk apa saja. RAM ini terdapat pada alamat 30H hingga 7FH dan dapat diakses dengan pengalamatan langsung maupun tak langsung. Timer 0.DPL : merupakan bit 0-7 . 2. Bit ke-3 dan ke-4 digunakan untuk pemilihan register bank. Timer 1 dan lain-lain. Seperti halnya register R0-R7. Contoh: timer serial. Special Function Registers (SFR) merupakan memori yang berisi register-register dan mempunyai fungsi-fungsi khusus yang disediakan oleh mikrokontroler. • Port . Dibawah ini beberapa register yang terdapat pada SFR. • SBUF (serial buffer) Register ini berfungsi sebagai Buffer (penyangga) sehingga pada saat mikrokontroler membaca data pertama dan data kedua belum diterima secara penuh. register DPTR memiliki fungsi serbaguna dan juga dapat digunakan untuk menyimpan alamat memori eksternal pada mode pengalamatan tidak langsung. Khusus register R0 dan R1 dapat digunakan juga untuk operasi pengalamatan tidak langsung (indirect addressing). Register ini terbagi atas : . Register ini tidak terletak di dalam SFR.DPH : merupakan bit 8-15 • PSW (Program Status Word) / flag register Merupakan register yang berisi data-data mikrokontroler setelah suatu operasi selesai dijalankan dan terletak pada alamat D0H. • Register B (Base register) Register B terletak pada alamat F0H dan hanya dipakai untuk operasi perkalian dan pembagian saja. yaitu: • Register A (Accumulator) Accumulator terletak pada alamat E0H. dimana register ini banyak digunakan untuk operasi aritmatika dan operasi logika. SFR yang dimiliki oleh AT89C51 sebanyak 21 SFR dan terletak pada alamat 80H samapai FFH. INT 0. • Register DPTR Merupakan satu-satunya register 16-bit yang ada pada mikrokontroler keluarga MCS51. INT 1.

• Register Interupsi AT89C51 mempunyai lima buah interupsi dengan dua level prioritas interupsi. Pengalamatan Langsung (Direct Addressing) Pada mode ini operand ditentukan dari sebuah alamat 8 bit. TL1. TH1. Interupsi akan selalu nonaktif setiap kali sistem direset.7FH (isi accumulator dengan isi alamat 7Fh) b. TL0. Contoh: MOV A.4. Bisa berlaku untuk internal dan eksternal RAM. port 1. 90 H.1 Mode Pengalamatan dalam MCS51 Data ataupun operan bisa berada ditempat yang berbeda sehingga dikenal beberapa cara untuk mengakses data operan tersebut yang dinamakan sebagai mode pengalamatan (Addressing Mode) antara lain yaitu : a. port 2 dan port 3. 3. Flash PEROM merupakan memori yang digunakan untuk menyimpan instruksiinstruksi MCS51. Pengalamatan Register Pengalamatan mode ini lebih effisien dan mengeleminasi satu byte alamat . maupun Stack Pointer untuk operasi 8 bit. Contoh: MOV A. Dimana port-port tersebut terletak pada alamat 80 H.AT89C51 terdiri dari 4 buah port.@R0 (isi accumulator dengan alamat yang ditunjukkan oleh isi R0) c. A0 H dan B0 H sehingga semua port ini dapat diakses dengan pengalamatan bit. Register untuk menunjukkan alamat tersebut adalah R0 atau R1. Hanya berlaku untuk RAM internal dan SFR. yaitu port 0.4 Set Instruksi dan Pemrograman Assembly MCS51 4. TMOD dan TCON. Untuk mengakses 16 bit alamat digunakan data pointer DPTR. 4. • Register timer Register yang terkait dengan penggunaan timer adalah register TH0. Pengalamatan Tidak Langsung (Indirect Addressing) Mode ini menggunakan register tertentu berisi data yang menunjukan alamat.

3 TCON. Immediate Constant Sebuah nilai konstanta dapat mengikuti opcode dalam Program memori Contoh: MOV A. 40.1 dan ACC. Untuk melakukan pengalamatan bit digunakan symbol titik (.3.4 TCON. Pengalamatan Bit Pengalamatan bit adalah penunjukan alamat lokasi bit baik dalam RAM internal (byte 32 sampai 47) atau bit perangkat keras. Bank Select Bit 1 Reg Bank Select Bit 0 Overflow Flag Parity Flag Timer 1 overflow flag Timer run control bit Timer 0 overflow flag Timer 0 run control bit Interupt 1 edge flag Interupt 1 type control .).#20h (Mengisi accumulator dengan data 20h) e.7 PSW.6 PSW. Tabel dibawah menunjukan pengalamatan bit pada mikrokontroller AT89C51 Tabel 2 : SFR (Special Function Register) Simbol Posisi Bit CY AC F0 RS1 RS0 OV P TF1 TR1 TF0 TR0 IE1 IT1 PSW.2 PSW0 TCON. 21H.6 TCON.5.R7 d.Contoh: MOV A.2 Alamat Bit D7H D6H D5H D4H D3H D2H D0H 8Fh 8EH 8DH 8CH 8BH 8AH Nama Carry Flag Auxilliary carry falg Flag 0 Reg.4 PSW. misalnya FLAGS.5 PSW.3 PSW.5 TCON.7.7 TCON.

7 SCON.6 SCON.0 89H 88H 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H AFH ACH ABH AAH A9H A8H BCH BBH BAH B9H B8H Interupt 0 edge flag Interupt 0 type control Serial Mode control bit 0 Serial mode control bit 1 Serial mode control bit 2 Reciever enable Transmit bit 8 Receiver bit 8 Transmit interrupt flag Receive Interupt flag Enable all interupr Enable serial port interrupt Enable Timer 1 Interupt Enable external Interupt 1 Enable Timer 0 interupt Enable external interrupt 0 Serial port interrupt priority Timer 1 interupt priority External interrupt priority Timer 0 interupt priority External interrupt 0 priority .3 IP.5 SCON.7 IE.1 IE.4 SCON.3 IE.0 IP.IE0 IT0 SM0 SM1 SM2 REN TB8 RB8 TI RI EA ES ET1 EX1 ET0 EX0 PS PT1 PX1 PT0 PX0 TCON.0 SCON.4 IE.2 IP.0 IE.4 IP.2 SCON.2 IE.3 SCON.1 TCON.1 IP.1 SCON.

mikrokontroler buatan intel dengan mikrokontroller buatan Motorola memiliki perangkat intruksi yang berbeda. pengurangan satu (dekremen). antar muka register dan antar muka memori. Sebagai contoh. registermemori. kecepatan pelaksanaan intruksi akan bervarias dari 1 hingga mikrodetik. Apabila frekuensi clock mikrokontroler yang digunakan adalah 12 Mhz. Seluruh intruksi dapat dikelompokan dalam 4 bagian yang meliputi intruksi 1 byte sampai 4 byte. Intruksi-intruksi tersebut dikenal sebagai bahasa pemograman sistem mikrokontroler. pengurangan.4. Intruksi-intruksi hanya dapat dipahami oleh jenis mikrokontroller yang bersangkutan. Sebuah mikrokontroler tidak dapat memahimi intruksi-intruk yang berlaku pada mirkrokontroler lain. .2 Perangkat Instruksi Intruksi-intruksi perangkat lunak berbeda untu masing-masing jenis mikrokontroller. penambahan satu (inkremen). perkalian dan pembagian. memori-memori. Perangkat intruksi mikrokontroller AT89C51 dapat dibagi menjadi lima kelompok sebagai berikut :  Intruksi Transfer data Intruksi ini memindahkan data antara register-register. Mikrokontroller AT89C51 memiliki 256 perangkat intruksi. Tabel 3 : Instruksi transfer data  Instruksi Aritmatika Intruksi ini melaksanakan operasi aritmatika yang meluputi penjumlahan.4.

OR.Tabel 4 : Instruksi Aritmatika  Instruksi Logika dan Manupulasi Bit Instruksi ini melaksanakan operasi Boolean (AND. Tabel 5 : Instruksi logika dan manipulasi bit  Instruksi Percabangan Instruksi ini mengubah urutan normal pelaksanaan suatu program. Dengan instruksi ini program yang sedang dilaksanakan akan mencabang ke suatu alamat . perbandingan. pergeseran dan komplemen data. XOR).

3 Program Assembler AT89C51 Program bahasa assembly berisikan :  Intruksi-intruksi mesin : merupakan mnemonic yang menyatakan suatu instruksi yang bisa dijalankan (misalnya MOV)  Pengarah-pengarah assembler (assembler directive) : merupakan intruksi ke program assembler yang mendefinisikan struktur program.tertentu. Intruksi percabangan dibedakan atas 2 yaitu : percabangan bersyarat dan percabangan tanpa syarat.4. Baris-baris program yang mengandung instruksi mesin atau pengarah assembler harus mengikuti aturan program assembler ASM51.operand] [……] [. masing-masing baris atas beberapa field yang dipisahkan dengan spasi atau tabulasi. konstanta dan lain-lain (misalnya ORG)  Kontrol-kontrol assembler : mengatur (menentukan) mode-mode assembler dan aliran assembly langsung (misalnya $TITLE)  Komentar-komentar : ditulis agar program mudah dibaca. komentar] . Format umumnya : [label :] mnemonic [operand] [. symbol-simbol. data. Tabel 6 : Instruksi percabangan 4.

END Catatan : Setiap pembuatan program tidak boleh di mulai dari alamat 0000H. LOMPAT KE LABEL START . .contoh pembuatan program assembler ORG 0000H LJMP START . . . jika pembuatan program di mulai dari alamat 0000H maka program dipastikan tidak akan berjalan sebab 0000 di isi oleh intrupt reset. Sebaiknya pembuatan program di mulai dari alamat memori 0100h agar tidak terjadi cras dengan interrupt yang lain. AWAL PROGRAM DIJALANKAN . INISIALISASI ALAMAT AWAL ORG 0100H START : ISI PROGRAM ASSEMBLER .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->