Sunday, August 01, 2010

Mikrokontroler AT89S52

AT89S52

Mikrokontroler AT89S52 merupakan versi berikutnya setelah seri mikrokontroler AT89C51 yang telah banyak digunakan saat ini. Mikrokontroler AT89S52 merupakan mikrokomputer CMOS 8 bit dengan 8 Kbyte Flash Programmable dan Erasable Read Only Memory (PEROM). Mikrokontroler ini berteknologi memori non volatile kerapatan tinggi dari Atmel yang kompatibel dengan mikrokontroler standar industri MCS-51 baik pin kaki IC maupun set instruksinya serta harganya yang relatif murah, mikrokontroler ini juga downloadernya mudah untuk dibuat sendiri.

Mikrokontroler AT89S52 memiliki beberapa fitur, diantaranya :
1. Kompatibel dengan produk MCS-51
2. 8 kybte in system programmable flash memory
3. Dapat diprogram sampai dengan 1000 kali pemograman
4. Tegangan kerja 4.0 – 5.5 V
5. Beroperasi antara 0 – 33 MHz
3. Tiga tingkatan program memory clock
4. 256 x 8 bit RAM internal
5. 32 saluran I/O
6. Delapan buah sumber interupsi
7. Tiga buah timer / counter 16 bit
8. Saluran UART Serial Full Duplex
9. Mode low-power Idle dan Power-Down
10. Interrupt recovery dari mode power-down
11. Watchdog timer



Arsitektur Mikrokontroler
Secara umum arsitektur mikrokontroler AT89S52 seperti pada gambar berikut ini:



a. Accumulator
ACC merupakan register akumulator atau tempat penyimpanan data untuk sementara waktu. Dimana accumulator ini biasa dipakai untuk menyimpan proses perhitungan aritmatika. Register ini biasa disebut register A.

b. Register B
Register B digunakan pada operasi perkalian dan pembagian. Pada instruksi-instruksi yang lain berfungsi seperti register umumnya. Register ini berpasangan dengan register A, pada proses perkalian atau pembagian.
 
c. Program Status Word (PSW)
PSW berisi informasi status yang penting seperti adanya carry pada proses perhitungan, adanya proses overflow pada proses perhitungan, pemeriksaan bit pada transfer data, adanya polaritas (+/-) dan status untuk pemilihan bank dari register (R0-R7).
 
d. Stack Pointer (SP)
Stack Pointer terdiri dari 8 bit. Alamat SP ditambah / dinaikkan sebelum data disimpan pada eksekusi instruksi PUSH dan CALL. SP dapat diletakkan pada alamat maupun di on-chip RAM. SP di inisialisasi pada alamat 07H setelah reset. Hal ini mengakibatkan stack dimulai pada lokasi 08H.
 
e. Data Pointer (DPTR)
DPTR terdiri dari high byte (DPH) dan low byte (DPL). Fungsi utamanya adalah sebagai tempat alamat 16 bit. Register ini bisa juga dimanipulasi sebagai sebuah register 16 bit atau 2 buah register 8 bit yang berdiri sendiri.

f. Register Control
Spesial Function Register IP, IE, TMOD, TCON, T2CON, SCON, dan PCON berisi bit kontrol dan status untuk sistem interrupt, timer / counter, dan port serial. Yang dimaksud dengan special function register adalah kumpulankumpulan register yang memiliki fungsi khusus dimana isi dari register tersebut ada yang menunjukkan sebuah informasi penting mengenai suatu fungsi tertentu, ada juga yang menyimpan data sebagai buffers dari port tertentu (memori sementara).

g. Serial Data Buffer
Serial Data Buffer sebenarnya merupakan 2 register yang terpisah,transmit buffer (untuk mengirim data serial) dan receive buffer (untuk menerima data serial). Ketika data dipindahkan ke SBUF, maka data akan menuju ke transmit buffer dimana data ditampung untuk pengiriman serial. Memindahkan data ke SBUF berarti menginisialisasi / memulai transmisi data secara serial. Sebaliknya bila data dipindahkan dari SBUF, data tersebut berasal receive buffer.
 
h. Register Timer
Pasangan register (TH0 & TL0), (TH1 & TL1), serta (TH2 & TL2) adalah register 16 bit untuk proses perhitungan Timer / Counter 0, 1 dan 2 (Special Function Register P0 sampai P3), sebuah output driver dan sebuah input buffer. Output driver Port 0 dan Port 2, serta input buffer Port 0 digunakan untuk mengakses memori eksternal. Untuk aplikasi yang menggunakan memori eksternal, maka Port 0 mengeluarkan ‘low order byte’ alamat memori eksternal (A0-A7), yang dimultipleks dengan data (1 byte) yang dibaca atau ditulis. Port 2 mengeluarkan ‘high order byte’ alamat memori eksternal (A8-A15) bila alamat yang diperlukan sebanyak 16 bit. Bila alamat yang diperlukan hanya A0-A7 maka output port 2 sama degan isi SFR (Special Function Registers). Semua pin Port 3 mempunyai fungsi alternatif selain sebagai port. Fungsi alternatif hanya akan aktif bila bit-bit yang bersesuaian pada port SFR berisi ‘1’. Bila tidak maka output port akan terkunci pada low.

i. RST
Mengembalikan kondisi kerja mikrokontroler pada posisi awal. Pin ini harus diberi logic 1 untuk mengaktifkannya.
 
j. ALE / PROG
Pulsa output ALE akan low byte selama mikrokontroler melakukan pengaksesan ke memori eksternal. Pin ini juga berfungsi sebagai input pulsa program selama Flash Programming. Pada operasi normal, ALE mengeluarkan nilai konstan 1/16 frekuensi osilator. Satu pulsa ALE dilewati akses ke memori data eksternal. Jika mengoperasikan ALE, dapat di disable oleh setting bit 0 dari SFR dengan lokasi BEH.
 
k. Vpp EA / External Access Enable.
EA harus dihubungkan ke Vcc untuk mengeksekusi program internal.
 
l. PSEN
Program Store Enable adalah membaca strobe ke memori program eksternal. Ketika AT89S52 mengeksekusi dari memori program eksternal, PSEN diaktifkan dua kali setiap mesin bekerja.
 
m. XTAL1
Input ke penguat inverting osilator dan input ke rangkaian pengoperasian internal clock.
 
n. XTAL2
Output dari penguat inverting osilator.

Konfigurasi pin I/O pada AT89S52
AT89S52 mempunyai 40 kaki, 32 kaki digunakan untuk keperluan port paralel. Setiap port terdiri atas 8 pin, sehingga terdapat 4 port yaitu port 0, port 1, port 2 dan port 3. Konfigurasi pinnya ditunjukkan oleh gambar berikut.

Deskripsi pin AT89S52 sebagai berikut :
1. Port 0 ( pin 32 hingga pin 40)
Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex addres / data ataupun menerima kode byte pada saat Flash Programming. Pada saat sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah Transistor Transistor Logic (TTL) input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.
 
2. Port 1 ( pin 1 hingga pin 8)
Port 1 berfungsi sebagai I/O biasa atau menerima low order address bytes selama pada saat Flash Programming. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika “1”. Sebagai output port ini dapat memberikan output sink keempat buah input TTL. Pada mikrokontroler MCS-51 seri AT89SX, terdapat fasilitas khusus dari port 1 ini yaitu adanya fasilitas In-System Programming, yaitu port 1.5 sebagai MOSI, port 1.6 sebagai MISO, port 1.7 sebagai SCK.

3. Port 2 ( pin 21 hingga pin 28)
Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengakses memori secara 16 bit. Pada saat mengakses memori secara 8 bit, port ini akan mengeluarkan sisi dari Special Function Register. Port ini mempunyai pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink keempat buah input TTL.
 
4. Port 3 ( pin 10 hingga pin 17)
Port 3 adalah port I/O 8-bit bidirectional dengan internal pull up. Output buffer port 3 dapat menjadi sumber 4 TTL input

Port Serial
Mikrokontroler telah dilengkapi dengan perangkat komunikasi serial.Untuk mengaktifkan dan mengkonfigurasi perangkat komunikasi tersebut, pemrogram harus mengakses register SCON dan bit SMOD (bit ke 7 pada register PCON). Perangkat komunikasi serial pada mikrokontroler AT89S52 dapat dioperasikan dalam 4 mode :

1. Mode 0
Bekerja sebagai sarana komunikasi data seri sinkron, data seri dikirim dan diterima melalui kaki RxD, sedangkan kaki TxD dapat dipakai untuk menyalurkan clock yang diperlukan komunikasi data sinkron. Data
ditransmisikan per 8-bit dengan kecepatan transmisi data (Baud rate) tetap, sebesar ½ frekuensi kerja dari mikrokontroler.
2. Mode 1
Mode ini dan 2 mode berikutnya merupakan sarana komunikasi seri asinkron. Data seri dikirim melalui kaki TxD, dan diterima dari kaki RxD. Data ditransmisikan per 10 bit, terdiri atas 1 bit start (“0”), 8-bit data dan 1-bit stop (“1”). Kecepatan transmisi data (Baud rate) ditentukan lewat timer 1, bisa diatur untuk berbagai kecepatan.
 
3. Mode 2
Data seri dikirim melalui kaki TxD, dan diterima dari kaki RxD. Data ditransmisikan per 11 bit, terdiri atas 1 bit start (“0”), 8-bit data dan 1-bit data tambahan (bit ke-9) dan 1 bit stop (“1”). Kecepatan transmisi data (Baud rate) hanya dapat dipilih 1/32 atau 1/64 frekuensi kerja dari AT89S52.
 
4. Mode 3
Data seri dikirim melalui kaki TxD, dan diterima dari kaki RxD. Data ditransmisikan per 11 bit, terdiri atas 1 bit start (“0”), 8-bit data dan 1-bit data tambahan (bit ke-9) dan 1 bit stop (“1”). Sesungguhnya mode 2 dan mode 3 sama persis. Perbedaan dari kedua mode diatas adalah kecepatan transmisi data (Baud rate) mode 3 ditentukan lewat timer 1, dan bisa diatur untuk berbagai kecepatan persis sama dengan mode 1.

Organisasi Memori
Atmel.Com (2008:8-9) Semua pengendali mikro dalam keluarga MCS-51 memiliki pembagian ruang alamat untuk program dan data. Pemisahan memori program dan memori data memperbolehkan memori data diakses oleh alamat 8 bit. Sekalipun demikian, alamat data memori 16 bit dapat dihasilkan melalui register DPTR. Memori program hanya dapat dibaca tidak dapat ditulis. Memori program sebesar 64 KByte dimasukkan dalam EPROM eksternal. Pada MCS-51 pada seri ber-EPROM, memori program terbawah sebesar 4 KByte, 8 KByte, atau 16 KByte terdapat pada chip (internal), sedangkan pada MCS-51 seri tanpa EPROM, semua memori program terletak pada ROM /EPROM diluar chip (eksternal). Sinyal yang memperbolehkan pembacaan dari memori program eksternal adalah PSEN (Program Stobe Enable). Memori data terletak pada ruang alamat terpisah dari memori program. RAM eksternal hingga 64 Kbyte dapat dialamati dalam ruang memori data.

Memori program hanya bisa dibaca saja. Terdapat memori program yang bisa diakses langsung hingga 64 Kbyte. Sedangkan strobe (tanda) untuk akses program memori eksternal melalui sinyal PSEN atau Program Stobe Enable. Memori data menempati suatu ruang alamat yang terpisah dari memori program. Memori eksternal dapat diakses secara langsung hingga 64 Kbyte dalam ruang memori data eksternal. CPU akan memberikan sinyal baca dan tulis, RD dan WR selama pengaksesan memori data eksternal. Memori data eksternal dan memori program eksernal dapat dikombinasikan dengan menggabungkan sinyal RD dan PSEN melalui gerbang AND dan keluarnya sebagai tanda baca ke memori data / program eksternal.

No comments:

Post a Comment

Silahkan Tinggalkan Komentar Anda