Karaşimşek Devresi Pic asembly kodu ile

Başlatan Extreme, 01 Aralık 2012, 22:02:30

Extreme

PIC16F628 kullanarak daha az elemanla bir karaşimşek devresi gerçekleştirilebilir. Bu tür devrelere, kayan led devresi de denmektedir. Biz bu devrede 16F628'in dahili osilatörünü kullanıyoruz. Bu sayede kullanılan devre elemanı en aza iniyor. Devrede, Pic16F628'in yanında 8 adet led ve 1 adet 470 ohm direnç kullanılmıştır. 100nF kondansatör voltaj filtresi olarak kullanılmaktadır.

Devrenin çalışması, programın bit kaydırma işlemi yapmasından ibarettir.





;=============================================
;Pic 16F628 ile Karaşimşek Devresi
;=============================================

LIST P=16F628
INCLUDE "P16F628.INC"
__config _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_CLKOUT

SAYAC1 EQU h'20
SAYAC2 EQU h'21'

;=====PORTLARIN GİRİŞ VE ÇIKIŞLARI AYARLANIYOR=====
CLRF PORTB
BCF STATUS, 0
BSF STATUS, 5
CLRF TRISB
BCF STATUS, 5

MOVLW h'07'
MOVWF CMCON

;=====BAŞLANGIÇ AYARLARI YAPILIYOR=====
MOVLW h'01'
MOVWF PORTB

;=====PROGRAM ÇALIŞMAYA BAŞLIYOR=====
SOL ;SOLA KAYDIRMA İŞLEMİ YAPILIYOR
CALL BEKLE
RLF PORTB, F
BTFSS PORTB, 7
GOTO SOL

SAG ;SAĞA KAYDIRMA İŞLEMİ YAPILIYOR
CALL BEKLE
RRF PORTB, F
BTFSS PORTB, 0
GOTO SAG
GOTO SOL

;=====GECİKME YAPTIRILIYOR=====
BEKLE
MOVLW h'FF'
MOVWF SAYAC1
DONGU1
MOVLW h'FF'
MOVWF SAYAC2
DONGU2
DECFSZ SAYAC2, F
GOTO DONGU2
DECFSZ SAYAC1, F
GOTO DONGU1
RETURN 

;=====PROGRAMIN SONU=====
END

ALINTIDIR.

emreetunet