BAB II TINJAUAN PUSTAKA 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 canggi 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 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 Universitas Sumatera Utara
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 operasi logika Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz. 2.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 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. Universitas Sumatera Utara
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, 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 IC Mikrokontroler AT89S51 VCC (Pin 40) Suplai tegangan Universitas Sumatera Utara
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 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 mengaksememori 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 tabel berikut : Tabel 1. 2.1.3 Fungsi Pin Mikrokontrler 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.
2.1.4 Driver Jembatan H Motor stepper yang digunakan adalah motor stepper bipolar. Untuk mengendalikan motor stepper bipolar ini dibutuhkan sebuah rangkaian driver motor stepper. Rangkaian driver motor stepper ini berfungsi untuk memutar motor stepper searah/berlawanan arah dengan arah jarum jam. Mikrokontroler tidak dapat langsung mengendalikan putaran dari motor stepper, karena itu dibutuhkan driver sebagai perantara antara mikrokontroler dan motor stepper, sehingga perputaran dari motor stepper dapat dikendalikan oleh mikrokontroler. Rangkaian driver motor stepper bipolar ditunjukkan pada gambar 2.2 berikut ini :
Universitas Sumatera Utara
VCC
I
5V
VCC
III
5V
1.0k
1.0k Tip 127
18
330
2SC945
Tip 127
18
VCC 5V
2SC945 VCC
18 330
330
5V
1.0k
AT89C4051
Kum paran1
Tip 122
Kum paran2
Tip 122 Kum paran3
1.0k
2SC945 5V 1.0k
1.0k
AT89C4051
18 2SC945
330
II
330
330
VCC
5V
2SC945
18
Tip 127
VCC
AT89C4051
18
1.0k
Tip 127 18
2SC945
1.0k
5V
Motor
5V
330
VCC
Kum paran4
VCC
2SC945
Tip 122
Tip 122
AT89C4051
18 2SC945
330
IV
Gambar 2.2 Rangkaian driver motor stepper Untuk mempermudah penjelasan, maka rangkaian di atas dikelompokkan menjadi 4 rangkaian. Pada rangkaian di atas, jika salah input rangkaian I yang dihubungkan ke mikrokontroler diberi logika high dan input pada rangkaian lainnya diberi logika low, maka kedua transistor tipe NPN C945 pada rangkaian I akan aktip. Hal ini akan membuat kolektor dari kedua transistor C945 pada rangkaian I akan mendapat tegangan 0 volt dari ground. Kolektor dari transistor C945 yang berada di sebelah kiri atas diumpankan ke basis dari transistor tipe PNP TIP 127 sehingga basis dari transistor TIP 127 mendapatkan tegangan 0 volt yang menyebabkan transistor ini aktip (transistor tipe PNP akan aktip jika tegangan pada basis lebih kecil dari 4,34 volt). Aktipnya transistor PNP TIP 127 ini akan mengakibatkan kolektornya terhubung ke emitor sehingga kolektor mendapatkan tegangan 12 volt dari Vcc. Kolektor dari transistor TIP 127 dihubungkan ke kumparan, sehingga kumparan akan mendapatkan tegangan 12 volt. Hal ini akan mengakibatkan kumparan menimbulkan medan magnet. Medan magnet inilah yang akan mnarik motor untuk mengarah ke arah kumparan yang menimbulkan medan magnet tersebut. Sedangkan rangkaian II, III dan IV karena pada inputnya diberi logika low, maka kumparannya tidak menimbulkan medan magnet, sehingga motor tidak tertarik oleh kumparan-kumparan tersebut. Demikian seterusnya untuk menggerakkan motor agar berputar maka harus diberikan logika high secara bergantian ke masing-masing input dari masing-masing rangkaian. Universitas Sumatera Utara
2.1.5 Photo Dioda Pada sebuah LED, cahaya yang tampak atau emiter infra red merubah listrik menjadi cahaya. Cahaya pada sebuah LED terjadi akibat adanya gerakan dari sifat pembawa muatan minoritas pada arus maju yang mengalir. Suatu dioda yang digunakan cahaya dibawah kondisi tertentu, dapat dibuat sensitif dan junction dapat beroperasi sebagai sebuah photo sensor yang dikenal sebagai photo dioda, jadi photo dioda adalah sebuah dioda PN junction yang merupakan jenis Silicon bias mundur yang arus mengalirnya tergantung dari cahaya yang teradiasi. Cahaya radiasi pada persambungan pada panjang gelombang tertentu menyebabkan pasanganpasangan lubang elektron terbentuk dan ini berasal dari penambahan aliran arus pada rangkaian luar. Gambar 2.3 menunjukkan rangkaian photo detektor bias mundur. Dioda memiliki respon panjang gelombang yang luas.
IL
IL
R
E Gambar 2.3. Rangkaian Photo detektor bias mundur Sungguh pun pengeluaran arus kecil. Panjang gelombang dan sensitifitas bahan yang digunakan dengan tipe pemberi dan penerima material semikonduktor yang digunakan pada kedalaman penerobosan dari cahaya radiasi gambar 2.4 menunjukkan gelombang photo dioda MRD 500. 100 90 80 70 60
Intensitas
50 40 30 20 10
Arus
0 0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.8
0.9
1.0
1.1
Gambar 2.4 Respon gelombang photo dioda MRD 500
Universitas Sumatera Utara
Intensitas H dari flux yang teradiasi (diukur dalam uW/cm2) menentukan besarnya arus IL jika tidak ada radiasi cahaya maka arus bocor yang disebut arus gelap (IL) akan tetap, selain itu arus IL juga tergantung pada tegangan dari arus bias mundur, resistansi beban, dan temperatur. Photodioda PIN silicon dapat digunakan sebagai sumber tegangan photo. Cahaya yang bergeseran pada penipisan area akan menciptakan sebuah tegangan photo yang sebanding pada cahaya yang masuk, dalam hal ini tak ada bias dari luar yang dibutuhkan karena junction menggenerasikan kekuatan elektromotivnya sendiri. Photodioda digunakan dalam aplikasi – aplikasi yang meliputi kartu bacaan, kontrol cahaya ambient, layar proyektor. Photodioda yang dapat energi bias dari luar akan menyebabkan arus kontrol mengalir melalui rangkaian eksternal. Pada photodioda kita mengenal istilah responsivitas yaitu kemampuan dari sebuah photodioda untuk menambah arus bias mundur sebagai hasil dari sebuah penambahan pada cahaya. Reposivitas dari photodioda merupakan perbandingan dalam mA/mW pada panjang gelombang tertentu photodioda honeywell SE3452 mempunyai perbandingan 0.5mA/mW. Jika cahaya yang teradiasi pada cell 2 mV, dioda akan menghasilkan arus yang mengalir sebesar 1 mA (0,5 mA/mW x 2 mV). Respon tertinggi dari SE3452 sekitar 820nm .gambar 2.5 menunjukkan bias mundur dari sebuah photo dioda yang dihubungkan pada beban resistor dimana tegangan dinaikkan.
IR
Gambar 2.5. Rangkaian photodioda bias mundur dengan beban resistor Arus yang mengalir 0,1 mA melalui resistor 10kΩ akan menghasilkan tegangan 1 V, semakin tinggi harga resistor maka senakin besar pula tegangan yang dihasilkan tapi respon frekuensi akan semakin kecil, sungguhpun responsivitas photodioda berada dalam range 0,2 – 0,6. photo transistor mempunyai range 100, dan photo darlington mempunyai range dasar 400-600 disebabkan faktor Universitas Sumatera Utara
multiplikasi. Kapasitansi suatu dioda kecil dan karena waktu, responnya kecil sekitar -50ns atau kurang. Rise time (respon naik) suatu photo transistor berada pada range 1-20 us. Dalam menentukan emiter – emiter dan sensor-sensor cahaya, pertimbangan harus ditentukan dari sebuah perangkat. Karakteristikkarakteristik utama dari perangkat photo meliputi : 1. Spectral range 2. Besar output (emiter) 3. Sesinsitivitas (sensor) 4. Waktu respon 5. Pertimbangan – pertimbangan mekanik. 2.1.6 Transistor Sebagai Saklar. Banyak kegunaan dari transistor, salah satunya adalah sebagai saklar. Jika transistor digunakan sebagai saklar maka dalam hal ini transistor tersebut dioperasikan dalam daerah jenuhnya (saturasi) dan daerah yang menyumbat (cut-off). Pada saat transistor dalam keadaan jenuh maka resistansi antara kolektor dan emitor akan sangat kecil, maka transistor ini akan berfungsi sebagai saklar yang tertutup (ON) sedangkan apabila transistor dalam keadaan cut-off, maka resistansi antara kolektor dan emiter akan sangat besar, maka transistor akan berfungsi sebagai saklar yang terbuka (OFF). Lebih lanjut dapat kita lihat seperti gambar 2.6
Vi
a b Gambar 2.6. Transistor Sebagai Saklar a.
Transistor sebagai saklar
b.
Analogi transistor sebagai saklar
Pada saat transistor ON:
Universitas Sumatera Utara
- Arus IC = maximum - Tegangan VCE = 0 Paa saat OFF: - Arus IC = 0
- VCE = VCC – VRC
- VRC = Ic x Rc
= VCC – 0V
= 0 x Rc
VCE = VCC
=0 Pada saat basis transistor mengalir arus, transistor dalam keadaan on, maka: IB = Vi - VBE / RB………………….(2.1) IC = VCC / RC……………………….(2.2) 2.1.7 Regulator Tegangan Tetap (78xx) Catu daya merupakan sesuatu yang sangat penting untuk semua rangkaian elektronika. Dewasa ini semua sistim elektronika sudah beroperasi dengan catu daya yang stabil. Untuk mendapatkan tegangan yang benar-benar stabil dari suatu penyearah yang telah di-filter dengan kapasitor dapat digunakan rangkaian tegangan tetap. Regulator tegangan tetap ini terbagi atas 2 bagian rangkaian yaitu: * Regulator Positif (IC78XX) * Regulator Negatif (IC79XX) Regulator ini dimaksudkan untuk memberikan kemampuan catu yang mantap dengan komponen extern seminim mungkin. Ragulator ini bekerja berdasarkan asas-asas, seperti pembatasan arus lipat balik, penghambat panas, dan pembatas daerah aman yang mencegah tingkat keluaran bergerak keluar dari disipasi daya aman.
IC1 Trafo
D1 D2
C1
C3
D3 D4
C2
C4 IC2
Gambar 2.7. Regulator 78XX dan 79XX
Universitas Sumatera Utara
Tabel 2.3. Karakteristik IC 78XX dan 79XX
Type
V(out)
78/79XX
Volt
05 06 08 10 12 15 18 24
5 6 8 10 12 15 18 24
I Out (amper) Min 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
Max 1 1 1 1 1 1 1 1
V in (volt) Min 7.5 8.6 10.6 12.7 14.8 14.8 21 27.5
Max 20 21 23 25 27 27 33 36
Bila menggunakan regulator tegangan IC 78XX ada beberapa hal tentang kontruksi yang perlu diperhatikan: Semua konduktor yang mengalirkan arus-arus besar harus diusahakan setebal dan sependek mungkin. Semua sambungan umum harus dihubungkan dengan kondensator. Kondensator-kondensator kopling masukan dan keluaran harus dipasang sedekat mungkin dengan masukan dan pena keluaran IC Harus diadakan pendinginan yang memadai.
2.1.8 Kristal Kristal adalah komponen yang dibuat dari bahan alam yang menunjukan efek piezoelektrik, sehingga sering disebut Kristal Piezoelektrik. Bahan utama kristal yang dapat menimbulkan efek piezoelektrik adalah garam rachelle, tourmaline dan quarte. Dalam sebuah kristal Piezoelektrik, biasanya quartz, yang mempunyai yang dilapiskan pada permukaan yang berhadapan, apabila diberikan suatu potensial pada elektroda-elektrodanya maka gaya akan bekerja pada muatan-muatan yang terikat dalam kistal. Apabila komponen ini dipasang dengan benar, maka dalam kristal akan terjadi deformasi - deformasi sehingga terbentuk suatu sistim elektromekanik yang akan bergetar bila dibandingkan dengan benar. Frekuensi, resonansi dan nilai Q – nya tergantung pada dimensi kristal, orienatasi permukaan pada sumbu-sumbu kristal dan bagaimana komponen tersebut dipasang ( Mounted ) jangkauan frekuensinya dari beberapa KHz sampai beberapa Universitas Sumatera Utara
MHz. jangkauan nilai Q-nya yang beberapa ribu sampai beberapa ratus ribu data diperoleh secara komersial. Dengan nilai Q yang sangat tinggi dan dari kenyataan bahwa karakteristik Quartz sangat setabil terhadap waku dan temperatur, maka kristal akan menghasilkan stabilitas frekuensi pada osilator –osilator yang dibangun dengan menggunakan kristal. Pada hakikatnya, frekuensi dari suatu osilator kristal hanya dittentukan oleh kristalnya dan tidak oleh komponen lainnya. Lambang kristal dan ekivalen AC (model listriknya) dapat dilihat pada gambar 2.8 berikut ini :
Gambar 2.8. (a) lambang Kristal, (b) Rangkaian ekivalen AC Kristal 2.1.9 Rangkaian UV-Tron dengan AVR UV-Tron yang kita gunakan merupakan UV-Tron seperti bola lampu dengan board pengaturnya C3704. Anoda UV-Tron (kaki lebih panjang) dihubungkan dengan lubang di C3704 dengan tanda A dan Katoda (kaki lebih pendek) dengan lubang bertanda K.
Gambar 2.9 UV-Tron yang terpasang di C3704 Untuk input tegangan menurut spesifikasi, board C3704 membutuhkian input tegangan 10 – 30 V DC. Sebenarnya input tersebut tetap diregulasi ole C3704 menjadi 5V. Untuk melewati regulator pada C3704 dengan memberikan langsung tegangan 5V ke kaki output regulator 3704. Regulator pada 3704 merupakan regulator 7805 dengan tanda ICI. Ada 4 lubang ( 3 digunakan oleh regulator ) denagnn tanda Universitas Sumatera Utara
O (output), G (ground), I(input), dan 0 (output). Lubang ke-4 yang bertanda “0” tidak digunakan sebagai input tegangan 5V. Seperti gambar dibawah:
Figure 76: UV TRON Wiring
Gambar 2.10 Hubungan sumber tegangan C3704
Gambar 2.11 Hubungan sumber tegangan C3704 Jika kita menggunakan sumber tegangan 10-30V DC, bisa disambungkan dengan tanda “+” dan groundnya tetap kelubang betanda “-“. Hubungan ke AVR adalah melalui lubang Q (lubang denagn tanda 1)dan Q bar (lubang bertanda 2). Lubang 1 da 2 ini merupakan sinyal output berupa pulsa high atau low. Jika diinginkan uC untuk membaca masukan 5V, maka pin uC dihubungkan dengan lubang Q. Jika diinginkan uC untuk membaca kondisi low, maka hubungkan dengan kondisi low, maka hubungkan dengan lubang Q bar. Lebar pulsa saat mendeteksi adanya nyala lilin adalah 10 ms. Di board C3704 juga terdapat setting jumper 3.5.7. dan 9 ( disebut dengan setting background cancel level). Jika pancaran cahaya natural terlalu banyak dapat diset jumpernya ke- 9, defaulnya adalah 3. Jadi saat UV-Tron memberikan 3 sampai 9 pulsa ke board dengan interval waktu 2 detik atau kurang,rangkaian pemroses sinyal baru akan memberikan output pulsa yang selebar 10 ms itu. Universitas Sumatera Utara
2.3 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. 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. Universitas Sumatera Utara
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: ................. 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: Universitas Sumatera Utara
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 ................ 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 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. Universitas Sumatera Utara
Gambar 2.12. 8051 Editor, Assembler, Simulator (IDE) Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat diassemble 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. 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.13 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