Pengorganisasian Memori Memori Program

F. Pengorganisasian Memori

Semua perangkat MCS-51 memiliki ruang alamat tersendiri untuk memrogram memori dan data memori. Pemisahan program dan data memori memungkinkan pengaksesan data memori dan pengalamtan 8 bit, sehingga dapat langsung disimpan dan dimanipulasi oleh mikrokontroler dengan kapasitas akses 8 bit. Namun, untuk pengaksesan data memori dengan alamat 16 bit, kita harus terlebih dahulu register DPTRData Pointer. Program memori hanya dapat dibaca diletakan pada ROM EPROM. Untuk membaca program memori eksternal, mikrokontroler akan mengirimkan sinyal PSEN Program Stoer Enable. Sebagai data memori eksternal, kita dapat mnenggunakan RAM eksternal maksimun 64 Kbyte. Dalam pengaksesan, mikrokontroller akan mengirimkan sinyal RD Read yaitu melakukan pembacaan penulisan data WR Write yaitu opoerasi penulisan data . Bila memerlukan, program memori dan eksternal data dapat dikombinasikan dengan menyatukan sinyal RD dan PSEN ke dalam input gerbang AND dan menggunakan output dari gerbang sebagai sinyal read baca untuk program memori atau eksternal data. 10 11 EKSTERNAL MEMORI PROGRAM HANYA DI BACA EA = C EKSTERNAL EKSTERNAL 0000H PS E N MEMORI DATA BACA TULIS INTERNAL FFH 00H EKSTERNAL FFFFH 0000H FFFFH RD WR Gambar 2. Struktur Memori MCS-5 Didin Wahyudin, 2006 : 11 reset LOKASI INTERUPSI Timer 2 Port Serial Timer 1 Interupsi Eksternal Timer 0 Interupsi 0 0000H 0003H 0006H 0013H 0018H 0023H 0033H 0028H 8 BITS

G. Memori Program

CPU akan memulia eksekusi program dari lokasi alamat 0000H setelah reset. Seperti terlihat pada gambar ini , setiap instruksi mnendapatkan lokasi sendiri pada memori program aturan dikenal sebagai interrupt vektor. Sebuah interupsi akan menyebabkan CPU melompat ke lokasi interupsi yang bersangkutan, yaitu letak subrutin layanan interupsi, kemudian mengeksekusinya. Gambar 3. Memori Program Didin Wahyudin, 2006: 12 Lokasi layanan interupsi menempati lokasi-lokasi dengan jarak 8 byte: 0003H untuk interupsi eksterenal, 000BH untuk timer 0, 0013H untuk inbterupsi eksternal 1, 001BH untuk timer 1, dan seterusnya. Jika suatu rutin layaman interupsi sangat pendek kurang datri 8 byte , maka seluruh rutin akan bisa disimpan pada lokasi interupsi, tetapi jiuka lebih dari 8 byte, maka harus digunakan suatu perintah lompat kelokasi rutin interupsi yang terletak pada lokasi yang telah ditentukan. 12 Alamat-alamat yang paling bawah dari memori program dapat berada dalam flash on chip maupun memori eksternal, tergantung pada pengkabelan pada pin EA atau eksternal akses ke Vcc akses internal atau Gnd akses eksternal. Pada Mikrokontroler AT89S51 dengan flash sebesar 8 K byte , jika EA = Vcc, maka lokasi 000H hingga 1FFFH menempati memori internal, sedangkan lokasi 200H hingga FFFH menempati memori eksternal. Jika EA = Gnd, maka semua pengambilan instruksi langsung dilakukan pada memori eksternal. Untuk pengambilan program eksternal, kita dapat menggunakan tanda baca PSEN , sedangkan pengaksesan instruksi pada memori internal tidak menggunakan PSEN. Gambar di bawah ini memperlihatkan suatu konfigurasi perangkat keras yang menggunakan EPROM eksternal. Port 0 dan port 2 dihubungkan dengan EPROM sebagai bus data dan bus alamat. Port 0 menjadi multipleks untuk alamat dan data. Port 0 mengirimkan byte bawah program COUNTER sebagai suatu alamat, kemudian, port akan berada pada keadaan mengambang floating karena menunggu kode byte dari memori program. Selama waktu byte bawah program COUNTER valid benar pada port 0, sinyal ALE dikirimkan , sehingga byte bawah program COUNTER akan dikunci latch. Sementara itu, port 2 mengirimkan byte atas program counter. Kemudian, PSEN mengirimkan sinyal ke EPROM dan mikrokontroler unruk membaca byte kode. Panjang alamat memori program selalu 16 bit, tetapi jum;ah memori yang digunakan bisa kurang dari 64 K byte. 13 14 MCS-51 P1 P0 EA ALE PSEN ADDR MEMORI PROGRAM EKSTERNAL INSTR OE LATCH Gambar 4. Eksekusi Memori Program Eksternal Didin Wahyudin, 2006: 13

H. Memori Data