BAB III RAM Internal pada MCS-51 Untuk type internal Memory Program, kadang diperlukan suatu ekspansi dari memory dikarenakan sistem yang dirancang cukup besar. Atau internal RAM yang ada tidak mencukupi juga diperlukan ekspansi memory space.
On-Chip Memory External Memory Gambar Ekspansi Memory Spase FFFF FFFF FF 00 0000 0000 On-Chip Memory External Memory Gambar Ekspansi Memory Spase
3.1. Internal Memory Map pada MCS-51 Seperti diketahui pada tipe 8951 keluarga MCS-51 mempunyai internal RAM sebanyak 128 byte ( 00H-8FH) Dimulai dari 00H sampai dengan 1FH adalah register Bank, alamat 20H sampai dengan 2FH adalah bit addresable, alamat 30H sampai dengan 7FH adalah general Purpose RAM, serta alamat 80H sampai dengan FFH adalah Special Function Register (SFR)
RAM Internal pada MCS-51
RAM Internal pada MCS-51 a. Register Bank Bank 0 : 00H – 07H - RS1 = 0 ; RS0 = 0 (Setelah posisi RESET) Bank 1 : 08H – 0FH - RS1 = 0 ; RS0 = 1 Bank 2 : 10H – 17H - RS1 = 1; RS0 = 0 Bank 3 : 18H – 1FH - RS1 = 1 ; RS0 = 1 ** RS = Register Bank Select Bits
b. Bit Addressable RAM : 20H – 2FH Adalah RAM yang dapat diakses secara pengalamatan bit (bit addressable). Dan hanya dengan satu instruksi saja setiap bit alamat dapat di set atau di clear , OR , AND Contoh: MOV 24H,#100 MOV 21H,A MOV 22H,B
c. RAM Keperluan Umum : 30H – 7FH Adalah RAM yang dapat diakses dengan pengalamatan langsung maupun penga-lamatan tidak langsung. Pengalamatan langsung: MOV 34H,#0FH MOV A,34H Pengalamatan tidak langsung: MOV R0,#34H MOV A,@R0
d. Register Fungsi Khusus ( Spesial Function Register - SFR ) MCS-51 mempunyai 21 SFR yang terletak di alamat RAM internal 80H – FFH Beberapa dari register-register ini juga mampu dialamati dengan pengalamatan Bit. Contoh MOV 82H,#100
d.1. Register Accumulator ( Register A ) Register A terletak di alamat RAM E0H Hampir semua operasi aritmatika dan operasi logika selalu menggunakan register accumulator ini. Untuk proses pengambilan dan pengiriman data ke memory eksternal juga diperlukan register ini
d.2. Register B Register B terletak di alamat RAM F0H. Register B bersama dengan register akumulator untuk proses operasi aritmatika selain dapat juga difungsikan sebagai register biasa. Register ini juga dapat bersifat bit addressable.
d.3. Register Port MCS-51 mempunyai 4 Port yaitu: Port 0 terletak di alamat 80H Port 1 terletak di alamat 90H Port 2 terletak di alamat A0H Port 3 terletak di alamat B0H
d.4. PSW ( Program Status Word ) Program Status Word terletak pada alamat DOH ( 8 bit ) yang terdiri: PSW-7 6 5 4 3 2 1 PSW-0 CY AC F0 RS1 RS0 OV - P - CY = Flag Carry Berfungsi sbg pendeteksi terjadinya kelebihan pada operasi penjumlahan ( Carry ) atau pengurangan ( Borrow ) - AC = Auxiliary Carry Berfungsi sbg Carry yang terjadi dari bit ketiga ke bit ke empat
- FO = Flag 0 Flag untuk keperluan Umum - RS1 dan RS0 Berfungsi sbg Bit Pemilih Register Bank ( Register Bank 0 , 1 , 2 , 3 ) Contoh : ORG 0H SETB RS0 MOV A,#0EH MOV R1,A
- OV = Flag Overflow Flag OV ( Overflow ) akan di set jika pada operasi aritmatik menghasilkan bilangan yang lebih besar daripada 128 atau lebih kecil -128 Contoh : MOV A,#80H ; A = 80H atau A = 128 ADD A,#10H ; A = 128 + 16 = 144 Hasil operasi aritmatik diatas lebih besar 128 ( 144 ), sehingga Flag Overflow akan di set ( berisi 1 )
- P = Flag Parity Bit parity ini akan di set ( berisi 1 ) apabila jumlah bit 1 dalam register accumulator ( A ) adalah GANJIL dan akan di clear ( berisi 0 ) apabila jumlah bit 1 dalam register accumulator ( A ) adalah GENAP
d.5. Register Data Pointer ( DPTR ) Data Pointer ( DPTR ) merupakan register 16 bit yang berfungsi untuk mengakses source code atau data yang terletak di memory eksternal. DPL berada di internal RAM 82H DPH berada di internal RAM 83H Contoh : MOV A,#0FEH MOV DPTR,#4020H MOVX @DPTR,A
Buat program untuk menyimpan data 2EH kedalam register Accumulator Buat program untuk menyimpan data 2EH kedalam register Accumulator. Kemudian copykan data tersebut kedalam register R1, R3, R4 dan R6 yang berada di bank register ( BANK 2 ). Berapa alamat RAM yang digunakan oleh register R1, R3, R4 dan R6? Data D8H di transfer ke dalam register R3 pada Bank 1. Copykan data tersebut ke register A. Dan juga ke Register R4, R5, R6 dan R7 yang berada di Bank 3. Berapa alamat RAM yang digunakan oleh register R4, , R5, R6 dan R7?