Mikrokontroler AT 89S52
Mikrokontroler adalah mikroprosessor yang dirancang khusus untuk aplikasi kontrol, dan dilengkapi dengan ROM, RAM dan fasilitas I/O pada satu chip. AT89S52 adalah salah satu anggota dari keluarga MCS-51/52 yang dilengkapi dengan internal 8 Kbyte Flash PEROM (Programmable and Erasable Read Only Memory), yang memungkinkan memori program untuk dapat deprogram kembali. AT89S52 dirancang oleh Atmel sesuai dengan instruksi standar dan
susunan pin 80C5.
Mikrokontroler AT89S52 memiliki :
• Sebuah CPU ( Central Processing Unit ) 8 Bit.
• 256 byte RAM ( Random Acces Memory ) internal.
• Empat buah port I/O, yang masing masing terdiri dari 8 bit
• Osilator internal dan rangkaian pewaktu.
• Dua buah timer/counter 16 bit
• Lima buah jalur interupsi ( 2 buah interupsi eksternal dan 3 interupsi internal).
• Sebuah port serial dengan full duplex UART (Universal Asynchronous Receiver Transmitter).
• Mampu melaksanakan proses perkalian, pembagian, dan Boolean.
• EPROM yang besarnya 8 KByte untuk memori program.
• Kecepatan maksimum pelaksanaan instruksi per siklus adalah 0,5 μs pada frekuensi clock 24 MHz. Apabila frekuensi clock mikrokontroler yang digunakan adalah 12 MHz, maka kecepatan pelaksanaan instruksi adalah 1 μs
CPU ( Central Processing Unit )
Bagian ini berfungsi mengendalikan seluruh operasi pada mikrokontroler. Unit ini terbagi atas dua bagian, yaitu unit pengendali atau CU ( Control Unit ) dan unit aritmatika dan logika atau ALU ( Aritmetic logic Unit ) Fungsi utama unit pengendali adalah mengambil instruksi dari memori (fetch) kemudian menterjemahkan susunan instruksi tersebut menjadi kumpulan proses kerja sederhana (decode), dan melaksanakan urutan instruksi sesuai dengan langkah-langkah yang telah ditentukan program (execute). Unit aritmatika dan logika merupakan bagian yang berurusan dengan operasi aritmatika seperti penjumlahan, pengurangan, serta manipulasi data secara logika seperti operasi AND, OR, dan perbandingan.
Bagian Masukan/Keluaran (I/O)
Bagian ini berfungsi sebagai alat komunikasi serpih tunggal dengan piranti di luar sistem. Sesuai dengan namanya, perangkat I/O dapat menerima maupun memberi data dari /ke serpih tunggal.
Ada dua macam piranti I/O yang digunakan, yaitu piranti untuk hubungan serial UART (Universal Asynchronous Receiver Transmitter) dan piranti untuk hubungan pararel yang disebut dengan PIO (Pararel Input Output). Kedua jenis I/O tersebut telah tersedia di dalam serpih tunggal AT89S52.
Perangkat Lunak
Serpih tunggal keluarga MCS-51 memiliki bahasa pemrograman khusus yang tidak dipahami oleh jenis serpih tunggal yang lain. Bahasa pemrograman ini dikenal dengan nama bahasa assembler yang memiliki 256 perangkat instruksi. Namun saat ini pemrograman mikrokontroler dapat dilakukan dengan menggunakan bahasa C. Dengan bahasa C, pemrograman mikrokontroler menjadi lebih mudah, hal ini karena dengan format bahasa C akan secara otomatis diubah menjadi bahasa assembler dengan format file hexa. Perangkat lunak pada mikrokontroler dapat dibagi menjadi lima kelompok sebagai berikut :
1. Instruksi Transfer Data
Instruksi ini berfungsi memindahkan data, yaitu antar register, dari memori ke memori, dari register ke memori dan lain lain.
2. Instruksi Aritmatika
Instruksi ini melaksanakan operasi aritmatika yang meliputi penjumlahan, pengurangan, penambahan satu (increment), pengurangan satu (decrement), perkalian dan pembagian.
3. Instruksi Logika dan Manipulasi Bit
Berfungsi melaksanakan operasi logika AND, OR, XOR, perbandingan, penggeseran dan komplemen data.
4. Instruksi Percabangan
Berfungsi untuk mengubah urutan normal pelaksanaan suatu program. Dengan instruksi ini, program yang sedang dilaksanakan akan meloncat ke suatu alamat tertentu.
5. Instruksi Stack, I/O, dan Kontrol
Instruksi ini mengatur penggunaan stack, membaca/menulis port I/O, serta pengontrolan.
Konfigurasi Pin
Mikrokontroler AT89S52 mempunyai 40 pin dengan catu daya tunggal 5 Volt. Ke-40 pin tersebut digambarkan sebagai berikut :
Fungsi dari masing-masing pin AT89S52 adalah :
1. Pin 1 sampai 8 (Port 1) merupakan port pararel 8 bit dua arah (bidirectional) yang dapat digunakan untuk berbagai keperluan (general purpose).
2. Pin 9 merupakan pin reset, reset aktif jika mendapat catuan tinggi.
3. Pin 10 sampai 17 (Port 3) adalah port pararel 8 bit dua arah yang memiliki fungsi pengganti sebagai berikut :
• P3.0 (10) : RXD (port serial penerima data)
• P3.1 (11) : TXD (port serial pengirim data)
• P3.2 (12) : INT0 (input interupsi eksternal 0, aktif low)
• P3.3 (13) : INT1 (input interupsi ekstrernal 1, aktif low)
• P3.4 (14) : T0 (eksternal input timer / counter 0)
• P3.5 (15) : T1 (eksternal input timer / counter 1)
• P3.6 (16) : WR (Write, aktif low) Sinyal kontrol penulisan data dari port 0 ke memori data dan input-output eksternal.
• P3.7 (17) : RD (Read, aktif low) Sinyal kontrol pembacaan memori data input-output eksternal ke port 0.
4. Pin 18 sebagai XTAL 2, keluaran osilator yang terhubung pada kristal.
5. Pin 19 sebagai XTAL 1, masukan ke osilator berpenguatan tinggi, terhubung pada kristal.
6. Pin 20 sebagai Vss, terhubung ke 0 atau ground pada rangkaian.
7. Pin 21 sampai 28 (Port 2) adalah port pararel 8 bit dua arah. Port ini mengirim byte alamat bila pengaksesan dilakukan pada memori eksternal.
8. Pin 29 sebagai PSEN (Program Store Enable) adalah sinyal yang digunakan untuk membaca, memindahkan program memori eksternal (ROM / EPROM) ke mikrokontroler (aktif low).
9. Pin 30 sebagai ALE (Address Latch Enable) untuk menahan alamat bawah selama mengakses memori eksternal. Pin ini juga berfungsi sebagai PROG (aktif low) yang diaktifkan saat memprogram internal flash memori pada mikrokontroler (on chip).
10. Pin 31 sebagai EA (External Accesss) untuk memilih memori yang akan digunakan, memori program internal (EA = Vcc) atau memori program eksternal (EA = Vss), juga berfungsi sebagai Vpp (programming supply voltage) pada saat memprogram internal flash memori pada mikrokontroler.
11. Pin 32 sampai 39 (Port 0) merupakan port pararel 8 bit dua arah. Berfungsi sebagai alamat bawah yang dimultipleks dengan data untuk mengakses program dan data memori eksternal.
12. Pin 40 sebagai Vcc, terhubung ke +5 V sebagai catuan untuk mikrokontroler.
Organisasi Memori
Semua serpih tunggal dalam keluarga MCS-51 memiliki pembagian ruang alamat untuk program dan data. Pemisahan memori program dan memori data memperbolehkan memori data untuk diakses oleh alamat 8 bit. Sekalipun demikian, alamat data memori 16 bit dapat dihasilkan melalui register DPTR (Data Point Register). Memori program hanya bisa dibaca tidak bisa ditulis karena disimpan dalam EPROM. Dalam hal ini EPROM yang tersedia di dalam serpih tunggal AT89S52 sebesar 8 Kbyte
a. Memori Program
Pada EPROM 8 Kbyte, jika EA (External Access) bernilai tinggi, maka program akan menempati alamat 0000 H sampai 0FFF H secara internal. Jika EA bernilai rendah maka program akan menempati alamat 1000 H sampai FFFF H ke program eksternal.
b. Memori data
Memori data internal dipetakan seperti pada gambar di bawah ini Ruang memorinya dibagi menjadi tiga blok yaitu bagian 128 bawah, 128 atas, dan ruang SFR (Special Function Register)
Bagian RAM 128 byte bawah dipetakan menjadi 32 byte bawah dikelompokkan menjadi 4 bank dan 8 register (R0 sampai R7). Pada bagian 16 byte berikutnya, di atas bank-bank register, membentuk suatu blok ruang memori yang bisa teralamati per bit (bit addressable). Alamat-alamat bit ini adalah 00 H hingga 7F H. Semua byte yang berada di dalam 128 bawah dapat diakses baik secara langsung maupun tidak langsung. Bagian 128 atas hanya dapat diakses dengan pengalamatan tidak langsung. Bagian 128 atas dari RAM hanya ada di dalam piranti yang memiliki RAM 256 byte.
Comments