ProGram RunninG LED

Pemrograman Running LED pada PIC16F877A
Berikut akan diberikan contoh program untuk membuat sistem sederhana untuk menjalankan RUNNING LED. Aplikasi ini merupakan sebuah runtunan menyalakan dan mematikan sebuah LED yang teratur sehingga tampak seperti RUNNING LED. Pada aplikasi ini PORT D merupakan sebuah PORT outputan yang tidak berpengaruh pada suatu inputan apapun dan akan diumpankan dengan sejumlah LED untuk melihat tampilan urutan nyalanya. Bentuk schema rangkaiannya dapat dilihat pada gambar berikut dibawah ini.


Listing programnya dapat dilihat pada beberapa baris dibawah ini.

;==========================================================
;PROGRAM LED RUNNING
;==========================================================
            list            p=16f877A                                    ; List untuk mejelaskan processor
            #include    p16f877A.inc>                 ; Speksifikasi variable pada processor
           
            __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF

            TRISD               EQU      0X0088             ; Pengatur Port D
            PORTD              EQU      0X0008             ; Port D
            HITUNG0           EQU      0X0020             ; Variabel Hiung0
            HITUNG1           EQU      0X0021             ; Variabel Hiung1
            MAJU                 EQU      0X0022             ; Variabel Maju
            MUNDUR            EQU      0X0023             ;Variabel Mundur
MULAI
            BSF                   STATUS,RP0                  ; Bank 1
            MOVLW              B'00000000'                  ;Memindahkan Literal ke W
            MOVWF             TRISD                           ;Menset Port D sebagai Output
            BCF                  STATUS,RP0                  ; Bank 0
            CLRF                 PORTD                         ;Clear Port D

LOOP    MOVLW             D'22'                             ; Memindahkan nilai D’22’ ke W
            MOVWF             MUNDUR                       ; Mengisi Mundur dengan Nilai W
            MOVLW             D'0'                              ; Memindahkan nilai D’0’ ke W
            MOVWF             MAJU                            ; Mengisi Majudengan Nilai W

LOOP1   CALL                TABLE                          ;Memanggil Prosedur Table
            MOVWF             PORTD                         ; Mengeluarkan Outputan di PORT D
            CALL                 DELAY                         ;Memanggil Prosedur Delay
            INCF                 MAJU                           ;Meng-Increment Variable Maju
            MOVF                MAJU,0                        ;Memindahkan Nilai Maju ke W
            DECFSZ            MUNDUR,1                   ;Meng-Decrementkan Nilai Mundur
            GOTO                LOOP1                        ;Lompat ke Prosedur Loop 1
            GOTO                LOOP                         ;Lompat ke Prosedur Loop

DELAY
            MOVLW             d'255'
            MOVWF             HITUNG0
LOOP3   MOVLW             d'255'                          ;Merupakan prosedur Delay
            MOVWF             HITUNG1
LOOP4   DECFSZ            HITUNG1,1                               
            GOTO                LOOP4
            DECFSZ            HITUNG0,1
            GOTO                LOOP3                                      
            RETURN
TABLE                                                                                                  
            ADDWF             PCL,1
            RETLW              B'10000000'
            RETLW              B'01000000'
            RETLW              B'00100000'
            RETLW              B'00010000'                                                      
            RETLW              B'00001000'
            RETLW              B'00000100'
            RETLW              B'00000010'
            RETLW              B'00000001'
            RETLW              B'00000010'
            RETLW              B'00000100'
            RETLW              B'00001000'
            RETLW              B'00010000'                                         
            RETLW              B'00100000'
            RETLW              B'01000000'
            RETLW              B'10000000'
            RETLW              B'00011000'                                          
            RETLW              B'00100100'
            RETLW              B'01000010'
            RETLW              B'10000001'
            RETLW              B'01000010'
            RETLW              B'00100100'
            RETLW              B'00011000'
END                                                            ; Akhir dari sebuah Program
Program diatas harus anda ketik dalam MPLAB editor. Pertama anda buka program MPLAB, setelah muncul, kemudian anda pilih menu FILE, kemudian pilih sub menu NEW, selanjutnya akan tampil lembaran putih kosong tempat anda menuliskan code text program assembler diatas. Setelah selesai  kemudian anda simpan dengan nama tertentu sesuai keinginan anda, misalnya "LED_RUNNING" , secara otomatis file akan tersimpan dengan ekstension .asm .
Langkah selanjutnya setelah anda melakukan proses penyimpanan yaitu melakukan proses kompilasi. Untuk melakukan proses kompilasi ini anda bisa memulainya dengan cara klik pada menu PROJECT kemudian pilih QUICKBUILD , apabila program yang kita buat diatas tidak terdapat error maka hasil kompilasi akan dinyatakan Sukses, dan apabila terdapat error maka hasil kompilasi akan menyatakan ada error yang harus anda betulkan terlebih dahulu.
Sebelum melakukan proses kompilasi ada baiknya jika anda memilih dahulu tipe mikrokontroller yang anda gunakan, dengan cara klik pada menu CONFIGURE kemudian pilih DEVICE dan selanjutnya anda pilih tipe mikrokontroller yang anda gunakan misalnya PIC16F877A.
Apabila hasil kompilasi tidak ada error maka akan dihasilkan sebuah file yang berekstensi .HEX yang nantinya anda masukkan/download (Burning) pada mikrokontroler PIC16F877A. Cara mendownload file .HEX ini kedalam IC anda bisa gunakan program winpic800 seperti yang telah dibahas pada bagian sebelumnya,
Setelah program diatas didownload kedalam PIC16F877A maka langkah selanjutnya anda bisa merangkai sebuah circuit rangkaian seperti pada gambar aplikasi diatas. Dan anda akan bisa melihat nyala setiap LED yang anda hubungkan dengan PORTD sesuai dengan yang anda buat pada program assemblernya.

Selasa, 21 Juni 2011 di 06.31

0 Comments to "ProGram RunninG LED"

Posting Komentar

Connect With Us

Texts

Total Pageviews

Instructions

Recent Posts

Labels

Labels

Download

Blogger Tricks

Blogger Themes

Poll

Recomended

Popular Posts

Followers