Anda di halaman 1dari 7

BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 1)

BAB KONSEP DASAR MIKROKONTROLER

1.

Umum.

Dengan memahami bagian-bagian utama dan fungsi bagian-bagian utama dari

mikrokontroler secara umum untuk keluarga tertentu merupakan pedoman pemahaman konsep dasar bagaimana prinsip kerja suatu mikrokontroler. 2. Deskripsi Mikrokontroler. Pemahaman konsep dasar dari mikrokontroler ditunjukkan pada

Gambar 2.1 Diagram blok mikrokontroler umum.

Gambar 2.1 Diagram blok mikrokontroler umum Masing-masing bagian tersebut saling dihubungkan melalui internal bus, umumnya terdiri dari 3 bus yaitu address bus, data bus dan control bus. Masing-masing bagian memiliki fungsi-fungsi :

a.

Register.

Register adalah suatu tempat penyimpanan (variabel)

bilangan bulat 8 atau

16 bit. Pada umumnya register jumlahnya banyak, masing-masing ada yang memiliki fungsi khusus dan ada pula yang memiliki kegunaan umum. Register yang memiliki fungsi khusus misalnya adalah register timer yang berisi data penghitungan pulsa untuk timer, atau register pengatur mode operasicounter (pencacah pulsa). Sedangkan register yang bersifat umum digunakan untuk menyimpan data sementara yang diperlukan untuk proses penghitungan dan proses operasi mikrokontroler. Register dengan kegunaan umum dibutuhkan mengingat pada saat yang bersamaan mikrokontroler hanya mampu melakukan operasi aritmatika atau logika hanya pada satu atau dua operand saja. Sehingga untuk operasi-operasi yang melibatkan banyak variabel harus dimanipulasi dengan menggunakan variabel-variabel register umum. b. Accumulator. Merupakan salah satu register khusus yang berfungsi sebagai operand umum proses aritmetika dan logika. c. Program Counter. Merupakan salah satu register khusus yang berfungsi sebagai

pencacah/penghitung eksekusi program mikrokontroler. d. ALU (Arithmetic and Logic Unit). ALU memiliki kemampuan mengerjakan proses-proses aritmatika (penjumlahan, pengurangan, perkalian, pembagian) dan operasi logika (misalnya AND, OR, XOR, NOT) terhadap bilangan bulat 8 atau 16 bit. d. Clock Circuits. Mikrokontroler adalah rangkaian logika sekuensial, dimana proses kerjanya berjalan melalui sinkronisasi clock. Karenanya diperlukan clock circuits yang menyediakan clock bagi seluruh bagian rangkaian. e. Internal ROM (Read Only Memory). Merupakan memori penyimpan data yang isinya tidak

dapat diubah atau dihapus (hanya dapat dibaca). ROM biasanya diisi dengan program untuk menjalankan mikrokontroler segera setelah power dinyalakan, dan berisi data-data konstanta yang diperlukan oleh program. Isi ROM tidak dapat hilang walaupun power dimatikan. f. Internal RAM (Random Access Memory). Merupakan memori penyimpan data yang isinya dapat diubah atau dihapus. RAM biasanya berisi data-data variabel dan register. Data yang tersimpan pada RAM bersifat hilang jika catu daya yang terhubung padanya dimatikan. g. Stack Pointer. Stack adalah bagian dari RAM yang memiliki metode penyimpanan dan pengambilan data secara khusus. Data yang disimpan dan dibaca tidak dapat dilakukan dengan metode acak. Karena data yang masuk ke dalam stack pada urutan yang terakhir adalah data yang pertama kali dibaca kembali. Stack Pointer berisi offset dimana posisi data stack yang terakhir masuk (atau yang pertama kali dapat diambil). h. I/O (input/output) Ports. Merupakan sarana yang dipergunakan oleh mikrokontroler untuk

mengakses peralatan-peralatan lain di luar dirinya, berupa pin-pin yang dapat berfungsi untuk mengeluarkan data digital ataupun menginputkan data. i. Interrupt circuits. Adalah rangkaian yang memiliki fungsi untuk mengendalikan sinyal-sinyal interupsi baik internal maupun eksternal. Adanya normal program mikrokontroler interupsi tersebut. sinyal interupsi akan menghentikan eksekusi untuk selanjutnya menjalankan sub-program untuk melayani

Diagram blok tersebut tidaklah selalu sama untuk setiap jenis mikrokontroler. Beberapa mikrokontroler menyertakan rangkaian ADC (Analog to Digital Converter) di dalamnya, ada pula yang menyertakan port I/O serial di samping port I/O paralel yang sudah ada.

3. a. pada

Cara Kerja Mikrokontroler.

Prinsip kerja mikrokontroler adalah :

Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil data ROM dengan address sebagaimana nilai yang tertera padaProgram Counter. nilainya dengan 1 (increment) secara otomatis. Data adalah urutan instruksi program pengendali mikrokontroler yang

Selanjutnya Program Counter ditambah yang diambil tersebut

sebelumnya telah dibuat oleh pemakai. b. Instruksi tersebut diolah dan dijalankan. Proses pengerjaan bergantung pada jenis instruksi: bisa membaca, mengubah nilai-nilai pada register, RAM, isi port atau melakukan pembacaan dan otomatis sebagaimana dilanjutkan dengan pengubahan data. c. Program Counter telah berubah nilainya (baik karena penambahan

pada langkah 1 di atas atau karena pengubahan pada langkah b. Selanjutnya yang dilakukan mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga power dimatikan. Dari pengertian di atas dapat disimpulkan bahwa pada dasarnya unjuk kerja mikrokontroler sangatlah bergantung pada urutan instruksi yang dijalankannya, yaitu program yang ditulis di ROM. Dengan membuat program yang bermacam-macam, maka tentunya mikrokontroler dapat mengerjakan proses yang bermacam-macam pula. Fasilitas-fasilitas yang ada misalnyatimer/counter, port I/O, serial port, Analog to Digital Converter (ADC) dapat dimanfaatkan oleh program untuk menghasilkan proses yang diinginkan. Misalnya saja ADC dipergunakan oleh sebuah mikrokontroler pengendali alat ukur digital untuk mengukur tegangan sinyal input. Kemudian hasil pembacaan ADC diolah untuk kemudian dikirimkan ke sebuah display yang terhubung pada port I/O, menampilkan hasil pembacaan yang telah diolah. Proses pengendalian ADC, pemberian sinyal-sinyal yang tepat pada display, kesemuanya dikerjakan secara berurutan pada program yang ditulis di ROM. Penulisan program mikrokontroler pada umumnya adalah menggunakan bahasa assembly untuk mikrokontroler yang bersangkutan (setiap mikrokontroler memiliki instruksi bahasa assembly yang berlainan). Kemudian dengan bantuan sebuah komputer, bahasa assembly tersebut diubah menjadi bahasa mesin mikrokontroler, dan disalin ke dalam ROM mikrokontroler. Pada buku ini akan dibahas mikrokontroler dari keluarga MCS-51, dengan beberapa contoh aplikasi sederhana. Selanjutnya dari pengertian yang didapat, diharapkan dapat dikembangkan sendiri aplikasi-aplikasi lain sebagaimana yang diinginkan.

BAB KELUARGA MIKROKONTROLER MCS-51

4.

Umum.

Keluarga mikrokontroler MCS-51 terdiri dari 8031, 8032, 8051, 8052, 8751, 8752,

8951 dan 8952. Masing-masing berbeda dalam konfigurasi internalnya. Perbedaan pokok adalah bahwa 8031 dan 8032 tidak memiliki internal ROM, 8751 dan 8752 jenis internal ROM-nya adalah EPROM (Erasable & Programmable ROM) sedangkan 8951 dan 8952 jenis internal ROM-nya adalah PEROM (Flash Programmable and Erasable ROM). Keluarga mikrokontroler MCS-51 memiliki konfigurasi dasar sebagai berikut : a. Parallel I/O Port 8 bit (P0-P3) b. Serial Full-Duplex Asynchronous I/O Port

c.

Internal Random Access Memory (RAM) sejumlah 128 byte (8051, 8031, 8751) atau 256 byte

(8052, 8032, 8752) d. Internal Read Only Memory (ROM) sejumlah 4 kilobyte (8051, 8751) atau 8 kilobyte (8052, 8752) e. f. Programmable Timer/Counter sejumlah 2 (8051, 8031, 8751) atau 3 (8052, 8032, 8752) System Interrupt dengan 2 sumber interrupt eksternal dan 4 sumberinterrupt internal

Dengan fasilitas yang cukup lengkap semacam itu, maka dimungkinkan penggunaan mikrokontroler ini dalam konfigurasi single chip, dimana hanya dibutuhkan satu chip untuk menjalankan seluruh sistem rangkaian.

Tabel 3.1 Keluarga MCS-51 Device Internal memory Program 8KX8 RAM 4KX8 ROM 4KX8 ROM None None None 4KX8 EPROM 4KX8 EPROM 4KX8 EPROM 4KX8 PEROM Internal Memory data 256X8 RAM 128X8 RAM 128X8 RAM 256X8 RAM 128X8 RAM 128X8 RAM 128X8 RAM 128X8 RAM 128X8 RAM 128X8 RAM Timers/Event Interrupts Counters

8052AH 8051AH 8051 8032AH 8031AH 8031 8751H 8751H12 8751H88 AT89C51

3 X 16 BIT 2 X 16 BIT 2 X 16 BIT 3 X 16 BIT 2 X 16 BIT 2 X 16 BIT 2 X 16 BIT 2 X 16 BIT 2 X 16 BIT 2 X 16 BIT

6 5 5 6 5 5 5 5 5 5

5. a.

Arsitektur MCS-51. Diagram blok MCS-51.

Diagram blok arsitektur MCS-51 dapat

dilihat

pada gambar

2.1. Pada diagram blok tersebut dapat disimpulkan bahwa untuk aplikasi yang tidak membutuhkan adanya RAM dan/atau ROM dengan skala besar, maka MCS-51 telah dapat dipergunakan dalam konfigurasi single chip.Fasilitas Parallel Port yang dimiliki dapat dipergunakan untuk mengendalikan peralatan eksternal atau menginputkan data yang diperlukan.

Port serial dapat dipergunakan untuk mengakses sistem komunikasi data dengan dunia luar, misalnya dengan komputer IBM PC, atau peralatan lainnya baik langsung lewat kabel ataupun melalui modem dengan saluran telepon, radio, atau bahkan serat optik. Timer/counter yang ada dapat dipergunakan untuk mencacah pulsa, menghitung lama pulsa, atau sebagai pewaktu umum. Sedangkan sistem interrupt membuat MCS-51 dapat dipakai pada aplikasi-aplikasi yang mendekati sistem dengan prosesrealtime. Rangkaian clock internal yang dimiliki MCS-51 menjadikan cukup hanya ditambahkan sebuah kristal osilator dan dua buah kapasitor untuk menghasilkanclock bagi seluruh sistem rangkaian. Untuk kebutuhan ROM dan RAM yang besar, sistem MCS51 mengijinkan penggunaan RAM dan ROM masing-masing sebesar maksimal 64 Kilo byte, cukup besar untuk aplikasi-aplikasi umum mikrokontroler.

Gambar 3.1 Diagram blok MCS-51

b.

Fungsi kaki-kaki (pin out) MCS-51.

Pin Out MCS-51 dapat dilihat pada gambar di bawah ini :

Gambar 3.2 Pin-out 8031

Fungsi kaki-kaki 8031 : VCC Port 0 : VSS : : dihubungkan dengan ground rangkaian dihubungkan dengan tegangan catu +5 V

merupakan Port I/O 8 bit dua-arah. Port ini digunakan sebagai multipleks bus alamat rendah dan bus data selama pengaksesan ke eksternal memori. Setiap pin-nya dapat mengendalikan langsung 4 beban TTL. Port 0 juga menerima dan mengeluarkan code byte selama proses pemrograman dan verifikasi ROM/EPROM internal. merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Setiap pin dapat diakses secara operasi tiap bit atau byte bergantung pemrogram. Port 1 juga menerima address rendah selama proses pemrograman dan verifikasi ROM/EPROM internal.

Port 1 :

Port 2 :

merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Port ini digunakan sebagai bus alamat tinggi selama pengaksesan ke eksternal memori. Port 2 juga menerima address tinggi selama proses pemrograman dan verifikasi ROM/EPROM internal. merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Setiap pin dapat diakses secara operasi tiap bit atau byte bergantung pemrogram. Masing-masing pin pada Port ini memiliki fungsi khusus sebagai berikut : Tabel 3.1 Fungsi Pin-pin Port 3

Port 3 :

Port Pin P3.0 P3.1 P3.2 P3.3. P3.4 P3.5 P3.6 P3.7

Fungsi Alternatif RXD (serial input port) TXD (serial output port) -INT0 (external interrupt 0) -INT1 (external interrupt 1) T0 (timer/counter 0 external input) T1 (timer/counter 1 external input) -WR (external data memory write strobe) -RD (external data memory read strobe)

RST ALE PSEN EA/VPP

: merupakan input untuk RESET. : Address Latch Enable, digunakan untuk memberikan sinyal latch pada alamat rendah pada multipleks bus adress dan data. : merupakan sinyal read strobe untuk eksternal program memori. : merupakan input untuk mode program memori.jika dihubungkan ke ground , program memori adalah eksternal, jika dihubungkan ke VCC, program memori adalah internal, jika dihubungkan ke VPP, diperlukan untuk proses pemrograman ROM. XTAL1, XTAL2 : merupakan input untuk kristal clock.