APLIKASI KANAL PARALEL
DASAR TEORI
Salah satu aplikasinya untuk mengatur penyalaan LED dengan beberapa cara melalui port 1.0 sampai port 1.7. Baik secara flip-flop 4 bit, bergantian kelompok ganjil dan genap, menyala mulai dari tengah, menyala dari kiri dan kanan (pingpong) ataupun yang lainnya. Nyala lampu LED secara bergatian tersebut memakan/ membutuhkan waktu sekitar 0,65 detik untuk mikrokontrol yang memakai kristal 12 MHz.
Adapun rangkaian minimum dari mikrokontroller yang dipakai pada aplikasi ini :
Penjelasan Rangkaian
Gambar di atas adalah sebagian dari modul praktek bagian CPU. Pada kegiatan ini mengaktifkan port 1.0 sampai port 1.7 (8 bit) dengan tampilan 8 buah LED yang dikonfigurasikan common anode, dimana untuk mengaktifkan/ menyalakan diberi logika “0” (Active Low).
PROGRAM
2.5. Program Pertama
; ---------------------------------------------------------------------------
; Lampu dari tengah pada port 1 Nama File : LED1
; ---------------------------------------------------------------------------
org 0000h
mulai: mov p1,#11100111b
call delay
mov p1,#11011011b
call delay
mov p1,#10111101b
call delay
mov p1,#01111110b
call delay
mov p1,#10111101b
call delay
mov p1,#11011011b
call delay
mov p1,#11100111b
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
2.5. Program Kedua
; --------------------------------------------------------------------
; Lampu pada port 1 Nama File : LED2
; Dengan nyala kelompok genap dan ganjil
; --------------------------------------------------------------------
org 0000h
mulai: mov p1,#10101010b
call delay
mov p1,#01010101b
call 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
2.5. Program Ketiga
; ---------------------------------------------------------------------------
; Lampu LED bergeser port 1 Nama File : LED3
; dengan perintah RL (geser KE KIRI)
; ---------------------------------------------------------------------------
ORG 0000h
MOV A,#11111110B
mulai: MOV P1,A
CALL delay
RL A
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
2.5. Program keempat
; -----------------------------------------------------------------------
; Lampu LED bergeser port 1 Nama File : LED4
; dengan perintah RL (geser KE KIRI) dan
; perintah RR (geser KE KANAN) secara gantian
; -----------------------------------------------------------------------
ORG 0000h
MOV A,#11111110B
mulai: MOV P1,A
ACALL delay
RL A
CJNE A,#01111111B,mulai
mulai1: MOV P1,A
ACALL delay
RR A
CJNE A,#11111110B,mulai1
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
APLIKASI KONTROL I/O
Orientasi membangun minimum sistem adalah kontrol, program (software)
yang dibuat mengacu pada alat yang dikontrol (hardware). Dari mikro sendiri dimanfaatkan port 3 yang bidirectional (dua arah) sebagai input dan output tetap menggunakan port 1.0 sampai port 1.7 sebagai port paralelnya mikro 8031.
Adapun rangkaian minimum dari mikrokontroller yang dipakai pada aplikasi ini :
Penjelasan Rangkaian
Rangkaian ini hampir sama dengan dengan sebelumnya, masukan kontrol terhubung pada port 3 yakni berupa 8 buah mikro switch yang dikonfigurasikan common katoda, dimana ketika tombol ditekan akan memberikan masukan berlogika “0” (active low).
PROGRAM
2.5. Program Kelima
; ---------------------------------------------------------------
; Kontrol LED Nama File : LED5
; Lampu LED di port 1 dikontrol dari port 3
; ----------------------------------------------------------------
ORG 0000H
Start: MOV A,P3
MOV P1,A
SJMP Start
END
Pada Laporan Akhir :
1) Berilah penjelasan pada tiap-tiap baris perintah program di atas.
2) Ganti subrutin delay untuk waktu 1 detik dengan mengganti nilai parameter yang diperlukan pada subrutin tersebut.
3) Buatlah pembahasan program yang ditugaskan dan diagram alir dari sistem tersebut.
LANGKAH – LANGKAH PRAKTIKUM
1) Jalankan aplikasi B51PEB pada komputer
2) Ketikkan program yang akan dibuat pada text editor dengan cara menekan
Tombol D.
3) Setelah program diketikkan, simpan program dengan nama file yang
dinginkan.h51.
4) Lalu tekan alt + X dan tekan alt + M untuk mengetahui program yang error
5) Setelah tidak ada program yang error, kemudian compile file yang telah disave tadi dengan cara tekan O lalu tekan H kemudian muncul nama filenya selanjutnya tekan Enter.
6) Kemudian buka program untuk mengetahui outputnya. Pada device selection pilih AT89S51 dan XTAL nya ubah menjadi 11 MHZ.
7) Load file dan pilih file yang telah disimpan tadi lalu open.
8) Jika ada muncul program, maka di lakukan erase selanjutnya klik write flash.
HASIL DATA PRAKTIKUM
a. Program pertama
;-----------------------------------------------------------------------
; Lampu dari tengah pada port 1 Nama file : LED1
;-----------------------------------------------------------------------
org 0000h ; memori program alamat 0000h
mulai: mov p1,#11100111b ; led p1.4 dan p1.5 menyala
call delay ; memanggil subrutin delay
mov p1,#11011011b ; led p1.3 dan p1.6 menyala
call delay ; memanggil subrutin delay
mov p1,#10111101b ; led p1.2 dan p1.7 menyala
call delay ; memanggil subrutin delay
mov p1,#01111110b ; led p1.1 dan p1.8 menyala
call delay ; memanggil subrutin delay
mov p1,#10111101b ; led p1.2 dan p1.7 menyala
call delay ; memanggil subrutin delay
mov p1,#11011011b ; led p1.3 dan p1.8 menyala
call delay ; memanggil subrutin delay
mov p1,#11100111b ; led p1.4 dan p1.5 menyala
sjmp mulai ; lombat ke label alamat mulai
delay: mov r0,#5 ; isi register r0 dengan 5
delay1: mov r1,#0ffh ; isi register r1 dengan ff (hex)
delay2: mov r2,#0 ; isi register r2 dengan 0
djnz r2,$ ; kurangi isi r2 dengan 1 jika belum 0
maka lompat ke instruksi ini lagi, jika
sudah 0 maka lanjut ke instruksi
berikutnya
djnz r1,delay2 ; kurangi isi r1 dengan 1 jika belum 0
maka lompat ke delay2
djnz r0,delay1 ; kurangi isi r0 dengan 1 jika hasilya
belum 0 maka lompat ke delay1
ret ; kembali ke alamat setelah perintah call delay
end ; tanda pengakhiran program
Hasil Pengamatan Program :
Hasil program ini jila dijalankan adalah led menyala dari tengah, kiri dan kanan, atau sebaliknya lalu ke tengah lagi . Pertama led 4 dan 5 menyala, kedua led 3 dan 6 dan menyala, ketiga led 2 dan 7 menyala, keempat led 1 dan 8 menyala, kelima led 2 dan 7 menyala, keenam 3 dan 6 menyala, ketujuh led 4 dan 5 menyala, begitu seterusnya secara bolak balik.
b. Program kedua
; -----------------------------------------------------------------------
; Lampu pada port 1 Nama File : LED2
; Dengan nyala kelompok ganjil dan genap
; -----------------------------------------------------------------------
org 0000h ; memori program alamat 0000h
mulai: mov p1,#10101010b ; led menyala pada p1.2, p1.4, p1.6, p1.8
call delay ; memanggil subrutin delay
mov p1,#01010101b ; led menyala pada p1.1, p1.3, p1.5, p1.7
call delay ; memanggil subrutin delay
sjmp mulai ; lompat ke label alamat mulai
delay: mov r0,#5 ; isi register r0 dengan 5
delay1: mov r1,#0ffh ; isi register r1 dengan ff (hex)
delay2: mov r2,#0 ; isi register r2 dengan 0
djnz r2,$ ; kurangi isi r2 dengan 1 jika belum 0 maka lompat ke instruksi ini lagi, jika sudah 0 maka lanjut ke instruksi berikutnya
djnz r1,delay2 ; kurangi isi r1 dengan 1, jika belum 0 maka lompat ke delay 2
djnz r0,delay1 ; kurangi isi r2 dengan 1, jika belum 0 maka lompat ke delay 1
ret ; kembali ke alamat perintah call delay
end ; tanda pengakhiran program
Hasil Pengamatan Program :
Program jika dijalankan maka akan menghasilkan led menyala bolak balik dengan format : pertama led 2, 4, 6, dan 8 ( led genap ) menyala dilanjutkan led 1, 3, 5, 7 menyala, begitu seterusnya secara bolak balik (led ganjil).
c. Program Ketiga
; ----------------------------------------------------------------------
; Lampu LED begeser port 1 Nama File : LED3
; dengan perintah RL (geser Ke Kiri)
; ----------------------------------------------------------------------
org 0000h ; memori program alamat 0000h
mov A,#11111110b ; led 8 menyala
mulai: mov p1,A ; copy-kan data ke port 1
call delay ; memanggil subrutin delay
rl A ; berputar ke kiri
sjmp mulai ; lompat ke label alamat mulai
delay: mov r0,#5 ; isi register r0 dengan 5
delay1: mov r1,#0ffh ; isi register r1 dengan ff (hex)
delay2: mov r2,#0 ; isi register r2 dengan 0
djnz r2,$ ; kurangi isi r2 dengan 1, jika belom 0 maka lompat ke instruksi ini lagi, jika sudah 0 lanjut ke instruksi selanjutnya.
djnz r1,delay2 ; kurangi isi r1 dengan 1, jika belum 0 maka lompat ke delay2.
djnz r0,delay1 ; kurangi isi r0 dengan 1,jika belum 0 maka
lompat ke delay1.
ret ; kembali ke alamat perintah call delay
end ; tanda pengakhiran program
Hasil Pengamatan Program :
Program ini jika dijalankan, hasilnya led akan menyala ke kiri dikarenakan adanya perintah rotation left (rl).
d. Program Keempat
; -----------------------------------------------------------------------
; Lampu LED bergeser port 1 Nama File : LED4
; dengan perintah RL (geser KE KIRI) dan
; perintah RR (geser KE KANAN) secara gantian
; -----------------------------------------------------------------------
org 0000h ; memori program alamat 0000h
mov A,#11111110b ; led 8 menyala
mulai: mov p1,A ; copy-kan data ke port 1
acall delay ; memanggil subrutin delay
rl A ; berputar ke kiri
cjne A,# 01111111b,mulai ; lompat ke label alamat mulai
mulai1: mov p1,A ; copy-kan data ke port 1
acall delay ; memanggil subrutin delay
rl A ; berputar ke kiri
cjne A,# 11111110b,mulai1; lompat ke label alamat mulai1
delay: mov r0,#5 ; isi register r0 dengan 5
delay1: mov r1,#0ffh ; isi register r1 dengan ff (hex)
delay2: mov r2,#0 ; isi register r2 dengan 0
djnz r2,$ ; kurangi isi r2 dengan 1, jika belom 0 maka lompat ke instruksi ini lagi, jika sudah 0 lanjut ke instruksi selanjutnya.
djnz r1,delay2 ; kurangi isi r1 dengan 1, jika belum 0 maka lompat ke delay2.
djnz r0,delay1 ; kurangi isi r0 dengan 1,jika belum 0 maka
lompat ke delay1.
ret ; kembali ke alamat perintah call delay
end ; tanda pengakhiran program
Hasil Pengamatan Program :
Program ini jika dijalankan, hasilnya led akan menyala ke kanan dikarenakan adanya perintah rotation right (rr).
e. Program Kelima
; ---------------------------------------------------------------
; Kontrol LED Nama File : LED5
; Lampu LED di port 1 dikontrol dari port 3
; ----------------------------------------------------------------
ORG 0000H ; memori program alamat 0000h
Start: MOV A,P3 ; copy-kan data ke port 3
MOV P1,A ; copy-kan data ke port 1
SJMP Start ; lompat ke label alamat start
END ; tanda pengakhiran program
Hasil Pengamatan Program :
Program ini jika dijalankan, hasilnya led yang akan menyala dikontrol dari port 3 tetapi keluarannya di port 1.
ANALISA DAN PEMBAHASAN
Pada praktikum modul I yakni tentang “ Aplikasi Kanal Paralel 1 ” ini dapat kita analisa bahwa semua program dapat yang dikerjakan berjalan dengan baik dan benar. Adapun pada program pertama cara pengerjaannya adalah pertama – tama buka program B51PEB nya terlebih dahulu. Selanjutnya muncul beberapa perintah, tekan D untuk membuka text editor, selanjutnya unutk memulai mengetik program pada lembaran baru, tekan alt + F, lalu pilih N. Selanjutnya ketikkan program, setelah program selesai diketik, simpan file dengan nama file yang anda inginkan dengan ekstensi h51. Lalu tekan alt X. Lalu tekan M untuk mengetahui apakah ada program yang salah atau tidak. Jika terdapat kesalahan tekan L dan ketikkan nama filenya. Pada program pertama tedapat kesalahan pada penulisan, maka dari itu untuk tekan L dan ketikkan nama filenya lalu buka lagi file yang telah diketik tadi. Tekan alt + F lalu muncul pilihan dan pilih open dan cari nama file anda dengan ekstensi.lst lalu open. Lalu tekan alt + X kemudian tekan D dan perbaiki kesalahan yang diberitahu sebelumnya. Lalu setelah selesai semua save kembali dan tekan alt + X, lalu tekan M dan muncul no error found pertanda tidak ada error pada program. Kemudian kompile program yang yang tadi telah di save dengan cara tekan O lalu tekan H kemudian muncul nama filenya kemudian Enter. Kemudian buka program untuk mengetahui outputnya, pada device selection pilih AT89S51 dan XTAL nya isi dengan 11 MHZ lalu ok. Kemudian load file dan pilih file yang di simpan tadi lalu open. Selanjutnya jika ada muncul program, maka harus di erase terlebih dahulu karena program tersebut adalah program sebelumnya. Kemudian klik write flash maka program yang tadi dibuat berjalan pada rangkaian. Selanjutnya pada program dua prosedurnya sama seperti program pertama hanya saja program yang diketik adalah program yang berbeda dengan program yang pertama dan tentunya output yang dihasilkan juga akan berbeda, pertama – tama buka program B51PEB nya terlebih dahulu. Selanjutnya muncul beberapa perintah, tekan D untuk membuka text editor, selanjutnya unutk memulai mengetik program pada lembaran baru, tekan alt + F, lalu pilih N. Selanjutnya ketikkan program, setelah program selesai diketik, simpan file dengan nama file yang anda inginkan dengan ekstensi h51. Lalu tekan alt X. Lalu tekan M untuk mengetahui apakah ada program yang salah atau tidak. Jika terdapat kesalahan tekan L dan ketikkan nama filenya. Pada program pertama tedapat kesalahan pada penulisan, maka dari itu untuk tekan L dan ketikkan nama filenya lalu buka lagi file yang telah diketik tadi. Tekan alt + F lalu muncul pilihan dan pilih open dan cari nama file anda dengan ekstensi.lst lalu open. Lalu tekan alt + X kemudian tekan D dan perbaiki kesalahan yang diberitahu sebelumnya. Lalu setelah selesai semua save kembali dan tekan alt + X, lalu tekan M dan muncul no error found pertanda tidak ada error pada program. Kemudian kompile program yang yang tadi telah di save dengan cara tekan O lalu tekan H kemudian muncul nama filenya kemudian Enter. Kemudian buka program untuk mengetahui outputnya, pada device selection pilih AT89S51 dan XTAL nya isi dengan 11 MHZ lalu ok. Kemudian load file dan pilih file yang di simpan tadi lalu open. Selanjutnya jika ada muncul program, maka harus di erase terlebih dahulu karena program tersebut adalah program sebelumnya. Kemudian klik write flash maka program yang tadi dibuat berjalan pada rangkaian. Begitu juga untuk program 3, program 4, dan program 5 secara prosedur pengerjaannya sama hanya saja outputnya pasti berbeda – beda karena programnya juga berbeda – beda.
KESIMPULAN DAN SARAN
KESIMPULAN :
1. tombol D untuk membuka text editor pada program B51PEB , selanjutnya unutk memulai mengetik program pada lembaran baru, tekan alt + F, lalu pilih N.
2. Jika terdapat kesalahan tekan L dan ketikkan nama filenya. Pada program pertama tedapat kesalahan pada penulisan, maka dari itu untuk tekan L dan ketikkan nama filenya lalu buka lagi file yang telah diketik tadi. Tekan alt + F lalu muncul pilihan dan pilih open dan cari nama file anda dengan ekstensi.lst lalu open.
3. Setekah semua program dipastikan telah benar dan tidak terdapat kesalahan tekan alt + X, lalu tekan M dan muncul no error found pertanda tidak ada error pada program. Kemudian kompile program yang yang tadi telah di save dengan cara tekan O lalu tekan H kemudian muncul nama filenya kemudian Enter. Kemudian buka program untuk mengetahui outputnya, pada device selection pilih AT89S51 dan XTAL nya isi dengan 11 MHZ
4. Untuk melihat outpunya klik write flash maka program yang tadi dibuat berjalan pada rangkaian. Maka led akan akan hidup sebagai outputnya.
DAFTAR PUSTAKA
1. Modul I Praktikum “Mikroprossesor dan Antaruka”
2. http://terminaltechno.blog.uns.ac.id/
0 comments:
Post a Comment