Sejarah dan Ulasan MIkrokontroler

  • Judul : Sejara dan Ulasan Seputar Mikrokontroler
  • Bahasa : Indonesia
  • Jenis File : PDF (Adobe reader)
  • Jumlah Halaman : 20
  • Lain-lain :
  • Isi :
  1. Pengendali mikro 1
  2. Atmel AVR 6
  3. ATMega8535 7
  4. Intel 8051 8
  5. PIC16F84
Anda bisa mendownloadnya disini

Dasar Pemrograman PIC (Bagian 1)

Mikrokontroler saat ini memberikan suatu cara baru kepada kita dalam merancang sirkuit, dahulu kita membutuhkan banyak IC Digital dan perhitungan Aljabar sekarang semua itu dapat dipogram dan di masukkan kedalam satu IC yaitu mikrokontroler. Misalnya satu set lampu lalu lintas membutuhkan satu osilator sirkuit, penghitung, IC dekoding, dan berbagai macam IC logika sekarang dapat dibuat dengan mudah dalam satu IC Mikrokontroler.

Disini kita akan belajar bagaimana memprogram mikrokontroler itu, saya memilih mikrokontroler jenis PIC16F84 yang dapat di flashing atau tulis hapus secara elektrik tanpa memerlukan ultraviolet eraser, yang memiliki 18pin dan oscilator sampai 4Mhz.

(masih direlease)

Mikrokontroler dengan Ladder diagram

Pemrograman Mikrokontroler menggunakan ladder diagram (ladder logic micro).
Bagi anda yang terbiasa memprogram PLC itu akan sangat membantu menggunakan software ini. karena dengan software ini pemrograman mikrokontroler bisa dilakukan layaknya memprogram PLC.

Berikut ialah screenshotnya
Berikut ialah jenis mikrokontroler yang didukung:
  • PIC16F628(A)
  • PIC16F88
  • PIC16F819
  • PIC16F877(A)
  • PIC16F876(A)
  • PIC16F887
  • PIC16F886
  • ATmega128
  • ATmega64
  • ATmega162
  • ATmega32
  • ATmega16
  • ATmega8
Cara menggunakan software ini cukup mudah, pertama anda memasukan kontak (LD,LD not, And, Andnot, timer, ataupun output) melalui label instruction lalu pilih tipe kontak yang anda inginkan, setelah itu isi parameternya apakan kontak input/output dari pin IC atau input/output virtual layaknya PLC.
 setelah itu compile maka ladder pun akan berubah menjadi bentuk intel hex file (.hex) yang siap dimasukan ke dalam IC mikrokontroler.

terima kasih
software Ladder logic nya bisa anda download disini

Dasar Pemrograman AT89C2051 (Bagian 3)

Special Function Register (SFR) AT89Cx051

Random Access Memory (RAM) dalam AT89Cx051 hanya 256 byte, hanya setengahnya yang dipakai sebagai memori-data biasa, setengahnya lagi dipakai untuk register-register 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 dipakai untuk menyimpan data seperti layaknya memori-data. Meskipun demikian, dalam hal penulisan program SFR diperlakukan persis sama dengan memori-data.
Nomor memori-data yang disediakan untuk Special Function Register mulai dari $80 sampai dengan $FF, area sebanyak 128 byte ini tidak semuanya dipakai, hal ini digambarkan dalam Denah Special Function Register, Gambar 5. Masing-masing register dalam Special Function Register mempunyai nomor dan nama.
Dianjurkan agar nomor-nomor yang tidak dipakai jangan dipergunakan, karena bisa mengakibatkan terjadinya sesuatu yang tidak terduga.
Sebagian register dalam Special Function Register sudah dibicarakan sebagai Register Dasar, merupakan piranti dasar untuk penulisan program. Register-register dasar tersebut antara lain adalah Akumulator (ACC), Stack Pointer Register (SP), Program Status Register (PSW), Register B, Data Pointer High Byte (DPH) dan Data Pointer Low Byte (DPL). Di dalam area Special Function Register. Register-register ini diperlakukan sebagai memori dengan nomor yang sudah tertentu.
Akumulator menempati memori-data nomor $E0, Stack Pointer Register menempati memori-data nomor $81, Program Status Register ada di $D0, Register B di $F0, DPL di $82 dan DPH di $83.
Kemampuan MCS51 untuk menomori memori-data dalam level bit, dipakai juga dalam Special Function Register. Secara keseluruhan nomor bit yang disediakan dalam MCS51 sebanyak 256, nomor bit 0 sampai 127 sudah dipakai untuk  nomor bit memori-data nomor $20 sampai $2F, sisanya sebanyak 128 nomor dipakai di Special Function Register.
Special Function Register yang bisa dinomori dengan nomor bit, adalah yang mempunyai nomor memori dengan digit heksadesimal kedua adalah 0 atau 8, misalnya nomor $80, $88, $90, $98..$F0 dan $F8.
Akumulator merupakan Special Function Register dengan nomor $E0, sehingga semua bit dalam Akumulator bisa di-nomor-i satu per satu.  Dalam penulisan program bit 0 Akumulator bisa dituliskan sebagai A.0, bit 1 Akumulator ditulis sebagai A.1 dan seterusnya. Instuksi SETB A.0 mengakibatkan bit 0 dari Akumulator menjadi ‘1’ sedangkan bit-bit lainnya tidak terpengaruh. Instruksi CLR A.6 mengakibatkan bit 6 dari Akumulator menjadi ‘0’ tapi tidak memengaruhi bit-bit yang lain.

Pengelompokan SFR

Selain register yang berfungsi sebagai register dasar yang sudah dibicarakan diatas, register-register dalam SFR dipakai untuk mengatur Input/Output dari MCS51 yang dikelompokan menjadi :
·        Register Penampung Data Input/Output, misalnya data yang diisikan ke register P1 akan diteruskan (di-output-kan) ke Port 1 yang terdapat di kaki IC AT89Cx051.
·        Register Pengatur Input/Output dan Register Status Input/Output, misalnya register SCON dipakai untuk mengatur UART dan dipakai untuk memantau kondisi UART, register TCON dipakai untuk mengatur kerja Timer.

Gambar 5
Denah Special Function Register

Uraian Singkat SFR

Berikut ini dibahas secara singkat fungsi dan sifat masing-masing register dalam Special Function Register, pembahasan secara rinci akan dilakukan dibagian lain.
P1 (Port 1, nomor $90, bisa dinomori dengan nomor bit): merupakan sarana input/output port 1, masing-masing bit dalam register ini setara dengan salah satu kaki IC AT89Cx051. Misalnya bit 3 dari register P1 terhubung ke kaki P1.3 (kaki nomor 15 AT89Cx051), instruksi SETB P1.3 mengakibatkan kaki nomor 15 tersebut menjadi ‘1’ dan instruksi CLR P1.3 akan membuatnya menjadi ‘0’.
P3 (Port 3, nomor $B0, bisa dinomori dengan nomor bit): merupakan sarana input/output port 3, masing-masing bit dalam register ini setara dengan salah satu kaki IC AT89Cx051. Misalnya bit 5 dari register P3 terhubung ke kaki P3.5 (kaki nomor 9 AT89Cx051), instruksi SETB P3.5 mengakibatkan kaki nomor 9 tersebut menjadi ‘1’ dan instruksi CLR P3.5 akan membuatnya menjadi ‘0’.
SBUF (Serial Buffer, nomor $99): Register Serial Buffer (SBUF) dipakai untuk mengirim data dan menerima data dengan UART yang terdapat dalam IC AT89Cx051. Angka yang disimpan ke SBUF akan dikirim keluar secara seri lewat kaki TXD (kaki nomor 3 IC AT89Cx051). Sebaliknya data seri yang diterima di kaki RXD (kaki nomor 2 IC AT89Cx051) bisa diambil di register SBUF. Jadi SBUF akan berfungsi sebagai port output pada saat register ini diisi data, dan SBUF akan menjadi port input kalau isinya diambil.
SCON (Serial Control, nomor $98, bisa dinomori dengan nomor bit): register SCON dipakai untuk mengatur perilaku UART di dalam IC AT89Cx051, hal-hal yang diatur meliputi penentuan kecepatan pengiriman data seri (baud rate); mengakitpkan fasilitas penerimaan data seri (fasilitas pengiriman data seri tidak perlu di atur), disamping itu register ini dipakai pula untuk memantau proses pengiriman data seri dan proses penerimaan data seri.
TL0/TH0 (Timer 0 Low/High, nomor $8A/$8C): Kedua register ini bersama membentuk Timer 0, yang merupakan pencacah naik (count up counter). Perilaku kedua register ini diatur oleh register TMOD dan register TCON. Hal-hal yang bisa diatur antara lain adalah sumber clock untuk pencacah, nilai awal pencacah, bilamana proses pencacahan mulai atau berhenti,  dan lain sebagainya.
 TL1/TH1 (Timer 1 Low/High, nomor $8B/$8D): Kedua register ini bersama membentuk Timer 1, yang merupakan pencacah naik (count up counter). Perilaku kedua register ini diatur oleh register TMOD dan register TCON. Hal-hal yang bisa diatur antara lain adalah sumber clock untuk pencacah, nilai awal pencacah, bilamana proses pencacahan mulai atau berhenti,  dan lain sebagainya.
TMOD (Timer Mode, nomor $89): register TMOD dipakai untuk mengatur mode kerja Timer 0 dan Timer 1, lewat register ini masing-masing timer bisa diatur menjadi timer 16-bit, timer 13-bit, timer 8-bit yang bisa isi ulang secara otomatis,  atau 2 buah timer 8 bit yang terpisah. Di samping itu bisa diatur agar proses proses pencacahan timer bisa dikendalikan lewat sinyal dari luar IC AT89Cx051, atau timer dipakai untuk mencacah sinyal-sinyal dari luar IC.
TCON (Timer Control, nomor $88, bisa dinomori dengan nomor bit): register TCON dipakai untuk memulai atau menghentikan proses pencacahan timer dan dipakai untuk memantau apakah terjadi limpahan dalam proses pencacahan. Disamping itu masih tersisa 4 bit dalam register TCON yang tidak dipakai untuk mengatur Timer, melainkan dipakai untuk mengatur sinyal interupsi yang diterima di INT0 (kaki nomor 6) atau INT1 (kaki nomor 7), dan dipakai untuk memantau apakah ada permintaan interupsi pada kedua kaki itu.
IE (Interrupt Enable, nomor $A8, bisa dinomori dengan nomor bit): register ini dipakai untuk mengaktipkan atau me-non-aktipkan sarana interupsi,  bit 0 sampai bit 6 dari register IE (IE.0..IE.6) dipakai untuk mengatur masing-masing sumber interupsi (sesungguhnya IE.6 tidak dipakai) sedangkan IE.7 dipakai untuk mengatur sistem interupsi secara keseluruhan, jika IE.7 =’0’ akan sistem interupsi menjadi non-aktip tidak mempedulikan keadaan IE.0.. IE.6.
IP (Interrupt Priority, nomor $B8, bisa dinomori dengan nomor bit): register ini dipakai untuk mengatur perioritas dari masing-masing sumber interupsi. Masing-masing sumber interupsi bisa diberi perioritas tinggi dengan memberi nilai ‘1’ pada bit bersangkutan dalam register ini. Sumber interupsi yang perioritasnya tinggi bisa menginterupsi proses interupsi dari sumber interupsi yang perioritasnya lebih rendah.
PCON (Power Control, nomor $87): Register PCON dipakai untuk mengatur pemakaian daya IC AT89Cx051, dengan cara ‘menidurkan’ IC tersebut sehingga memerlukan arus kerja yang sangat kecil. Satu satu bit dalam register ini dipakai untuk menggandakan kecepatan pengiriman data seri (baud rate) dari UART di dalam AT89Cx051.

Variasi dari SFR

Seperti sering disebut, MCS51 merupakan satu keluarga IC mikrokontroler yang terdiri dari ratusan macam IC, ratusan macam IC tersebut umumnya mempunyai fasilitas input/output yang berlainan. Keragaman ini ditampung dalam Special Function Register.
Register baku dalam keluarga MCS51, ada yang tidak dimiliki oleh keluarga AT89Cx051, register-register tersebut antara lain adalah :
P0 (Port 0, nomor  $80, bisa dinomori dengan nomor bit): merupakan sarana input/output port 0, masing-masing bit dalam register ini setara dengan salah satu kaki IC AT89C51. Sifat Port 0 mirip sekali dengan sifat Port 1 dan Port 3 milik AT89Cx051.
P2 (Port 2, nomor $A0, bisa dinomori dengan nomor bit): merupakan sarana input/output port 2, masing-masing bit dalam register ini setara dengan salah satu kaki IC AT89C51. Sifat Port 2 mirip sekali dengan sifat Port 1 dan Port 3 milik AT89Cx051
Kaki IC AT89Cx051 hanya 20, hanya setengah dari jumlah kaki AT89C51, berkurangnya kaki ini mengakibatkan AT89Cx051 tidak punya Port 0 dan Port 2 dan dengan demikian juga tidak punya register P0 dan register P2.
Di samping dipakai sebagai port input/output, Port 0 dan Port 2 bisa pula dipakai untuk saluran-data (data bus) dan saluran-alamat (address bus) yang diperlukan AT89C51 untuk bisa menambah memori diluar chip.

Dasar Pemrograman AT89C2051 (Bagian 2)

RAM dan Register dalam AT89Cx051

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 $00 sampai $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:
·        Memori nomor $00 sampai $18 selain sebagai memori-data biasa, bisa pula dipakai sebagai Register Serba Guna (General Purpose Register).
·        Memori nomor $20 sampai $2F selain sebagai memori-data biasa, bisa dipakai untuk menyimpan informasi dalam level bit.
·        Memori nomor $30 sampai $7F (sebanyak 80 byte) merupakan memori-data biasa, bisa dipakai untuk menyimpan data maupun dipakai sebagai Stack.

Register Serba Guna

Register Serba Guna (General Purpose Register) menempati memori-data nomor $00 sampai $18, memori sebanyak 32 byte ini dikelompokkan menjadi 4 Kelompok Register (Register Bank), 8 byte memori dari masing-masing Kelompok itu dikenali sebagai Register 0, Register 1 .. Register 7 (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 E5 04 (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 memori secara tidak langsung (indirect memory addressing) lewat bantuan R0 dan R1. Tapi untuk SFR hanya bisa dipakai penyebutan nomor memori secara 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.
·        Program Counter ditempatkan ditempat tersendiri di dalam inti prosesor
·        Register Serba Guna R0..R7 ditempatkan di salah satu bagian dari memori-data
·        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.