at89c51

16
 Mikrokontroler AT89S51 Mikrokontroler tipe AT89S51 merupakan mikrokontroler keluarga MCS-51 dengan konfigurasi yang sama persis dengan AT89C51 yang cukup terkenal, hanya saja AT89S51 mempunyai fitur ISP (In-System Programmable Flash Memory). Fitur ini memungkinkan mikrokontroler dapat diprogram langsung dalam suatu sistem elektronik tanpa melalui Programmer Board atau Downloader Board. Mikrokontroler dapat diprogram langsung melalui kabel ISP yang dihubungkan dengan paralel port pada suatu Personal Computer. Adapun fitur yang dimiliki Mikrokontroler AT89S51 adalah sebagai berikut : 1. Sebuah CPU (Central Processing Unit) 8 bit yang termasuk keluarga MCS51. 2. Osilator internal dan rangkaian pewaktu, RAM internal 128 byte (on chip). 3. Empat buah Programmable port I/O,masing-masing terdiri atas 8 jalur I/O 4. Dua buah Timer Counter 16 bit. 5. Lima buah jalur interupsi (2 interupsi external dan 3 interupsi internal ) 6. Sebuah port serial dengan kontrol serial full duplex UART. 7. Kemampuan melaksanakan operasi perkalian, pembagian dan operasi Boolean (bit) 8. Kecepatan pelaksanaan instruksi per siklus 1 microdetik pada frekuensi clock 12 MHz 9. 4 Kbytes Flash ROM yang dapat diisi dan dihapus sampai 1000 kali 10. In-System Programmable Flash Memory Dengan keistimewaan diatas, pembuatan alat menggunakan AT89S51 menjadi lebih sederhana dan tidak memerlukan IC pendukung yang banyak. Sehingga mikrokontroler AT89S51 ini mempunyai keistimewaan dari segi perangkat keras. Adapun blok diagram dari mikrokontroler 89S51 diperlihatkan pada Gambar 

Upload: ilham-alfajri

Post on 18-Jul-2015

96 views

Category:

Documents


0 download

TRANSCRIPT

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 1/16

 

Mikrokontroler AT89S51

Mikrokontroler tipe AT89S51 merupakan mikrokontroler keluarga MCS-51 dengan konfigurasi

yang sama persis dengan AT89C51 yang cukup terkenal, hanya saja AT89S51 mempunyai fitur ISP (In-System Programmable Flash Memory). Fitur ini memungkinkan mikrokontroler dapat

diprogram langsung dalam suatu sistem elektronik tanpa melalui Programmer Board atauDownloader Board. Mikrokontroler dapat diprogram langsung melalui kabel ISP yangdihubungkan dengan paralel port pada suatu Personal Computer.

Adapun fitur yang dimiliki Mikrokontroler AT89S51 adalah sebagai berikut :

1. Sebuah CPU (Central Processing Unit) 8 bit yang termasuk keluarga MCS51.

2. Osilator internal dan rangkaian pewaktu, RAM internal 128 byte (on chip).3. Empat buah Programmable port I/O,masing-masing terdiri atas 8 jalur I/O

4. Dua buah Timer Counter 16 bit.

5. Lima buah jalur interupsi (2 interupsi external dan 3 interupsi internal )6. Sebuah port serial dengan kontrol serial full duplex UART.

7. Kemampuan melaksanakan operasi perkalian, pembagian dan operasi Boolean (bit)8. Kecepatan pelaksanaan instruksi per siklus 1 microdetik pada frekuensi clock 12 MHz

9. 4 Kbytes Flash ROM yang dapat diisi dan dihapus sampai 1000 kali10. In-System Programmable Flash Memory

Dengan keistimewaan diatas, pembuatan alat menggunakan AT89S51 menjadi lebih sederhana dan

tidak memerlukan IC pendukung yang banyak. Sehingga mikrokontroler AT89S51 ini mempunyai

keistimewaan dari segi perangkat keras. Adapun blok diagram dari mikrokontroler 89S51diperlihatkan pada Gambar 

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 2/16

 

• RESET VALUESaat mikrokontroler di reset, maka nilai dari register-register

mikrokontroler adalah sebagaiberikut:

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 3/16

 

Mikrokontroler dapat di reset dengan memberikan sinyal ‘high’ (1) padakaki reset (pin 9) untuk periode tertentu, besarnya periode ini adalah 2periode siklus mesin.

Dibawah ini adalah sistem minimum agar mikrokontroler bisa bekerjadengan normal.

Sistem diatas bekerja sebagai berikut:Kapasitor C1 dan Resistor R1 digunakan untuk sistem Reset, saat pertama

suplay diberikan kemikrokontroler maka kaki 9 akan berlogika 1, selama 2 siklus mesin.

Setelah itu pin 9 akanberlogika 0 kembali. Proses seperti ini bisa terjadi berdasarkan proses

pengisian danpengosongan kapasitor.Kapasitor C2 dan C3, dipasang bersamaan dengan keramik resonator (x-

tal) untuk menghasilkanClock internal. Nilai dari clok ini tergantung dari keramik resonator (x-tal)

yang diberikan.

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 4/16

 

• SISTEM CLOCK Mikrokontroler, mempunyai sistem pewaktuan CPU, 12 siklus clock. Artinya

setiap 12 siklus yangdihasilkan oleh ceramic resonator maka akan menghasilkan satu siklus

mesin. Nilai ini yang akan

menjadi acuan waktu operasi CPU.Untuk mendesain sistem mikrokontroler kita memerlukan sistem clock,

sistem ini bisa di bangundari clock eksternal maupun clock internal. Untuk clock internal, kita tinggal

memasang komponenseperti di bawah ini:

• FUNGSI MASING-MASING PIN

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 5/16

 

 Yang membedakan mikrokontroler AT89S51 dengan C51(seri sebelumnya)adalah cara pengisian

program (flash programming). Pada mikrokontroler AT89S51 terdapatfasilitas ISP (In System

Programming). Artinya mikrokontroler ini mampu diprogram meskipun

dalam kondiasi bekerja. Letak perbedaan pada hardware adalah adanyaMOSI, MOSI, dan SCK, pin ini berguna saat flashprogramming. Adapun fungsi dari pin pin yang lain, fungsinya sama seperti

pada seri sebelumnya.Diwah ini disajikan fungsi pin untuk mikrokontroler AT89S51 :

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 6/16

 

• STRUKTUR MEMORIDalam pengertian MCS51, Random Access Memory dalam chip AT89x51

adalah memoridata,yaitu memori yang dipakai untuk menyimpan data, sedangkan Flash

PEROM merupakanmemori penampung program pengendali AT89x51, dikenal sebagai

memori-program. Karenakedua memori itu memang dibedakan dengan tegas, maka kedua memori

itu mempunyai

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 7/16

 

penomoran yang terpisah. Memori-program dinomori sendiri, padaAT89S51 mulai dari nomor $0000 sampai $0FFF. Sedangkan memori-datayang hanya 256 byte dinomori dari nomor $00sampai $FF.

GambarDenah Memori-data

Seperti terlihat dalam denah memori-data Gambar 5, memori-data dibagi

menjadi dua bagian,memori nomor $00 sampai $7F merupakan memori seperti RAM

selayaknya meskipun beberapabagian mempunyai kegunaan khusus, sedangkan memori nomor $80

sampai $FF dipakai sangatkhusus yang dinamakan sebagai Special Function Register.

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 8/16

 

Memori-data nomor $00 sampai $7F bisa dipakai sebagai memoripenyimpan data biasa, dibagi

menjadi 3 bagian:

Memori nomor $00 sampai $18 selain sebagai memori-data biasa, bisa

pula dipakaisebagai Register Serba Guna (General Purpose Register).

Memori nomor $20 sampai $2F selain sebagai memori-data biasa, bisadipakai untuk menyimpan informasi dalam level bit.

Memori nomor $30 sampai $7F (sebanyak 80 byte) merupakan memori-data biasa,bisa dipakai untuk menyimpan data maupun dipakai sebagai Stack.

• Register Serba Guna

Register Serba Guna (General Purpose Register) menempati memori-data

nomor $00 sampai $18,memori sebanyak 32 byte ini dikelompokkan menjadi 4 Kelompok Register

(Register Bank), 8 bytememori dari masing-masing Kelompok itu dikenali sebagai Register 0,

Register 1 .. Register 7 (R0,R1, R2, R3, R4, R5, R6 dan R7).

Dalam penulisan program memori-memori ini bisa langsung disebutsebagai R0, R1, R2, R3, R4,

R5, R6 dan R7, tidak lagi dengan nomor memori. Dengan cara ini instruksiyang terbentuk bisa

lebih sederhana dan bekerja lebih cepat. Pengertian ini bisa diperjelasdengan contoh 2 instruksi

berikut :

MOV A,04H

MOV A,R4

Instruksi pertama mempunyai makna isi memori-data nomor 4 di-copy-kanke Akumulator

A, sedangkan instruksi kedua artinya isi R4 di-copy-kan ke Akumulator A.Karena R4 menempati

memori-data nomor 4, jadi kedua instruksi itu berakibat sama bagiAkumulator A. Tapi saatditerjemahkan ke kode mesin, intruksi pertama dirubah menjadi E5 04

(heksadesimal) daninstruksi kedua menjadi E6 (heksadesimal), jadi instruksi kedua lebihsederhana dari instruksi pertama. Selain itu, khusus untuk Register 0 danRegister 1 (R0 dan R1) masih punya mempunyai

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 9/16

 

kemampuan lain, kedua register ini bisa dipakai sebagai registerpenampung alamat yang dipakai

dalam penyebutan memori secara tidak langsung (indirect memoriaddressing), hal ini akan

dibicarakan lebih lanjut di belakang.

Empat kelompok Register Serba Guna itu tidak bisa dipakai secarabersamaan, saat

setelah reset yang aktif dipakai adalah Kelompok Register 0 (Register Bank0).

Kalau yang diaktifkan adalah Kelompok Register 1, maka yang dianggapsebagai R0 bukan lagi

memori-data nomor 0 melainkan memori-data nomor 8, demikian pulakalau yang diaktifkan

Kelompok Register 3 maka memori-data nomor 18h yang menjadi R0.Kelompok Register yang aktif dipilih dengan cara mengatur bit RS0 dan

RS1 yang ada di dalamRegister PSW (Program Status Word).

Memori level BitMemori-data nomor $20 sampai $2F bisa dipakai menampung informasi

dalam level bit. Setiapbyte memori di daerah ini bisa dipakai menampung 8 bit informasi yang

masing-masing dinomoritersendiri, dengan demikian dari 16 byte memori yang ada bisa dipakai

untuk menyimpan 128 bit(16 x 8 bit) yang dinomori dengan bit nomor $00 sampai $7F.

Informasi dalam level bit tersebut masing-masing bisa di-‘1’-kan, di - ‘0’-kan dengan instruksi.

Pengertian di atas bisa dipikirkan seolah-olah MCS51 mempunyai jenismemori yang lain,

tapi sesungguhnya kedua jenis memori itu tetap sama, hanya saja carapenyebutannya saja yang

berlainan.

Instruksi SETB $00 mengakibatkan memori-bit nomor 0 menjadi ‘1’, atausama dengan membuat

bit nomor 0 dari memori-data nomor $20 menjadi ‘1’, sedangkan bit-bitlainnya dalam memori

nomor $20 tidak berubah nilai.

Sedangkan instruksi CLR $7F mengakibatkan memori-bit nomor $7Fmenjadi ‘0’, satau sama dengan membuat bit nomor 7 dari memori-datanomor $2F menjadi ‘0’, sedangkan bit-bit lainnyadalam memori nomor $2F tidak berubah nilai.

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 10/16

 

Pengertian ini dipertegas dengn intsruksi-instruksi berikut:

MOV 21H,#0FH

Sama dengan hasil kerja instruksi-instruksi berikut :SETB 08H

SETB 09H

SETB 0AH

SETB 0BH

CLR 0CH

CLR 0DH

CLR 0EH

CLR 0FH

Instruksi MOV 21H,#0FH mempunyai makna mengisi memori-data nomor

21H dengan nilai 0FH(atau bilangan biner 00001111), berarti mengisi memori-bit nomor 0FHsampai 08H dengan

bilangan biner 00001111 yang bisa dinyatakan dengan 8 baris instruksiberikutnya.

• Special Function Register (SFR)Register Khusus (SFR - Special Function Register) adalah satu daerah RAM

dalam IC keluargaMCS51 yang dipakai untuk mengatur perilaku MCS51 dalam hal-hal khusus,

misalnya tempat

untuk berhubungan dengan port paralel P1 atau P3, dan saranainput/output lainnya, tapi tidak

umum dipakai untuk menyimpan data seperti layaknya memori-data.

Meskipun demikian, dalam hal penulisan program SFR diperlakukan persissama dengan memori-

data. Untuk mengisi memori-data nomor 60H dengan bilangan 0FH,instruksi yang dipergunakan

adalah :MOV 60H, #0FH

Sedangkan untuk memenyimpan 0FH ke Port 1 yang di SFR menempatimemori-data nomor 90H,

instruksi yang dipergunakan adalah :MOV 90H, #0FH

Membandingkan kedua instruksi di atas bisa dimengerti dalam segipenulisan program SFR

diperlakukan persis sama dengan memori-data.

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 11/16

 

Meskipun demikian, dalam menyebut memori-data bisa dipakai dua cara,yakni penyebutan nomor

memori secara langsung (direct memory addressing) dan penyebutannomor memori secara tidak langsung (indirect memory addressing) lewatbantuan R0 dan R1. Tapi untuk SFR hanya bisa

dipakai penyebutan nomor memori secara langsung (direct memoryaddressing) saja.

• Register Dasar MCS51Untuk keperluan penulisan program, setiap mikroprosesor/mikrokontroler

selalu dilengkapi denganRegister Dasar. Ada beberapa macam register merupakan register baku

yang bisa dijumpaidisemua jenis mikroprosesor/ mikrokontroler, ada register yang spesifik

pada masing-masingprosesor.

 Yang termasuk Register Baku antara lain Program Counter, Akumulator,Stack Pointer Register,

Program Status Register. MCS51 mempunyai semua register baku ini.Sebagai register yang khas MCS51, antara lain adalah Register B, Data

Pointer High Byte danData Pointer Low Byte. Semua ini digambarkan dalam Gambar 4.Di samping itu MCS51 masih mempunyai Register Serba Guna R0..R7 yang

sudah disebutdibagian atas.

Dalam mikroprosesor/mikrokontroler yang lain, register-register dasarbiasanya

ditempatkan ditempat tersendiri dalam inti prosesor, tapi dalam MCS51register-register itu

ditempatkan secara terpisah.

• Program Counter ditempatkan ditempat tersendiri di dalam inti prosesor

• Register Serba Guna R0..R7 ditempatkan di salah satu bagian darimemori-data

• Register lainnya ditempatkan dalam Special Function Register (SFR).

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 12/16

 

Gambar Susunan Register Dasar MCS51

Kegunaan dan pemakaian register-register dasar tersebut antara lainsebagai berikut:

Program CounterProgram Counter (PC) dalam AT89S51 merupakan register dengan

kapasitas 16 bit. Di dalam PCdicatat nomor memori-program yang menyimpan instruksi berikutnya yang

akan diambil (fetch)sebagai instruksi untuk dikerjakan (

execute).

Saat setelah reset PC bernilai 0000h, berarti MCS51 akan segeramengambil isi memori-program

nomor 0 sebagai instruksi. Nilai PC otomatis bertambah 1 setelah prosesormengambil instruksi 1

byte. Ada instruksi yang hanya 1 byte, ada instruksi yang sampai 4 byte,dengan demikian

pertambahan nilai PC setelah menjalankan instruksi, tergantung pada jumlah byte instruksi

bersangkutan.

AkumulatorSesuai dengan namanya, Akumulator adalah sebuah register yang

berfungsi untuk menampung(accumulate) hasil hasil pengolahan data dari banyak instruksi MCS51.Akumulator bisa menampung data 8 bit (1 byte) dan merupakan registeryang paling banyak kegunaannya, lebihdari setengah instruksi-instruksi MCS51 melibatkan Akumulator.

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 13/16

 

Instruksi-instruksi berikut memperjelas pengertian di atas :

MOV A,#20HADD A,#30H

Instruksi pertama menyimpan nilai20H

ke Akumulator, instruksi keduamenambahkan bilangan

30H ke Akumulator, hasil penjumlahan sebesar 50H ditampung diAkumulator.

Stack Pointer RegisterSalah satu bagian dari memori-data dipakai sebagai Stack, yaitu tempat

yang dipakai untukmenyimpan sementara nilai PC sebelum prosesor menjalankan sub-rutin,

nilai tersebut akandiambil kembali dari Stack dan dikembalikan ke PC saat prosesor selesai

menjalankan sub-rutin.Stack Pointer Register adalah register yang berfungsi untuk mengatur kerjastack, dalam Stack Pointer Register disimpan nomor memori-data yangdipakai untuk operasi Stack berikutnya.

Program Status WordProgram Status Word (PSW) berfungsi mencatat kondisi prosesor setelahmelaksanakan instruksi. Pembahasan tentang PSW secara rinci akandilakukan dibagian lain.

Register B

Merupakan register dengan kapasitas 8 bit, merupakan register pembantuAkumulator saat

menjalankan instruk perkalian dan pembagian.

DPH dan DPLData Pointer High Byte (DPH) dan Data Pointer Low Byte (DPL) masing-

masing merupakanregister dengan kapasitas 8 bit, tapi dalam pemakaiannya kedua register

ini digabungkan menjadisatu register 16 bit yang dinamakan sebagai Data Pointer Register (DPTR).Sesuai dengan namanya, Register ini dipakai untuk mengalamati data

dalam jangkauan yang luas.

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 14/16

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 15/16

5/14/2018 AT89C51 - slidepdf.com

http://slidepdf.com/reader/full/at89c51-55ab4d9357938 16/16