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
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/
terimakasih artikel yang sangat bermanfaat
BalasHapus