PEMROGRAMAN MIKROKONTROLER
disusun oleh :
Dolly Indra, S.Kom., M.MSI
PENDAHULUAN
TUJUAN PRAKTIKUM
Tujuan dari keseluruhan praktikum ini adalah agar praktikan mampu memprogram
mikrokontroler keluarga MCS-51 untuk diterapkan pada aplikasi LED dan 7 Segmen.
RUANG LINGKUP
Praktikum ini mencakup percobaan menggunakan modul training kit dengan bantuan
Personal computer (PC) dan software Notepad, MIDE dan Progisp168.
Panduan praktikum mikrokontroler keluarga MCS-51 ini terbagi dalam 9 bab. Adapun garis
besar masing-masing percobaan adalah sebagai berikut :
1. PENDAHULUAN
Praktikan mampu membuat program input dan output menggunakan Port 1 secara per
bit dan byte.
Praktikan mampu membuat program input dan output menggunakan Port yang ada pada
IC 89C51.
Praktikan mampu membuat program flip-flop untuk LED (mati-hidup secara bergantian)
2.
3.
4.
5.
POSISI
FUNGSI
Programming
PERANGKAT LUNAK
PERCOBAAN 1
PENGGUNAAN PORT I/O (A)
TUJUAN PRAKTIKUM
Praktikan mampu membuat program input dan output menggunakan Port 1 secara per bit
dan byte
DASAR TEORI
PROSEDUR PERCOBAAN
1. Ketikan program dibawah ini dan amati hasilnya
ORG 0H
MULAI:
SETB P0.0
CLR P0.1
SETB P0.2
CLR P0.3
SETB P0.4
SETB P0.5
SETB P0.6
SETB P0.7
SJMP MULAI
END
Pertanyaan :
a. Jelaskan maksud dari perintah-perintah diatas. (Mulai dari ORG 0H
sampai END)
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
7
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
b. Output LED (Isi dengan Nyala atau Mati)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
2.
Bit 2
Bit 1
Bit 0
Bit 2
Bit 1
Bit 0
3. Buatlah program untuk menyalakan 8 buah led pada port 0.Perintah yang
digunakan :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
Tugas : (Dikumpulkan pada percobaan selanjutnya)
1. Jelaskan apa yang dimaksud dengan Mikrokontroler
2. Sebutkan & jelaskan yang termasuk dalam keluarga dari mikrokontroler
51
PERCOBAAN 2
PENGGUNAAN PORT I/O (B)
TUJUAN PRAKTIKUM
Praktikan mampu membuat program input dan output menggunakan Port yang ada pada IC
89C51
DASAR TEORI
Selain bisa langsung memberi nilai pada setiap port pada IC 89C51, kita juga bisa
memanfaatkan carry flag disimbolkan dengan huruf C serta akumulator yang disimbolkan
dengan huruf A.
Label
SETB = Set Bit
CLR = Clear Bit
MOV
SJMP = Short Jump
PROSEDUR PERCOBAAN
1. Ketikan program dibawah ini dan amati hasilnya
ORG 0H
MULAI:
SETB C
MOV P0.0,C
MOV P0.1,C
MOV P0.2,C
MOV P0.3,C
CLR C
MOV P0.4,C
MOV P0.5,C
10
MOV P0.6,C
MOV P0.7,C
SJMP MULAI
END
Pertanyaan :
a. Jelaskan maksud dari perintah-perintah diatas. (Mulai dari ORG 0H
sampai END)
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
b. Output Led (Isi dengan Nyala atau Mati)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
11
Pertanyaan :
a. Apa maksud dari perintah MOV A,#0C4H dan MOV P0,A
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
b. Output LED (Isi dengan ON atau OFF)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
13
PERCOBAAN 3
PROGRAM FLIP-FLOP LED (A)
TUJUAN PRAKTIKUM
Praktikan mampu membuat program flip-flop untuk LED (mati-hidup secara bergantian)
DASAR TEORI
LED (Light Emitting Diode) merupakan diode yang yang bisa memancarkan cahaya jika
dialiri arus listrik dari kaki anoda ke kaki katoda. Cahaya dipancarkan tergantung dari LEDnya bisa warna putih, merah, hijau, kuning dll. LED termasuk kedalam jenis-jenis diode.
Penggabungan LED bisa dikelompokkan menjadi 2 yaitu common Anoda dan common
katoda. Common anoda adalah semua kaki-kaki anoda-nya dikelompokkan atau disatukan
sedangkan kaki-kaki katoda-nya yang menjadi inputannya, sedangkan common katoda
adalah semua kaki-kaki katoda-nya dikelompokkan atau disatukan sedangkan kaki-kaki
anoda-nya yang menjadi inputannya.
Agar lampu pada LED bisa mati-hidup secara bergantian maka kita harus menggunakan
pewaktuan dimana waktu ini sangat penting untuk menjaga agar LED kelihatan mati-hidup
secara bergantian.
14
Label
MOV
P0
R0 - R2
ACALL
RET
PROSEDUR PERCOBAAN
1. Ketikan program dibawah ini dan amati hasilnya
ORG 0H
MULAI: MOV P0,#00001111B
ACALL DELAY
MOV P0,#11110000B
ACALL DELAY
SJMP MULAI
;-----------------------------;
SUBRUTIN DELAY
;-----------------------------DELAY: MOV R0,#5
DELAY1: MOV R1,#0FFH
DELAY2: MOV R2,#0
DJNZ R2,$
DJNZ R1,DELAY2
DJNZ R0,DELAY1
RET
END
a. Output Led (Isi dengan ON atau OFF)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
Bit 0
OFF
Tuliskan programnya :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
Tugas : (Dikumpulkan pada percobaan selanjutnya)
1. Jelaskan maksud dari perintah ACALL DELAY pada percobaan 3
2. Jelaskan bagaimana mengkonversi bilangan dari biner ke hexa serta
berikan 2 contohnya
3. Jelaskan apa yang dimaksud dengan register
16
PERCOBAAN 4
PROGRAM FLIP-FLOP LED (B)
TUJUAN PRAKTIKUM
Praktikan mampu membuat program flip-flop untuk LED (mati-hidup secara bergantian)
DASAR TEORI
Dengan memodifikasi program pada percobaan 3 dengan memanfaatkan logika pergeseran
maka LED bisa kita lakukan manipulasi pergerakan dari kanan ke kiri (LED menyala dari
kanan ke kiri secara bergantian). Agar lampu pada LED bisa mati-hidup secara bergantian
maka kita harus menggunakan pewaktuan dimana waktu ini sangat penting untuk menjaga
agar LED kelihatan mati-hidup secara bergantian. Kita juga bisa memanfaatkan tombol
Saklar untuk mengaktifkan LED.
mulai
Gambar 4.1 Prosedur Pergeseran dari kanan ke kiri
Label
MOV
P0 & P2
A
R4 - R6
ACALL
DJNZ
RET
PROSEDUR PERCOBAAN
1. Ketikan program dibawah ini dan amati hasilnya
Org 0h
mov a,#0feh
start: mov P0,a
acall delay
sjmp start
delay:
17
mov r6,#05h
delay1:
mov r5,#0ffh
delay2:
mov r4,#0h
djnz r4,$
djnz r5,delay2
djnz r6,delay1
ret
End
Pertanyaan :
a. Jelaskan maksud dari perintah-perintah diatas. (Mulai dari ORG 0H
sampai END)
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
b. Output dari program diatas
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
18
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
2. Ketikan program dibawah ini dan amati hasilnya
Org 0h
mov a,#0feh
start: mov P0,a
rl a
acall delay
sjmp start
delay:
mov r6,#05h
delay1:
mov r5,#0ffh
delay2:
mov r4,#0h
djnz r4,$
djnz r5,delay2
djnz r6,delay1
ret
End
3. Ketikan program dibawah ini dan amati hasilnya
Org 0h
mov a,#07fh
mov r0,#18h
mulai:
mov p0,a
rr a
acall delay
djnz r0,mulai
mov r0,#05h
kedip:
mov p0,#0ffh
acall delay
mov p0,#00h
19
acall delay
djnz r0,kedip
mov p0,#0ffh
mov r0,#00h
mati:
sjmp mati
delay:
mov r6,#05h
delay1:
mov r5,#0ffh
delay2:
mov r4,#0h
djnz r4,$
djnz r5,delay2
djnz r6,delay1
ret
End
a. Apakah program pertama dan kedua sama outputnya. [ya/tidak].
..............................................................................................................................
...............................................................................................................................
...............................................................................................................................
b. Jelaskan maksud dari perintah rr a
................................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
3. Ketikan program dibawah ini dan amati hasilnya
org 0h
start: mov A,P2
mov P0,A
sjmp start
20
end
Jalankan program dengan cara menekan tombol saklar S1 sampai S8 serta
perhatikan led-nya.
S1 ditekan, isi tabel dengan ON atau OFF
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bit 2
Bit 1
Bit 0
Bit 2
Bit 1
Bit 0
Bit 2
Bit 1
Bit 0
Bit 2
Bit 1
Bit 0
Bit 2
Bit 1
Bit 0
Bit 2
Bit 1
Bit 0
Bit 2
Bit 1
Bit 0
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 6
Bit 5
Bit 4
Bit 3
Bit 6
Bit 5
Bit 4
Bit 3
Bit 6
Bit 5
Bit 4
Bit 3
Bit 6
Bit 5
Bit 4
Bit 3
21
(dengan
22
PERCOBAAN 5
PROGRAM FLIP-FLOP LED (C)
TUJUAN PRAKTIKUM
Praktikan mampu membuat program flip-flop untuk LED (mati-hidup secara bergantian)
DASAR TEORI
Dengan memodifikasi program pada percobaan 3 dengan memanfaatkan logika pergeseran
maka LED bisa kita lakukan manipulasi pergerakan dari kiri ke kanan (LED menyala dari
kiri ke kanan secara bergantian) dan pembandingan. Agar lampu pada LED bisa mati-hidup
secara bergantian maka kita harus menggunakan pewaktuan dimana waktu ini sangat
penting untuk menjaga agar LED kelihatan mati-hidup secara bergantian.
Mulai
Label
MOV
P0 & P2
A
R4 R6
CJNE
ACALL
DJNZ
RET
PROSEDUR PERCOBAAN
1. Buatlah program untuk menggeser data kekanan ini dan amati hasilnya
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
23
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
2. Ketikan program dibawah ini dan amati hasilnya
Org 0h
start: mov A,P2
cjne A,#0FEh,terus
Mov P0,#00110011b
acall delay
mov P0,#11001100b
acall delay
sjmp start
terus:
cjne A,#0fDh,Start
mov p0,#0ffh
sjmp Start
delay: mov r0,#10
delay1: mov r1,#0ffh
delay2: mov r2,#0
djnz r2,$
djnz r1,delay2
24
djnz r0,delay1
ret
End
Pertanyaan :
1. Jelaskan maksud dari perintah-perintah diatas. (Mulai dari ORG 0H
sampai END)
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
......................... .................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
2. Untuk melihat outputnya bagaimana. Jelaskan!
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
3. Ketikan program dibawah ini dan amati hasilnya
org 0h
mulai: mov A,P2
cjne A,#0FEh,terus
25
mov p0,#0h
sjmp mulai
terus:
cjne A,#0fDh,mulai
mov p0,#0ffh
sjmp mulai
end
3. Pertanyaan :
1. Jelaskan maksud dari perintah-perintah diatas. (Mulai dari ORG 0H
sampai END)
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
................................... .......................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
2. Modifikasi program no.2 diatas dengan cara menekan tombol saklar S4
untuk menampilkan led seperti tabel dibawah ini serta tombol saklar
S5 mematikannya.
Bit 7
Bit 6
ON
ON
Bit 5
OFF
Bit 4
Bit 3
Bit 2
OFF
ON
ON
Bit 1
Bit 0
OFF OFF
..........................................................................................................................
..........................................................................................................................
26
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
................................... .......................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
Tugas : (Dikumpulkan pada percobaan selanjutnya)
1. Jelaskan apa yang dimaksud dengan Dipswitch.
2. Apa perbedaan antara saklar (yang anda praktikumkan dengan
dipswitch).
27
PERCOBAAN 6
SEVEN SEGMENT (A)
TUJUAN PRAKTIKUM
DASAR TEORI
Seven segment atau di kenal dengan istilah 7 Segments merupakan alat penampil yang
lebih baik dibandingkan dengan LED. 7 Segments dibentuk dari sekumpulan LED bisa
berupa 7-segmen bersifat common Anoda dan common katoda. Display 7 Segmen dapat
menampilkan data yang lebih nyata (Angka dan Huruf), misalnya kita mendapati data
biner maka dengan display 7 segmen dapat disusun membentuk bilangan desimal ataupun
hexa. Agar dapat dengan mudah mengkonversi data biner ke dalam data nyata untuk
bilangan desimal ataupun hexa diperlukan suatu IC pengubah data biner ke 7 segmen,
dalam hal ini dekoder BCD to 7 Segmen.
Dengan menggunakan dekoder mempermudah dalam aplikasi program, karena tak perlu
lagi menyusun 7 bit data yang digunakan untuk menyalakan 7 segmen dalam bentuk angka
atau huruf.
28
Label
MOV
ACALL
SJMP
R4 R6
RET
PROSEDUR PERCOBAAN
1.
29
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
ANGKA
dp
HEXA
0
1
2
3
4
5
6
7
8
9
2.
mov r4,#0h
djnz r4,$
djnz r5,delay2
djnz r6,delay1
ret
End
Output dari program :
3.
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
31
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
4.
PERCOBAAN 7
SEVEN SEGMENT (B)
TUJUAN PRAKTIKUM
DASAR TEORI
Seven segment atau di kenal dengan istilah 7 Segments merupakan alat penampil yang
lebih baik dibandingkan dengan LED. 7 Segments dibentuk dari sekumpulan LED bisa
berupa 7-segmen bersifat common Anoda dan common katoda. Display 7 Segmen dapat
menampilkan data yang lebih nyata (Angka dan Huruf).
Pada data array output yang dihasilkan sama dengan percobaan sebelumnya, data-data yang
akan ditampilkan disimpan dalam memori terlebih dahulu kemudian dibaca dan dikirim
satu persatu, sehingga mengakibatkan programnya lebih pendek (lebih kecil), bayangkan
jika data yang dikirim ada 20, 30 atau 50 data.
Label
MOV
MOVC
ACALL
SJMP
R4 R6
RET
DB
PROSEDUR PERCOBAAN
1.
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
.........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
.........................................................................................................................
2.
34
...............................................................................................................................
2. Jelaskan perbedaan antara program no.1 dan no.2
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
3.
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
37
PERCOBAAN 8
SEVEN SEGMENT (C)
TUJUAN PRAKTIKUM
Praktikan mampu memahami rangkaian interface dan membuat program untuk
menampilkan angka dan huruf pada seven segment (7-Segments) dengan menggunakan
teknik scanning
DASAR TEORI
Jika kita ingin menyalakan display 7 segmen lebih dari 1 digit digunakan teknik scanning,
dinama data (digit) yang akan ditampilkan pada display dikirim data secara bergantian.
Dalam hal ini ingat bahwasanya untuk common itu merupakan terminal atau gabungan dari
7 led menjadi satu, apakah anoda atau katoda. Scanning display 7 segmen dinyalakan dan
dimatikan secara bergantian, dalam hal ini kita butuh switching tegangan yang cukup kuat
walaupun sebenarnya dengan tegangan TTL dari mikrokontroler juga bisa. Namun jika tipe
7 segmen yang digunakan membutuhkan catu daya yang lebih besar sudah tentu dibutuhkan
komponen aktif eksternal sebagai switchingnya. Transistor merupakan switching yang
mudah kita gunakan. Transistor PNP untuk display common anoda cocok sekali karena dari
mikrokontroler cukup memberikan catuan atau trigger low pada basis maka transistor
switch on.
Label
CLR
SETB
MOV
ACALL
SJMP
R1 R2
DJNZ
RET
PROSEDUR PERCOBAAN
1.
38
setb P3.6
setb P3.7
mov P0,#80h
call delay
;call delay time
sjmp start
;jump forever
;=============================================
;subroutine delay created to rise delay time
;=============================================
delay: mov R1,#25
del1: mov R2,#25
del2: djnz R2,del2
djnz R1,del1
ret
end
Pertanyaan
a. Output dari program diatas :
display 0
display 1
display 2
display 3
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
..............................................................................................................................
...............................................................................................................................
...............................................................................................................................
2.
3.
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
Tugas : (Dikumpulkan pada percobaan selanjutnya)
1. Jelaskan apa yang dimaksud dengan istilah Trigger Low?
2. Buatlah flowchart untuk soal nomor 1.
3. Apa guna dari teknik scanning?
41
LAMPIRAN
42
43
44