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
Pointer. Bit-Addressable RAM tidak hanya dapat diakses per byte namun
juga dapat diakses per bit.
3) Registers Banks
Internal
data memory memuat
4 register banks: Register Bank 0, Register
Bank 1, Register Bank 2, dan Register Bank 3. Register 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.