BAB 2 TINJAUAN TEORITIS 2.1.Hardware 2.1.1 Mikrokontroler

advertisement
BAB 2
TINJAUAN TEORITIS
2.1.Hardware
2.1.1 Mikrokontroler AT89S51
Mikrokontroller, sebagai suatu terobosan teknologi mikrokontroler dan microkomputer,
hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi
baru, yaitu teknologi semi konduktor dengan kandungan transistor yang lebih banyak
namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam
jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan microprocessor).
Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para
konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih
serta dalam bidang pendidikan.
Tidak seperti sistem komputer, yang mampu menangani berbagai macam program
aplikasi (misalnya pengolah kata, pengolah angka, dan lain sebagainya), Microcontroller
hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada
perbandingan RAM dan ROM-nya. Pada sistem komputer perbandingan RAM dan
ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang
relatif besar, sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang
Universitas Sumatera Utara
ROM yang kecil. Sedangkan Pada mikrokontroler, perbandingan ROM dan RAM-nya
yang besar artinya program control disimpan dalam ROM yang ukurannya relatif lebih
besar, sedangkan RAM digunakan sebagai tempat penyimpanan sederhana sementara,
termasuk register-register yang digunakan pada Microcontroller yang bersangkutan.
Microcontroller AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran
Atmel. Jenis Microcontroller ini pada prinsipnya dapat digunakan untuk mengolah data
per bit ataupun data 8 bit secara bersamaan. Pada prinsipnya program pada
Microcontroller dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set
instruksi dan tiap instruksi itu dijalankan secara bertahap atau berurutan.
Beberapa fasilitas yang dimiliki oleh microcontroller AT89S51 adalah sebagai berikut :
 Sebuah Central Processing Unit 8 bit
 Osilatc : internal dan rangkaian pewaktu
 RAM internal 128 byte
 Flash memori 4 Kbyte
 Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi
internal)
 Empat buah programable port I/O yang masing-masing terdiri dari delapan buah
jalur I/O
 Sebuah port serial dengan kontrol serial full duplex UART
 Kemampuan untuk melaksanakan operasi aritmatika dan oper
 Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi
12 MHz.
Universitas Sumatera Utara
1.1.2. Kontruksi AT89S51
Microcontroller AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1
kristal serta catu daya 5 volt. Kapasitor 10 micro-fard dan resistor 10 kilo Ohm dipakai
untuk membentuk rangkaian riset. Dengan adanya rangkaian riset ini AT89S51 otomatis
diriset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum
24MHz dan kapasitor 30 mikro-farad dipakai untuk melengkapi rangkaian oscilator
pembentuk clock yang menentukan kecepatan kerja Microcontroller.
Memori merupakan bagian yang sangat penting pada Microcontroller.
Microkontroller memiliki dua macam memori yang sifatnya berbeda.
Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan
catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan
program ini dinamakan sebagai memori program.
Random Access Memory (RAM) isinya akan sirna begitu IC kehilangan catu
daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai
untuk menyimpan data ini disebut sebagai memori data.
Ada berbagai jenis ROM. Untuk Microcontroller dengan program yang sudah
baku dan diproduksi secara massal, program diisikan kedalam ROM pada saat IC
Microcontroller dicetak dipabrik IC. Untuk keperluan tertentu Microcontroller
Universitas Sumatera Utara
menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang
disingkat menjadi PROM (PEROM). Dulu banyak UV-EPROM (Ultra Violet Eraseable
Programble 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 Microcontroller diisikan ke memori itu lewat
bantuan alat yang dinamakan sebagai AT89C4051 flash PEROM Programmer.Memori
data yang disediakan dalam chip AT*(S51 sebesar 128 kilo byte meskipun hanya kecil
saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.
AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang
biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD
dan TXD) diletakkan berhimpitan dengan P1.0 dan P1.1. pada kaki nomor 2 dan 3,
sehingga kalau sarana input/output 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/output paralel 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
dangan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output paralel kalau
INT0 dan INT1 dipakai untuk menerima sinyal interupsi.Port1 dan 2, UART, Timer 0,
Universitas Sumatera Utara
Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang
ditempatkan di Special Function Register (SFR).
2.1.3. Pin-Pin pada Microcontroller AT89S51
Deskripsi pin-pin pada Microcontroller AT89S51 :
Gambar 2.1.3. IC 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
Universitas Sumatera Utara
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, port ini akan mempunyai internal 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 mengakses memori
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 :
Tabel 2.1.3. Pin-Pin pada Microcontroller AT89S51
Nama pin
Fungsi
P3.0 (pin 10)
RXD (Port input serial)
P3.1 (pin 11)
TXD (Port output serial)
P3.2 (pin 12)
INTO (interrupt 0 eksternal)
P3.3 (pin 13)
INT1 (interrupt 1 eksternal)
P3.4 (pin 14)
T0 (input eksternal timer 0)
P3.5 (pin 15)
T1 (input eksternal timer 1)
P3.6 (pin 16)
WR (menulis untuk eksternal data memori)
P3.7 (pin 17)
RD (untuk membaca eksternal data memori)
Universitas Sumatera Utara
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
.
Universitas Sumatera Utara
2.1.4. Relay
Relay adalah suatu rangkaian switch magnetik yang bekerja bila mendapat catu dan suatu
rangkaian trigger. Relay memiliki tegangan dan arus nominal yang harus dipenuhi output
rangkaian pendriver atau pengemudinya. Arus yang digunakan pada rangkaian adalah
arus DC.
Konstruksi dalam suatu relay terdiri dari lilitan kawat (coil) yang dililitkan pada
inti besi lunak. Jika lilitan kawat mendapatkan aliran arus, inti besi lunak kontak
menghasilkan medan magnet dan menarik switch kontak. Switch kontak mengalami gaya
listrik magnet sehingga berpidah posisi ke kutub lain atau terlepas dari kutub asalnya.
Keadaan ini akan bertahan selama arus mengalir pada kumparan relay. Dan relay akan
kembali keposisi semula yaitu normaly ON atau Normaly OFF, bila tidak ada lagi arus
yang mengalir padanya, posisi normal relay tergantung pada jenis relay yang digunakan.
Dan pemakaian jenis relay tergantung pada kadaan yang diinginkan dalam suatu
rangkaian.
Menurut kerjanya relay dapat dibedakan menjadi :
a. Normaly Open (NO), saklar akan tertutup bila dialiri arus
b. Normaly Close (OFF), saklar akan tertutup bila dialiri arus
c. Change Over (CO), relay ini mempunyai saklar tunggal yang nomally tertutup yang
lama, bila kumparan 1 dialiri arus maka saklar akan terhubung ke terminal A,
sebaliknya bila kumparan 2 dialiri arus maka saklar akan terhubung ke terminal B.
Universitas Sumatera Utara
Analogi rangkaian relay yang digunakan pada tugas akhir ini adalah saat basis
transistor ini dialiri arus, maka transistor dalam keadaan tertutup yang dapat
menghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung.
Sedangkan fungsi dioda disini adalah untuk melindungi transistor dari tegangan induksi
berlebih, dimana tegangan ini dapat merusak transistor.Jika transistor pada basis tidak
ada arus maju, transistor terbuka sehingga arus tidak mengalir dari kolektor ke emiter,
relay tidak bekerja karena tidak ada arus yang mengalir pada gulungan kawat.
Bentuk relay yang digunakan ada bentuk relay dengan rangkaian driver dapat
dilihat pada gambar2.1.4.
Vcc
Dioda
VB
a. Simbol
Tr
b. Relay dengan rangkaian driver
Gambar 2.1.4. Simbol Relay dan Rangkaian Driver
Universitas Sumatera Utara
2.2 Software
2.2.1. Bahasa Assembly MCS-51
Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah bahasa
assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya
ada 51 instruksi. Instruksi –instruksi tersebut antara lain :
1. Instruksi MOV
Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register
tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.
Contoh pengisian nilai secara langsung
MOV R0,#20h
Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0).
Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.
Contoh pengisian nilai secara tidak langsung
MOV 20h,#80h
...........
............
MOV R0,20h
Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal
ke register 0 (R0).
Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah
alamat.
Universitas Sumatera Utara
2. Instruksi DJNZ
Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi
nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol.
Contoh ,
MOV R0,#80h
Loop: ...........
............
DJNZ R0,Loop
............
R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan
ke perintah pada baris berikutnya.
3. Instruksi ACALL
Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :
.............
ACALL TUNDA
.............
TUNDA:
.................
4. Instruksi RET
Instruksi
RETURN (RET) ini merupakan perintah untuk kembali ke rutin
pemanggil setelah instruksi ACALL dilaksanakan. Contoh,
ACALL TUNDA
.............
TUNDA:
.................
Universitas Sumatera Utara
RET
5. Instruksi JMP
(Jump)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh,
Loop:
.................
6. Instruksi JNB
(Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika Low (0). Contoh,
Loop: JNP Loop
7. Instruksi JB
(Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika high (1). Contoh,
Loop:
JB P1.0,Loop
.................
JNB P1.0,Loop
.................
8. Instruksi CJNZ
(Compare Jump If Not Equal)
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan
suatu nilai tertentu. Contoh,
Loop:
................
CJNE R0,#20h,Loop
Universitas Sumatera Utara
................
Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop.
Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi
selanjutnya..
9. Instruksi DEC (Decreament)
Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud
dengan 1. Contoh,
MOV R0,#20h
R0 = 20h
................
DEC R0
R0 = R0 – 1
.............
10. Instruksi INC (Increament)
Instruksi ini merupakan perintah untuk menambahkan nilai register yang
dimaksud dengan 1. Contoh,
MOV R0,#20h
R0 = 20h
................
INC R0
R0 = R0 + 1
.............
11. Dan lain sebagainya
Universitas Sumatera Utara
2.2.2
Software 8051 Editor, Assembler, Simulator (IDE)
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah
editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya seperti di bawah ini.
Gambar 2.2.2. 8051 Editor, Assembler, Simulator (IDE)
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (dicompile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih
ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau
ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada
pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke
dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an.
Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller.
Universitas Sumatera Utara
2.2.3
Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan
software ISP- Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya
seperti gambar di bawah ini
Gambar 2.2.3. ISP- Flash Programmer 3.a
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file
heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil
kompilasi tersebut ke mikrokontroller
Universitas Sumatera Utara
Download