Monday, 18 June 2012

APLIKASI KANAL PARALEL & APLIKASI KONTROL I/O SERTA SCRIPT PROGRAMNYA

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: