BAB 2
LANDASAN TEORI
2.1. Mikrokontroler AT89S51
Mikrokontroler sebagai suatu terobosan teknologi mikrokontroler dan mikrokomputer, 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 mikroprosesor). 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), Mikrokontroler 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
Universitas Sumatera Utara
7
perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan Pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program kontrol disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sederhana sementara, termasuk registerregister yang digunakan pada mikrokontroler yang bersangkutan.
Mikrokontroler AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis mikrokontroler ini pada prinsipnya dapat digunakan untuk mengolah data per bit ataupun data 8 bit secara bersamaan.
Pada prinsipnya program pada mikrokontroler 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 mikrokontroler AT89S51 adalah sebagai berikut : 1. Sebuah Central Processing Unit 8 bit 2. Osilator : internal dan rangkaian pewaktu 3. RAM internal 128 byte 4. Flash memori 4 Kbyte 5. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal) 6. Empat buah programable port I/O yang masing-masing terdiri dari delapan buah jalur I/O 7. Sebuah port serial dengan kontrol serial full duplex UART
Universitas Sumatera Utara
8
8. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika 9. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz.
2.1.1. Konstruksi AT89S51
Mikrokontroler AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 µF dan resistor 10 KΩ dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 pF dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.
Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam 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 mikrokontroler dengan program yang sudah baku dan diproduksi secara massal, program diisikan ke dalam ROM pada saat IC
Universitas Sumatera Utara
9
mikrokontroler dicetak di pabrik IC.
Untuk keperluan tertentu mikrokontroler
menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble 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 mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer. Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup. Sarana Input/Ouput yang disediakan cukup banyak dan bervariasi. AT89S51 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).
Gambar 2.2 IC Mikrokontroler AT89S51
Universitas Sumatera Utara
10
Deskripsi pin-pin pada mikrokontroler AT89S51 : VCC (Pin 40) Suplay 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 programming. Pada fungsi 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. Pada saat flash programming diperlukan eksternal pull up terutama pada saat verifikasi program. Port 1 (Pin 1 - Pin 8) Port 1 adalah port dua arah masukan/keluaran 8-bit dengan pull-up internal. Sebagai tambahan, P1.0 dan P1.1 dapat diatur sebagai pewaktu/ pencacah-2 eksternal masukan pencacah (P1.0/T2) dan pewaktu/pencacah-2 masukan pemicu (P1.1/T2EX). Port 1 juga menerima byte-byte alamat saat pemrograman dan verifikasi flash. 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.
Universitas Sumatera Utara
11
Port 3 (Pin 10 – pin 17) Port 3 merupakan 8 bit port I/O dua arah dengan internal pull up. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut : 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 external)
P3.3 (pin 13)
INT1 (interrupt 1 external)
P3.4 (pin 14)
T0 (input external timer 0)
P3.5 (pin 15)
T1 (input external timer 1)
P3.6 (pin 16)
WR (menulis untuk eksternal data memori)
P3.7 (pin 17)
RD (untuk membaca eksternal data memori)
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 program (PROG) selama memprogram Flash. PSEN (pin 29) Program store enable digunakan untuk mengakses memori program eksternal. EA (pin 31) Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan program yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada pada
Universitas Sumatera Utara
12
memori internal. Pada saat flash programming, pin ini akan mendapat tegangan 12 Volt. XTAL1 (pin 19) Input untuk clock internal. XTAL2 (pin 18) Output dari osilator.
2.2. Sensor Ping ))) Ultrasonic Range Finder
Sensor Ping mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonik (40 kHz) selama t BURST (200 μs) kemudian mendeteksi pantulannya. Sensor Ping memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroler pengendali / sesuai dengan input kontrol dari pin SIG (pulsa trigger dengan t OUT min. 2 μs). Gelombang ultrasonik ini melalui udara dengan kecepatan kurang lebih 344 meter per detik, mengenai obyek dan memantul kembali ke sensor. Ping akan mengeluarkan pulsa output high pada pin SIG setelah memancarkan gelombang ultrasonik dan setelah gelombang pantulan terdeteksi Ping akan membuat output low pada pin SIG. Lebar pulsa High (t IN ) akan sesuai dengan lama waktu tempuh gelombang ultrasonik untuk 2x jarak ukur dengan obyek, sehingga jarak obyek yang terukur adalah [(t IN s x 344 m/s) ÷ 2] meter. Ilustrasi cara kerja sensor Ping ini dapat dilihat pada gambar dibawah ini.
Universitas Sumatera Utara
13
Sinyal Ultrasonik PING )))TM
½ waktu tempuh
)))
)))
(((
((( ½ waktu tempuh
Obyek
pantulan
Jarak yang diukur (a)
(b) Gambar 2.2 Ilustrasi Cara Kerja Ping)))
2.3. Komponen Pendukung 2.3.1. Resistor
Resistor komponen pasif elektronika yang berfungsi untuk membatasi arus listrik yang mengalir. Berdasarkan kelasnya resistor dibagi menjadi 2 yaitu : Fixed Resistor dan Variable Resistor dan umumnya terbuat dari carbon film atau metal film, tetapi tidak menutup kemungkinan untuk dibuat dari material yang lain.
Pada dasarnya semua bahan memiliki sifat resistif namun beberapa bahan tembaga perak emas dan bahan metal umumnya memiliki resistansi yang sangat kecil.
Universitas Sumatera Utara
14
Bahan–bahan tersebut menghantar arus listrik dengan baik, sehingga dinamakan konduktor. Kebalikan dari bahan yang konduktif, bahan material seperti karet, gelas, karbon memiliki resistansi yang lebih besar menahan aliran elektron dan disebut sebagai isolator.
2.3.1.1. Fixed Resistor
Resistor adalah komponen dasar elektronika yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian. Sesuai dengan namanya resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Tipe resistor yang umum berbentuk tabung porselen kecil dengan dua kaki tembaga dikiri dan kanan. Pada badannya terdapat lingkaran membentuk gelang kode warna untuk memudahkan pemakai mengenali besar resistansi tanpa mengukur besarnya dengan ohm meter. Kode warna tersebut adalah standar menufaktur yang dikeluarkan oleh EIA (Electronic Industries Association).
Gambar 2.3.1.1. Resistor karbon WARNA
GELANG I
GELANG II
GELANG III
GELANG IV
Hitam
0
0
1
-
Coklat
1
1
10
-
Merah
2
2
100
-
Universitas Sumatera Utara
15
Jingga
3
3
1000
-
Kuning
4
4
10000
-
Hijau
5
5
100000
-
Biru
6
6
1000000
-
Violet
7
7
10000000
-
Abu-abu
8
8
100000000
-
Putih
9
9
1000000000
-
Emas
-
-
0,1
5%
Perak
-
-
0,01
10%
Tanpa Warna
-
-
-
20%
Tabel 2.3.1.1. Gelang Resistor
Resitansi dibaca dari warna gelang yang paling depan ke arah gelang toleransi berwarna coklat, emas, atau perak. Biasanya warna gelang toleransi ini berada pada bahan resistor yang paling pojok atau juga dengan lebar yang lebih menonjol, sedangkan warna gelang yang keempat agak sedikit ke dalam. Dengan demikian pemakai sudah langsung mengetahui berapa toleransi dari resistor tersebut. Kalau anda telah bisa menentukan mana gelang pertama selanjutnya adalah membaca nilai resistansinya.
Biasanya resistor dengan toleransi 5%, 10% atau 20% memiliki gelang (tidak termasuk gelang toleransi). Tetapi resistor dengan toleransi 1% atau 2% (toleransi kecil) memiliki 4 gelang (tidak termasuk gelang toleransi). Gelang pertama dan
Universitas Sumatera Utara
16
seterusnya berturut-turut menunjukkan besar nilai satuan, dan gelang terakhir adalah faktor pengalinya.
2.3.1.2. Variable Resistor
Untuk kelas resistor yang kedua ini terdapat 2 tipe. Untuk tipe pertama dinamakan variabel resistor dan nilainya dapat diubah sesuai keinginan dengan mudah dan sering digunakan untuk pengaturan volume, bass, balance, dll. Sedangkan yang kedua adalah semi-fixed resistor. Nilai dari resistor ini biasanya hanya diubah pada kondisi tertentu saja. Contoh penggunaan dari semi-fixed resistor adalah tegangan referensi yang digunakan untuk ADC, fine tune circuit, dll. Ada beberapa model pengaturan nilai variable resistor, yang sering digunakan adalah dengan cara terbatas sampai 300 derajat putaran. Ada beberapa model variable resistor yang harus diputar berkali – kali untuk mendapatkan semua nilai resistor. Model ini dinamakan “Potentiometres” atau “Trimmer Potentiometres”.
Gambar 2.3.1.2.a Potensiometer
Universitas Sumatera Utara
17
Pada gambar 2.3.1.2a di atas untuk bentuk 3 biasanya digunakan untuk volume kontrol. Bentuk yang ke 2 merupakan semi fixed resistor dan biasanya di pasang pada PCB (Printed Circuit Board). Sedangkan bentuk 1 potentiometres. Ada 3 tipe didalam perubahan nilai dari resistor variabel, perubahan tersebut dapat dilihat pada gambar 2.3.1.2.b.
Gambar 2.3.1.2.b Grafik Perubahan nilai pada potensiometer
Pada saat tipe A diputar searah jarum jam, awalnya perubahan nilai resistansi lambat tetapi ketika putarannya mencapai setengah atau lebih nilai perubahannya menjadi sangat cepat. Tipe ini sangat cocok dengan karakteristik telinga manusia. Karena telinga sangat peka ketika membedakan suara dengan volume yang lemah, tetapi tidak terlalu sensitif untuk membedakan perubahan suara yang keras. Biasanya tipe A ini juga disebut sebagai “Audio Taper” potensiometer. Untuk tipe B perubahan resistansinya adalah linier dan cocok digunakan untuk Aplikasi Balance Control, resistance value adjustment in circuit, dll. Sedangkan untuk tipe C perubahan resistansinya kebalikan dati tipe A.
Universitas Sumatera Utara
18
2.3.2 Kapasitor
Kapasitor adalah komponen elektronika yang dapat menyimpan muatan listrik. Struktur sebuah kapasitor terbuat dari 2 buah plat metal yang dipisahkan oleh suatu bahan dielektrik. Bahan-bahan dielektrik yang umum dikenal misalnya udara vakum, keramik, gelas dan lain-lain. Jika kedua ujung plat metal diberi tegangan listrik, maka muatan-muatan positif akan mengumpul pada salah satu kaki elektroda metalnya dan pada saat yang sama muatan-muatan negatif terkumpul pada ujung metal yang satu lagi. Muatan positif tidak dapat mengalir menuju ujung kutub negatif dan sebaliknya muatan negatif tidak bisa menuju ke ujung kutub positif karena terpisah oleh bahan elektrik yang non-konduktif. Muatan elektrik ini “tersimpan” selama tidak ada konduktif pada ujung- ujung kakinya. Di alam bebas penomena kapasitor terjadi pada saat terkumpulnya muatan-muatan positif dan negatif diawan. dielektrik
Elektroda
Elektroda
Gambar 2.3.2. Skema kapasitor.
Kapasitor merupakan komponen pasif elektronika yang sering dipakai didalam merancang suatu sistem yang berfungsi untuk memblok arus DC, Filter, dan menyimpan energi listrik. Didalamnya 2 buah pelat elektroda yang saling berhadapan dan dipisahkan oleh sebuah insulator. Sedangkan bahan yang digunakan sebagai insulator dinamakan dielektrik. Ketika kapasitor diberikan tegangan DC maka energi
Universitas Sumatera Utara
19
listrik disimpan pada tiap elektrodanya. Selama kapasitor melakukan pengisian, arus mengalir. Aliran arus tersebut akan berhenti bila kapasitor telah penuh. Yang membedakan tiap - tiap kapasitor adalah dielektriknya. Berikut ini adalah jenis– jenis kapasitor yang dipergunakan dalam perancangan ini.
2.3.2.1 Electrolytic Capacitor (ELCO)
Gambar 2.3.2.1. Electrolytic Capacitor (ELCO)
Elektroda dari kapasitor ini terbuat dari aluminium yang menggunakan membran oksidasi yang tipis. Karakteristik utama dari Electrolytic Capacitor adalah perbedaan polaritas pada kedua kakinya. Dari karakteristik tersebut kita harus berhati – hati di dalam pemasangannya pada rangkaian, jangan sampai terbalik. Bila polaritasnya terbalik maka akan menjadi rusak bahkan “meledak”. Biasanya jenis kapasitor ini digunakan pada rangkaian power supply. Kapasitor ini tidak bisa digunakan pada rangkaian frekuensi tinggi. Biasanya tegangan kerja dari kapasitor dihitung dengan cara mengalikan tegangan catu daya dengan 2. Misalnya kapasitor akan diberikan catu daya dengan tegangan 5 Volt, berarti kapasitor yang dipilih harus memiliki tegangan kerja minimum 2 x 5 = 10 Volt.
Universitas Sumatera Utara
20
2.3.2.2 Ceramic Capacitor
Kapasitor menggunakan bahan titanium acid barium untuk dielektriknya. Karena tidak dikonstruksi seperti koil maka komponen ini dapat digunakan pada rangkaian frekuensi tinggi. Biasanya digunakan untuk melewatkan sinyal frekuensi tinggi menuju ke ground. Kapasitor ini tidak baik digunakan untuk rangkaian analog, karena dapat mengubah bentuk sinyal. Jenis ini tidak mempunyai polaritas dan hanya tersedia dengan nilai kapasitor yang sangat kecil dibandingkan dengan kedua kapasitor diatas.
Gambar 2.3.2.2. Ceramic Capacitor
2.3.2.3 Nilai Kapasitor
Untuk mencari nilai dari kapasitor biasanya dilakukan dengan melihat angka/kode yang tertera pada badan kapasitor tersebut. Untuk kapasitor jenis elektrolit memang mudah, karena nilai kapasitansinya telah tertera dengan jelas pada tubuhnya. Sedangkan untuk kapasitor keramik dan beberapa jenis yang lain nilainya dikodekan. Biasanya kode tersebut terdiri dari 4 digit, dimana 3 digit pertama merupakan angka dan digit terakhir berupa huruf yang menyatakan toleransinya. Untuk 3 digit pertama angka yang terakhir berfungsi untuk menentukan 10n, nilai n dapat dilihat pada tabel dibawah.
Universitas Sumatera Utara
21
Tabel 2.3.2.3. Nilai Kapasitor Misalnya suatu kapasitor pada badannya tertulis kode 474J, berarti nilai kapasitansinya adalah 47 + 104 = 470.000 pF = 0.47µF sedangkan toleransinya 5%. Yang harus diingat didalam mencari nilai kapasitor adalah satuannya dalam pF (Pico Farad).
2.3.3. Transistor
Transistor adalah komponen elektronika yang mempunyai tiga buah terminal. Terminal itu disebut emitor, basis, dan kolektor. Transistor seakan-akan dibentuk dari penggabungan dua buah dioda. Dioda satu dengan yang lain saling digabungkan dengan cara menyambungkan salah satu sisi dioda yang senama. Dengan cara penggabungan seperti dapat diperoleh dua buah dioda sehingga menghasilkan transistor NPN.
Bahan mentah yang digunakan untuk menghasilkan bahan N dan bahan P adalah silikon dan germanium. Oleh karena itu, dikatakan :
Universitas Sumatera Utara
22
1. Transistor germanium PNP 2. Transistor silikon NPN 3. Transistor silikon PNP 4. Transistor germanium NPN Semua komponen di dalam rangkaian transistor dengan simbol seperti pada gambar 2.3.3. Anak panah yang terdapat di dalam simbol menunjukkan arah yang melalui transistor. C
C B
B E NPN
E PNP
Gambar 2.3.3. Simbol tipe transistor Keterangan : C = kolektor E = emiter B = basis Didalam pemakaiannya transistor dipakai sebagai komponen saklar (switching) dengan memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (cut off) yang ada pada karakteristik transistor.
Pada daerah penjenuhan nilai resistansi persambungan kolektor emiter secara ideal sama dengan nol atau kolektor dan emiter terhubung langsung (short). Keadaan ini menyebabkan tegangan kolektor emiter (V CE ) = 0 Volt pada keadaan ideal, tetapi
Universitas Sumatera Utara
23
pada kenyataannya V CE bernilai 0 sampai 0,3 Volt. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan on seperti pada gambar 2.3.4.(a).
Vcc
Vcc IC
RB VB
R
Saklar On VCE
IB
VBE
Gambar 2.3.3.(a) Transistor sebagai Saklar ON Saturasi pada transistor terjadi apabila arus pada kolektor menjadi maksimum dan untuk mencari besar arus basis agar transistor saturasi adalah : I max =
Vcc ……………………………………………..…………….(2.1) Rc
hfe . I B =
IB =
Vcc ………………………………………….…………….(2.2) Rc
Vcc ………………………………………………………….(2.3) hfe . Rc
Hubungan antara tegangan basis (V B ) dan arus basis (IB ) adalah :
IB =
VB − VBE ……………………………………………………….(2.4) RB
V B = IB . R B + V BE …………………………………………………..(2.5)
VB =
Vcc . R B + VBE …………………………………………………(2.5) hfe . Rc
Jika tegangan V B telah mencapai VB =
Vcc . R B + VBE , maka transistor akan saturasi, hfe . Rc
dengan Ic mencapai maksimum.
Universitas Sumatera Utara
24
Gambar 2.3.4.(b) dibawah ini menunjukkan apa yang dimaksud dengan V CE (sat) adalah harga V CE pada beberapa titik dibawah knee dengan posisi tepatnya ditentukan pada lembar data. Biasanya V CE (sat) hanya beberapa perpuluhan volt, walaupun pada arus kolektor sangat besar bisa melebihi 1 volt. Bagian dibawah knee pada gambar 2.3.4.(b) dikenal sebagai daerah saturasi. IC Penjenuhan (saturation)
IB > IB (sat) IB = IB (sat)
Vcc Rc
IB Titik Sumbat (Cut off)
IB = 0 VCE
Gambar 2.3.3.(b) Karakteristik daerah saturasi pada transistor Pada daerah penyumbatan, nilai resistansi persambungan kolektor emiter secara ideal sama dengan tak terhitung atau terminal kolektor dan emiter terbuka (open). Keadaan ini menyebabkan tegangan (V CB ) sama dengan tegangan sumber (Vcc). Tetapi pada kenyataannya Vcc pada saat ini kurang dari Vcc karena terdapat arus bocor dari kolektor ke emiter. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan off seperti gambar dibawah ini. Vcc
Vcc IC
RB VB
R
Saklar Off VCE
IB
VBE
Gambar 2.3.3.(c) Transistor Sebagai Saklar OFF
Universitas Sumatera Utara
25
Keadaan penyumbatan terjadi apabila besar tegangan habis (V B ) sama dengan tegangan kerja transistor (V BE ) sehingga arus basis (IB ) = 0 maka : IB =
IC ……………………………………………………………(2.6) hfe
I C = I B . hfe ….………………………………………………………(2.7) I C = 0 . hfe ………..…………………………………………………(2.8) I C = 0 ………………………………………………………………..(2.9) Hal ini menyebabkan V CE sama dengan Vcc dapat dibuktikan dengan rumus : Vcc
= Vc + V CE …………..…………………………………………(2.10)
V CE
= Vcc – (Ic . Rc) …..……………………………………………(2.11)
V CE
= Vcc …..………………………………………………………(2.12)
2.4. Bahasa Assembly MCS-51
Mode pengalamatan menjelaskan bagaimana operand dioperasikan. Berikut penjelasan dari berbagai mode pengalamatan. Bentuk program assembly yang umum ialah sebagai berikut : Label
mnemonic
operand1 operand2
komentar
(isi memori) (opcode)
4000 7430
MOV
A, #35H
;copy 35H ke akumulator A
Universitas Sumatera Utara
26
Isi memori ialah bilangan heksadesimal yang dikenal oleh mikrokontroler kita, yang merupakan representasi dari bahasa assembly yang telah kita buat. Mnemonic atau opcode ialah kode yang akan melakukan aksi terhadap operand . Operand ialah data yang diproses oleh opcode. Sebuah opcode bisa membutuhkan 1,2 atau lebih operand, kadang juga tidak perlu operand. Sedangkan komentar dapat kita berikan dengan menggunakan tanda titik koma (;). Berikut contoh jumlah operand yang berbeda beda dalam suatu assembly. CJNE R5,#22H, aksi
;dibutuhkan 3 buah operand
MOVX @DPTR, A
;dibutuhkan 2 buah operand
RL A
;1 buah operand
NOP
; tidak memerlukan operand
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. Dari 51 instruksi, yang sering digunakan orang hanya 10 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
Universitas Sumatera Utara
27
........... ............ 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. 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: .................
Universitas Sumatera Utara
28
4. Instruksi RET Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh, ACALL TUNDA ............. TUNDA: ................. RET 5. Instruksi JMP
(Jump)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh, Loop: ................. .............. JMP Loop 6. 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 ................. 7. Instruksi JNB
(Jump if Not Bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh, Loop: JNB P1.0,Loop
Universitas Sumatera Utara
29
................. 8. Instruksi CJNE
(Compare Jump If Not Equal)
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh, Loop: ................ CJNE R0,#20h,Loop ................ 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
.............
Universitas Sumatera Utara
30
11. Dan lain sebagainya
2.5. 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.5. Software 8051 Editor, Assembler, Simulator (IDE)
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). 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.
Universitas Sumatera Utara
31
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 mikrokontroler.
2.5.1
Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar di bawah ini
Gambar 2.5.1. ISP- Flash Programmer 3.0a
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 mikrokontroler.
Universitas Sumatera Utara