bunga

Arsitektur Mikrokontroler AT89S51

Mikrokontroler, sebagai suatu terobosan teknologi mikrokontoler dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara missal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebetuhan pasar, mikrokontelor hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat Bantu dan mainan yang lebih canggih.

Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin menggunakan komputer PC yang harus dipasang disamping (atau di belakang) mesin permainan yang bersangkutan.

Selain system tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau ynag dikenal dengan system telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman jika dipasang suatu system pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu system akuisisi data sekaligus system pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan.

Tidak seperti system komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM-nya dan ROM. Pada system computer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.

Kontruksi AT89S51

Mikrokontrol AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 piko-Farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.

Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda.

Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam ini dinamakan sebagai memori progam.

Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.

Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara masal, progam diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah.

Jenis memori yang dipakai untuk Memori Program AT89S51 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer
.
Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.
Sarana Input/Ouput yang disediakan cukup banyak dan bervariasa. AT89S51 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).

AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakan berhimpitan dengan P1.0 dan P1.1 di kaki nomor 2 dan 3, seningga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 dipakai.

AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.

Port1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Functoin Regeister (SFR).


SFR (Register Fungsi Khusus) Pada Keluarga 51

Sekumpulan SFR atau Special Function Register yang terdapat pada Mikrokontroler Atmel Keluarga 51 ditunjukan pada gambar I.01, pada bagian sisi kiri dan kanan dituliskan alamat-alamatnya dalam format heksadesimal.

Tidak semua alamat pada SFR digunakan, alamat-alamat yang tidak digunakan diimplementasikan pada chip. Jika dilakukan usaha pembacaan pada alamat-alamat yang tidak terpakai tersebut akan menghasilkan data acak dan penulisannya tidak menimbulkan efek sama sekali. Pengguna perangkat lunak sebaiknya jangan menuliskan ‘1’ pada lokasi-lokasi ‘tak bertuan’ tersebut, karena dapat digunakan untuk mikrokontroler generasi selanjutnya. Dengan demikian, nilai-nilai reset atau non-aktif dari bit-bit baru ini akan selalu ‘O’ dan nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:



Akumulator

ACC atau akumulator yang menempati lokasi E 0h digunakan sebagai register untuk penyimpanan data sementara, dalam program, instruksi mengacunya sebagai register A (bukan ACC).

Register B
Register B (lokasi D 0h) digunakan selama operasi perkalian dan pembagian, untuk instruksi lain dapat diperlakukan sebagai register scratch pad (“papan coret-coret”)
lainnya.

Program Status Word (PSW)
Register PSW (lokasi D 0h) mengandung informasi status program.

Stack Pointer
Register SP atau Stack Pointer (lokasi 8 1h) merupakan register dengan panjang 8-bit, digunakan dalam proses simpan menggunakan instruksi PUSH dan CALL. Walau Stack bisa menempati lokasi dimana saja dalam RAM, register SP akan selalu diinisialisasi ke 07h setelah adanya reset, hal ini menyebabkan stack berawal di lokasi 08h.

Data Pointer
Register Data Pointer atau DPTR mengandung DPTR untuk byte tinggi (DPH) dan byte rendah (DPL) yang masing-masing berada dilokasi 83h dan 82h, bersama-sama membentuk register yang mampu menyimpan alamat 16-bit. Dapat dimanipulasi sebagai register 16-bit atau ditulis dari/ke port, untuk masing-masing Port 0,Port 1, Port2 dan Port 3.

Serial Data Buffer
SBUF atau Serial Data Buffer (lokasi 99h) sebenarnya terdiri dari dua register yang terpisah, yaitu register penyangga pengirim (transmit buffer) dan penyangga penerima (receive buffer). Pada saat data disalin ke SBUF, maka data sesungguhnya dikirim ke penyangga pengirim dan sekaligus mengawali transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima.

Time Register
Pasangan register (TH0, TL0) dilokasi 8Ch dan 8Ah,(TH1, TL1) dilokasi 8Dh dan 8Bh serta (TH2, TL2) dilokasi CDh dan CCH merupakan register-register pencacah 16-bit untuk masing-masing Timer 0, Timern 1 dan Timer 2.

Capture Register
Pasangan register (RCAP2H, RCAP21) yang menempati lokasi CBh dan CAh merupakan register capture untuk mode Timer 2 capture. Pada mode ini, sebagai tanggapan terjadinya suatu transisi sinyal di kaki (pin) T2EX (pada AT89C52/55), TH2 dan TL2 disalin masing-masing ke RCAP2H dan RCAP2L. Timer 2 juga memiliki mode isi-ulang-otomatis 16-bit dan RCAP2H serta RCAP2L digunakan untuk menyimpan nilai isi-ulang tersebut.

Control Register
Register-register IP, IE, TMOD, TCON, T2CON, T2MOD, SCON dan PCON berisi bit-bit control dan status untuk system interupsi, pencacah/pewaktu dan port serial.

Berikut ini merupakan spesifikasi dari IC AT89C51 :
•Kompatible dengan produk MCS-51
•Empat K byte In-Sistem Reprogammable Flash Memory
•Daya tahan 1000 kali baca/tulis
•Fully Static Operation : 0 Hz sampai 24 MHz
•Tiga level kunci memori progam
•128x8 bit RAM internal
•32 jalur I/O
•Tiga 16 bit Timer/Counter
•Enam sumber interupt
•Jalur serial dengan UART



Deskripsi pin-pin pada mikrokontroler AT89S51 :
VCC (Pin 40)
Suplai tegangan
GND (Pin 20)
Ground
Port 0 (Pin 39-Pin 32)
Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash progamming Pada fungsi sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.
Pada fungsi sebagai low order multiplex address/data, por ini akan mempunyai
internal pull up.
Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat
verifikasi program.
Port 2 (Pin 21 – pin 28)
Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengaksememori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. 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.
Port 3 (Pin 10 – pin 17)
Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut :



RST (pin 9)
Reset akan aktif dengan memberikan input high selama 2 cycle.
ALE/PROG (pin 30)
Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogam Flash.
PSEN (pin 29)
Progam store enable digunakan untuk mengakses memori progam eksternal.
EA (pin 31)
Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt.
XTAL1 (pin 19)
Input untuk clock internal.
XTAL2 (pin 18)
Output dari osilator.