Minggu, 22 Desember 2013

Makalah Mikroprosesor


TEKNOLOGI MIKROKONTROLER AT 89S51 DENGAN DISPLAY SEVEN SEGMEN



Nama : Rian Sidik Permadi
Nim     : 11.11.2630
Kelas   : TI 11 A


TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM PURWOKERTO
2013

1.     Konsep Dasar Mikrokontroler

Mikrokontroler, jika diterjemahkan secara harfiah, berarti pengendali yang berukuran mikro. Sekilas mikrokontroler hampir sama dengan mikroprosesor. Namun mikrokontroler memiliki banyak komponen yang terintegrasi di dalamnya, misalnya timer/counter. Sedangkan pada mikroprosesor, komponen tersebut tidak terintegrasi. Mikroprosesor umumnya kita jumpai pada komputer dimana tugas dari mikroprosesor adalah untuk memproses berbagai macam data input maupun output dari berbagai sumber. Mikrokontroler lebih sesuai untuk tugas-tugas yang lebih spesifik.
Ada kesamaan-kesamaan antara mikrokontroler dengan komputer atau mikrokomputer, antara lain:
1.      Sama-sama memiliki unit pengolah pusat atau yang lebih dikenal dengan CPU (Central Processing Unit).
2.      CPU tersebut sama-sama menjalankan program dari suatu lokasi atau tempat, biasanya dari ROM (Read Only Memory) atau RAM (Random Access Memory).
3.      Sama-sama memiliki RAM yang digunakan untuk menyimpan data-data sementara atau yang lebih dikenal dengan variabel-variabel.
4.      Sama-sama memiliki beberapa keluaran dan masukan yang digunakan untuk melakukan komunikasi timbal-balik dengan dunia luar.
Berikut ini adalah daftar kesamaan yang pernah ditulis sebelumnya di atas dengan menekankan pada perbedaan antara mikrokontroler dan mikrokomputer:
1.      CPU pada mikrokomputer berada eksternal dalam suatu sistem, sampai saat ini kecepatan operasionalnya sudah mencapai tingkat lebih dari 2 GHz, sedangkan CPU pada mikrokontroler berada internal dalam sebuah chip, kecepatan bekerja masih cukup rendah, dalam orde MHz (misalnya, 24 MHz, 40 MHz dan lain sebagainya). Kecepatan yang relatif rendah ini sudah mencukupi untuk aplikasi-aplikasi berbasis mikrokontroler.
2.      Jika CPU pada mikrokomputer menjalankan program dalam ROM atau yang lebih dikenal dengan BIOS pada saat awal dihidupkan, kemudian mengambil atau menjalankan program yang tersimpan dalam hard disk. Sedangkan mikrokontroler sejak awal menjalankan program yang tersimpan dalam ROM internal-nya (bisa berupa Mask ROM atau Flash PEROM). Sifat memori program ini non volatile, artinya tetap akan tersimpan walaupun tidak diberi catu daya.
3.      RAM pada mikrokomputer bisa mencapai ukuran sekian Mbyte dan bisa di-upgrade ke ukuran yang lebih besar dan berlokasi di luar chip CPU-nya, sedangkan RAM pada mikrokontroler ada di dalam chip mikrokontroler yang bersangkutan dan ukurannya sangat minim, misalnya 128 byte, 256 byte dan seterusnya dan ukuran yang relatif kecil, ini pun dirasa cukup untuk aplikasi-aplikasi mikrokontroler.
4.      Keluaran dan masukan pada mikrokomputer lebih kompleks dibandingkan dengan mikrokontroler, yang lebih sederhana, selain itu, pada mikrokontroler tingkat akses keluaran dan masukan bisa dalam satuan bit.
5.      Jika diamati lebih lanjut, bias dikatakan bahwa mikrokomputer atau komputer merupakan komputer serbaguna atau general purpose computer, bisa dimanfaatkan untuk berbagai macam aplikasi (atau perangkat lunak). Sedangkan mikrokontroler adalah special purpose computer atau komputer untuk tujuan khusus, hanya satu macam aplikasi saja.


Ciri khas mikrokontroler lainnya, antara lain:
Ø  “Tertanam” (atau embedded) dalam beberapa piranti (umumnya merupakan produk konsumen) atau yang dikenal dengan istilah embedded system atau embedded controller.
Ø  Terdedikasi untuk satu macam aplikasi saja.
Ø  Hanya membutuhkan daya yang rendah (low power) sekitar 50 mwatt. Bisa bandingkan dengan komputer yang bisa mencapai 50 watt lebih.
Ø  Memiliki beberapa keluaran maupun masukan yang terdedikasi, untuk tujuan atau fungsi-fungsi khusus.
·      Struktur Mikrokontroler
     Komputer digital umumnya terdiri dari atas tiga unit utama, yaitu CPU, program dan memori data, dan input/output (I/O). Hampir semua pemrosesan dilakukan di dalam Arithmetic Logic Unit (ALU) di dalam CPU. Mikroprosesor merupakan merupakan CPU yang dipaket menjadi satu chip sedangkan mikrokontroler merupakan keseluruhan komputer yang dibuatkan dalam satu chip.
Mikrokontroler terdiri atas:
a.       CPU (Central Processing Unit)
CPU merupakan bagian yang paling penting yang melakukan pemrosesan data.

b.      RAM (Random Access Memory)
RAM digunakan untuk menyimpan data sementara.

c.       EPROM/PROM/ROM (Erasable Programmable Read Only Memory)
ROM digunakan untuk menyimpan program yang bersifat permanen

d.      I/O (input/output) Serial dan Paralel
Unit ini berfungsi agar mikrokontroler dapat berkomunikasi dalam format serial atau paralel sehingga dapat berkomunikasi dengan mudah pada PC dan perangkat standar digital lainnya.

e.       Timer
Timer berguna untuk mengatur pewaktuan dari sistem yang berbasis mikrokontroler, misalnya untuk delay atau pencacah.

f.       Interrupt Controller
Berfungsi menangani suatu permintaan interupsi pada saat mikrokontoler sedang running.

     




2.    IC Mikrokontroler AT89S51
Terdapat ratusan jenis mikokontroler yang berbeda, yang tersedia di pasaran, akan tetapi yang digunakan pada sistem antrian ini adalah salah satu jenis mikrokontroler kelurga MCS-51 yaitu AT89S51. Mikrokontroler ini merupakan salah satu keluarga mikrokontroler yang diproduksi oleh ATMEL. Dimana mikrokontroler jenis ini sangat compatible dalam hal proses dan penggunaannya dengan keluarga MCS-51 yang dikeluarkan oleh Intel. AT89S51 mempunyai konsumsi daya rendah, mikrokontroller 8-bit CMOS dengan 4K byte memori Flash ISP (in system programmable/ dapat diprogram di dalam sistem). Device ini dibuat dengan teknologi memori nonvolatile kerapatan tinggi dan compatible dengan standar industri 8051, set instruksi dan pin keluaran. Flash yang berada di dalam chip memungkinkan memori program untuk diprogram ulang pada saat chip di dalam sistem atau dengan menggunakan programmer memorinonvolatile konvensional. Dengan mengkombinasikan CPU 8 bit yang serbaguna dengan flashISP pada chip, ATMEL 89S51 merupakan mikrokontroller yang luar biasa yang memberikan fleksibelitas yang tinggi dan penyelesaian biaya yang efektif untuk beberapa aplikasi kontrol. Konfigurasi yang dimiliki mikrokontroler AT89S51 di antaranya adalah sebagai berikut :
1.      Kompatibel dengan produk MCS-51
2.      4K byte In System Programmable Flash Memory, dapat dilakukan 1000 kali pemrograman tulis dan hapus
3.      Range catu daya 4.0V sampai dengan 5.0V
4.      Operasi statis: 0 Hz sampai dengan 33 MHz
5.      Tiga tingkat program memory lock
6.      128 x 8-bit RAM internal
7.      32 programmable jalur I/O
8.      Dua buah 16 bit Timer/ Counter
9.      Enam sumber interupsi
10.  Full Duplex UART Channel Serial
11.  Low Power Idle and Mode Power Down
12.  Watch Dog Timer
13.  Dua data pointer
14.  Power off flag
15.  Fast programming time
16.  Fleksibel ISP programming





Gambar Diagram Blok Mikrokontroler AT89S51

Penjelasan dari diagram blok mikrokontroler AT89S51 adalah sebagai berikut (Danny Christanto dan Kris Pusporini, 2004) :
a)   Accumulator (ACC)
      Register Accumulator (ACC) banyak digunakan dalam berbagai instruksi. ACC bersama dengan register B dalam proses perkalian dan pembagian. ACC akan menyimpan hasil perkalian 8 bit terbawah (low byte) dan hasil bagi. Selain itu register ACC juga merupakan general purpose register selebar 8 bit yang dapat digunakan untuk aplikasi user.
b)   Register B
      Register B digunakan bersama dengan ACC dalam proses perkalian dan pembagian. Register B akan menyimpan hasil perkalian 8 bit teratas (high byte) dan sisa pembagian. Selain itu register B juga merupakan general purpose register selebar 8 bit yang dapat digunakan untuk aplikasi user.
c)   Program Status Word (PSW)
      Register ini berisi beberapa status yang penting seperti adanya carry pada proses perhitungan, adanya overflow pada proses perhitungan, pemeriksaan bit pada transfer data, adanya polaritas (+/-) dan status untuk pemilikan bank dari register (R0-R7). PSW ini mempunyai lebar 1 byte dan mencakup status bit dengan konfigurasi dari Most Significant Bit (MSB) hingga Least Significant Bit (LSB).          
CY
AC
F0
RS1
RS0
OV
-
P
 MSB                                                                                        LSB

Gambar  Alokasi Bit PSW
Tabel  Program Status Word
Bit
Alamat Bit
Simbol
Deskripsi
PSW.7
0D7H
CY
Carry Flag
PSW.6
OD6H
AC
Auxiliary Carry Flag

Tabel Program Status Word (sumbangan)
Bit
Alamat Bit
Simbol
Deskripsi
PSW.5
0D5H
F0
Flag 0
PSW.4
0D4H
RS1
Register Bank Select 1
PSW.3
0D3H
RS0
Register Bank Select 0
PSW.2
0D2H
OV
Overflow Flag
PSW.1
0D1H
-
Reserved
PSW.0
0D0H
P
Parity Flag Genap

d)   Stack Pointer (SP)
      Stack Pointer merupakan register 8 bit yang berisi lokasi di mana data alamat stack teratas disimpan. Instruksi PUSH, LCALL, proses interrupt dan sejenisnya akan menambahkan nilai pada SP. Sedangkan instruksi POP, RET, RETI dan sejenisnya akan mengurangi nilai pada SP.
e)   Data Pointer (DPTR)
      Data Pointer (DPTR) merupakan register 16 bit yang terdiri atas 8 bit Data Pointer High (DPH) dan 8 bit Data Pointer Low (DPL). DPTR umumnya digunakan untuk mengakses alamat pada memori eksternal.
f)   Port 0 – 3 atau Port Register
      Port register merupakan register yang mewakili alamat port. Register input/output ini meliputi Port 0 (P0), Port 1 (P1), Port  2 (P2) dan Port 3 (P3).
g)   Serial Data Buffer
      Serial Data Buffer terdiri dari dua register yang terpisah, transmit buffer dan receive buffer. Ketika data dipindahkan ke SBUF, maka data akan menuju ke transmit buffer untuk dikirim. Memindahkan data ke SBUF berarti menginisialisasi/memulai transmisi data secara serial. Sebaliknya bila data dipindahkan dari SBUF, data tersebut berasal dari receive buffer.
h)   Timer Registers
      Timer Register merupakan register yang digunakan untuk mengatur operasi timer. Register ini meliputi Timer 1 High byte (TH1), Timer 0 High byte (TH0), Timer 1 Low byte (TL1), Timer 0 Low byte (TL0), Timer Mode (TMOD), dan Timer Control (TCON).
i)    Serial Port Registers
      Serial Port Register merupakan register yang digunakan dalam proses komunikasi serial. Register ini meliputi Serial Data Buffer (SBUF) dan Serial Port Control (SCON).
j)    Interrupt Registers
      Interrupt register merupakan register yang digunakan untuk mengatur proses interrupt. Register ini meliputi Interrupt Enable (IE) dan Interrupt Priority (IP).
k)   Power Control Registers
      Power Control Registers (PCON) mengandung beberapa macam bit control dengan konfigurasi seperti terdapat pada Gambar Alokasi Bit PCON
SMOD
-
-
-
GF1
GF0
PD
IDL
 MSB                                                                                              LSB

Gambar 3.3.Alokasi Bit PCON
Tabel Power Control Register
Simbol
Deskripsi
Keterangan
SMOD
Double Band Rate
‘1’ melipatgandakan baud rate
-
Reserved
-
-
Reserved
-
-
Reserved
-
GF1
General Purpose Flag
Untuk aplikasi user
GF0
General Purpose Flag
Untuk aplikasi user
PD
Power Down
‘1’ mengaktifkan power down
IDL
Idle Mode
‘1’ mengaktifkan mode idle

3.    Konfigurasi Pin AT89S51
          Pin adalah kaki fisik dari sebuah IC MCS-51dan masing-masing pin memiliki fungsi dan karakteristik tersendiri.



Gambar Konfigurasi Pin pada Mikrokontroler AT89S51

Penjelasan dari susunan pin-pin AT89S51 adalah sebagai berikut :
a.       VCC
Pin VCC dihubungkan ke sumber tegangan +5V sebagai supply tegangan.
b.      Ground (GND)
Pin GND dihubungkan ke Vss atau ground.
c.       Port 0
Port 0, merupakan port I/O 8 bit open drain dua arah. Sebagai sebuah port, setiap pindapat mengendalikan 8 input TTL. Ketika logika “1” dituliskan ke port 0, maka port dapat digunakan sebagai input dengan high impedansi. Port 0 dapat juga dikonfigurasikan untuk multipleksing dengan address/ data bus selama mengakses memori program atau data eksternal. Pada mode ini P0 harus mempunyai pull up.
d.      Port 1
Port 1 merupakan port I/0 8 bit dua arah dengan internal pull up. Buffer output port 1 dapat mengendalikan empat TTL input. Ketika logika “1” dituliskan ke port 1, maka port ini akan mendapatkan internal pull up dan dapat digunakan sebagai input. Port 1 juga menerima alamat byte rendah selama pemrograman dan verifikasi flash.
e.       Port 2
Port 2 merupakan port I/O 8 bit dua arah dengan internal pull up. Buffer output port 2 dapat mengendalikan empat TTL input. Ketika logika “1” dituliskan ke port 2, maka port ini akan mendapatkan internal pull up dan dapat digunakan sebagai input. Selain sebagai jalur I/O, port 2 juga berfungsi sebagai high byte address bus.
f.       Port 3
Port 3 merupakan port I/O 8 bit dua arah dengan internal pull up. Buffer output port 3 dapat mengendalikan empat TTL input. Ketika logika “1” dituliskan ke port 3, maka port ini akan mendapatkan internal pull up dan dapat digunakan sebagai input. Port 3 juga melayani berbagai macam fitur khusus

g.       Reset (RST)
Input Reset. Logika high “1” pada pin ini untuk dua siklus mesin ketika oscillatorbekerja maka akan mereset mikroprossesor.
h.      ALE/PROG
Address Latch Enale (ALE) merupakan suatu pulsa output untuk mengunci low bytedari address selama mengakses memori eksternal.
i.        PSEN
Program Store Enable (PSEN) merupakan strobe read untuk memori program eksternal.
j.        EA/VPP
Eksternal Access Enable (EA) harus di hubungkan ke GND untuk enable device, untuk memasuki memori program eksternal mulai alamat 0000H sampai dengan FFFFH. EA harus dihubungkan ke VCC untuk akses memori program internal. Pin ini juga menerima tegangan pemrogramman (VPP) selama pemrograman Flash.
k.      XTAL1
Input untuk oscillator inverting amplifier dan input untuk rangkaian internal clock.
l.        XTAL2
Output dari oscillator inverting amplifier.


4.     Memori
Memori pada intinya berfungsi untuk ‘mengingat’ atau menyimpan suatu informasi. Memori penting bagi sistem MCS-51 karena semua program dan data tersimpan dalam memori. Makin besar kapasitas memori yang dimiliki, sistem dapat mengakomodasi program yang lebih kompleks dan data yang lebih banyak.
a.       Tipe Memori
Pada dasarnya dalam dunia mikrokontroler ada dua tipe memori yaitu data memory dan program memory.

1.      DATA MEMORY
Data memory, seperti namanya, berfungsi untuk menyimpan data. Berdasarkan lokasinya, data memory dibagi menjadi dua: internal data memory yang terdapat dalam IC MCS-51 dan eksternal data memory yang berada di luar IC MCS-51. Kapasitas internal data memory yang dimiliki MCS-51 sebesar 128 bytes ditambah dengan SFR sehingga jumlahnya mencapai 256 bytes.
Jika diperlukan, external data memory berupa IC RAM atau ROM dapat ditambahkan dan digunakan untuk menyimpan variable yang ditentukan oleh user. Penambahan ini dapat dilakukan hingga kapasitas total external data memory mencapai 64 KB.
2.      PROGRAM MEMORY
Program Memory berfungsi untuk menyimpan kode program user yang akan dijalankan. User dapat menggunakan internal program memory yang tertanam dalam IC MCS-51 dan external program memory. Kapasitas internal program memory bervariasi antara satu tipe IC MCS-51 dengan tipe yang lain, misalnya 89C2051 yang memiliki kapasitas 2 KB dan dan 89C51 yang memiliki kapasitas 4 KB. Internal program memory, selain berisi instruksi user, juga memiliki beberapa alamat khusus yang ditujukan untuk reset address (alamat yang dituju pada saat pertama kali mikrokontroler bekerja) dan interrupt vector address.
Jika diperlukan, user dapat menambahkan IC RAM atau ROM tambahan sebagai external program memory. Penambahan ini juga dapat dilakukan hingga kapasitas total program memory mencapai 64 KB.
b.      Organisasi Internal Data Memory
Internal data memory meliputi: Register Banks, Bit-addressable RAM, General Purpose RAM (Scratch Pad Area) dan Special Function Registers (SFR). Bagan pembagian internal data memory.
1)      General Purpose RAM
General Purpose RAM atau sering disebut juga adalah ruang data memory yang bebas digunakan user sebagai tempat penyimpanan variabel atau sebagai alamat inisialisasi Stack Pointer. General Purpose RAM hanya dapat diakses per byte.
2)       Bit-Addressable RAM
Bit-Addressable RAM memiliki fungsi yang sama dengan General Purpose RAM. Userjuga dapat menggunakan ruang ini untuk menyimpan variabel atau alamat inisialisasi Stack PointerBit-Addressable RAM tidak hanya dapat diakses per byte namun juga dapat diakses per bit.
3)      Registers Banks
Internal data memory memuat 4 register banksRegister Bank 0, Register Bank 1, Register Bank 2, dan Register Bank 3Register banks ini digunakan sebagai alamat untuk menampung delapan register selebar 1 byte yang diberi nama R0, R1, dan seterusnya hingga R7. Secara default, kedelapan register ini akan menempati Register Banks 0. Alokasi alamatRegister Bank.


KESIMPULAN
        Mikrokontroler merupakan satu keping alat elektronik digital yang dapat diprogram dengan fasilitas Input/output dan memori yang terintegrasi didalamnya sehingga mikrokontroler terkadang disebut juga komputer dalam keping. Mikrokontroler dapat digunakan untuk berbagai tujuan, pengendali robot, otomatisasi berbagai peralatan, dan masih banyak lagi penggunaannya. mikrokontroler banyak digunakan dalam berbagai ide-ide kreatif.
          Melalui mikrokontroler kita dapat merealisasikan ide dan alur berpikir untuk diimplementasikan kedalam program yang dapat dimengerti dan dilakukan oleh mikrokontroler, kemudahan dan kecepatan proses pembuatannya membuat komponen ini menjadi pilihan untuk berbagai rancangan. Waktu yang dibutuhkan mulai dari ide sampai realisasi alat menjadi sangat cepat. Cakupan penerapannya sangat luas mulai dari rancangan sederhana seperti alarm sampai yang cukup rumit seperti pengendali gerakan robot.

Daftar Pustaka
1.      Christanto, Danny dan Pusporini, Kris, Panduan Dasar Mikrokontroler Keluarga MCS-51, Surabaya: Innovative Electronics, 2004.

2.      Tanuta, Lukas, Pengantar Komunikasi Data, Jakarta: PT Elex Media Komputindo, 1989.