• Tidak ada hasil yang ditemukan

BAB II DASAR TEORI

2.4 Mikrokontroler AT89S51

Mikrokontroler AT89S51 merupakan mikrokontroler 8 bit yang berbasis arsitektur MCS-51. Pilihan menggunakan mikrokontroler AT89S51 karena memiliki kelengkapan-kelengkapan yang diperlukan untuk bekerja dalam sistem single chip, memiliki kemampuan In System Programming

(ISP) yang mempermudah proses pengisian program ke dalam sistem mikrokontroler, dan juga pertimbangan ekonomis. Gambar 2.10 merupakan diagram blok dari mikrokontroler AT89S51.

Gambar 2.10 Diagram blok mikrokontroler AT89S51.

2.4.1 Struktur Memori

Memori merupakan rangkaian elektronis yang digunakan untuk menyimpan informasi secara temporer atau permanen. Memori biasanya digunakan untuk menyimpan data yang diperoleh dari saluran masukan-keluaran atau untuk menyimpan program dari sebuah sistem.

Mikrokontroler AT89S51 mempunyai struktur memori yang terpisah yaitu memori program yang menggunakan teknologi flash memory dan memori data berupa RAM. Memori data (RAM) yang tersedia sebesar 128

bytes sedangkan flash memory yang dapat digunakan untuk menyimpan kode program sebesar 4 Kbytes.

2.4.1.1 Memori Data

Memori data internal terdiri dari 128 bytes RAM dan SFR (Special Function Register). Semua byte dengan alamat 00h – 7Fh ini dapat diakses menggunakan pengalamatan secara langsung maupun tidak langsung. Adapun peta memori dari RAM internal ditunjukkan dengan gambar 2.11.

Gambar 2.11 Peta memori RAM internal.

2.4.1.2 Memori Program

Memori program atau flash memory pada mikrokontroler AT89S51 memiliki kapasitas sebesar 4 Kbytes yang hanya bisa digunakan untuk membaca saja. Program memori ini dapat diakses pada alamat 0000h sampai 0FFFh hanya bila pin EA/VPP pada AT89S51 berlogika high.

2.4.2 Special Function Register ( SFR )

Mikrokontroler AT89S51 memiliki beberapa register yang dikelompokkan dalam register fungsi khusus (special function register), terletak pada alamat 80h sampai FFh (lihat gambar 2.12). Di dalam ruang SFR terdapat register-register yang mampu dialamati per-bit.

Gambar 2.12 Peta SFR ( Special Function Register ).

2.4.3 Register Interupsi

Register interupsi berfungsi untuk melayani interupsi baik oleh perangkat internal maupun perangkat eksternal, berikut pengaturan prioritas interupsi yang dilayani. AT89S51 menyediakan 5 sumber interupsi yaitu dua interupsi eksternal, dua interupsi timer, dan sebuah interupsi port serial. Register-register yang berhubungan dengan interupsi adalah register IE (Interrupt Enable) yang terletak pada alamat A8h, dan register IP (Interrupt Priority) yang terletak pada alamat B8h.

Sumber interupsi dapat diaktifkan dan dinonaktifkan dengan mengatur bit-bit yang terkait dalam register IE. Pada register IE terdapat sebuah bit yang digunakan untuk mengaktifkan dan menonaktifkan interupsi secara keseluruhan (global) yaitu bit IE.7 yang disimbolkan dengan EA. Susunan bit dalam register IE ditunjukkan dengan gambar 2.13 dan tabel 2.3 berikut.

IE – Interrupt Enable Register

Tabel 2.3 Bit-bit pada register IE (Interrupt Enable).

Simbol Posisi Fungsi

! ! " #

! ! !

Saat suatu interupsi diterima, nilai yang disimpan ke PC (program counter) sebagai alamat RLI (rutin layanan interupsi) selanjutnya disebut sebagai vektor interupsi (lihat tabel 2.4), yang sekaligus merupakan awal alamat RLI yang bersangkutan.

Tabel 2.4 Vektor-vektor interupsi AT89S51.

Interupsi Tanda (flag) Alamat vektor

$ !!!!% ! ! !!! % ! &! !!! % !! % & !! % $ !! %

2.4.4 Timer atau Counter

Mikrokontroler AT89S51 memiliki dua buah timer, yaitu timer 0 dan

timer 1. Kedua timer ini dapat difungsikan sebagai timer atau sebagai

counter tergantung pada sinyal detak yang diberikan. Jika sebuah pencacah bekerja dengan frekuensi tetap, maka dapat dikatakan bahwa pencacah tersebut bekerja sebagai timer atau pewaktu. Jika sebuah pencacah bekerja dengan frekuensi yang bervariasi, dapat dikatakan bahwa pencacah tersebut bekerja sebagai counter atau pencacah.

Kedua timer dalam mikrokontroler AT89S51 masing-masing berkapasitas 16 bit dan dioperasikan berdasarkan mode tertentu. Untuk menentukan kerja timer dengan mode-mode tertentu, AT89S51 memiliki beberapa register pengatur mode timer, yaitu :

2.4.4.1 Register TMOD ( Timer Mode Register )

Register ini digunakan untuk mengatur mode kerja dari timer. Register TMOD dibagi menjadi dua bagian secara simetris, yaitu : bit 0 sampai 3 (TMOD.0 sampai TMOD.3) dipakai untuk mengatur timer 0, sedangkan bit 4 sampai 7 (TMOD.4 sampai TMOD.7) dipakai untuk mengatur timer 1. Susunan bit pada register TMOD dapat dilihat pada gambar 2.14.

Gambar 2.14 Susunan bit dalam register TMOD.

Penjelasan mengenai register TMOD adalah sebagai berikut : 1. Bit M0 dan M1 dipakai untuk menentukan mode kerja timer. 2. Bit C/~T dipakai untuk mengatur sumber sinyal detak yang

diberikan ke pencacah biner. Jika C/~T = 0, maka sinyal detak diperoleh dari osilator kristal yang frekuensinya sudah dibagi 12, sedangkan jika C/~T = 1, maka sinyal detak diperoleh dari kaki T0 (untuk timer 0) atau kaki T1 (untuk timer 1).

3. Bit GATE adalah bit pengatur saluran sinyal detak. Bila GATE= 0, saluran sinyal detak hanya diatur oleh bit TRx. Jika GATE = 1, kaki INT0 (untuk timer 0) atau kaki INT1 (untuk timer 1) yang dipakai untuk mengatur saluran sinyal detak.

2.4.4.2 Register THx dan TLx

Register THx (timer x high byte) dan TLx (timer x low byte) merupakan register SFR yang dipakai untuk membentuk pencacah biner pada timer. Register ini masing-masing berkapasitas 8 bit dan bersama-sama bergabung menjadi register 16 bit.

2.4.4.3 Register TCON ( Timer Control Register )

Register ini digunakan untuk mengatur kontrol kerja dari timer. Register TCON dibagi menjadi dua bagian, 4 bit pertama (bit 0 sampai dengan bit 3) dipakai untuk keperluan mengatur masukan INT0 dan INT1. Sisa 4 bit berikutnya (bit 4 sampai dengan bit 7) dibagi menjadi dua bagian secara simetris yang dipakai untuk mengatur timer 0 dan

timer 1, sebagai berikut :

a) Bit TFx merupakan bit indikator terjadinya limpahan atau

overflow dimana kondisi pencacah berubah dari FFFFh kembali menjadi 0000h. Bit TFx bisa di-nol-kan secara manual dengan instruksi clear.

b) Bit TRx merupakan bit pengatur saluran sinyal detak. Bila bit TRx = 0, maka sinyal detak tidak disalurkan ke pencacah biner sehingga pencacah berhenti melakukan pencacahan. Bila bit GATE =1 pada register TMOD, maka saluran sinyal detak diatur bersama oleh TRx dan sinyal pada pin atau kaki INTx.

Susunan bit dalam register TCON dapat dilihat pada gambar 2.15.

Gambar 2.15 Susunan bit dalam register TCON.

2.4.5 Instruksi –Instruksi Mikrokontroler

Mikrokontroler AT89S51 memiliki beberapa kelompok instruksi sebagaimana mikrokontroler yang memiliki arsitektur MCS-51. Berikut adalah kelompok instruksi yang digunakan antara lain:

2.4.5.1 Operasi Aritmatika

Instruksi yang termasuk dalam kelompok ini digunakan untuk proses matematis seperti penjumlahan, pengurangan, perkalian, dan pembagian. Seperti ADD, ADDC, SUBB, INC, DEC, MUL, DIV, DA.

2.4.5.2 Operasi Logika

Terdiri dari ANL, ORL, XRL, CLR, CPL, RL, RLC, RR, RRC, SWAP. Instruksi ini berguna untuk program yang memerlukan operasi logika seperti AND, OR, XOR, Complement, Rotate.

2.4.5.3 Operasi Transfer Data

Berfungsi untuk menyalin ataupun mengambil data yang tersimpan di dalam memori program dan memori data. Instruksi-instruksi tersebut meliputi : MOV, MOVC, MOVX, PUSH, POP, XCH, XCHD.

2.4.5.4 Operasi Manipulasi Variabel

Instruksi-instruksi untuk operasi ini seperti : CLR, SETB, CPL, ANL, ORL, MOV, JC, JNC, JB, JNB, JBC.

2.4.5.5 Operasi Pencabangan

Instruksi-instruksi untuk operasi ini seperti : ACALL, LCALL, RET, RETI, AJMP, LJMP, SJMP, JMP, JZ, JNZ, CJNE, NOP.

Dokumen terkait