PIC16F628A Yürüyen Işık Devresi

8 Eylül 2011 Perşembe

Bugün sizlere PIC16F628A ile yürüyen ışık  devresini vereceğim.
PIC Assembly kodlarken IDE olarak MPLAB kullandım.
Derleyici olarak MPASMWIN kullandım.
Proteus versiyonum 7.1 SP2

Size devrenin ISIS çizimini,ASM dosyasını ve HEX dosyasını vereceğim.
Devreden bir görüntü:

MPLAB IDE'den bir görüntü:


Asıl olayımıza gelelim,

Şimdi kodları görenlerden bazıları neden MOVLW,MOVWF ikilisi kullandın amele'lik değil mi,BSF komutuyla işi bitirebilirdin diyebilirler.

Hem yeni başlayanlar,hem de orta düzey PIC ASM bilenlerin mantığı kavrayabilmesi için bu tarz yazmayı istedim.

Evet devremizin ASM Dosyası:
;===YURUYENLEDLER.ASM===08/09/2011===============================================
;Coded By yücelyılmaz
;yucelz.blogspot.com

LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF

;--------------------------------------------------------------------------------
ORG H'0000'
SAY1 EQU H'20'
SAY2 EQU H'21'
BANKSEL TRISB
CLRF TRISB

BASLA
BANKSEL PORTB
CLRF PORTB

MOVLW B'00000001'
MOVWF PORTB
CALL GECIKME

MOVLW B'00000010'
MOVWF PORTB
CALL GECIKME

MOVLW B'00000100'
MOVWF PORTB
CALL GECIKME

MOVLW B'00001000'
MOVWF PORTB
CALL GECIKME

MOVLW B'00010000'
MOVWF PORTB
CALL GECIKME

MOVLW B'00100000'
MOVWF PORTB
CALL GECIKME

MOVLW B'01000000'
MOVWF PORTB
CALL GECIKME

MOVLW B'10000000'
MOVWF PORTB
CALL GECIKME

GOTO BASLA
GECIKME
MOVLW H'FF'
MOVWF SAY1
DONGU1
MOVLW H'FF'
MOVWF SAY2
DONGU2
DECFSZ SAY2,F
GOTO DONGU2
DECFSZ SAY1,F
GOTO DONGU1
RETURN
END

4 yorum:

Adsız dedi ki...

Tesekkurler ozellikle Pic Assembly 'e baslayanlarin degisik tarzda kod gormeleri acisindan guzel bir ornek.

Unknown dedi ki...

Bu yürüyen led devresinin bana butonlu tipi lazım . PortA nın 0 numaralı ucuna basınca soldan sağa doğru kayacak . PortA nın 1 numaralı ucuna basınca sağdan sola doğru kayacak. Yardımcı olursanız sevinirim.

Unknown dedi ki...

Yani bunu entegreye yüklediğimde kaç saniye aralıklarla yanar?

Unknown dedi ki...

Yani bunu entegreye yüklediğimde kaç saniye aralıklarla yanar?

Yorum Gönder