Transcript

MICROCONTROLLER

PENDAHULUAN

uC Suatu sistem mikroprosesor lengkap yang terkandung dalam sebuah chip (IC dengan kepadatan yang sangat tinggi) CPU (Central Processing Unit) RAM (Random Access Memory) EEPROM/EPROM/PROM/ROM I/O, Serial & Parallel Interupt Controller Timer

Arah perkembangan dunia elektronika embedded system atau embedded electronic. Salah satunya dengan menggunakan mikrokontroler.

Microcontroller biasa disingkat MCU atau C

uC Vs uPMicrocontroler

Mikroprosesor

CPU CPU Memory

I/O

Vendor uC Atmel Motorola Mitsubishi NEC Hitachi Philips Intel SGS-Thomson Microchip Matsushitta Toshiba National Semiconductor Zilog Texas Instruments Siemens Sharp dll

Teknik Fabrikasi CMOS (Complementary Metal-Oxide Semiconductor) Digunakan memproduksi hampir semua uC terbaru. Memerlukan daya yang lebih rendah memungkinkan dioperasikan menggunakan batere

Memungkinkan dioperasikan pada fully atau mendekati fully static, clock dapat diperlambat /diberhentikan sehingga chip berada dalam kondisi (mode) sleep.

Lebih tahan terhadap noise Proses fabrikasi : NMOS + PMOS

NMOS (n-channel Metal-Oxide-Semiconductor) Sudah jarang digunakan/tidak digunakan lagi Memerlukan daya yang lebih tinggi

Sifat spesifik uC Hemat daya Ukuran yang kecil Flexibilitas Kemampuan terbatas

Arsitektur Von Neuman Data bus yang dipergunakan untuk "fetch" instruksi dan data. Program (instruksi) dan data disimpan pada memori utama secara bersama-sama. Ketika kontroler mengalamati suatu alamat di memori utama, hal pertama yang dilakukan dalah mengambil instruksi untuk dilaksanakan dan kemudian mengambil data pendukung dari instruksi tsb.

Memperlambat operasi mikrokontroler.

Harvard Memiliki bus data dan instruksi yang terpisah memungkinkan eksekusi dilakukan secara bersamaan.

Memungkinkan eksekusi yang lebih cepat Memerlukan disain yang lebih kompleks.

Instruksi CISC (Complete Instruction Set Computer). Hampir semua mikrokontroler adalah mikrokontroler CISC Biasanya memiliki lebih dari 80 instruksi.

Keunggulan dari CISC ini adanya instruksi yang bekerja seperti sebuah makro, sehingga memungkinkan programmer untuk menggunakan sebuah instruksi menggantikan beberapa instruksi sedarhana lainnya.

RISC (Reduced Instruction Set Computer) Kecenderungan industri untuk menggunakan disain mikroprosesor RISC. Dengan menggunakan jumlah instruksi yang lebih sedikit, memungkinkan lahan pada chip (silicon real-estate) digunakan untuk meningkatkan kemampuan chip.

Keuntungan dari RISC adalah kesederhanaan disain, chip yang lebih kecil, jumlah pin sedikit dan sangat sedikit mengkonsumsi daya.

Memory EEPROM (Electrically Erasable Programmable Read Only Memory) Digunakan untuk menyimpan sejumlah kecil parameter yang dapat berubah dari waktu ke waktu. Jenis memori ini bekerja relatif pelan kemampuan untuk dihapus/tulis nya juga terbatas. lebih baik dari EEPROM ketika dibutuhkan sejumlah besar memori non-volatile untuk program. FLASH ini bekerja lebih cepat dan dapat dihapus/tulis lebih sering dibanding EEPROM. Sangat berguna ketika dibutuhkan memori yang besar untuk menyimpan data dan program. Sangat cepat dibanding memori non-volatile tidak terdapat keterbatasan kemampuan hapus/tulis sangat cocok untuk aplikasi untuk menyimpan dan manipulasi data secara lokal.

FLASH (EPROM)

Battery backed-up static RAM

Field programming/reprogramming menggunakan memori non-volatile untuk menyimpan program memungkinkan mikrokontroler dapat diprogram setelah dirakit diPCBnya. dapat diprogram satu kali saja (tidak dapat dihapus atau dimodifikasi). OTP menggunakan EPROM standard tetapi tidak memiliki cara/metode untuk menghapus programnya.

OTP - One Time Programmable

Memory (lanjutan) Software protection Software protection hanya dipunyai oleh komponen OTP atau komponen yang dapat diprogram ulang. Melindungi software dari pembajakan, modifikasi atau rekayasa ulang

Pada komponen jenis Mask ROM tidak diperlukan proteksi, hal ini dikarenakan untuk membajak isi programnya seseorang harus membacanya (visual) dari chip nya dengan menggunakan mikroskop elektron. TEST MODE MEMUNGKINKAN KITA MEMBACA KESELURUHAN ISI ROM Test mode ini bersifat SANGAT-SANGAT- SANGAT DIRAHASIAKAN Test mode hanya diketahui oleh vendor yang memproduksi mikrokontroler tersebut. Test mode hanya dapat dilakukan pada komponen Mask ROM.

Input/Output UART (Universal Asynchronous Receiver Transmitter) USART (Universal Synchronous/Asynchronous Receiver Transmitter) Komunikasi serial sinkron tidak memerlukan start/stop bit dapat beroperasi pada clock yang lebih tinggi dibanding asinkron.

SPI (Serial Peripheral Interface) SCI (serial communications interface) Enhanced UART (asynchronous serial port) Merupakan antarmuka serial 2 kawat yang dikembangkan oleh Philips untuk aplikasi 8-bit I2C bus ini berfungsi sebagai antarmuka jaringan multi-master, multi-slave dengan deteksi tabrakan data. Jaringan dapat dipasangkan hingga 128 titik dalam jarak 10 meter. Setiap titik dalam jaringan dapat mengirim dan menerima data. Setiap titik dalam jaringan harus memiliki alamat yang unik.

I2C bus (Inter-Integrated Circuit bus)

Analog to Digital Conversion (A/D). Digital to Analog(D/A) Converters. Comparator. Mikrokontroler tertentu memiliki sebuah atau lebih komparator. Komparator ini bekerja seperti IC komparator biasa tetapi sinyal input/outputnya terpasang pada bus mikrokontroler.

Interupsi Interupt : sinyal untuk meminta perhatian mikroprosesor Mikrokontroler menunda operasi yang sedang dilakukan Mengidentifikasi interupsi yang datang Menjalankan rutin pelayanan interupsi.

Rata-rata mikrokontroler memiliki minimal sebuah interupsi eksternal

Interupsi yang dimiliki bisa dipicu oleh "edge" atau "level". Jenis Interupt Maskable Interrupts Bebas memilih untuk menggunakan satu atau lebih interupsi. Dapat mematikan interupsi saat mikrokontroler sedang melakukan proses yang kritis.

Vectored Interrupts Interupt handler secara otomatis akan memindahkan program pada alamat tertentu yang telah ditentukan sesuai dengan jenis interupsi yang terjadi.

Mikrokontroler Populer 8051 (Intel dan lainnya) Memiliki banyak varian untuk memenuhi keperluan yang bebeda. Diproduksi tidak hanya oleh Intel

6805 (Motorola) Arsitektur Von Neuman Stack pointer yang dimiliki adalah 5 bit sehingga kedalaman stack terbatas hingga 32 byte. Beberapa mikrokontroler dari keluarga ini memiliki ADC, PLL, Frq. Synthesizer, serial I/O dan software security.

PIC (MicroChip) Mikrokontroler RISC pertama (33 instruksi untuk 16C5x) kesederhanaan rancangan memungkinkan untuk menambah kemampuannya dengan biaya yang rendah. chip yang sangat kecil, sedikit pin dan pemakaian daya yang sangat kecil.

Arsitektur Harvard memungkinkan akses data dan program secara bersamaan sehingga menaikan kinerja pemrosesannya.

Terdapat tiga keluarga PIC pada saat ini yaitu PIC16C5x, PIC16Cxx dan PIC17Cxx.

Z8 (Zilog) Turunan dari Zilog Z80. Memiliki arsitektur unik merupakan arsitektur gabungan dengan tiga daerah memori yaitu: program memori, data memori CPU register file.

Memiliki UART, timer, DMA, I/O hingga 40 buah pada chipnya dan ersi lainnya memiliki sync/async serial channel.

Keseluruhan mikrokontroler ini memiliki Stack RAM yang dapat dikonfigurasikan dan sistem interupsi, dua timer programmable dengan interupt, proteksi ROM, dua analog komparator

Development Software Software untuk menggunakan mikrokontroler dapat didapatkan secara gratis dengan mencari di WWW, tetapi software gratis biasanya tidak dilengkapi dengan dokumentasinya. Software ini diantaranya adalah software untuk simulasi dan software untuk pemrograman. Jika ingin lebih serius mendalami mikrokontroler mungkin lebih baik untuk membeli software lengkap dengan dokumentasinya. Mis : Jika PIC merupakan mikrokontroler yang dipilih, kita dapat mendownload software yang diperlukan secara gratis di web microchip yaitu MPSIM (simulator), MPASM (assembler).

Memilih Mikrokontroller Pertimbangan Ketersediaan dan harga dari suatu development tools (Programmer, Emulator dan Simulator) Ketersediaan dokumentasi (Ref. Manual, Application notes, dan buku lainnya). Ketersediaan tempat bertanya/komunitas Ketersediaan komponen OTP, Mask, Programmable. Harga uC

Aplikasi uC Mengendalikan suatu perangkat elektronik dengan berbagai sensor dan kondisi seperti cahaya, getaran, panas, dingin, lembab dan lain-lain. SMS Gateway Radio militer frekuensi hopping (radio komunikasi anti sadap dengan lompatan frekuensi 100 kali dalam 1 detik), Sistem monitoring cuaca dengan balon udara, Automatic vehicle locator (menggunakan GPS) dll

PENGENALAN MCS-51

Pendahuluan Intel 8051 : Arsitektur Harvard Dikembangkan oleh Intel tahun 1980 untuk sistem embedded. Sangat populer hingga tahun 1990-an Nama resminya adalah MCS-51 (by Intel)

Diproduksi oleh lebih dari 20 manufaktur independen dengan penambahan fungsionalitas dan peningkatan kecepatan, diantaranya: Atmel Infineon Technologies (formerly Siemens AG) Maxim Integrated Products (via Dallas Semiconductor subsidiary), NXP (formerly Philips Semiconductor), ST Microelectronics, Silicon Laboratories Texas Instruments and Cypress Semiconductor. dll

Awalnya difabrikasi dengan teknologi NMOS tapi kemudian menggunakan teknologi CMOS Lebih hemat energi Mendapat tambahan huruf C (e.g 80C51)

Related MCU Intel 8048 digunakan pada keyboard IBM PC pertama, Mengkonvesi keypresses menjadi data serial Intel 8048 dan derivatifnya masih digunakan untuk beberapa model keyboard

Intel 8031 versi hemat dari Intel 8051 (tidak memiliki internal program memory /ROM)) Harus menggunakan external ROM.

Intel 8052 pengembangan dari 8051 yang memiliki fitur 256 bytes internal RAM (biasanya 128 bytes), 8 kiB ROM bukan 4 kiB, 16-bit timer (ke-3).

Intel 8032 versi hemat dari 8052 (tidak memiliki ROM)

Intel 8052 dan 8032 saat ini dianggap sudah obsolete karena fitur yang dimilikinya sudah dimiliki oleh MCS-51 modern yang diproduksi saat ini Intel mengehentikan produksi MCS 51 pada Maret 2007, tapi vendor-vendor lain masih mengembangkan MCS-51

MCS-51 MCS-51 mudah dipelajari dan digunakan untuk membangun sistem Saat ini banyak uC yang memiliki kelebihan dibandingkan MCS-51 PIC Microchip/dsPIC Atmel AVR/AVR32 uC berbasiskan ARM dll

Perhatikan..!!!! Developer harus mempelajari dan membandingkan masing-masing uC untuk menentukan kelebihan/kekurangan dalam mendesain sistem Misal : Atmel AVR termasuk banyak digunakan karena 8-bit uC kinerja I/O yang baik Harga murah Termasuk dokumentasi yang meilimpah dukungan software yang luas (komersial & open source)

Pertimbangan daya : Renesas

Fitur MCS-51 Fitur Intel 8051 8-bit ALU, Accumulator and 8-bit Registers; (8-bit microcontroller) 8-bit data bus 8 bits data untuk satu kali operasi

16-bit address bus Mampu mengakses 216 lokasi memory - 64 KB (65536 lokasi) RAM dab ROM

On-chip RAM - 128 bytes (data memory) On-chip ROM - 4 kByte (program memory) 4 byte bi-directional input/output port UART (serial port) 2 16-bit Counter/timers 2-level interrupt priority Power saving mode

Note : Fitur bisa berbeda untuk masing-masing vendor

Memory MCS-51

Program Memory & Data Memory

Program Memory Program memory berada pada alamat 0. Program memory bersifat read-only, Beberapa varian menggunakan on-chip flash memory (bisa re-programming insystem atau in-application).

Menyimpan code dan table konstanta Bisa diakses dengan MOVC A, @DPTR, menggunakan (16-bit SFR DPTR)

PMEM, digunakan tidak sesering IRAM dan XRAM

Memory Data Berada pada alamat 0 0xFF. 0x00 0x7F : direct access 0x20 to 0x3F juga bitaddressable.

0x80 to 0xFF : indirect access Menggunakan register @R0 atau @R1, Alamat yang akan diakses harus diload ke R0 atau R1

Memory Data

External Data Memory (XRAM) Berada pada alamat 0. Harus diakses dengan instruksi MOVX (Move eXternal). Beberapa varian telah menyertakan 256 bytes IRAM + beberapa KB XRAM pada chip. Jika butuh XRAM lebih, internal XRAM didisabled dan tambahkan dengan external XRAM

SFR Berada pada alamat 0x80 0xFF, dan direct acces Beberapa SFR's juga bit-addressable.

SFR Accumulator ACC adalah register akumulator. 8 byte data

Register R & B Register R 8 set register (R0, R1, R2, R3, R4, R5, R6, dan R7) Digunakan sebagai register pembantu penyimpanan data 8 bit (1 byte). hanya digunakan dalam dua instruksi, yaitu MUL A,B dan DIV A,B. Jika diinginkan untuk mengalikan atau membagi akumulator A dengan suatu harga, maka simpanlah harga tersebut dalam register B dan kemudian jalankan instruksinya.

Register B

Data Pointer Dapat diakses 16 bit (2 byte) di dalam keluarga 8031. Terdiri atas DPH dan DPL Digunakan untuk menunjuk pada lokasi suatu data. Digunakan oleh beberapa perintah untuk mengakses memori eksternal.

SFR Program Status Word Register PSW terdiri dari informasi status dari program

Ports 0, 1, 2 dan 3 P0, P1, P2 dan P3 adalah SFR yang ditempati oleh Port 0, 1, 2 dan 3.

Stack Pointer Menyimpan 8 bit (1 byte) data. Menunjukkan di mana harga berikutnya akan diambil dari stack. Jika suatu harga dimasukkan dalam stack, 89C51 petama-tama akan menambah harga SP dan kemudian menyimpan harga tersebut pada alamat memori yang bersesuaian. Jika suatu harga diambil dari stack, maka 89C51 akan mengambil harga dari stack dan kemudian mengurangi harga SP

Register ini akan bertambah sebelum data disimpan selama eksekusi push dan call. Pointer stack diawali di alamat 07h setelah reset. Hal ini menyebabkan stack untuk memulai pada lokasi 08h.

SFR Buffer Data Serial Merupakan dua buah register yang terpisah, buffer pemancar dan buffer penerima.

Ketika data diisikan ke SBUF, maka akan menuju ke buffer pemancar dan ditahan untuk proses transmisi. Ketika data diambil dari SBUF, maka akan berasal dari buffer penerima.

PC (Program Counter) Memberitahu alamat instruksi selanjutnya (2 byte) Bernilai 0000h, saat inisialisasi dan bertambah satu setiap satu instruksi terkerjakan Tidak bisa dimodifikasi langsung dengan perintah MOV, tapi dengan perintah LJMP.

Registers Timer Pasangan register ( TH0, TL0) dan (TH1, TL1) adalah register pencacah 16 bit untuk Timer/ Counter 0 dan 1,

Register Control Registers IP, IE, TMOD, TCON, SCON, dan PCON terdiri dari bit control dan status.

Program Status Word (PSW) bit-bit status berkaitan dengan kondisi atau keadaan CPU mikrokontroler pada saat tersebut. berada dalam lokasi ruang SFR dapat memantau beberapa status yang meliputi: carry bit Bit carry dapat juga anda guakan pada keperluan operasi aritmatika, juga bisa digunakan sebagai universal akumulator untuk beberapa operasi boolean

auxiliary carry ( untuk operasi BCD ), dua bit pemilih bank register, flag overflow sebuah bit paritas 2 flag status yang bisa didifinisikan sendiri.

PSWMSB CY AC F0 RS1 RS0 OV LSB P

BIT PSW.7 PSW.6 PSW.5 PSW.4

SYMBOL CY AC F0 RS1 Carry flag.

FUNCTION Auxilliary Carry flag. (For BCD operations.) Flag 0. (Available to the user for general purposes.) Register bank select control bit 1. Set/cleared by software to determine working register bank. (See Note.) Register bank select control bit 0. Set/cleared by software todetermine working register bank. (See Note.) Overflow flag. User-definable flag. Bit paritas dapat digunakan untuk mengetahuai jumlah logika '1' pada akumulator:

PSW.3 PSW.2 PSW.1 PSW.0

RS0 OV P

PSWRS10 0 1

RS00 1 0

Bank0 1 2

Address RAM00 h - 07 h 08 h - 0F h 10 h - 17 h

1

1

3

18 h - 1F h

Pengalamatan Beberapa metode pengalamatan pada 8051 Immediate Addressing Nilai yang akan disimpan didalam memori, secara langsung berada dalam kode Ex : MOV A,#20h; put constant 20 into Acc end

Direct Addressing Nilai yang akan disimpan didalam memori, diperoleh secara langsung dari memori yang lain Ex MOV A,30h;

Indirect Memory Menggunakan R0, R1, atau DPTR untuk menyimpan alamat memory. Instruksi yang digunakan berbeda untuk mengakses IRAM, XRAM, atau PMEM.

Instruction Set Kebanyakan operasi mengizinkan kita untuk menggunakan semua jenis metode pengalamatan untuk source dan destination 8051 merupakan accumulator-based architecture, Semua operasi arithmetic harus menggunakan accumulator, e.g. ADD A, 020h (tambahkan value pada lokasi memory 0x20 pada IRAM ke accumulator)

PHYSICAL MCS-51

Bentuk Fisik

Arsitektur MCS-51

AT89C51

Blok Diagram PV89C51

Pin AT89C51 Pin (Atmel 89C51) VCC GND P0, P1, P2 P3 RXD, TXD Serial output port external interupt Timer external input External data memory write strobe External data memory read strobe

~INT0, ~INT1 T0, T1

~WR

~RD

XTAL1, XTAL2 RST Reset External Access Enabled Sinyal kontrol demultiplex alamat dan data Sinyal kontrol untuk membaca program dari mem external

EA/~VPP

ALE/~PROG

~PSEN

Pin AT89S51


Recommended