MIKROKONTROLLER AT89C51
Mikrokontroller
Mikrokontroller adalah sebuah system mikrokontroler berteknologi single chip. Pada Mikrokontroller sudah
terdapat komponen – komponen mikroprosesor dengan bus – bus internal yang
saling berhubungan. Komponen – komponen tersebut adalah RAM, ROM, timer,
komponen I/O paralel dan serial, dan interrupt kontroller.
Adapun keunggulan dari Mikrokontroller adalah adanya sistem interrupt.
Sebagai perangkat kontrol penyesuaian, Mikrokontroller sering disebut juga
untuk menaikkan respon semangat ekternal (interrupt) di waktu yang nyata.
Perangkat tersebut harus melakukan hubungan switching cepat, menunda satu
proses ketika adanya respon eksekusi yang lain.
Mikrokontroller AT89C51
Mikrokontroller AT89C51 merupakan CMOS 8 bit yang memiliki performa
yang tinggi dengan disipasi daya yang rendah. Memiliki sistem pemograman
kembali Flash Memori 4 Kbyte dengan daya tahan 1000 kali write/erase. AT89C51
diproduksi oleh ATMEL dengan teknologi kepadatan tinggi serta kompatibel dengan
produk MCS-51 yang telah di standarisasi instruction set dan pin keluaran nya.
Disampig itu terdapat RAM Internal dengan kapasitas128 x 8 bit. Dan
frekuensi pengoperasian hingga 24 MHz. Mikrokontroller ini juga memiliki 32
port I/O yang terbagi menjadi 4 buah port dengan 8 jalur I/O, kemudian terdapat
pula Sebuah port serial dengan kontrol serial full duplex, dua timer/counter 16
bit dan sebuah osilator internal dan rangkaian pewaktu.
Diagram Blok dan Konfigurasi
Adapun blok diagram dari Mikrokontroller AT89C51 digambarkan pada
gambar 2.1.a. Mikrokontroller ini memiliki 40 konfigurasi pin seperti digambarkan pada gambar 2.1.b. Fungsi
dari tiap – tiap dapat dikelompokkan
menjadi sumber tegangan, kristal,
kontrol, dan input-output.
A. Pin 1 sampai 8
Ini adalah port 1 yang merupakan saluran/bus I/O 8 bit dua arah. Dengan
internal pull-up yang dapat digunakan
untuk berbagai keperluan. Pada port ini juga digunakan sebagai saluran alamat
pada saat pemograman dan verifikasi.
B. Pin 9
Merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ke
tinggi akan me-reset Mikrokontroller ini.
C. Pin 10 sampai 17
Ini adalah port 3 merupakan saluran/bus I/O 8 bit dua arah dengan
internal pull-ups yang memiliki fungsi pengganti. Bila fungsi pengganti tidak
dipakai, maka – ini dapat digunakan sebagai port paralel 8
bit serbaguna. Selain itu sebagian dari port 3 dapat berfungsi sebagai sinyal
kontrol pada saat proses pemograman dan verifikasi. Adapun fungsi penggantinya
seperti pada tabel 2.1.
D. Pin 18 dan 19
Ini merupakan masukan ke penguat osilator berpenguat tinggi. Pada
Mikrokontroller ini memiliki seluruh rangkaian osilator yang diperlukan pada
serpih yang sama (on chip) kecuali
rangkaian kristal yang mengendalikan frekuensi osilator. Karenanya 18 dan 19 sangat diperlukan untuk dihubungkan
dengan kristal. Selain itu XTAL 1 dapat juga sebagai input untuk inverting
oscilator amplifier dan input ke rangkaian internal clock sedangkan XTAL 2
merupakan output dari inverting oscilator amplifier
Tabel
2.1. Fungsi pengganti dari port 3..
Bit
|
Nama
|
Fungsi
Alternatif
|
P3.0
|
RXD
|
Untuk
menerima data port serial
|
P3.1
|
TXD
|
Untuk
mengirim data port serial
|
P3.2
|
INT0
|
Interupsi
eksternal 0
|
P3.3
|
INT1
|
Interupsi
eksternal 1
|
P3.4
|
T0
|
Input
Eksternal waktu/pencacah 0
|
P3.5
|
T1
|
Input
Eksternal waktu/pencacah 1
|
P3.6
|
WR
|
Jalur
menulis memori data eksternal
|
P3.7
|
RD
|
Jalur
membaca memori data eksternal
|
E. Pin 20
Ground.
F. Pin 21 sampai 28
ini adalah port 2 yang merupakan
saluran/bus I/O 8 bit dua arah dengan internal pull-ups. Saat pengambilan data dari program memori eksternal atau
selama mengakses data memori eksternal yang menggunakan alamat 16 bit (MOVX @
DPTR), port 2 berfungsi sebagai saluran/bus alamat tinggi (A8 – A15). Sedangkan
pada saat mengakses ke data memori eksternal yang menggunakan alamat 8 bit
(MOVX @ R1), port 2 mengeluarkan isi dari P2 pada Special Function Register.
G. Pin 29
Program Store Enable (PSEN)
merupakan sinyal pengontrol untuk mengakses program memori eksternal masuk ke
dalam bus selama proses pemberian/pengambilan instruksi (fetching).
H. Pin 30
Address Latch Enable
(ALE)/PROG merupakan penahan alamat memori eksternal (pada port 1) selama
mengakses ke memori eksternal. Pena ini juga sebagai pulsa/sinyal input pemograman (PROG) selama proses
pemograman.
I. Pin 31
External Access Enable (EA)
merupakan sinyal kontrol untuk pembacaan memori program. Apabila diset rendah
(L) maka Mikrokontroller akan melaksanakan seluruh instruksi dari memori
program eksternal, sedangkan apabila diset tinggi (H) maka Mikrokontroller akan
melaksanakan instruksi dari memori program internal ketika isi program counter kurang dari 4096. ini juga berfungsi sebagai tegangan
pemograman (VPP = +12V) selama proses pemograman.
J. Pin 32 sampai 39
Ini adalah port 0 yang merupakan saluran/bus I/O 8 bit open colector,
dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data selama
adanya akses ke memori program eksternal. Pada saat proses pemograman dan
verifikasi port 0 digunakan sebagai saluran/bus data. External pull-ups diperlukan selama proses verifikasi.
K. Pin 40
Power Supply.

Gambar 2.1. a. Blok Diagram Mikrokontroller 89C51


Gambar 2.1. b. Konfigurasi Pin
Mikrokontroller 89C51

Gambar 2.2. Sistem Minimum
Mikrokontroller AT89C51
Register
Mikrokontroller
AT89C51 mempunyai register – register sebagai berikut:
1. Accumulator (register A)
Accumulator adalah sebuah register 8 bit yang merupakan pusat dari
semua operasi accumulator termasuk
didalam operasi aritmatika, operasi logika, membebani dan menyimpan serta
operasi – operasi masukan.
2. Register B
Register ini memiliki fungsi yang sama dengan register A.
3. Program Counter (PC)
Pencacah program merupakan sebuah register 16 bit yang selalu
menunjukkan lokasi memori dari instruksi yang akan diakses.
4. Stack Pointer (SP)
Stack Pointer
merupakan sebuah register 16 bit yang mempunyai fungsi khusus sebagai penunjuk
alamat atau data yang berada paling atas pada operasi penumpukkan di RAM.
Penunjukan penumpukkan selalu berkurang dua setiap kali data didorong masuk
kedalam lokasi penumpukkan dan selalu bertambah dua setiap kali data ditarik ke
luar dari lokasi penumpukkan.
5.
Program Status Word
Register ini berisi beberapa bit status yang mencerminkan keadaan
Mikrokontroller. Definisi dari bit – bit dalam PSW dijelaskan seperti berikut.
PSW.7
|
PSW.6
|
PSW.5
|
PSW.4
|
PSW.3
|
PSW.2
|
PSW.1
|
PSW.0
|
||
D0H
|
CY
|
AC
|
FO
|
RS1
|
RS2
|
OV
|
-
|
P
|
·
Bit carry flag (CY)
Bit carry (bit ke - 8)
mempunyai dua fungsi yaitu: pertama: carry akan menunjukkan apakah operasi
penjumlahan mengandung carry (sisa)
atau pada operasi pengurangan mengandung borrow
(kurang). Apabila operasi ini mengandung carry, maka bit ini akan diset satu. Sedangkan jika mengandung borrow, maka bit ini akan diset nol.
Kedua : carry dimanfaatkan sebagai bit ke delapan untuk operasi pergeseran
(shift) atau perputaran.
·
Bit Auxiliary Carry (AC)
Bit ini menunjukkan adanya carry (bawaan)
dari bit ketiga menuju ke bit keempat pada operasi aritmatika atau dari 4 bit
rendah ke 4 bit tinggi. Bit ini jarang digunakan dalam program, tetapi
digunakan oleh Mikrokontroller secara implisit pada operasi aritmatika bilangan
BCD.
·
Bit Flag 0 (F0)
Bit ini menunjukkan apakah hasil operasinya nol atau tidak. Apabila
hasil operasi adalah nol, maka bit ini diset 1, dan apabila hasil operasinya
adalah tidak nol maka bit ini akan reset. Bit ini juga digunakan pada
perbandingan dua buah data. Bila kedua data sama maka akan diset 1 sedangkan
jika kedua data itu berbeda maka akan direset nol.
·
Bit register select (RS)
Register Bank Select Bits (RS0 dan RS1) digunakan untuk menentukan
lokasi dari bank register (R0 hingga R7) pada memori. RS0 dan RS1 selalu
bernilai Nol setiap kali system di reset, sehingga lokasi dari R0 hingga R7
akan berada pada alamat 00H hingga 07H (Bank 0). Pemilihan bank register
diperlihatkan pada tabel 2.2.
Misal kita kan
memilih bank 3 maka langkah yang harus kita lakukan sbb :
Setb RS0
Setb RS1 ;register Bank 3 aktif
Mov A,R0
|
Tabel 2.2. Pemilihan Bank Register
RS1
|
RS2
|
Bank
|
Lokasi Memori
|
0
|
0
|
0
|
00H – 07H
|
0
|
1
|
1
|
08H – 0FH
|
1
|
0
|
2
|
10H – 17H
|
1
|
1
|
3
|
18H – 1FH
|
·
Bit Overflow (OV)
Bit ini menunjukkan adanya kelebihan atau kekurangan bit pada operasi
penjumlahan atau pengurangan.
·
Bit parity (P)
Bit ini menunjukkan paritas dari hasil operasi, jika 1 maka hasil
operasinya adalah genap, dan jika 0 maka hasil operasinya adalah ganjil.
6. Power Control Register (PCON)
Register PCON berfungsi sebagai pengontrol mode kerja daripada CPU.
Register PCON ini tidak dapat dialamati per bit.
7. Register Timer Mode (TMOD)
Register yang berfungsi sebagai pengontrol pemilihan mode operasi untuk
timer/counter. Sedangkan untuk
pengontrol kerja timer/counter adalah
register timer control (TCON).
8. Serial Control Register (SCON)
Register yang berfungsi untuk mengontrol kerja port serial. Port serial
pada Mikrokontroller AT89C51 bersifat full duplex, yang berarti dapat mengirim
dan menerima data secara bersamaan. Register penerima dan pengirim pada port
serial diakses pada SBUF(serial buffer).
Unit Aritmatik Logik
ALU (Arithmetic Logic Unit)
berfungsi melaksankan operasi-operasi aritmatik maupun logika, seperti
penjumlahan, pengurangan, operasi OR, operasi NAND dan sebagianya. Hasil
operasi tersebut selanjutnya disimpan kembali ke dalam accumulator. Operasi yang terjadi pada ALU berhubungan erat dengan accumulator dan bit status pada register
F/PSW.
Sumber Pencacah Pewaktuan
AT89C51
Mikrokontroller AT89C51 dilengkapi dengan sumber detak / osilator
internal (on chip oscilator) yang
dapat digunakan sebagai sumber clock bagi
AT89C51. Untuk menggunakan osilator internal diperlukan tambahan kristal atau
resonator keramik antara pena XTAL1 dan XTAL2 dan sebuah kapasitor ke ground. Untuk kristalnya dapat digunakan
frekuensi dari 3 sampai 24 MHz. Sedangkan untuk kapasitornya dapat bernilai 30
pF+10 pF. Bila menggunakan sumber clock
eksternal maka XTAL 2 NC (No Connection)
dan sumber dihubungkan dengan XTAL1.
Interupsi
Program yang sedang dijalankan oleh mikrokontroller AT89C51 dapat
dihentikan untuk sementara dengan meminta interupsi. Apabila AT89C51 mendapat
permintaan interupsi maka program counter (PC) akan diisi alamat dari vector
interupsi, kemudian AT89C51 melaksanakan rutin pelayanan interupsi mulai dari
alamat tersebut setelah selesai maka AT89C51 akan kembali ke pelaksanaan
program utama yang ditinggalkan. Mikrokontroller
AT89C51 menyediakan 6 sumber interupsi yaitu 2 buah interupsi eksternal (INT 0
dan INT 1), 3 buah interupsi timer (Timer 0, Timer 1, dan Timer 2), dan sebuah
interupsi port serial.
Selain itu ada juga sebuah non
maskable interrupt yaitu reset yang tidak dapat dihalangi oleh perangkat
lunak. Setiap sumber interupsi dapat diprogram secara individual
(sendiri-sendiri) baik pengaktifannya maupun prioritasnya. Untuk mengaktifkan
atau menonaktifkan interupsi dikontrol oleh register IE (interrupt enable), sedangkan untuk tingkat prioritasnya diatur oleh
register IP (interrupt priority).
Tabel
Kapasitas Memory Mikrokontroller seri AT89X
Type
|
RAM
|
Flash Memory
|
EEPROM
|
AT89C51/ AT89S51
|
8 X 128 BYTE
|
4 Kbyte
|
No
|
AT89C52/ AT89S52
|
8 X 256 BYTE
|
8 Kbyte
|
No
|
AT89C55
|
8 X 256 BYTE
|
20 Kbyte
|
No
|
AT89S53
|
8 X 256 BYTE
|
12 Kbyte
|
No
|
AT89S8252
|
8 X 256 BYTE
|
8 Kbyte
|
2 Kbyte
|
Pada Tabel diatas Terdapat 3 macam memory yaitu:
§
Random Acsess Memory (RAM) : data yang dapat di baca dan
tulis dan hanya akan tersimpan jika mikrokontroller mendapat suply
§
Flash Memory: Tempat penyimpanan Data program, yang hanya dapat
di baca pada waktu mikrokontroller sedang aktiv
§
EEPROM : Tempat penyimpanan data yang dapat di baca dan tulis pada
saat mikrokontroller sedang bekerja dan bersifat secara permanen (tidak akan
hilang meskipun mikrokontroller tidak mendapat suply).
0 Response to "Mikrokontroller"
Post a Comment