Senin, 20 Mei 2013

Model Pemrograman Dalam MC68HC11F1

MODEL PEMROGRAMAN DALAM MIKROKONTROLER MC68HC11F1

          Pada pertemuan kesebelas untuk sesi sistem mikrokontroler kali ini kita lanjutkan dengan membahas model pemrograman dalam mikrokontroler MC68HC11F1. Di dalam mikrokontroller MC68HC11F1 terdapat delapan register central processing unit (CPU) antara lain yaitu :

1. Accumulator (A,B dan D)
          Accumulator A dan B adalah register 8 Bit, sebagai penampung lintas data ke dan dari ALU ( Arithmetic Logic Unit ), oleh karena itu selalu disebut dengan singkat Accu A atau Accu B. Operasi Arithmatik atau juga manipulasi data sebagian besar dilaksanakan dengan isi Accu ini dan pada register/Accu ini pula hasil operasi disimpan. Accumulator A dan B (masing-masing satu Byte) dapat digabungkan menjadi dua byte accumulator yang disebut Double Accumulator D (Accu D).

7 Accu A                    0 , 7 Accu B                0   A ; B
15 Double Accumulator D                             0   D

2. Index Register X dan Y (IX dan IY)
          Register ini adalah register 16 Bit yang digunakan untuk indexed addressing mode. Pada pengalamatan yang menggunakan indeks, isi dari indeks register 16 bit ditambah dengan 8 bit offset. Kedua register ini dapat juga digunakan sebagai register counter dan juga sebagai penyimpan sementara.

15 Index Register Y                                       0   IY
15 Index Register X                                       0   IX

3. Stack Pointer (SP)
          SP adalah register 16 Bit yang selalu berisi next free location pada stack. Stack adalah penyimpan yang mempunyai konfigurasi seperti LIFO (Last-In-First-Out ---> yang masuk terakhir akan keluar pertama kali). Stack digunakan untuk pemanggilan program bagian (menyimpan alamat instruksi berikutnya setelah program bagian selesai),selama intterupt(menyimpan isi semua register CPU)dan instruksi Push-Pull (menyimpan data sementara). Setiap kali satu Byte didalam Stack diambil atau pulled maka SP secara otomatis bertambah satu (increament). Pada aplikasi inisialisasi SP dilakukan pertama kali.

15 Stack Pointer                                             0   SP

4. Program Counter (PC)
          PC adalah register 16 bit yang berisi alamat instruksi berikutnya yang akan dikerjakan.

15 Program Counter                                       0   PC

5. Condition Code Register (CCR)
          CCR berisi 5 bit sebagai indikator status, 2 bit interrupt masking dan 1 bit STOP disable. Ke lima bit indikator status tersebut adalah H, N, Z, V dan C yang merefleksikan hasil operasi arithmatik dan operasi lainnya yang dilakukan CPU. Flag H digunakan untuk operasi aritmathik BCD, sedangkan status bit pada flag N, Z, V dan C digunakan sebagai syarat untuk instruksi percabangan ( loncat ). Masing-masing Bit dapat diterangkan seperti di bawah ini :

S        V        H        I        N        Z        V        C    CCR

Keterangan :
S : Stop Disable
X : X Interrupt Mask
H : Half Carry (dari bit 3)
I : Interrupt Mask
N : Negative
Z : Zerro
V : Overflow
C : Carry

Carry/Borrow (C )
          Bit Carry/Borrow di set, jika dalam operasi arithmatik yang telah dijalankan, hasil telah melebihi atau dibawah daerah bilangan register ALU yang dipakai. Bit ini juga akan terpengaruh pada instruksi Geser(shift) dan Putar(rotate).

Overflow (V)
          Bit V di set, jika pada operasi arithmetik (Bit tertinggi sebagai bit tanda) menghasilkan hasil yang melampaui daerah bilangan.

Zero (Z)
          Bit Z di set, jika hasil operasi arithmatik,logik dan juga manipulasi data yang telah dilaksanakan hasilnya NOL( zero ).

Negative (N)
          Bit N di set ,jika hasil operasi arithmatik,logik dan juga manipulasi data yang telah dilaksanakan hasilnya pada daerah Negatip. Hasil berada pada daerah negatip, jika MSB ( bit tertinggi ) adalah 1.

Interrupt Mask (I)
          Bit I dapat di set melalui Hardware atau Software. Untuk menutup/mencegah (disable --> Mask) semua maskable interrupt Bit I harus '1', sedangkan untuk mengijinkan atau melalukan semua maskable interrupt Bit I harus '0'. Bit I dapat di set atau di reset dengan instruksi(Software) SEI atau CLI

Half Carry (H)
          Bit H di set, jika terjadi carry antara bit ke 3 dan 4 dalam operasi penjumlahan. Bit ini biasanya digunakan pada kalkulasi dalam BCD.

X Interrupt Mask(X)
          Bit X hanya dapat di set melalui Hardware (RESET atau XIRQ ), dan dapat dihapus ('0') melalui instruksi transfer A ke CC Register (TAP) atau Return from Interrupt (RTI).

Stop Disable (S)
          Bit ini dapat dipengaruhi melalui software, pada kejadian S = '1', instruksi STOP adalah disable (dicegah).

Tidak ada komentar:

Posting Komentar