keep calm and enjoy with my blog

Senin, 23 Desember 2013

PERINTAH DASAR MCS-51



1.  MIKROKONTROLER MCS-51

    Sebuah mikroprosesor yang digabungkan dengan  input-output  (I/O) dan memori (Random Access Memory/Read Only Memory) akan membentuk sebuah sistem mikrokomputer. Dari pemikiran CPU yang dapat dikonstruksi dalam sebuah IC tunggal, maka  sebuah mikroprosesor, I/O dan memori dapat pula dibangun dalam tingkatan IC. Konstruksi ini menghasilkan  Single Chip Microcomputer  (SCM). SCM inilah yang disebut sebagai mikrokontroler.
       Pada awal perkembangannya, mikroprosesor dibuat menurut kebutuhan aplikasi yang lebih spesifik, dalam hal ini mikroprosesor dibagi menjadi beberapa jenis, yaitu :

Mikroprosesor RISC (Reduced Instruction Set of Computing) dan CISC (Complex Instruction Set of Computing). Jenis ini yang digunakan untuk pengolahan informasi dengan perangkat lunak yang rumit dan digunakan untuk kebanyakan PC (Personal Computer) saat ini.
Pengolah Sinyal Digital, DSP (Digital Signal Processor). Memiliki  perangkat lunak dan perangkat keras yang ditujukan untuk mempermudah proses pengolahan sinyal-sinyal digital. DSP digunakan pada perangkat audio dan video modern seperti VCD, DVD,  home theatre  dan juga pada kartu-kartu multimedia di komputer.
Mikrokontroler, adalah mikroprosesor yang dikhususkan untuk instrumentasi dan kendali. Contoh penggunaannya adalah sebagai pengendali motor, berperan seperti PLC (Programmable Logic Controller), pengaturan pengapian dan injeksi bahan bakar pada kendaraan bermotor atau  alat pengukur otomatis suatu besaran seperti suhu, tekanan, kelembaban dan lain -lain.
 Mikrokontroler adalah suatu chip yang dibuat dengan ciri khasnya, umumnya adalah :

Memiliki memori yang relatif sedikit. Penggunaan mikrokontroler untuk keperluan instrumentasi khusus membuatnya tidak efisien jika menggunakan memori yang besar namun tidak terpakai.
Memiliki unit I/O langsung. Berbeda dengan mikrokomputer yang unit I/O- nya dapat dikonfigurasi lebih lanjut, mikrokontroler mempunyai unit I/O yang terintegrasi dan berhubungan langsung dengan mikroprosesornya.
Program atau perangkat lunaknya relatif sederhana. Sesuai fungsi yang dibuat untuk tujuan khusus, mikrokontroler hanya membutuhkan program yang sederhana untuk menjalankan fungsinya.
Pemroses bit, ketimbang byte. Dengan memori yang sedikit dan implementasi perangkat lunak yang sederhana, mikrokontroler lebih cenderung digunakan untuk memproses bit (binary digit) dibandingkan byte (8 bit), untuk kemudian setiap bit disalurkan ke setiap jalur keluaran I/O pada pin -pin yang dimilikinya.
Beberapa varian memiliki memori yang tidak hilang bila catu padam didalamnya untuk menyimpan program.
 Sedangkan dalam hal aplikasi, sistem mikrokontroler memiliki karakteristik sebag ai
 berikut :

Memiliki program khusus yang disimpan dalam memori untuk aplikasi tertentu, tidak seperti PC yang multifungsi karena mudahnya memasukkan program.
Program mikrokontroler relatif lebih kecil daripada program-program pada PC.
Konsumsi daya kecil.
Rangkaian sederhana dan kompak.
Murah, karena komponen yang digunakan sedikit.
Unit I/O yang sederhana, misalnya keypad, LCD, LED, latch.
Lebih tahan terhadap kondisi lingkungan ekstrim misalnya temperatur, tekanan, kelembaban dan sebagainya.

2.  PERINTAH DASAR MCS-51

 Perintah dasar yang biasa digunakan pada uController MCS-51 adalah sebagai
 berikut:
          1.  clr (clear)
               format :   clr a
                              (mereset atau memberi nilai 00h pada akumulator)
                              clr rx
                              (mereset atau memberi nilai 00h pada register x)
                              Contoh: clr r0
                              clr py
                              (mereset atau memberi nilai 00h pada port y)
                              Contoh: clr p1
                              clr
                              (mereset atau memberi nilai 00h pada alamat tertentu)
                              Contoh: clr 4ah
        




 2.  mov
               format :   mov a, px
                             (menyalin isi data pada port x ke dalam akumulator)
                             Contoh: mov a, p3
                             mov px, #
                             (menyalin suatu nilai 8-bit ke port x)
                             Contoh: mov p0, #0feh
                             mov px, ry
                             (menyalin isi data yang nilainya terdapat pada register y ke dalam port x)
                             Contoh: mov p3, r5
          3.  setb (set bit)
               format :   setb px.y
                             (menset atau memberikan logika 1 pada port x.y)
                             Contoh: setb p1.0


         4.  call

               Call terbagi menjadi dua format yaitu acall (absolute call) dan lcall (long call), perbedaannya hanya  
               pada kemampuan jauh dekatnya pemanggilan subrutin. Seandainya penggunaan acall hanya mampu
               memanggil sampai alamat 100h maka untuk lcall  dapat lebih dari itu, namun juga untuk penggunaan
               lcall membutuhkan memori dan siklus mesin yang lebih banyak.

               Format :  acall
                              (perintah untuk memanggil program pada subrutin)
                             Contoh: acall cinta
                              lcall
                              (perintah untuk memanggil program pada subrutin)
                             Contoh: lcall komputer
               Cat.:  Penggunaan subrutin sebaiknya menggunakan kata, untuk kata-katanya sesuka pemrogram
               boleh menggunakan nama sen diri, nama kota ataupun nama-nama lainnya.


         5.  jmp (jump)
               Jmp juga terbagi menjadi dua format yaitu sjmp (short jump) dan ljmp (long jump), untuk
               pengunaannya sama seperti format call pada penjelasan di atas, hanya saja jump merupakan
               lompatan sederhana yang tidak dapat mengembalikan nilai register PC seperti perintah call.
               Format :   sjmp
                               (lompat atau jalankan langsung program yang berada pada label suatu subprogram)
                               Contoh: sjmp kamu
                               sjmp
                               (lompat atau jalankan langsung prog ram yang berada pada suatu alamat memori)
                               Contoh: ljmp 100h

         6.  djnz (decrement and jump if not zero)
               format :   djnz rx,
                              (kurangi nilai isi data pada register x dan bila nilainya belum mencapai 0 maka akan
                               dilakukan lompatan ke label subprogram)
                              Contoh: djnz r7, gaul
                              (kurangi nilai isi data pada register R7 dan bila nilainya belum mencapai 0  maka                                                                                                                                                                                                  di lakukan lompatan ke subprogram dengan label gaul).

     


   
7.  jnb (jump if not bit set)
                format :   jnb px.y,
                               (lompat ke label subprogram bila nilai port x.y berlogika LOW atau mempunyai nilai 0)
                               Contoh: jnb p1.0, go
                Cat.:  jnb hanya bisa dijalankan dengan operand yang berkapasitas 1 bit.

          8.  cjne (compare and jump if not equal)
                format :    cjne a, xyz,
                                (bandingkan apakah nilai akumulator sama dengan nilai xyz, bila nilainya tidak sama
                                 maka lompat ke label subprogram)
                                Contoh: cjne a, #0fh, keren
                                cjne rv, xyz,
                                (bandingkan apakah nilai register v sama dengan nilai xyz, bila nilainya tidak sama maka
                                  lompat ke label subprogram)
                                 Contoh: cjne r1, #0ach, ganteng

           9.  rr (rotate right) dan rl (rotate left)
                 format :   rr a
                                (geser ke kanan 1 bit pada isi akumulator)
                                rl a
                                (geser ke kiri 1 bit pada isi akumulator)
                                rr rx
                                (geser ke kanan 1 bit pada isi register x)
                                rl rx
                                (geser ke kiri 1 bit pada isi register x)

        

10.  inc (increment) dan dec (decrement)
                 format :   inc a
                                (menambahkan nilai 1 bit pada akumulator)
                                dec a
                                (mengurangi nilai 1 bit pada akumulator)
                                inc rx
                                (menambahkan nilai 1 bit pada register x)
                                dec rx
                                (mengurangkan nilai 1 bit pada register x)
               Cat : untuk perintah yang menggunakan decrement, increment, rotate, compare hanya dapat
                       dilakukan oleh akumulator maupun register saja. Bila nilai pada suatu port ingin dilakukan
                       perintah diatas maka port tersebut wajib disalin terlebih dahulu kedalam akumulator atau
                       register dengan menggunakan perintah mov.

Format penulisan standar bahasa assembly MCS-51 (pada M-IDE51) :

           $mod51
           org 0h
           ;
           ~ Main Program ~
           ;
           end
           Keterangan:
$mod51
           Instruksi ini digunakan agar simulator dapat mengi dentifikasi program yang dibuat dalam bahasa
           asembler.
org 0h

           mempunyai fungsi  untuk menulis program di alamat 0 hexa pada register mikrokontroler

Main Program

           Berisi program utama

End

           Mengakhiri baris program
Contoh Program :
 $mod51
 led equ p2
 org 0h
 balik: mov led,#00001111b
 call delay
 mov led,#11110000b
 call delay
 sjmp balik
 delay: mov r0,#07h
 lagi: djnz r2,lagi
 djnz r1,lagi
 djnz r0,lagi
 ret
 end

Referensi :
Modul Percobaan 3
http://www.gunadarma.ac.id/

1 komentar: