Perangkat Lunak .1 KESIMPULAN DAN SARAN

P3.7 pin 17 RD untuk membaca eksternal data memori Tabel 2.1 Port 3 Pin 10 – pin 17 RST pin 9 Reset akan aktif dengan memberikan input high selama 2 cycle. ALEPROG 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 Memprogram 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 programming, pin ini akan mendapat tegangan 12 volt. .XTAL1 pin 19 input untuk clock internal. XTAL2 pin 18 Output dari osilator. 2.7 Perangkat Lunak 2.7.1 Pemrograman Bahasa Assembly untuk IC AT89S51 Mikrokontroler adalah sebuah chip yang dapat melakukan pemrosesan data secara digital serta pengontrolan rangkaian elektronik sesuai dengan perintah bahasa assembly yang diberikan pada IC tersebut. Perbedaan antara mikroprosesor dan mikrokontroler yaitu Universitas Sumatera Utara mikroprosesor merupakan CPU tanpa memori dan IO pendukung sebuah komputer, sedangkan mikrokontroler terdiri dari CPU, memori, IO dan unit pendukung lain seperti ADC yang terintregrasi didalamnya. Penggunaan mikrokontroler menjadi modern pada desain teknologi elektronika, karena chip ini dapat mereduksi sistem digital diskrit dengan perangkat lunak yang diprogram dan disisipkan dalam chip tersebut. Mikroprosesor dikembangkan kearah perangkat berbasis komputer sedangkan mikrokontroler lebih banyak ke sistem instrumentasi elektronik. Untuk berinteraksi dengan perangkat keras yang meliputi memberi perintah maupun pengaturan perangkat dapat digunakan suatu bahasa pemrograman dasar tingkat rendah yaitu bahasa pemrograman Assembly. Assembly merupakan bahasa dasar mesin, meskipun saat ini telah banyak bahasa pemrograman tingkat tinggi yang lebih sederhana dan mudah dipahami namun semua bahasa tersebut sesungguhnya juga merupakan pengembangan dari bahasa assembly. Agar kita dapat menguasai lebih mendalam akan interaksi antara user manusia dengan mesin maka pada kuliah microprosesor dan microkontroler di gunakan bahasa assembly sebagai bahasa pemrograman sistem microkontroler. Pemograman yang dipakai untuk membaca data pada rangkaian ini yaitu bahasa asembly ASM 51. Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus pembacaan instruksi yang tersimpan di dalam memori. Mikrokontroler menentukan alamat dari memori program yang akan dibaca, dan melakukan proses baca data di memori. Data yang dibaca diinterprestasikan sebagai instruksi. Alamat instruksi disimpan oleh mikrokontroler di register, yang dikenal sebagai program counter. Instruksi ini misalnya program aritmatika yang melibatkan 2 register. Sarana yang ada dalam program assembly sangat minim, tidak seperti dalam bahasa pemrograman tingkat atas high level language programming semuanya sudah siap pakai. Penulis program assembly harus menentukan segalanya, menentukan letak program yang ditulisnya dalam memori-program, membuat data konstan dan tablel konstan dalam memori- Universitas Sumatera Utara program, membuat variabel yang dipakai kerja dalam memori-data dan lain sebagainya. Beberapa instruksi yang sering digunakan pada bahasa asembly untuk ASM-51 antara lain: 1. Intruksi pemindahan data MOV instruksi MOV Instruksi ini merupakan perintah untuk memindahkan data dari satu tempat ke tempat lain, atau juga digunakan untuk memindahkan data dari satu pin microcontroler ke pin yang lain. 2. Instruksi lompatan SJMP Short Jump Instruksi ini merupakan perintah untuk melompat ke alamat untuk alamat kode yang pendek. AJMP Absolut Jump Instruksi ini merupakan kebalikan dari perintah SJMP yaitu perintah untuk melompat ke alamat kode yang jauh. ACALL Instruksi ini merupakan perintah untuk memanggil subrutin ke sebuah sub program atau perintah ini juga dapat membuat logika menjadi 0. RET Return Instruksi ini merupakan perintah untuk menghentikan subrutin dan melanjutkan ke instruksi berikutnya atau perintah untuk kembali kerutin pemanggil setelah instruksi acaal dilaksanakan 3. Instruksi operasi bit SETB Set Bit Instruksi ini merupakan perintah untuk mengisi alamat bit dengan nilai 1 menghidupkan buzzer CLR Clear Universitas Sumatera Utara instruksi ini merupakan perintah untuk Mengosongkan atau mengubah alamat bit dengan nilai 0 4. Instruksi lompatan bersyararat. CJNE Compare and Jump if Not Equal instruksi merupakan perintah untuk membandingkan nilai sebuah register dengan suatu data atau register lain dan akan melompat ke alamat yang dituju jika belum sama nilainya. JB Jump if Bit Set instruksi ini merupakan perintah untuk melakukan lompatan menurut isi nilai sebuah bit. Yang di cari adalah nilai “1″ pada bit yang diamati nilainya. Jika bit bernilai “0″ akan melanjutkan instruksi berikutnya, namun jika bit bernil ai “1″ akan melompat ke alamat yang ditentukan. JNB Jump if Not Bit Set instruksi ini merupakan Kebalikan dari JB, yang dicari adalah nilai NOL 0 pada bit yang dialamati. DJNZ Decrement and Jump if Not Zero instruksi ini merupakan perintah untuk mengurangi nilai sebuah register atau alamat tertentu dengan nilai 1 dan jika hasilnya sudah NOL 0 maka instruksi selanjutnya akan dijalankan. 5. Instruksi aritmatika INC Increment instruksi ini merupakan perintah untuk menambahkan “1″ angka dari registerdata yang dituju dan hasilnya disimpan pada register tersebut. Menambahkan isi Akumulator dengan sebuah nilai dan hasilnya disimpan kembali akumulator tersebut. DEC Decrement Universitas Sumatera Utara instruksi ini merupakan perintah untuk m engurangi “1″ angka dari register yang dituju dan hasilnya disimpan pada register tersebut. 6. Instruksi geser RR Rotate Right Instruksi ini merupakan perintah untuk Menggeser ke kanan perbit isi akumulator. RL Rotate Left Instruksi ini merupakan perintah untuk menggeser ke kiri perbit isi akumulator 7. Jbc Jump bit carry Instruksi ini merupakan perintah untuk lompat jika ada bit carry C=1 8. End Instruksi ini merupakan perintah untuk mengakhiri program. Universitas Sumatera Utara

BAB III PERANCANGAN ALAT DAN PROGRAM

3.1 Diagram Blok Sistem

Pemancar Photodioda AT89S51 Kontroler IR Penguat Buzzer Display LCD PD Laser pointer Gambar 3.1 Diagram Blok Sistem Diagram blok diatas menggambarkan aliran proses dari input hingga output yaitu proses kerja sistem. Kerja sistem dimulai dari kondisi bandul diam ayunan tidak bergerak maka pemancar yaitu laser pointer tidak mengenai photodioda dimana logika yang dihasilkan berlogika high, sehingga sensor photodioda akan menerima cahaya inframerah dan memberikan outputnya pada mikrokontroler yang akan menghasilkan logika Low yang akan ditampilkan pada LCD dengan tampilan nama alat tersebut yaitu RANCANGAN ALARM DIGITAL GEMPA BUMI, sedangkan pada saat terjadi gempa maka ayunan bandul akan bergerak yang akan membuat pemancar laser pointer mengenai photodioda sehingga logika yang dihasilkan adalah Low sehingga sensor akan mengirimkan outputnya pada mikrokontroler dengan logika high, Rangkaian akan mendeteksi logika tersebut dengan menampilkannya pada LCD yaitu TERDETEKSI GEMPA, buzzer telah diaktifkan dengan Universitas Sumatera Utara