TUGAS LAB MIKROPROSESOR
Ringkasan
Materi Percobaan 3
Mikrokontroler MCS-51
Sebuah
mikroprosesor yang digabungkan dengan input-output (I/O) dan memori ( RAM/ROM )
akan membentuk sebuah system mikrokomputer. Sejarah singkatnya Tahun 1976 intel
meluncurkan mikrokontroler pertama disebut seri MCS-48 yang berisi lebih dari
17.000 transistor yang hingga saat ini digunakan untuk aplikasi khusus. Seiring
perkembangan jaman yang sangat pesat lahir kembali seperti seri MCS-51, 68HC11,
mikrokontroller PIC, Fujitsu dan sebagainya.
- Jenis Mikroprosesor :
- Mikroprosesor RISC ( Reduced Instruction Set of computing ) Dan CISC ( Complex Instruction Set Of Computer ) jenis ini yang digunakan untuk pengolahan informasi dengan perangkat lunak yang rumit digunakan kebanyakan PC.
- Pengolahan Sinyal Digital
- Mikrokontroler, adalah mikroprosesor yang dikhususkan untuk instrumentasi atau kendali, contoh penggunaannya seperti penggerak motor berperan seperti PLC ( Programmable Logic Controller )
- Mikrokontroler adalah suatu chip yang dibuat dengan cirri khasnya, umumnya adalah :
- Memiliki memory yang lebih sedikit.
- Memiliki Unit I/O langsung
- Program atau perangkat lunaknya relative sederhana.
- Pemroses Bit ketimbang Byte
- Beberapa varian memiliki memory yang tak bias hilang bila catu daya padam didalamnya untuk menyimpang suatu program.
- Karakteristik Mikrokontroler Sbb :
1.
Memiliki program khusus yang disimpan dalam
memory dalam aplikasi tertentu
2.
Konsumsi daya kecil
3.
Rangkaian sederhana dan kompak
4.
Murah, karena komponen yang digunakan sedikit
5.
Unit I/O yang sederhana misal keypad, lcd,
led, latch
6.
Lebih tahan lama dalam kondisi ekstreem,
misal temperature, tekanan, kelembaban dan sebagianya.
.
Perintah
Dasar Mikrokontroler 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)
(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.
Saat perintah call dijalankan, isi
register PC (Program Counter) akan disimpan ke dalam stack dan digantikan
dengan alamat subrutin yang dipanggil. Saat subrutin berakhir dengan ditandai
perintah ret (return) register PC akan diisi kembali oleh isi dari stack, dan
mikrokontroler akan menjalankan perintah di bawah baris perintah call tadi.
Format : acall (perintah untuk memanggil program pada subrutin)
Format : acall (perintah untuk memanggil program pada subrutin)
Contoh: acall cinta
lcall (perintah untuk memanggil program pada subrutin)
Contoh: lcall computer
Cat.: Penggunaan
subrutin sebaiknya menggunakan kata, untuk kata-katanya sesuka pemrogram boleh
menggunakan nama sendiri, 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
Contoh: sjmp kamu
sjmp
(lompat atau jalankan langsung program yang berada pada suatu alamat memori)
Contoh: ljmp 100h
(lompat atau jalankan langsung program 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
dilakukan 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)
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)
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)
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)
Catatan : 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
- Untuk Keterangannya :
-
$mod51
Instruksi
ini digunakan untuk agar simulator dapat mengidentifikasi program yang dibuat
dalam bahasa assembler.
-
Org 0h
Mempunyai
fungsi untuk menulis program dialamat 0 hexa pada register mikrokontoroler
-
Main Program
Berisi
program utama
-
End
Untuk
mengakhiri program
Komentar