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