BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 2)


Pada pembahasan yang dulu yaitu pada BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 1), banyak membahasa tentang perkenalan dasar-dasar mikrokontroler, berikut ini merupakan kelanjutannya, Selamat Belajar 
.
6.         Organisasi Memori.   Pada keluarga MCS-51 ini pengalamatan memori  dibedakan atas dua yaitu  untuk program memori dan untuk data memori.  Pemisahan antara program memori dan data memori merupakan ciri khas MCS-51.  Masing-masing program memori dan data memori dapat mengalamati sampai 64 Kilobyte , dengan masing-masing byte lebar datanya 8 bit.

            a.         Program memori.   Program memori hanya dapat dibaca, tidak dapat         ditulis. Di sini tersimpan program yang akan dijalankan oleh MCS-51 dan data-   data konstanta. Sinyal pembacaan eprom eksternal adalah dari pin -           PSEN. Pada MCS-51 ada dua tipe organisasi memori dari program memori, yaitu :
   1)         Pengaksesan program memori sebagian berasal dari internal           eprom yang menempati alamat terendah dan alamat berikutnya dari            eprom eksternal. Sebagai contoh untuk MCS-51 dengan model        eprom internal seperti 8051, 8051AH, 8751, alamat 4 Kbyte             program memori terendah adalah ROM internal dan alamat berikutnya    adalah pada eprom eksternal.
   2)         Pengaksesan program memori yang semuanya dari eksternal          eprom.       
            Secara diagram blok digambarkan sebagai berikut :

Gambar 3.3 Organisasi Program Memori


            b.         Pemetaan  Program Memori.  Pemetaan program memori    ditunjukkan sebagai berikut :

                        1)         Alamat 0000H merupakan awal program. Setelah reset, CPU            akan  loncat pada alamat ini dan mengerjakan instruksi di dalamnya.
                        2)         Pada   fungsi  khusus  alamat  3H  dan   seterusnya  dengan interval 8 byte  dipakai  sebagai   alamat   dari   vektor   interupsi. Bila  interupsi  tidak  dipakai,  maka  alamat  tersebut dapat dipakai untuk program  biasa.

            c.         Data memori.  Data memori menempati alamat yang terpisah dari   program  memori. Data memori merupakan tempat penyimpanan data variabel, operasi stack dan sebagainya. Data memori dapat dibaca dan ditulis. Sinyal             pembacaan untuk eksternal ram berasal dari pin-RD dan untuk           penulisan berasal dari pin-WR. Peta   data memori  digambarkan sebagai  berikut :

                                                Gambar 3.4 Organisasi data memori                                           

            Alamat 00H-FFH (untuk 8051) merupakan alamat dari internal ram           yang   dapat dialamati dalam dua mode. Pada alamat 00H - 7FH dapat      dialamati dalam mode direct maupun indirect addressing. Alamat 80H - FFH    hanya dapat dialamati dalam mode direct addressing. Di luar alamat tersebut merupakan alamat eksternal ram.
32 byte terendah data memori terbagi atas 4 buah bank yang masing-masing terdiri atas 8 buah register. Kombinasi dari bank ini ditentukan oleh         register PSW (pembahasan mengenai ini bisa dilihat pada bab berikutnya).             Register- register tersebut adalah R0 sampai R7  yang menempati alamat 00H -    1FH. Di atasnya merupakan segmen bit addresable yang besarnya 16 byte,    menempati alamat 20H sampai 2FH. Alamat berikutnya yaitu mulai 30H sampai 7FH dapat dibagai sebagai data ram.
            Setelah kondisi reset, kondisi baku register SP (stack pointer) akan             menuju alamat 07H dan begitu program dijalankan isi register SP akan         ditambah 1 (menunjuk ke alamat 08h). Dan ini merupakan register bank 1 register R0.  Bila memakai lebih dari satu bank register maka SP harus diinisialisasi ke lokasi yang lain.


BAB REGISTER MIKROKONTROLER MCS-51


7.         Umum.           Sebagaimana semua mikrokontroler, MCS-51 memiliki sejumlah register  yang memiliki fungsi khusus (special function register - SFR) dan register umum (general purpose register).  General purpose register yang dapat diakses adalah 8 byte per bank yaitu register R0-R7, dengan jumlah bank sebanyak 4.  Special Function Register yang terdapat pada mikrokontroler ini memiliki address 080h-0FFh dengan peta memori seperti pada gambar 3.1. Tempat yang kosong pada peta memori tidak diimplementasikan dalam chip. Pembacaan data pada tempat kosong ini akan menghasilkan data acak, sedangkan penulisan data pada tempat-tempat kosong tersebut tidak akan mengakibatkan perubahan apa-apa. Register yang ditulis dalam tanda kurung menunjukkan register yang hanya ada pada versi 8032/8052/8752. Semua Register yang terletak pada kolom terkiri adalah register-register yang dapat dialamati per bit.











F8h








FFh
F0h
B







F7h
E8h








EFh
E0h
ACC







E7h
D8h








 DFh
D0h
PSW







D7H
C8h
(T2CON)

(RCAP2L)
(RCAP2H)
(TL2)
(TH2)


CFh
C0h








C7h
B8h
IE







BFh
B0h
P3







B7h
A8h
IP







AFh
A0h
P2







A7h
98h
SCON
SBUF






9Fh
90h
P1







97h
88h
TCON
TMOD
TL0
TL1
TH0
TH1


8Fh
80h
P0
SP
DPL
DPH



IP
87h

Gambar 4.1 Peta memori Special Function Registers


8.         Deskripsi Fungsi Register.          Masing-masing register tersebut dapat dideskripsikan sebagai berikut :
            a.         Register ACC (accumulator).  Register ini memiliki alamat  0E0h,     dapat dialamati per bit (bit adressable).  Pada penulisan program assembly, register ini biasa ditulis dengan kode A.
            b.         Register B.    Register ini memiliki alamat  0F0h, dapat dialamati per            bit (bit adressable).  Pada penulisan program assembly, register ini biasa ditulis             dengan kode B. Register ini digunakan pada proses perkalian dan      pembagian,   dan dapat dipakai pada instruksi lain sebagai register umum.
            c.         Register PSW (Program Status Register).   Register ini memiliki       alamat  0D0h, dapat dialamati per bit (bit adressable).  Pada penulisan        program assembly, register ini biasa ditulis dengan kode PSW.
            Bit-bit pada register ini berikut fungsinya dapat dilihat pada tabel di bawah ini :




CY
AC
F0
RS1
RS0
OV
-
P
(MSB)






(LSB)

Tabel 4.1 Fungsi bit pada register PSW

Simbol
Posisi
Nama dan Arti
CY
PSW.7
carry flag

AC

PSW.6
auxiliary carry flag, untuk operasi menggunakan bilangan BCD (binary coded decimal)
F0
PSW.5
Flag 0, bisa digunakan untuk keperluan pemakai
RS1
PSW.4
Bit 1 pemilih bank register    *)
RS0
PSW.3
Bit 0 pemilih bank register   *)   
OV
PSW.2
Overflow flag
-
PSW.1
flag yang dapat didefinisikan oleh pemakai

P

PSW.0
Parity flag yang di-set atau di-clear oleh hardware setiap siklus instruksi untuk memberikan kode parity terhadap isi register Accumulator

            *)         RS1 dan RS0 menentukan pemilihan register bank sebagai berikut :
Tabel  4.2 Pemilihan Bank Register R0-R7

RS1
RS0
Bank
Address Register R0-R7
0
0
0
00h - 07h
0
1
1
08h - 0fh
1
0
2
10h - 17h
1
1
3
18h - 1fh

d.         Stack Pointer (SP).      Register yang  memiliki alamat  081h ini nilainya ditambah 1 (increment) sebelum data disimpan dengan perintah PUSH ataupun CALL. Stack Pointer memiliki nilai 07h setelah proses             RESET dan POWER          ON, dengan demikian stack akan berawal dari alamat   080h. Namun posisi stack bisa berada di mana saja RAM internal.
e.         Data Pointer (DPTR).    Register ini adalah register 16 bit yang terdiri          dari dua register 8 bit yaitu DPL  (address : 082h) dan DPH (address : 083h). DPTR digunakan untuk menunjuk address memory  16 bit yang akan diakses        misalnya oleh instruksi MOVX  A,@DPTR.
f.          PORT 0-3 (P0-P3).   Register-register ini merupakan isi dari latch port         eksternal P0,P1,P2 dan P3. Memberikan nilai pada register ini sama artinya dengan memberikan data output pada pin port yang bersangkutan.
g.         Register SBUF (Serial Data Buffer). Register ini sebenarnya terdiri dari 2 buah register input dan output. Membaca register ini sama    artinya dengan membaca data yang diterima melalui pin serial port.         Menuliskan nilai pada register ini akan menghasilkan pengiriman nilai             tersebut melalui port serial keluar.
h.         Register TIMER.   Yaitu register-register 16 bit yang merupakan isi dari     timer/counter 0,1, dan 2. Timer/counter 1 memiliki register TH1 dan         TL1,    timer/counter 0 registernya TH0 dan TL0, sedangkan timer/counter 2    registernya TH2 dan TL2. Register TH2 dan TL2 hanya terdapat pada versi      8052.
i.          Register Capture (RCAP2L dan RCAP2H).  Register ini adalah register 16 bit yang digunakan oleh timer/counter 2 pada 8052 untuk melakukan mode capture. yaitu suatu mode dimana pada saat transisi tegangan logika pada pin T2EX,  maka isi register TH2 dan TL2 akan dipindahkan ke register capture ini.
j.          Register PCON (Power control).    Register ini memiliki alamat  087h,           dengan bit-bit kontrol sebagai berikut :

SMOD
-
-
-
GF1
GF2
PD
IDL
(MSB)






(LSB)




Tabel 4.3 Fungsi bit kontrol pada register PCON

Simbol
Posisi
Nama dan Arti
SMOD
PCON.7
Double baud rate bit
SMOD =1 baud rate adalah double jika serial port dijalankan pada mode 1,2, atau 3
GF1
PCON.3
General purpose flag 1 (flag untuk penggu-naan umum)
GF2
PCON.2
General purpose flag 2 (flag untuk penggu-naan umum)
PD
PCON.1
Mengaktifkan Power Down Mode untuk 80C51BH
IDL
PCON.0
Mengaktifkan Idle Mode untuk 80C51BH   

                        Keterangan :
1)         penjelasan   selengkapnya tentang baud rate, serial port dan mode            kerjanya dapat dilihat pada pembahasan mengenai serial port.
2)         GF1    dan    GF2    dapat    dipergunakan   pemrogram untuk             mendefinisikan sendiri bit flag yang diinginkan.
3)         Power  down  adalah  salah  satu  fasilitas untuk mematikan             operasi  mikrokontroler tanpa   menghilangkan isi data pada RAM, yang hanya tersedia   pada MCS-51   dengan   versi  CHMOS yaitu 80C51BH,   80C31BH    atau    87C51.  Pada mode ini, setelah flag PCON.1 diset, maka clock  osilator   sistem   dihentikan   sehingga             mikrokontroler berhenti    beroperasi,    akan   tetapi   isi RAM dan isi register-register yang ada tidaklah hilang. Untuk keluar dari mode ini dapat   dilakukan  dengan  melakukan hardware  RESET yang akan menyebabkan hilangnya isi SFR (special function register) sedangkan isi RAM tetap seperti semula.
4)         Idle mode juga hanya tersedia pada MCS-51 versi CHMOS. Pada   mode ini,  sinyal clock dimatikan hanya pada unit pemroses pusat. Timer, sistem Interrupt dan    Serial    Port    tetap   bekerja sebagaimana biasa. Dengan tidak bekerjanya unit pemroses pusat,             maka arus listrik yang ditarik oleh mikrokontroler adalah berkurang sehingga menghemat energi catu daya. Hal   ini biasanya dilakukan    pada saat mikrokontroler menunggu adanya sinyal interrupt.  Selama  proses  tunggu,  adalah  bijaksana  jika  unit             pemroses pusat dimatikan untuk penghematan energi.
                  Untuk   keluar   dari   mode   ini   ada   dua   cara, yaitu dengan adanya             pengaktifan sinyal interrupt yang secara otomatis akan membuat bit idle    mode   menjadi   0   secara hardware. Setelah interrupt selesai dilayani       (ditandai dengan eksekusi instruksi IRET), maka mikrokontroler kembali pada idle mode. Cara kedua adalah dengan hardware RESET.
k.         Register IE (Interrupt Enable).     Register ini memiliki address 0A8h,           digunakan  untuk mengatur sistem  interrupt. Penjelasan selengkapnya mengenai sistem interrupt dapat dilihat pada pembahasan tentang interrupt        pada bab yang bersangkutan. Bit-bit kontrolnya adalah :
EA
-
ET2
ES
ET1
EX1
ET0
EX0
(MSB)






(LSB)
            Fungsi dari bit-bit kontrol ini dapat dilihat pada tabel 4.4 :
Tabel 4.4. Fungsi bit kontrol pada register IE
Simbol
Posisi
Nama dan Arti
EA
IE.7
Enable Interrupt
EA = 0 sistem interrupt tidak bekerja
EA =1  mengijinkan pengaktifan tiap sumber interrupt
ET2
IE.5
Dicadangkan untuk penggunaan di masa depan
ES
IE.4
Enable Serial Port interrupt
ET1
IE.3
Enable Timer 1 interrupt
EX1
IE.2
Enable external pin 1 interrupt
ET0
IE.1
Enable timer 0 interrupt
EX0
IE.0
Enable external pin  0 interrupt

l.          Register IP (Interrupt Priority).   Register ini memiliki address 0B8h, digunakan  untuk mengatur prioritas tertinggi yang dilayani sistem interrupt. Penjelasan selengkapnya mengenai hal ini dapat dilihat pada pembahasan   tentang interrupt pada bab yang bersangkutan. Bit-bit kontrolnya adalah :

-
-
PT2
PS
PT1
PX1
PT0
PX0
(MSB)






(LSB)
            Fungsi dari bit-bit kontrol ini dapat dilihat pada tabel 4.5:

Tabel 4.5. Fungsi bit kontrol pada register IP

Simbol
Posisi
Nama dan Arti
PT2
IP.5
Dicadangkan untuk penggunaan di masa depan
PS
IP.4
Prioritas Tertinggi Pada Serial Port interrupt
PT1
IP.3
Prioritas Tertinggi Pada Timer 1 interrupt
PX1
IP.2
Prioritas Tertinggi Pada external pin 1 interrupt
PT0
IP.1
Prioritas Tertinggi Pada timer 0 interrupt
PX0
IP.0
Prioritas Tertinggi Pada external pin  0 interrupt

m.        Register TCON (Timer/Counter Control).  Register yang memiliki address 088h berfungsi untuk mengontrol fungsi Timer 1 dan Timer 0,  mengatur respons MCS-51 terhadap level tegangan pada input external interrupt, serta memberikan tanda flag jika telah ada sinyal interrupt external.         Penjelasan selengkapnya mengenai hal ini dapat dilihat pada  bab yang bersangkutan. Bit-bit register ini  adalah :

TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
(MSB)






(LSB)
           



            Fungsi dari bit-bit register  ini dapat dilihat pada tabel 4.6 :

Tabel 4.6. Fungsi bit-bit pada register TCON

Simbol
Posisi
Nama dan Arti



TF1



TCON.7
Timer 1 overflow flag. Bit ini di-set oleh hardware pada saat terjadi overflow di timer/counter 1.  Bit tersebut akan otomatis di-clear oleh hardware pada saat mikrokontroler mengeksekusi program pelayanan interrupt Timer 1.
TR1
TCON.6
Timer 1 run control bit, untuk membuat ON/OFF Timer/counter 1


TF0


TCON.5
Timer 0 overflow flag. Bit ini di-set oleh hardware pada saat terjadi overflow di timer/counter 0.  Bit tersebut akan otomatis di-clear oleh hardware pada saat mikrokontroler mengeksekusi program pelayanan interrupt Timer 0.
TR0
TCON.4
Timer 0 run control bit, untuk membuat ON/OFF Timer/counter 0
IE1
TCON.3
Interrupt Edge 1 =1 menunjukkan adanya sinyal interrupt pada pin external interrupt 1
IT1
TCON.2
Type interrupt 1
IT1 = 1 : falling edge triggered interrupt
IT1 = 0 : low level triggered interrupt
IE0
TCON.1
Interrupt Edge 0 =1 menunjukkan adanya sinyal interrupt pada pin eksternal interrupt 0

IT0

TCON.0
Type interrupt 0
IT0 = 1 : falling edge triggered interrupt
IT0 = 0 : low level triggered interrupt

n.         Register TMOD (Timer/Counter Mode).   Register yang memiliki address 089h berfungsi untuk mengontrol mode Timer 1 dan Timer 0.  Bit-bit register ini  adalah :

GATE
C/-T
M1
M0
GATE
C/-T
M1
M0
(MSB)






(LSB)
T i m e r 1
T i m e r  0

     
     


      Fungsi dari bit-bit register  ini dapat dilihat pada tabel 4.7 :

Tabel 4.7. Fungsi bit-bit pada register TMOD

Bit
Fungsi



GATE
untuk menentukan apakah timer/counter dikontrol oleh hardware ataukah software
GATE = 1 : hardware control : timer/counter x aktif jika pin INTx dalam kondisi high dan TRx pada register TCON diaktifkan
GATE = 0 : software control : timer/counter x aktif jika TRx pada register TCON diaktifkan
C/-T
counter/timer mode
M1
selector mode
M0
selector mode


Tabel 4.8. Mode operasi timer/counter

M1
M0
Mode Operasi
0
0
13-bit timer (kompatible dengan MCS-48)
0
1
16 - bit timer/counter
1
0
8 - bit auto-reload timer/counter


1


1
(Timer 0) : TL0 berfungsi sebagai 8 - bit timer/counter yang dikontrol oleh control bit Timer 0 yang standard, sedangkan TH0 adalah 8-bit timer yang dikontrol oleh control bit Timer 1. Pada mode ini Timer/counter 1 berhenti beroperasi



o.         Register T2CON (Timer/Counter 2 Control).  Register ini hanya dipunyai oleh 8052, dengan address 0C8h berfungsi untuk mengontrol fungsi    Timer 2. Bit-bit register ini  adalah :

TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/-T2
CP/-RL2
(MSB)






(LSB)



Tabel  4.9 Bit-bit kontrol Timer/Counter 2

Simbol
Posisi
Nama dan Arti


TF2


T2CON.7
Timer 2 overflow flag. Bit ini di-set oleh hardware pada saat terjadi overflow di timer/counter 1.  Bit tersebut akan otomatis di-clear oleh hardware pada saat mikrokontroler mengeksekusi program pelayanan interrupt Timer 2.
EXF2
T2CON.6
Timer 1 run control bit, untuk membuat ON/OFF Timer/counter 1


RCLK


T2CON.5
Timer 0 overflow flag. Bit ini di-set oleh hardware pada saat terjadi overflow di timer/counter 0.  Bit tersebut akan otomatis di-clear oleh hardware pada saat mikrokontroler mengeksekusi program pelayanan interrupt Timer 0.
TCLK
T2CON.4
Timer 0 run control bit, untuk membuat ON/OFF Timer/counter 0



EXEN2



T2CON.3
timer 2 external enable flag
= 1 : mengijinkan capture atau auto reload saat terjadi transisi negatif pada pin T2EX, jika timer 2 tidak sedang digunakan untuk memberikan clock pada serial port.
= 0 : mengabaikan perubahan level tegangan pada PIN T2EX
TR2
T2CON.2
TR2 = 1 : start timer 2
TR2 = 0 : stop timer 2
C/-T2
T2CON.1
Memilih mode timer/counter 2



CP/-RL2



T2CON.0
Capture/Reload  flag
 = 1 : capture terjadi  saat transisi negatif pada T2EX, jika EXEN2= 1
 = 0 : auto-reload terjadi saat timer 2 overflow atau saat transisi negatif pada T2EX, jika EXEN2= 1


p.         Register SCON (Serial Port Control).       Register ini memiliki  address 098h berfungsi untuk mengontrol fungsi Serial Port. Bit-bit register     ini  adalah :


SM0
SM1
SM2
REN
TB8
RB8
TI
RI
(MSB)






(LSB)



Tabel 4.10 Bit-bit kontrol Serial Port


Simbol
Posisi
Nama dan Arti
SM0
SCON.7
Bit Pemilih mode Serial Port
SM1
Scon.6
Bit Pemilih mode Serial Port

SM2

Scon.5
Mengijinkan komunikasi multiprosesor pada mode 2 dan 3. Penjelasan selengkapnya lihat bab mengenai serial port
REN
Scon.4
Reception Enable : menghidup/matikan penerimaan data serial
TB8
Scon.3
bit ke-9 yang akan dikirimkan (mode 2 dan 3)

RB8

Scon.2
bit ke-9 yang diterima (untuk mode 2 dan 3) sedangkan pada mode 1 bit ini adalah stop bit jika SM2=0


TI


Scon.1
Transmit interrupt flag : diset oleh hardware pada akhir waktu bit ke-8 untuk mode 0, atau pada awal stop bit pada mode-mode yang lain. Flag ini hanya bisa di-clear oleh software 


RI


Scon.0
Receive interrupt flag : diset oleh hardware pada akhir waktu bit ke-8 untuk mode 0, atau pada setengah jalan selama waktu stop bit untuk mode yang lain.  Flag ini hanya bisa di-clear oleh software



Tabel 4.11 Bit-bit  pemilihan mode serial port

SM0
SM1
Mode
Deskripsi
Baud Rate
0
0
0
shift register
Fosc/12
0
1
1
8-bit UART
variabel
1
0
2
9-bit UART
Fosc/64  atau Fosc/32
1
1
3
9-bit UART
variabel

BERSAMBUNG ...
Tunggu Tulisan Selanjutnya

1 comment:

  1. Akan lebih bagus lagi jika ada skema kaki2 yg di magsud

    ReplyDelete

Terima kasih atas komentar anda