Anda di halaman 1dari 9

LAPORAN APLIKASI MIKROKONTROLER RESET, PROGRAM FLOW

DISUSUN OLEH : 0704105010089 AULIA ARAFAT 0804105010064 VEATSZKY SURYA 0504105020051 SYAHRUL WAHYUDI 0604105020008 FERY IRIANDA 0604105020029 LIN AGUSTINA 0604105020031 LISTIA SUKMA PUTRI 0604105020060 HENDRI SURYA

FAKULTAS TEKNIK ELEKTRO UNIVERSITAS SYIAH KUALA DARUSSALAM BANDA ACEH 2010

KATA PENGANTAR
Puji syukur penyusun panjatkan kehadirat Allah SWT, atas segala rahmat dan karunia Nya sehingga penyusun dapat menyelesaikan Laporan ini. Laporan ini berjudul Reset, Program flow. Penyusun laporan ini tidak terlepas dari dukungan dan pembimbing dan berbagai pihak. Atas bantuan tersebut, penulis mengucapkan terima kasih kepada : Pembimbing Mata kuliah Aplikasi Mikrokontroler ini. Orang tua dan keluarga yang telah memberikan dukungan terbesar sehingga penyusun mampu menyelesaikan laporan ini. Rekan rekan seangkatan yang telah banyak membantu dan memberikan motivasi dalam proses penyelesaikan laporan ini.

Penyusun menyadari dan mohon maaf yang sebesar besarnya jika ditemukan banyal lelurangan di dalam laporan ini. Sehingga masukkan, kritik maupun saran sangat diharapkan demi memperbaiki laporan selanjutnya. Semoga dapat bermanfaat untuk kita semua. Amin.

Darussalam, 18 Oktober 2010

Penyusun

DAFTAR ISI KATA PENGANTAR I DAFTAR ISI PENDAHULUAN TEORI PEMBAHASAN KESIMPULAN II 1 2 3 5

DAFTAR PUSTAKA III

II

PENDAHULUAN
Secara umum kelompok instruksi yang dipakai untuk mengatur aliran program terdiri atas instruksi instruksi JUMP, instruksi instruksi untuk membuat dan memakai sub rutin / modul dan instruksi instruksi JUMP bersyarat. Selain itu dikenal pula instruksi PUSH dan POP yang dikerjakan secara tidak langsung karena instruksi pemanggilan subrutin dan kembali dari subrutin. Karena program counter adalah satu satunya register dalam mikrokontroler yang mengatur aliran program, maka kelompok instruksi pengatur aluran program tersebut semuanya merubah nilai program counter, sehingga pada saat kelompok instruksi ini dijalankan, isi program counter bisa tidak urut dari isi sebelumnya. Nilai dari program counter ini bisa berubah, karena adanya pengaruh dari perangkat keras yaitu pada saat mikrokontroler di reset atau menerima sinyal interupsi dari perangkat input/output.

TEORI
Mikrokontroler menjalankan instruksi demi instruksi, selesai menjalankan satu instruksi mikrokontroler langsung menjalankan instruksi berikutnya, hal ini dilakukan dengan cara menaikkan isi program counter, dengan demikian pada saat instruksi bersangkutan dijalankan program counter selalu menyimpan lokasi dari memori program yang menyimpan instruksi berikutnya. Pada saat mikrokontroler menjalankan kelompok instruksi JUMP, nilai program counter yang runtun sesuai dengan aluran program diganti dengan lokasi memori program baru yang dikehendaki pemrograman. Sedangkan isi lokasi berikutnya disimpan terlebih dahulu ke satch ( PUSH ) secara tak langsung. Di dalam mikrokontroler, terdapat 3 macam instruksi JUMP diantaranya : 1. Instruksi LJMP ( Long Jump ) 2. Instruksi AJMP ( Absolute Jump ) 3. Instruksi SJMP ( Short Jump ) Cara kerja ketiga instruksi diatas sama persis yakni memberi nilai baru pada program counter. Kecepatannya juga sama persis. Yang berbeda disini adalah ukuran instruksinya. Kalau instruksi LJMP ukurannya 3 byte sedangkan instruksi AJMP dan SJMP hanya 2 byte.

PEMBAHASAN
Kelompok instruksi JUMP : 1. Instruksi LJMP Kode untuk instruksi LJMP adalah 0 2h. lokasi memori program dinyatakan dengan bilangan biner 16 bit yang artinya hanya bisa menjangkau dengan jumlahnya 216 atau 64 Kb. instruksi LJMP terdiri atas 3 byte yang dinyatakan dengan bentuk umum 02 aa aa. 02 adalah lokasi memori program bagian bawah bit 8 bit 15 sedangkan aa adalah lokasi memori program bagian atas bit 0 bit 7. 2. Instruksi AJMP Lokasi memori program dinyatakan dengan bilangan biner 11 bit yang artinya hanya bisa menjangkau dengan jumlah 211 atau 2 Kb. Instruksi AJMP terdiri atas 2 byte. Byte pertama merupakan kode untuk instruksi AJMP (0001b) yang digabung dengan lokasi memori program bit lokasi 8 bit 10, byte kedua dipakai untuk menyatakan lokasi memori program bit lokasi 0 bit 7. 3. Instruksi SJMP Instruksi SJMP dinyatakan dengan pergeseran relative terhadap nilai program counter saat instruksi dilaksanakan. Pergeseran relative tersebut dinyatakan dengan 1 byte bilangan 2s complement yang bisa dipakai untuk menyatakan nilai antara -128 sampai +127. Nilai negatif dipakai untuk menyatakan bergeser ke instruksi sebelumnya, sedangkan nilai positif dipakai untuk menyatakan bergeser ke instruksi sesudahnya. Kelompok instruksi untuk sub rutin Selain melibatkan program counter, instruksi juga melibatkan stack yang diatur oleh penunjuk register stack. Sub rutin merupakan sekumpulan instruksi yang karena berbagai pertimbangan dipisahkan dari program utama. Bagian bagian di program utama akan memanggil (CALL) sub rutin artinya mikrokontroler sementara meninggalkan aliran program utama untuk mengerjakan instruksi instruksi dalam sub rutin, selesai mengerjakan sub rutin mikrokontroler kembali ke aliran program utama.

Satu satunya cara kembali ke program dari eksekusi sub rutin adalah dengan menggunakan instruksi RET pada akhir sub rutin. Sedangkan untuk memanggil sub rutin digunakan instruksi ACALL atau LCALL. Kelompok instruksi lompatan bersyarat Instruksi jump bersyarat merupakan instruksi inti bagi mikrokontroler. Selain melibatkan instruksi program counter, juga melibatkan kondisi kondisi tertentu yang biasanya dicatat dalam bit bit khusus yang terhimpun dalam register tertentu. 1. Instruksi JZ / JNZ Adalah instruksi JUMP bersyarat yang memantau nilai akumulator A. 2. Instruksi JC / JNC Adalah instruksi JUMP bersyarat yang memantau nilai bit carry di dalam program status word. 3. Instruksi JB / JNB / JBC Adalah instruksi JUMP bersyarat yang memantu nilai nilai bit tertentu. Bit bit tertentu ini bisa merupakan bit bit dalam register status maupun kaki masukkan mikrokontroler MCS 51. Kelompok instruksi proses dan test Ada dua instruksi yang melakukan terlebih dulu suatu proses, kemudian memantau hasil proses untuk menentukan apakah harus lompat atau tidak. Kedua instruksi itu adalah : 1. Instruksi DJNZ Adalah instruksi yang akan mengurangi 1 nilai register serbaguna atau memori data dan akan lompat ke memori program yang dituju jika ternyata setelah pengurangan 1 tersebut hasilnya tidak 0. 2. Instruksi CJNE Membandingkan 2 nilai yang disebut dan MCS akan lompat ke memori program yang dituju kalai kedua nilai tersebut tidak sama.

KESIMPULAN
Dari laporan di atas, adapun kesimpulan yang dapat diambil : 1. Nilai program counter bisa berubah karena adanya pengaruh dari perangkat keras. 2. Mikrokontroler menjalankan instruksi, selesai menjalankan instruksi, mikrokontroler langsung menjalankan instruksi berikutnya. 3. Pada mikrokontroler, terdapat 3 macam instruksi JUMP : instruksi SJMP, instruksi AJMP, instruksi LJMP. 4. Nilai negatif digunakan untuk menyatakan bergeser ke instruksi sebelumnya. 5. Nilai positif digunakan untuk menyatakan bergeser ke instruksi selanjutnya.

DAFTAT PUSTAKA
Eko putra agfianto, 2004, Belajar mikrokontroler AT89C51/52/55, penerbit gava media.