Mikrokontroler
Pemrograman Bahasa Assembly 8051
Pemrograman bahasa assembly dari 8051 membutuhkan pengertian akan template pemrograman, pengarahan assembler dan tipe data, dsb. Diskusi singkat tentang assembler peralatan pemrograman, penghubung, dsb. juga penting saat kita hendak memulai. Pembaca dapat memeriksa peralatan pemrograman dan sistem pengembangan yang tersedia dan mencoba untuk mengerjakan program-program sederhana pada platform. Sebagian besar fitur yang didukung oleh sistem [...]
Menggunakan Penunjuk Stack
Menggunakan Penunjuk Stack
Penunjuk stack 8051 memiliki lebar 8-bit. Jika tidak dijalankan secara spesifik, ia di-load dengan nilai default 07H, setelah reset. Stack adalah suatu set memori lokasi yang dicadangkan untuk penyimpanan sementara dari hasil intermediate atau register. Memori stack terpakai saat perintah-perintah seperti PUSH, POP, ACALL, LCALL, RET, RETI dieksekusi.
Mari kita lihat bagaimana operasi stack [...]
Perintah Pertukaran dan SWAP
SWAP A
Perintah SWAP A menukarkan nibbles dari akumulator. Tidak ada flag yang terpengaruh. Operasi perintah SWAP A ditunjukkan oleh gambar:
Jika akumulatornya mengandung OFH, maka setelah perintah SWAP A, akumularot akan mengandung FOH. Tidak ada flag yang dipengaruhi.
XCH A,<,byte>
Perintah ini menukarkan konten dari akumulator dengan variable bit. Mari kita lihat perintah tersebut:
Setelah pengeksekusian perintah-perintah ini, akumulator [...]
Perintah Rotasi
Perintah Rotasi
Perintah rotasi memungkinkan rotasi dari konten akumulator. Ada empat perintah rotasi: RR, RL, RLC, RRC.
RR A (Rotasi Akumulator ke Kanan)
Konten dari akumulator dirotasikan sebanyak 1 bit ke kanan. Bit 0 berpindah ke posisi bit 7 sebagaimana ditunjukkan gambar dibawah :
Sebagai contoh, jika akumulator mengandung 1000 0000B, maka setelah perintah RL A, hasil dalam akumulator [...]
Perintah Pencabangan Program (JBC – CJNE)
JBC (Jump if Bit Set and Clear Bit)
Bit JBC, perintah rel menguji yang terspesifikasikan secara bit. Jika bit di-set, maka Jump dilakukan ke alamat relatif dan yang terspesifikasi secara bit di dalam perintah dibersihkan. Segmen program berikut menguji bit yang kurang signifikan (LSB: Least Significant Byte), dan jika diketemukan bahwa ia telah di-set, program melompat [...]
Perintah Pencabangan Program (LJMP – JB)
LJMP (Long Jump)
Long Jump memungkinkan lompatan tak bersyarat kemana saja dalam lingkup ruang memori program 64K. LCALL adalah perintah 3-byte. Alamat tujuan 16-bit ditentukan secara langsung dalam perintah tersebut. Alamat tujuan ini di-load ke dalam konter program oleh perintah LJMP. Sebagai contoh, untuk melompat ke lokasi 0200H, kita dapat menulis “LJMP 0200H”
LCALL (Long Call)
LCALL memungkinkan [...]
Perintah Pencabangan Program (ACALL – SJMP)
Perintah Pencabangan Program
ACALL
Panggilan mutlak digunakan untuk memanggil subrutin yang berada dalam jangkauan 2K dari memori program, dimulai dari byte berikutnya mengikuti perintah ACALL. Ini adalah perintah 2-byte. Ini tidak mempengaruhi flag PSW manapun. Byte kode perintahnya memiliki alamat 11-bit, dibutuhkan untuk mengalamatkan ruang memory 2K, sebagaimana yang ditunjukkan gbr.1:
Gambar 1
Alamat-alamat 11 bit berikut ini terhubung [...]
Perintah Logika, Variabel Boolean dan Pencabangan pada MCS-51
Perintah Logika
Operasi gerbang logika AND, OR, Exclusive-OR dapat dijalankan dalam MCS-51. Perintah-perintah ini menerima dua operand 8-bit, dan hasilnya disimpan di tujuan, tidak ada flag yang dipengaruhi oleh perintah-perintah ANL, OR dan XOR. Ada beberapa perintah operand-tunggal seperti CLR, SETB dan CPL; perintah rotasi RR, RRC, RL, RL; dan perintah SWAP. Penting untuk dicatat bahwa [...]
Set Perintah MCS-51
Set instruksi dari MCS-51 terdiri dari perintah transfer data, perintah aritmatika, perintah logika, perintah manipulasi variable Boolean dan instruksi transfer. MCS-51 mendukung 111 perintah yang dapat diklasifikasikan sebagai perintah satu-byte, dua-byte, dan tiga-byte. Ada 45 perintah satu byte, 45 perintah dua-byte, dan 17 perintah tiga-byte. Format perintah terdiri dari sebuah mnemonic diikuti oleh tujuan dan [...]
Mode pengalamatan 8051
Mode pengalamatan menjabarkan cara bagaimana operandi diakses dengan instruksi. Ada 5 mode pengalamatan yang didukung oleh MCS-51:
Pengalamatan register
Dalam pengalamatan register, register R0 sampai R7 dari register bank yang telah dipilih, akumulator, B-register, bit pembawa dan DPTR digunakan. Sebuah instruksi MCS-51 menggunakan mode pengalamatan ini menunjukkan register-register R0 sampai R7 opcode-nya sendiri. Bit-bit yang kurang [...]


