Download - Laporan Proyek 1
Lab. Mikrokontroler I16
Laporan Praktikum
Laboratorium MIKROKONTROLER 1
AVR AT89S52
Proyek 01
Luaran
Disusun oleh:
Kelompok EK-2C / 01
01
- Ade Kurniawan
NIM
3.32.13.2.01
08
- Faris Faishol Auryn
3.32.13.2.08
15
22
- Muhammad Amin Marzuqi
- Taufiq Arrasyid
3.32.13.2.15
3.32.13.2.22
Dosen: Dr. Samuel BETA; Ing-Tech.,M.T.
PROGRAM STUDI TEKNIK ELEKTRONIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2014-2015
Proyek 01
LUARAN
1. Tujuan
Tujuan dari percobaan ini praktikan dapat :
Memahami cara kerja sistem pengendali masukan luaran digital secara keseluruhan dan mampu membuat sistem untuk membaca masukan dan menghasilkan luaran digital
Memahami cara kerja perangkat keras (rangkaian) pengendali masukan luaran digital dan mampu menghubungkan mikrokontroler AVR AT89C52 dengan rangkaian penggerak masukan luaran
Memahami cara kerja perangkat lunak (program) dan perintah bahasa assembly mikrokontroler AVR AT89C52 dan mampu membuat program untuk rangkaian penggerak masukan luaran
Memahami cara kerja sistem tunda pada perangkat lunak dan mampu membuat program tunda
2. Dasar Teori
Untuk berhubungan dengan dunia luar mikrokontroler AVR AT 8952 mempunyai empat buah pintu masukan luaran 8 bit yaitu: P0, P1, P2 dan P3. Setiap pintu mempunyai alamat dan dapat berfungsi sebagai masukan maupun luaran. Alamat pintu P0=80h, P1=90h, P2=A0h dan P3=B0h. Selain itu setiap dari setiap pintu juga memiliki alamat bit tersendiri dan dapat diakses secara individu.
Perintah dasar peralihan data untuk membaca/menulis data dari/ke pintu yaitu:
Membaca 1 byte data dari luar
(masukan)
Menulis 1 byte data ke luar
(luaran)
mov
A,
Px
x:0/1/2/3
mov
Px,
#xxxxxxxxb
#yyy
#zzh
nilai segera biner /des /hex
xxh
xx: alamat pintu
xxh,
A
xx: alamat pintu
Membaca 1 bit data dari luar
(masukan)
Menulis 1 bit data ke luar
(luaran)
mov
C,
Px.y
x:0/1/2/3
y:0,1, ... 7
mov
Px.y,
C
x:0/1/2/3
y:0,1, ... 7
xxh
xx: alamat bit pintu
xxh,
xx: alamat bit pintu
setb
Px.y
x:0/1/2/3
y:0,1, ... 7
clr
3. Praktikum
3.1. LED
3.1.1. Permasalahan
Membuat progam untuk menampilkan kode kelompok LED (1:padam 0:menyala)
Masukan: tidak ada
Proses: peralihan data segera ke pintu P0
Keluaran: pintu P0.0-7 (8 buah LED).
Gambar rangkaian :
Membuat tabel hasil perhitungan dan hasil percobaan, membandingkan dan menjelaskan hasil keduanya.
Tabel 1 Tampilan LED
D0
D1
D2
D3
D4
D5
D6
D7
LED YANG PADAM
0
1
1
1
1
1
0
0
LED yang padam yaitu LED pada P0.0, P0.6, P0.7
3.1.2. Penyelesaian
3.1.2.1. Diagram Alir
3.1.2.2. Program
;=========================================
;P011a-LED
; program untuk menampilkan kode kelompok
;pada LED (1:padam 0:menyala)
;----------------------------------------
;Materi baru:
;- Luaran LED (Pintu P0)
;- memodifikasi rangkaian EdSIM lewat (DI/LD)
;----------------------------------------
;Komponen:
;- 1x Bargraf (8xLED)
;- 1x R Net 120 ohm
;========================================
;=== Deklarasi variabel ===
kodeC1 equ 11000001b;kode kelompok
led equ P0;LED terpasang di pintu P0
;=== Pengesetan Awal ====
ORG 0;alamat awal
;=== Program Utama ===
mulai:
;tampilkan kode
MOV A,#kodeC1 ;ambbil kode
MOV led,A ;tampilkan di LED
SJMP mulai ;kembali ke mulai
;=== Sub program ===
;=== Tabel Konversi ===
END;selesai
3.1.2.3. Hasil Percobaan
Tampilan Logic Diagram pada EdSim
Tampilan pada Source Code Pane pada EdSim
;P011a-LED
;program untuk menampilkan kode kelompok
;pada LED (1:padam 0:menyala)
;----------------------------------------
;Materi baru:
;- Luaran LED (Pintu P0)
;- memodifikasi rangkaian EdSIM lewat (DI/LD)
;----------------------------------------
;Komponen:
;- 1x Bargraf (8xLED)
;- 1x R Net 120 ohm
;========================================
;=== Deklarasi variabel ===
kodeC1 equ 11000001b;kode kelompok
led equ P0;LED terpasang di pintu P0
;=== Pengesetan Awal ====
ORG 0;alamat awal
;=== Program Utama ===
mulai:
;tampilkan kode
0000| MOV A,#kodeC1 ;ambbil kode
0002| MOV led,A ;tampilkan di LED
0004| SJMP mulai;kembali ke mulai
;=== Sub program ===
;=== Tabel Konversi ===
END;selesai
Tampilan output pada EdSim
Tampilan output pada Proteus
Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah sebagai berikut:
1. Membuka aplikasi EdSim51DI, geser kursor ke tombol [ DI i LD ], klik [ LI ]. Setelah muncul menunya, mencari LED 0 lalu dikonfigurasi pada P [0] bit [0]. Kemudian simpan, keluar, dan buka kembali
2. Memasukkan program, mengkompilasi [Assm], menjalankan program langkah per langkah [ Step ]. Amati perubahan setiap langkah
3. Sebelum keluar simpan dengan nama: p011a-LED.asm dan .hex
4. Buka Proteus dan uji coba pada file P0-led
5. Jika berhasil lalu hubungkan bootloader ke pintu USB komputer dan ke konektor [PROGRAMER]. Nyalakan modul pelatihan
6. Membuka program isp dan menggunggah file p011a-LED.hex ke dalam modul
7. Amati output pada modul
3.1.3. Pembahasan
Pada bagian deklarasi variabel, kode kelompok dideklarasikan sebagai kodeC1 yang bernilai 11000001b. Sedangkan led dideklarasikan sebagai output yakni pada PORT 0. Sebelum memasukkan program utama pada mikro dilakukan pengesetan awal terlebih dahulu, yaitu ORG 0 untuk menyatakan nomor memori yang dipakai setelah perintah itu. Mulai digunakan sebagai label. MOV A, #kodeC1 berfungsi memindakan segera data kodeC1 yakni 11000001b pada pada A sehingga pada A akan berisi data dari kodeC1. MOV led,A berfungsi memindahkan segera data dari A menuju led yakni Output. SJMP mulai berfungsi untuk melompat ke label yang telah dideklarasikan untuk alamat kode yang pendek yaitu mulai. Kemudian program ditutup dengan END.
3.2. LEDnot
3.2.1. Permasalahan
Membuat progam untuk menampilkan kode kelompok LED (0:padam 1:menyala)
Masukan: tidak ada
Proses: peralihan data segera ke pintu P0
Keluaran: pintu P0.0-7 (8 buah LED).
Gambar rangkaian :
Membuat tabel hasil perhitungan dan hasil percobaan, membandingkan dan menjelaskan hasil keduanya.
Tabel 1 Tampilan LED
D0
D1
D2
D3
D4
D5
D6
D7
LED YANG PADAM
1
0
0
0
0
0
1
1
LED yang padam yaitu LED pada P0.1, P0.2, P0.3, P0.4, P0.5
3.2.2. Penyelesaian
3.2.2.1. Diagram Alir
3.2.2.2. Program
;=========================================
;P011b-LEDnot
;program untuk menampilkan kode kelompok
;pada LED (0:padam 1:menyala)
;----------------------------------------
;Materi baru:
;- Luaran LED (Pintu P0)
;- membalik keadaan(komplemen/not)
;----------------------------------------
;Komponen:
;- 1x Bargraf (8xLED)
;- 1x R Net 120 ohm
;========================================
;=== Deklarasi variabel ===
kodeC1 equ 11000001b;kode kelompok
led equ P0;LED terpasang di pintu P0
;=== Pengesetan Awal ====
ORG 0;alamat awal
;=== Program Utama ===
mulai:
;tampilkan kode
MOV A,#kodeC1 ;ambbil kode
CPL A ;membalikkan 01
MOV led,A ;tampilkan di LED
SJMP mulai;kembali ke mulai
;=== Sub program ===
;=== Tabel Konversi ===
END;selesai
3.2.2.3. Hasil Percobaan
Tampilan Logic Diagram pada EdSim
Tampilan Source Code Pane pada EdSim
;P011b-LEDnot
; program untuk menampilkan kode kelompok
;pada LED (0:padam 1:menyala)
;----------------------------------------
;Materi baru:
;- Luaran LED (Pintu P0)
;- membalik keadaan(komplemen/not)
;----------------------------------------
;Komponen:
;- 1x Bargraf (8xLED)
;- 1x R Net 120 ohm
;========================================
;=== Deklarasi variabel ===
kodeC1 equ 11000001b;kode kelompok
led equ P0;LED terpasang di pintu P0
;=== Pengesetan Awal ====
ORG 0;alamat awal
;=== Program Utama ===
mulai:
;tampilkan kode
0000| MOV A,#kodeC1;ambbil kode
0002| CPL A;membalikkan 01
0003| MOV led,A;tampilkan di LED
0005| SJMP mulai;kembali ke mulai
;=== Sub program ===
;=== Tabel Konversi ===
END;selesai
Tampilan output pada EdSim
Tampilan output pada Proteus
Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah sebagai berikut:
8. Membuka aplikasi EdSim51DI, geser kursor ke tombol [ DI i LD ], klik [ LI ]. Setelah muncul menunya, mencari LED 0 lalu dikonfigurasi pada P [0] bit [0]. Kemudian simpan, keluar, dan buka kembali
9. Memasukkan program, mengkompilasi [Assm], menjalankan program langkah per langkah [ Step ]. Amati perubahan setiap langkah
10. Sebelum keluar simpan dengan nama: p011b-LEDnot.asm dan .hex
11. Buka Proteus dan uji coba pada file P0-led
12. Jika berhasil lalu hubungkan bootloader ke pintu USB komputer dan ke konektor [PROGRAMER]. Nyalakan modul pelatihan
13. Membuka program isp dan menggunggah file p011b-LEDnot.hex ke dalam modul
14. Amati output pada modul
3.2.3. Pembahasan
Pada bagian deklarasi variabel, kode kelompok dideklarasikan sebagai kodeC1 yang bernilai 11000001b. Sedangkan led dideklarasikan sebagai output yakni pada PORT 0. Sebelum memasukkan program utama pada mikro dilakukan pengesetan awal terlebih dahulu, yaitu ORG 0 untuk menyatakan nomor memori yang dipakai setelah perintah itu. Mulai digunakan sebagai label. MOV A, #kodeC1 berfungsi memindakan segera data kodeC1 yakni 11000001b pada pada A sehingga pada A akan berisi data dari kodeC1. CPL A berfungsi membalikkan data biner pada A dari 0 menjdi 1 dan 1 menjadi 0, pada A terdapat kode biner 11000001b sehingga jika di balik kodenya menjadi 00111110b. MOV led,A berfungsi memindahkan segera data dari A menuju led yakni Output. SJMP mulai berfungsi untuk melompat ke label yang telah dideklarasikan untuk alamat kode yang pendek yaitu mulai. Kemudian program ditutup dengan END.
3.3. LEDkit
3.3.1. Permasalahan
Membuat progam untuk menampilkan kode kelompok LED (1:padam 0:menyala)
Masukan: tidak ada
Proses: peralihan data segera ke pintu P0
Keluaran: pintu P0.0-7 (8 buah LED).
Gambar rangkaian :
Membuat tabel hasil perhitungan dan hasil percobaan, membandingkan dan menjelaskan hasil keduanya.
Tabel 1 Tampilan LED
D0
D1
D2
D3
D4
D5
D6
D7
LED YANG PADAM
1
0
0
0
0
0
1
1
LED yang padam yaitu LED pada P0.1, P0.2, P0.3, P0.4, P0.5.
3.3.2. Penyelesaian
3.3.2.1. Diagram Alir
3.3.2.2. Program
;=========================================
;P011c-LEDkit
;program untuk menampilkan kode kelompok
;pada LED di KIT(0:padam 1:menyala)
;----------------------------------------
;Materi baru:
;- Luaran LED (Pintu P0)
;- membalik keadaan(komplemen/not)
;- mmenyesuaikan posisi LED pada kit
;----------------------------------------
;Komponen:
;- 1x Bargraf (8xLED)
;- 1x R Net 120 ohm
;========================================
;=== Deklarasi variabel ===
kodeC1 equ 11000001b;kode kelompok
kodeC1k equ 10000011b;kode kelompok
led equ P0;LED terpasang di pintu P0
;=== Pengesetan Awal ====
ORG 0;alamat awal
;=== Program Utama ===
mulai:
;tampilkan kode
MOV A,#kodeC1k;ambil kode
CPL A;membalikkan 01
MOV led,A;tampilkan di LED
SJMP mulai;kembali ke mulai
;=== Sub program ===
;=== Tabel Konversi ===
END;selesai
3.3.2.3. Hasil Percobaan
Tampilan hasil simulasi EdSim, M-IDE, Proteus dan hasil nyata terlihat (dapat berupa foto)
;P011c-LEDkit
; program untuk menampilkan kode kelompok
;pada LED di KIT(0:padam 1:menyala)
;----------------------------------------
;Materi baru:
;- Luaran LED (Pintu P0)
;- membalik keadaan(komplemen/not)
;- mmenyesuaikan posisi LED pada kit
;----------------------------------------
;Komponen:
;- 1x Bargraf (8xLED)
;- 1x R Net 120 ohm
;========================================
;=== Deklarasi variabel ===
kodeC1 equ 11000001b;kode kelompok
kodeC1k equ 10000011b;kode kelompok
led equ P0;LED terpasang di pintu P0
;=== Pengesetan Awal ====
ORG 0;alamat awal
;=== Program Utama ===
mulai:
;tampilkan kode
0000| MOV A,#kodeC1k;ambbil kode
0002| CPL A;membalikkan 01
0003| MOV led,A;tampilkan di LED
0005| SJMP mulai;kembali ke mulai
;=== Sub program ===
;=== Tabel Konversi ===
END;selesai
Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah sebagai berikut:
15. Membuka aplikasi EdSim51DI, geser kursor ke tombol [ DI i LD ], klik [ LI ]. Setelah muncul menunya, mencari LED 0 lalu dikonfigurasi pada P [0] bit [0]. Kemudian simpan, keluar, dan buka kembali
16. Memasukkan program, mengkompilasi [Assm], menjalankan program langkah per langkah [ Step ]. Amati perubahan setiap langkah
17. Sebelum keluar simpan dengan nama: p011c-LEDkit.asm dan .hex
18. Buka Proteus dan uji coba pada file P0-led
19. Jika berhasil lalu hubungkan bootloader ke pintu USB komputer dan ke konektor [PROGRAMER]. Nyalakan modul pelatihan
20. Membuka program isp dan menggunggah file p011c-LEDkit.hex ke dalam modul
21. Amati output pada modul
3.3.3. Pembahasan
Pada bagian deklarasi variabel, kode kelompok dideklarasikan sebagai kodeC1k yang bernilai 11000001b. Sedangkan led dideklarasikan sebagai output yakni pada PORT 0. Sebelum memasukkan program utama pada mikro dilakukan pengesetan awal terlebih dahulu, yaitu ORG 0 untuk menyatakan nomor memori yang dipakai setelah perintah itu. Mulai digunakan sebagai label. MOV A, #kodeC1 berfungsi memindakan segera data kodeC1 yakni 11000001b pada pada A sehingga pada A akan berisi data dari kodeC1. CPL A berfungsi membalikkan data biner pada A dari 0 menjdi 1 dan 1 menjadi 0, pada A terdapat kode biner 11000001b sehingga jika di balik kodenya menjadi 00111110b. MOV led,A berfungsi memindahkan segera data dari A menuju led yakni Output. SJMP mulai berfungsi untuk melompat ke label yang telah dideklarasikan untuk alamat kode yang pendek yaitu mulai. Kemudian program ditutup dengan END.
4. Simpulan
Bagian ini berisi simpulan yang dapat ditarik dari hasil praktikum ini. Simpulan merupakan sesuatu hal yang baru dapat ditarik setelah melakukan praktikum dan menganalisis hasilnya.
Beberapa simpulan yang dapat ditarikdari dari praktikum ini:
1. Perintah yang sering digunakan adalah perintah MOV yaitu memindahkan data byte tanpa memengaruhi register atau flag lain
2. Data MOV dalam praktikum digunakan untuk memindahkan data yang kemudian diaplikasikan dalam LED
=====================
P01 Pengendali Luaran Digital
STARTDEKLARASI KODE KELOMPOK DAN LED PADA OUPUTPINDAHKAN KODE PADA ATAMPILKAN PADA OUTPUTEND
STARTDEKLARASI KODE KELOMPOK DAN LED PADA OUPUTPINDAHKAN KODE PADA ATAMPILKAN PADA OUTPUTEND
STARTDEKLARASI KODE KELOMPOK DAN LED PADA OUPUTPINDAHKAN KODE PADA ATAMPILKAN PADA OUTPUTENDKOMPLEMENT A
STARTDEKLARASI KODE KELOMPOK DAN LED PADA OUPUTPINDAHKAN KODE PADA ATAMPILKAN PADA OUTPUTENDKOMPLEMENT A
STARTDEKLARASI KODE KELOMPOK DAN LED PADA OUPUTPINDAHKAN KODE PADA ATAMPILKAN PADA OUTPUTENDKOMPLEMENT A
STARTDEKLARASI KODE KELOMPOK DAN LED PADA OUPUTPINDAHKAN KODE PADA ATAMPILKAN PADA OUTPUTENDKOMPLEMENT A