Perangkat Lunak Mikrokontroler AT89C52 [10,11]

2.6.2.   Perangkat Lunak Mikrokontroler AT89C52 [10,11]

Bahasa pemrograman yang digunakan untuk memprogram IC Mikrokontroler AT89C52 adalah dengan menggunakan bahasa Assembly yang biasanya disimpan dengan menggunakan ekstensi .ASM. Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin (kumpulan kode biner yang merupakan instruksi yang dapat dimengerti dan dijalankan oleh komputer atau mikrokontroler) dan bahasa level tinggi (bahasa komputer yang memakai kata-kata dan pernyataan yang mudah dimengerti oleh manusia), misalnya bahasa C dan Pascal.
Mikrokontroler AT89C52 mempunyai beberapa instruksi, di antaranya adalah :
a. Instruksi aritmatika
Instruksi aritmatika/ADD dapat dilaksanakan dengan 4 cara, yaitu :
-         ADD A,7FH         pengalamatan langsung
-         ADD A@RO        pengalamatan tak langsung
-         ADD A,R7           pengalamatan register
-         ADD A,#35H       pengalamatan immediate
Untuk aritmatika BCD (Binary Coded Decimal), ADD dan ADDC harus diikuti dengan operasi DA A (Decimal Adjust) untuk meyakinkan hasil dari BCD, dimana DA A akan merubah nomor binary menjadi BCD.          
b. Instruksi logika
Instruksi logika pada mikrokontroler AT89C52 memberikan operasi boolean (AND, OR, EX-OR, dan NOT) dalam byte data. Semua instruksi logika menggunakan akumulator pada pengoperasian pertama dalam sebuah siklus mesin. Operasi logika dapat ditampilkan dalam sebuah byte ruang memori internal data tanpda meninggalkan akumulator.
c. Instruksi perputaran
Instruksi perputaran (RL A dan RR A) menggeser akumulator satu bit ke arah kiri atau kanan. Untuk pergeseran ke kiri, MSB berputar ke arah LSB, untuk pergeseran ke kanan LSB berutar ke arah posisi MSB. Variasi RL A dan RR A adalah pergeseran 9-bit yang menggunkan akumulator dan membawa pengikut ke dalam PSW. Instruksi SWAP A mengubah posisi tinggi ke posisi rendah dengan menggunakan akumulator.
d. Instruksi data transfer internal RAM
Instruksi ini memindahkan data dengan ruang memori internal yang akan dilaksanakan pada satu atau dua siklus mesin. Format instruksi ini adalah : MOV <tujuan> <sumber>
Menyediakan data untuk dipindahkan antar 2 internal RAM atau lokasi SFR dengan keluaran melalui akumulator. Bagian atas 128 byte data memori RAM hanya dapat diakses dengan pengalamatan langsung dan SFR hanya dapat dikases dengan pengalamatan langsung.
e. Instruksi variabel boolean
Mikrokontroler AT89C52 memiliki sebuah prosesor boolean yang lengkap (bit-tunggal). RAM internal mengandung 128 bit yang dapat dialamati dan ruang SFR dapat mendukung hingga 128 bit yang dapat dialamati lainnya. Semua jalur port juga merupakan bit yang dapat dialamati dan masing-masing dapat diperlakukan sebagai port bit tunggal yang terpisah. Instruksi-instruksi yang mengakses bit-bit ini tidak hanya di percabangan bersyarat saja, namun lengkap meliputi instruksi-intruksi pemindahan data (mov), set, clear, komplemen, OR, dan AND.
            f. Instruksi lompatan bersyarat
Instruksi pengetesan bit akan dilewati jika alamat bit set (JC,JB,JBC) atau jika alamat bit tidak diset (JNC dan JNB). Semua bit PSW adalah pengalamatan langsung, jadi parity bit atau flag yang digunakan secara umum dapat juga digunakan sebagai bit instruksi set.                   
            g. Instruksi lompatan
Ada beberapa jenis variasi instruksi : SJMP, LJMP, dan AJMP. Instruksi SJMP mempunyai ukuran 2 byte, instruksi LJMP mempunyai ukuran 3 byte dan instruksi AJMP mempunyai ukuran 2 byte.
            Dalam melakukan pembuatan program pada mikrokontroler AT89C52, ada beberapa jenis pengalamatan yang biasa digunakan, yaitu:
1.      Mode Pengalamatan Langsung (Direct Addressing Mode)
Mode pengalamatan ini digunakan untuk menunjuk data yang berada di suatu lokasi memori dengan cara menyebut lokasi (alamat) memori tempat data tersebut berada, misalnya: MOV A, 50H. Instruksi ini menyatakan bahwa data yang berada pada alamat 50H disalin ke akumulator A.
2.      Mode Pengalamatan Segera (Immediate Addressing Mode)
Mode pengalamatan segera digunakan untuk pemindahan data konstan atau menggunakan konstanta, yaitu data yang menyatu dengan instruksi. Contoh dari instruksi ini adalah MOV A, #40H. Instruksi ini mempunyai arti bahwa data sebesar 40H disalin ke akumulator A.
3.      Mode Pengalamatan Tidak Langsung (Indirect Addressing Mode)
Mode pengalamatan ini digunakan untuk mengakses data yang berada didalam memori namun lokasi memori tersebut tidak disebut secara langsung tetapi disimpan dulu ke register lain, contohnya: MOV A, @R0. Instruksi ini menyatakan bahwa data yang tersimpan pada memori yang alamat lokasinya tersimpan pada R0 disalin ke Akumulator A.
4.      Mode Pengalamatan Register (Register Addresing Mode)
Mode pengalamatan ini digunakan untuk mengakses data dari register sebagai tempat penyimpanan data yang praktis dan kerjanya sangat cepat, misalnya  MOV A, R0. instruksi ini mempunyai arti bahwa data dalam register serba guna R0 disalin ke Akumulator A.
5.      Mode Pengalamatan Kode Tidak Langsung (Code Indirect Addressing Mode)

            Mode pengalamatan ini digunakan untuk penyebutan data dalam memori   program yang dilakukan secara tidak langsung, misalnya instruksi MOVC     A,  @A+DPTR. Instruksi ini mempunyai arti bahwa data yang berada             pada lokasi memori program yang beralamat di DPTR (Data Pointer           Register-2 Byte) ditambah dengan nilai yang tersimpan dalam Akumulator         A (1 byte).                   
إرسال تعليق (0)
أحدث أقدم