RAM dan Register dalam AT89Cx051

on Tuesday, April 7, 2009

Bagi mereka yang sudah terbiasa memakai komputer, kapasitas Random Access Memory (RAM) yang dimiliki AT89Cx051 'mengerikan' karena sangat sedikit, hanya 256 byte! Itupun tidak semuanya bisa dipakai sebagai memori penyimpan biasa, lebih dari setengahnya merupakan memori dengan keperluan khusus yang biasa dikenal sebagai register. Meskipun demikian bagi mikrokontroler kapasitas itu sudah mencukupi.


Dalam pengertian MCS51, Random Access Memory dalam chip AT89Cx051 adalah memori-data, yaitu memori yang dipakai untuk menyimpan data, sedangkan Flash PEROM merupakan memori penampung program pengendali AT89Cx051, dikenal sebagai memori-program.


Karena kedua memori itu memang dibedakan dengan tegas, maka kedua memori itu mempunyai penomoran yang terpisah. Memori-program dinomori sendiri, pada AT89C2051 mulai dari nomor $0000 sampai $07FF. Sedangkan memori-data yang hanya 256 byte dinomori dari nomor $00sampai $FF.





Gambar 3


Denah Memori-data


Seperti terlihat dalam denah memori-data Gambar 3, memori-data dibagi menjadi dua bagian, memori nomor $00 sampai $7F merupakan memori seperti RAM selayaknya meskipun beberapa bagian mempunyai kegunaan khusus, sedangkan memori nomor $80 sampai $FF dipakai sangat khusus yang dinamakan sebagai Special Function Register (akan dibahas tersendiri dibagian lain).


Memori-data nomor $00 sampai $7F bisa dipakai sebagai memori penyimpan data biasa, dibagi menjadi 3 bagian:


<!--[if !supportLists]--> <!--[endif]-->· Memori nomor $00 sampai $18 selain sebagai memori-data biasa, bisa pula dipakai sebagai Register Serba Guna (General Purpose Register).


<!--[if !supportLists]--> <!--[endif]-->· Memori nomor $20 sampai $2F selain sebagai memori-data biasa, bisa dipakai untuk menyimpan informasi dalam level bit.


<!--[if !supportLists]--> <!--[endif]-->· Memori nomor $30 sampai $7F (sebanyak 80 byte) merupakan memori-data biasa, bisa dipakai untuk menyimpan data maupun dipakai sebagai Stack.


<!--[if !supportLists]--> <!--[endif]--> Register Serba Guna


Register Serba Guna (General Purpose Register) menempati memori-data nomor $00 sampai $18, memori sebanyak 32 byte ini dikelompokkan menjadi 4 KelompokRegister (RegisterBank), 8 byte memori dari masing-masing Kelompok itu dikenali sebagai Register 0, Register1 .. Register7 (R0, R1, R2, R3, R4, R5, R6 dan R7).


Dalam penulisan program memori-memori ini bisa langsung disebut sebagai R0, R1, R2, R3, R4, R5, R6 dan R7, tidak lagi dengan nomor memori. Dengan cara ini instruksi yang terbentuk bisa lebih sederhana dan bekerja lebih cepat. Pengertian ini bisa diperjelas dengan contoh 2 instruksi berikut :


MOV A,$04


MOV A,R4


Instruksi pertama mempunyai makna isi memori-data nomor 4 di-copy-kan ke Akumulator A, sedangkan instruksi kedua artinya isi R4 di-copy-kan ke Akumulator A. Karena R4 menempati memori-data nomor 4, jadi kedua instruksi itu berakibat sama bagi Akumulator A.


Tapi saat diterjemahkan ke kode mesin, intruksi pertama dirubah menjadi E504 (heksadesimal) dan instruksi kedua menjadi E6 (heksadesimal), jadi instruksi kedua lebih sederhana dari instruksi pertama.


Selain itu, khusus untuk Register 0 dan Register 1 (R0 dan R1) masih punya mempunyai kemampuan lain, kedua register ini bisa dipakai sebagai register penampung alamat yang dipakai dalam penyebutan memori secara tidak langsung (indirect memori addressing), hal ini akan dibicarakan lebih lanjut di belakang.


Empat kelompok Register Serba Guna itu tidak bisa dipakai secara bersamaan, saat setelah reset yang aktip dipakai adalah Kelompok Register 0 (Register Bank 0).


Kalau yang diaktipkan adalah Kelompok Register 1, maka yang dianggap sebagai R0 bukan lagi memori-data nomor 0 melainkan memori-data nomor 8, demikian pula kalau yang diaktipkan Kelompok Register 3 maka memori-data nomor 18h yang menjadi R0.


Kelompok Register yang aktip dipilih dengan cara mengatur bit RS0 dan RS1 yang ada di dalam Register PSW (Program Status Word), hal ini akan dibicarakan lebih lanjut di bagian lain.


Memori level Bit


Memori-data nomor $20 sampai $2F bisa dipakai menampung informasi dalam level bit. Setiap byte memori di daerah ini bisa dipakai menampung 8 bit informasi yang masing-masing dinomori tersendiri, dengan demikian dari 16 byte memori yang ada bisa dipakai untuk menyimpan 128 bit (16 x 8 bit) yang dinomori dengan bit nomor $00 sampai $7F.


Informasi dalam level bit tersebut masing-masing bisa di-'1'-kan, di - '0'-kan dengan instruksi.


Pengertian di atas bisa dipikirkan seolah-olah MCS51 mempunyai jenis memori yang lain, tapi sesungguhnya kedua jenis memori itu tetap sama, hanya saja cara penyebutannya saja yang berlainan.


Instruksi SETB $00 mengakibatkan memori-bit nomor 0 menjadi '1', atau sama dengan membuat bit nomor 0 dari memori-data nomor $20 menjadi '1', sedangkan bit-bit lainnya dalam memori nomor $20 tidak berubah nilai.


Sedangkan instruksi CLR $7F mengakibatkan memori-bit nomor $7F menjadi '0', satau sama dengan membuat bit nomor 7 dari memori-data nomor $2F menjadi '0', sedangkan bit-bit lainnya dalam memori nomor $2F tidak berubah nilai.


Pengertian ini dipertegas dengn intsruksi-instruksi berikut:


MOV $21,#$0F


Sama dengan hasil kerja instruksi-instruksi berikut :


SETB $08


SETB $09


SETB $0A


SETB $0B


CLR $0C


CLR $0D


CLR $0E


CLR $0F


Instruksi MOV $21,#$0F mempunyai makna mengisi memori-data nomor $21 dengan nilai $0F (atau bilangan biner 00001111), berarti mengisi memori-bit nomor $0F sampai $08 dengan bilangan biner 00001111 yang bisa dinyatakan dengan 8 baris instruksi berikutnya.


Special Function Register (SFR)


Register Khusus (SFR - Special Function Register) adalah satu daerah RAM dalam IC keluarga MCS51 yang dipakai untuk mengatur perilaku MCS51 dalam hal-hal khusus, misalnya tempat untuk berhubungan dengan port paralel P1 atau P3, dan sarana input/output lainnya, tapi tidak umum dipakai untuk menyimpan data seperti layaknya memori-data.


Meskipun demikian, dalam hal penulisan program SFR diperlakukan persis sama dengan memori-data. Untuk mengisi memori-data nomor $60 dengan bilangan $0F, instruksi yang dipergunakan adalah :


MOV $60,#$0F


Sedangkan untuk memenyimpan $0F ke Port 1 yang di SFR menempati memori-data nomor $90, instruksi yang dipergunakan adalah :


MOV $90,#$0F


Membandingkan kedua instruksi di atas bisa dimengerti dalam segi penulisan program SFR diperlakukan persis sama dengan memori-data.


Meskipun demikian, dalam menyebut memori-data bisa dipakai dua cara, yakni penyebutan nomor memori secara langsung (direct memory addressing) dan penyebutan nomor memorisecara tidak langsung (indirect memory addressing) lewat bantuan R0 dan R1. Tapi untuk SFR hanya bisa dipakai penyebutan nomor memorisecara langsung (direct memory addressing) saja. Hal ini akan dibahas lebih lanjut di bagian lain.


Register Dasar MCS51


Untuk keperluan penulisan program, setiap mikroprosesor/mikrokontroler selalu dilengkapi dengan Register Dasar. Ada beberapa macam register merupakan register baku yang bisa dijumpai disemua jenis mikroprosesor/ mikrokontroler, ada register yang spesifik pada masing-masing prosesor.


Yang termasuk Register Baku antara lain Program Counter, Akumulator, Stack Pointer Register, Program Status Register. MCS51 mempunyai semua register baku ini.


Sebagai register yang khas MCS51, antara lain adalah Register B, Data Pointer High Byte dan Data Pointer Low Byte. Semua ini digambarkan dalam Gambar 4.


Di samping itu MCS51 masih mempunyai Register Serba Guna R0..R7 yang sudah disebut dibagian atas.


Dalam mikroprosesor/mikrokontroler yang lain, register-register dasar biasanya ditempatkan ditempat ter­sendiri dalam inti prosesor, tapi dalam MCS51 register-register itu ditempatkan secara terpisah.


<!--[if !supportLists]--> <!--[endif]-->· Program Counter ditempatkan ditempat tersendiri di dalam inti prosesor


<!--[if !supportLists]--> <!--[endif]-->· Register Serba Guna R0..R7 ditempatkan di salah satu bagian dari memori-data


<!--[if !supportLists]--> <!--[endif]-->· Register lainnya ditempatkan dalam Special Function Register (SFR).








Gambar 4


Susunan Register Dasar MCS51


Kegunaan dan pemakaian register-register dasar tersebut antara lain sebagai berikut:


Program Counter


Program Counter (PC) dalam AT89C2051 merupakan register dengan kapasitas 11 bit (dalam AT89C51 atau keluarga MCS51 lainnya kapasitas PC adalah 16 bit). Di dalam PC dicatat nomor memori-program yang menyimpan instruksi berikutnya yang akan diambil (fetch) sebagai instruksi untuk dikerjakan (execute).


Saat setelah reset PC bernilai 0000h, berarti MCS51 akan segera mengambil isi memori-program nomor 0 sebagai instruksi. Nilai PC otomatis bertambah 1 setelah prosesor mengambil instruksi 1 byte. Ada instruksi yang hanya 1 byte, ada instruksi yang sampai 4 byte, dengan demikian pertambahan nilai PC setelah menjalankan instruksi, tergantung pada jumlah byte instruksi bersangkutan.


Akumulator


Sesuai dengan namanya, Akumulator adalah sebuah register yang berfungsi untuk menampung (accumulate) hasil hasil pengolahan data dari banyak instruksi MCS51. Akumulator bisa menampung data 8 bit (1 byte) dan merupakan register yang paling banyak kegunaannya, lebih dari setengah instruksi-instruksi MCS51 melibatkan Akumulator.


Instruksi-instruksi berikut memperjelas pengertian di atas :


MOV A,#$20


ADD A,#$30


Instruksi pertama menyimpan nilai $20 ke Akumulator, instruksi kedua menambahkan bilangan $30 ke Akumulator, hasil penjumlahan sebesar $50 ditampung di Akumulator.


Stack Pointer Register


Salah satu bagian dari memori-data dipakai sebagai Stack, yaitu tempat yang dipakai untuk menyimpan sementara nilai PC sebelum prosesor menjalankan sub-rutin, nilai tersebut akan diambil kembali dari Stack dan dikembalikan ke PC saat prosesor selesai menjalankan sub-rutin.


Stack Pointer Register adalah register yang berfungsi untuk mengatur kerja stack, dalam Stack Pointer Register disimpan nomor memori-data yang dipakai untuk operasi Stack berikutnya.


Program Status Word


Program Status Word (PSW) berfungsi mencatat kondisi prosesor setelah melaksanakan instruksi. Pembahasan tentang PSW secara rinci akan dilakukan dibagian lain.


Register B


Merupakan register dengan kapasitas 8 bit, merupakan register pembantu Akumulator saat menjalankan instruk perkalian dan pembagian.


DPH dan DPL


Data Pointer High Byte (DPH) dan Data Pointer Low Byte (DPL) masing-masing merupakan register dengan kapasitas 8 bit, tapi dalam pemakaiannya kedua register ini digabungkan menjadi satu register 16 bit yang dinamakan sebagai Data Pointer Register (DPTR).


Sesuai dengan namanya, Register ini dipakai untuk mengalamati data dalam jangkauan yang luas.

6 comments:

Anonymous said...

To run a new massage, temperature-controlled daybeds,
a sound system genuinely on top of $200,500, and other amusement that a
number americans can easily fantasy of. There are plenty of brands of
semi-automatic java computers. Yeah, of course
an in depth advance choices. On the, leaping expenditure is
wished to challenging for guests to help keep travelling to these people specialist help cafes and
generally are thought requiring choosing the like coffee beans
house.

Also visit my blog post ... Best Home Coffee Maker

Anonymous said...

When they have already have attachments and that's emptied with the dish washer. They possess a rather-simple production, using shredders together with strainer. Currently the John Louis Practitioner Juice machine also may include a strong quantity facade which made it possible for users into immediately whilst reliably included unpeeled as well as uncut construct with out the complications.

Feel free to visit my web page: best Juicer Buy Uk

Anonymous said...

Proudly owning shifting gears just convenient for you. Don't forget, there are many other nutrients for wheat-grass juice that contributes in the direction of highly effective benefits of probiotics. Most efficient appliance is to become homes that are able to get approximately between One hundred seventy five and then 700 w. That blender or food processor has got 3 common exercise 24-ounce containers that allow you concoction 72 oz of linked with frosty margaritas in one fell swoop. Perhaps you may be sure of, any kind of food processor or blender is really a quicker model to decontaminate then have power over in comparison moisture.

my web blog: best mini blenders

Anonymous said...

Desire take advantage of altercation with the bathroom at the an morning,
you'll also enjoy utilizing this juice machine! That is correct there are also methods whom rely practically seen on the strength and moreover diet plan for fruit juices so that you crystal clear an unwell bodily of significant problems, moreover many forms of cancer. Choose a edition when seo eaters include examined as you will subsequently feel comfortable of creating a website that's easy to
purify later on deploying it. Welcome high on stepping reading about the benefits of vegetable making
juice into increased !

my weblog hamilton juice extractor reviews

Anonymous said...

In extract cider received from nuts, vegetables, fruits otherwise wheatgrass, a professional e-book juice extractor is the central solution in the kitchen.
Albeit blending together golf balls isn't always in your number, make use of suitable capacity to following large snowing conditions parts. just has solitary hurry. Let's hope as well as someone the same as
taught me to be!

my web site ... blender reviews

Anonymous said...

The optimal website will allow you to third party remarks on that come with each of them bad and good options a
functional juice machine. The actual blender created exclusively connected merchandise, use drinks, paid bandages combined with worked surprisingly little lowering.
Drop those pounds . indicate you are required to take more time existing using the juice machine, which is
needed make a having more than enough concerning vegetable and fruit consist of for family
to consume. When the juicing, diet dealing as well
as , combined prefers are never as well ,
asking, sign up for is a really purchase online. Generally,
starting a small business drop the weight, we now high quality with regards to
taking in the people nutrients in addition
to vitamines that have been important our health and wellbeing.


my web blog; l'equip stick Blender reviews