Arsitektur Mikrokontroler AT89C52
Mikrokontroler AT89C52 merupakan mikrokontroler keluarga MCS-51 buatan Atmel. Mikrokontroler AT89C52 memiliki 4 K Byte Flash PEROM (Flash Programmable Erasable Read Only Memory) untuk memori programnya. Mikrokontroler AT89C52 memiliki 4 buah port 8 bit yaitu port 0, port 1, port 2, dan port 3. Mikrokontroler AT89C52 termasuk dalam kategori mikrokontroler atmel 40 pin. Bentuk fisik dan kaki mikrokontroler AT89C52 dapat dilihat pada gambar berikut.
Gambar Mikrokontroler AT89C52
Mikrokontroler AT89C52 memiliki beberapa keistimewaan antara lain sebagai berikut :
• 8 K byte Flash PEROM
• Frekuensi kerja 4 Hz – 24 MHz
• 256 x 8 bit internal RAM
• 32 jalur I/O bi-directional
• 3 buah timer 16 bit
• 3 eksternal interupsi dan 3 internal interupsi
• Sepasang port komunikasi serial
Diagram blok mikrokontroler AT89C52 ditunjukan pada gambar 3 seperti berikut :
Gambar Blok Diagram Mikrokontroler AT89C52
Fungsi masing-masing kaki mikrokontroler AT89C52 dijelaskan sebagai berikut.
• GND, Ground atau pentanahan.
• Vcc, Catu daya untuk mikrokontroler. • RST/VPP, Transisi rendah ke tinggi dari kaki ini akan me-reset mikrokontroler, VPP digunakan sebagai tegangan catu pada saat memprogram mikrokontroler.
• ALE/PROG, Kaki ini dipakai untuk menangkap atau me-latch alamat rendah (A0..A7) ke memori eksternal selama operasi normal. Menerima masukan pulsa program selama pemrograman Flash PEROM internal.
• PSEN, Merupakan program store Enable dimana keluaran PSEN adalah sinyal kontrol yang mengijinkan atau mengaktifkan program memori eksternal (EPROM eksternal) ke bus data selama operasi normal.
• EA/VPP, Pada kondisi TTL yang tinggi, mikrokontroler AT89C52 menjalankan instruksi dari ROM/Flash PEROM internal jika PC (program counter) kurang dari 4096 byte. Ketika dalam kondisi TTL yang rendah mikrokontroler menjalankan instruksi dari ROM/EPROM eksternal (memori program luar). Kaki ini juga menerima 12,75 V untuk catu daya pemrograman Flash PEROM.
• XTAL1, Masukan untuk penguat osilator pada mikrokontroler atau masukan sumber pulsa dari luar mikrokontroler.
• XTAL2, Keluaran dari penguat osilator.
• Port 0, Port 0 merupakan port keluaran/masukan (I/O) bertipe open drain bidirectional (tanpa pullup internal). Masing-masing kaki dapat menyerap arus delapan masukan TTL (3,8 mA). Port 0 dapat dikonfigurasikan sebagai bus alamat/data bagian rendah (low byte) selama proses pengaksesan memori data dan program eksternal. Jika dituliskan “1” ke kaki-kaki port 0, maka kaki-kaki port 0 dapat digunakan sebagai masukan dengan menambah pullup eksternal. Port 0 juga menerima alamat bagian rendah selama pemrograman dan verifikasi flash
• Port 1, Port 1 merupakan port I/O dua arah yang dilengkapi dengan pullup internal. Mampu menyerap arus empat masukan TTL (1,6 mA). Jika “1” dituliskan ke kaki-kaki port 1, maka kaki-kaki akan di pulled high oleh pullup internal sehingga dapat digunakan sebagai masukan. Port 1 juga menerima alamat bagian rendah selama pemrograman dan verifikasi flash PEROM.
• Port 2, Port 2 merupakan port I/O dua arah dengan dilengkapi pullup internal. Mampu menyerap arus empat masukan TTL (1,6 mA). Jika “1” dituliskan ke kaki-kaki port 2, maka masing-masing kaki-kaki akan di pulled high oleh pullup internal sehingga dapat digunakan sebagai masukan. Port 2 akan memberikan byte alamat bagian tinggi (high byte) selama pengambilan instruksi dari memori program eksternal dan selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 16-bit.Port 2 juga menerima alamat bagian tinggi selama pemrograman dan verifikasi flash PEROM.
• Port 3, Port 3 merupakan port I/O dua arah dengan dilengkapi pullup internal. Mampu menyerap arus empat masukan TTL (1,6 mA). Jika “1” dituliskan ke kaki-kaki port 2, maka masing-masing kaki akan di pulled high oleh pullup internal sehingga dapat digunakan sebagai masukan. Port 3 memiliki fungsi-fungsi alternatif, diantaranya menerima sinyal-sinyal kontrol bersama-sama dengan port 2 selama pemrograman dan verifikasi flash PEROM.
Port 3 selain sebagai port I/O kaki ini juga berfungsi lain, yaitu :
• RxD ( P3.0 ) : masukan data port serial • TxD ( P3.1 ) : keluaran data port serial • ( P3.2 ) : masukan interupsi 0 dari luar • ( P3.3 ) : masukan interupsi 1 dari luar • T0 ( P3.4 ) : masukan ke pencacah 0 T1 • ( P3.5 ) : masukan ke pencacah 1
• 8 K byte Flash PEROM
• Frekuensi kerja 4 Hz – 24 MHz
• 256 x 8 bit internal RAM
• 32 jalur I/O bi-directional
• 3 buah timer 16 bit
• 3 eksternal interupsi dan 3 internal interupsi
• Sepasang port komunikasi serial
Diagram blok mikrokontroler AT89C52 ditunjukan pada gambar 3 seperti berikut :
Gambar Blok Diagram Mikrokontroler AT89C52
Fungsi masing-masing kaki mikrokontroler AT89C52 dijelaskan sebagai berikut.
• GND, Ground atau pentanahan.
• Vcc, Catu daya untuk mikrokontroler. • RST/VPP, Transisi rendah ke tinggi dari kaki ini akan me-reset mikrokontroler, VPP digunakan sebagai tegangan catu pada saat memprogram mikrokontroler.
• ALE/PROG, Kaki ini dipakai untuk menangkap atau me-latch alamat rendah (A0..A7) ke memori eksternal selama operasi normal. Menerima masukan pulsa program selama pemrograman Flash PEROM internal.
• PSEN, Merupakan program store Enable dimana keluaran PSEN adalah sinyal kontrol yang mengijinkan atau mengaktifkan program memori eksternal (EPROM eksternal) ke bus data selama operasi normal.
• EA/VPP, Pada kondisi TTL yang tinggi, mikrokontroler AT89C52 menjalankan instruksi dari ROM/Flash PEROM internal jika PC (program counter) kurang dari 4096 byte. Ketika dalam kondisi TTL yang rendah mikrokontroler menjalankan instruksi dari ROM/EPROM eksternal (memori program luar). Kaki ini juga menerima 12,75 V untuk catu daya pemrograman Flash PEROM.
• XTAL1, Masukan untuk penguat osilator pada mikrokontroler atau masukan sumber pulsa dari luar mikrokontroler.
• XTAL2, Keluaran dari penguat osilator.
• Port 0, Port 0 merupakan port keluaran/masukan (I/O) bertipe open drain bidirectional (tanpa pullup internal). Masing-masing kaki dapat menyerap arus delapan masukan TTL (3,8 mA). Port 0 dapat dikonfigurasikan sebagai bus alamat/data bagian rendah (low byte) selama proses pengaksesan memori data dan program eksternal. Jika dituliskan “1” ke kaki-kaki port 0, maka kaki-kaki port 0 dapat digunakan sebagai masukan dengan menambah pullup eksternal. Port 0 juga menerima alamat bagian rendah selama pemrograman dan verifikasi flash
• Port 1, Port 1 merupakan port I/O dua arah yang dilengkapi dengan pullup internal. Mampu menyerap arus empat masukan TTL (1,6 mA). Jika “1” dituliskan ke kaki-kaki port 1, maka kaki-kaki akan di pulled high oleh pullup internal sehingga dapat digunakan sebagai masukan. Port 1 juga menerima alamat bagian rendah selama pemrograman dan verifikasi flash PEROM.
• Port 2, Port 2 merupakan port I/O dua arah dengan dilengkapi pullup internal. Mampu menyerap arus empat masukan TTL (1,6 mA). Jika “1” dituliskan ke kaki-kaki port 2, maka masing-masing kaki-kaki akan di pulled high oleh pullup internal sehingga dapat digunakan sebagai masukan. Port 2 akan memberikan byte alamat bagian tinggi (high byte) selama pengambilan instruksi dari memori program eksternal dan selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 16-bit.Port 2 juga menerima alamat bagian tinggi selama pemrograman dan verifikasi flash PEROM.
• Port 3, Port 3 merupakan port I/O dua arah dengan dilengkapi pullup internal. Mampu menyerap arus empat masukan TTL (1,6 mA). Jika “1” dituliskan ke kaki-kaki port 2, maka masing-masing kaki akan di pulled high oleh pullup internal sehingga dapat digunakan sebagai masukan. Port 3 memiliki fungsi-fungsi alternatif, diantaranya menerima sinyal-sinyal kontrol bersama-sama dengan port 2 selama pemrograman dan verifikasi flash PEROM.
Port 3 selain sebagai port I/O kaki ini juga berfungsi lain, yaitu :
• RxD ( P3.0 ) : masukan data port serial • TxD ( P3.1 ) : keluaran data port serial • ( P3.2 ) : masukan interupsi 0 dari luar • ( P3.3 ) : masukan interupsi 1 dari luar • T0 ( P3.4 ) : masukan ke pencacah 0 T1 • ( P3.5 ) : masukan ke pencacah 1