Devre pic16f877 üzerine kurulu 94 adet led kullanılmış mikrodenetleyici çıkışları bc547 transistörler ile güçlendirilmiş bolca transistor ve direnç var simülasyon (.dsn) pcb (.lyt) kaynak asm ve hex yazılımları bulunmakta 4 adet hex dosyası var her biri ledlerin değişik şekilde çalışarak farklı görüntüler oluşturmasını sağlıyor led yerleşimleri değiştirilerek ya da assembly yazılımında yapılacak değişiklikler ile farklı efektler oluşturulabilir
Hazırlayan: Sami Hoca Emeği geçen Kişilere Teşekkürler
Assembly Kodları
;-------------------------------------------------------------- ;YAZAN SAMİ HOCA ;-------------------------------------------------------------- ;TARİH 18-07-2006 ;DOSYA ADI DENEY3 ;PIC ADI 16F877 ;REZONATÖR 4 MHZ XT ;KOMUT HIZI ;WATCHDOG DEVRE DIŞI ;KOD KORUMA YOK ;KONU LEDLERLE ÇEŞİTLİ EFEKTLER ;------------------------------------------ Title "LED Efektleri" list P = 16f877 include "P16f877.inc" ; use definition file for 16f877 __CONFIG _XT_OSC & _CP_OFF & _PWRTE_OFF &_WDT_OFF ;--------------------------------------------------------------- ;KULLANICI RAM TANIMLAMALARI ;-TANIMLAR------------------------------------------------------ S1 EQU 20H ;S1 DEĞİŞKENİ TANIMLANDI S2 EQU 10H ;S2 DEĞİŞKENİ TANIMLANDI S3 EQU 11H ;S3 DEĞİŞKENİ TANIMLANDI ; S4 EQU 14H ;S3 DEĞİŞKENİ TANIMLANDI ADET EQU 12H ;DEĞİŞKEN TANIMLANDI HIZ EQU 13H org 0x0000 ; start address = 0000h ;PORTLARI SİLME----------------------------------------------- CALL SIL ;PORTLARI DÜZENLEME------------------------------------------- bsf STATUS,RP0 ;BANK1'E GEÇ movlw b'000000' movwf TRISA ;BÜTÜN PİNLER ÇIKIŞ movlw b'00000000' movwf TRISB ;BÜTÜN PİNLER ÇIKIŞ movlw b'00000000' movwf TRISC ;BÜTÜN PİNLER ÇIKIŞ movlw b'00000000' movwf TRISD ;BÜTÜN PİNLER ÇIKIŞ movlw b'00000000' movwf TRISE ;BÜTÜN PİNLER ÇIKIŞ bcf STATUS,RP0 ;BANK0'A GEÇ ;------------------------------------------------------------- BASLA ; GOTO SONDENEY CALL HIZLAN TEKRAR ;-1- TEK TEK YANARAK VE SÖNMEDEN SONA GİT ;PORTA 0-1-2-3-5 MOVLW B'000001' MOVWF PORTA CALL BEKLE MOVLW B'000011' MOVWF PORTA CALL BEKLE MOVLW B'000111' MOVWF PORTA CALL BEKLE MOVLW B'001111' MOVWF PORTA CALL BEKLE MOVLW B'101111' MOVWF PORTA CALL BEKLE ;PORTE 3 ADET MOVLW B'001' MOVWF PORTE CALL BEKLE MOVLW B'011' MOVWF PORTE CALL BEKLE MOVLW B'111' MOVWF PORTE CALL BEKLE ;PORTC 0-1-2-3-4-5-6-7 MOVLW B'00000001' MOVWF PORTC CALL BEKLE DON2 RLF PORTC BSF PORTC,0 CALL BEKLE BTFSS PORTC,7 GOTO DON2 ;PORTD 0-1-2-3 MOVLW B'00000001' MOVWF PORTD CALL BEKLE DON3 RLF PORTD BSF PORTD,0 CALL BEKLE BTFSS PORTD,7 GOTO DON3 ;PORTB 0-1-2-4-5-6-7 MOVLW B'00000001' MOVWF PORTB CALL BEKLE MOVLW B'00000011' MOVWF PORTB CALL BEKLE MOVLW B'00000111' MOVWF PORTB CALL BEKLE MOVLW B'00010111' MOVWF PORTB CALL BEKLE MOVLW B'00110111' MOVWF PORTB CALL BEKLE MOVLW B'01110111' MOVWF PORTB CALL BEKLE MOVLW B'11110111' MOVWF PORTB CALL BEKLE ;GERİ DÖNÜŞ - LEDLERİ TEK TEK SÖNDÜREREK GİT ;PORTA LEDLERİNİ SÖNDÜR MOVLW B'101110' MOVWF PORTA CALL BEKLE MOVLW B'101100' MOVWF PORTA CALL BEKLE MOVLW B'101000' MOVWF PORTA CALL BEKLE MOVLW B'100000' MOVWF PORTA CALL BEKLE MOVLW B'000000' MOVWF PORTA CALL BEKLE ;PORTE LEDLERİNİ SÖNDÜR 0-1-2 MOVLW B'110' MOVWF PORTE CALL BEKLE MOVLW B'100' MOVWF PORTE CALL BEKLE MOVLW B'000' MOVWF PORTE CALL BEKLE ;PORTC LEDLERİNİ SÖNDÜR 0-1-2-3-4-5-6-7 MOVLW B'11111110' MOVWF PORTC CALL BEKLE DON8 RLF PORTC BCF PORTC,0 CALL BEKLE BTFSC PORTC,7 GOTO DON8 ;PORTD LEDLERİNİ SÖNDÜR 0-1-2-3-4-5-6-7 MOVLW B'11111110' MOVWF PORTD CALL BEKLE DON9 RLF PORTD BCF PORTD,0 CALL BEKLE BTFSC PORTD,7 GOTO DON9 ;PORTB LEDLERİNİ SÖNDÜR 0-1-2 MOVLW B'11110110' MOVWF PORTB CALL BEKLE MOVLW B'11110100' MOVWF PORTB CALL BEKLE MOVLW B'11110000' MOVWF PORTB CALL BEKLE MOVLW B'11100000' MOVWF PORTB CALL BEKLE MOVLW B'11000000' MOVWF PORTB CALL BEKLE MOVLW B'10000000' MOVWF PORTB CALL BEKLE CLRF PORTB CALL BEKLE CALL SIL BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK1 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH1 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK1 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR ;TEKRAR RUTİNİNE GİT FLH1 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL ;---------------------------------------------------------------- ;-2- ÜÇ LED YAK VE SONA KADAR 3'LÜ OLARAK GİT (ÜÇLÜ KARA ŞİMŞEK) ;---------------------------------------------------------------- CALL HIZLAN ;PORTA LEDLERİ 0-1-2-3-5 TEKRAR2 MOVLW B'000001' MOVWF PORTA CALL BEKLE MOVLW B'000011' MOVWF PORTA CALL BEKLE MOVLW B'000111' MOVWF PORTA CALL BEKLE MOVLW B'001110' MOVWF PORTA CALL BEKLE MOVLW B'101100' MOVWF PORTA CALL BEKLE ;3'LÜ HAREKET PORTE'YE GEÇİYOR MOVLW B'101000' MOVWF PORTA MOVLW B'001' MOVWF PORTE CALL BEKLE MOVLW B'100000' MOVWF PORTA MOVLW B'011' MOVWF PORTE CALL BEKLE MOVLW B'000000' MOVWF PORTA MOVLW B'111' MOVWF PORTE CALL BEKLE ;3'LÜ HAREKET PORTC'YE GEÇİYOR MOVLW B'110' MOVWF PORTE MOVLW B'00000001' MOVWF PORTC CALL BEKLE MOVLW B'100' MOVWF PORTE MOVLW B'00000011' MOVWF PORTC CALL BEKLE CLRF PORTE MOVLW B'00000111' MOVWF PORTC CALL BEKLE DON13 RLF PORTC BCF PORTC,0 CALL BEKLE BTFSS PORTC,7 GOTO DON13 ;3'LÜ HAREKET PORTC'DEN PORTD'YE GEÇİŞ MOVLW B'00000001' MOVWF PORTD RLF PORTC BCF PORTC,0 CALL BEKLE DON14 RLF PORTC BCF PORTC,0 RLF PORTD BSF PORTD,0 CALL BEKLE BTFSS PORTD,2 GOTO DON14 DON15 RLF PORTD BCF PORTD,0 CALL BEKLE BTFSS PORTD,7 GOTO DON15 ;3'LÜ HAREKET PORTD'DEN PORTB'YE GEÇİŞ MOVLW B'00000001' MOVWF PORTB RLF PORTD BCF PORTD,0 CALL BEKLE DON16 RLF PORTD BCF PORTD,0 RLF PORTB BSF PORTB,0 CALL BEKLE BTFSS PORTB,2 GOTO DON16 MOVLW B'00010110' MOVWF PORTB CALL BEKLE MOVLW B'00110100' MOVWF PORTB CALL BEKLE MOVLW B'01110000' MOVWF PORTB CALL BEKLE DON17 RLF PORTB BCF PORTB,0 CALL BEKLE BTFSC PORTB,7 GOTO DON17 ;3'LÜ HAREKET GERİ DÖNÜŞ MOVLW B'10000000' MOVWF PORTB CALL BEKLE MOVLW B'11000000' MOVWF PORTB CALL BEKLE MOVLW B'11100000' MOVWF PORTB CALL BEKLE MOVLW B'01110000' MOVWF PORTB CALL BEKLE MOVLW B'00110100' MOVWF PORTB CALL BEKLE MOVLW B'00010110' MOVWF PORTB CALL BEKLE MOVLW B'00000111' MOVWF PORTB CALL BEKLE MOVLW B'00000011' MOVWF PORTB MOVLW B'10000000' MOVWF PORTD CALL BEKLE MOVLW B'00000001' MOVWF PORTB MOVLW B'11000000' MOVWF PORTD CALL BEKLE MOVLW B'00000000' MOVWF PORTB MOVLW B'11100000' MOVWF PORTD CALL BEKLE DON18 RRF PORTD BCF PORTD,7 CALL BEKLE BTFSS PORTD,0 GOTO DON18 MOVLW B'00000011' MOVWF PORTD MOVLW B'10000000' MOVWF PORTC CALL BEKLE MOVLW B'00000001' MOVWF PORTD MOVLW B'11000000' MOVWF PORTC CALL BEKLE MOVLW B'00000000' MOVWF PORTD MOVLW B'11100000' MOVWF PORTC CALL BEKLE DON19 RRF PORTC BCF PORTC,7 CALL BEKLE BTFSS PORTC,0 GOTO DON19 MOVLW B'00000011' MOVWF PORTC MOVLW B'100' MOVWF PORTE CALL BEKLE MOVLW B'00000001' MOVWF PORTC MOVLW B'110' MOVWF PORTE CALL BEKLE MOVLW B'00000000' MOVWF PORTC MOVLW B'111' MOVWF PORTE CALL BEKLE MOVLW B'011' MOVWF PORTE MOVLW B'100000' MOVWF PORTA CALL BEKLE MOVLW B'001' MOVWF PORTE MOVLW B'101000' MOVWF PORTA CALL BEKLE MOVLW B'000' MOVWF PORTE MOVLW B'101100' MOVWF PORTA CALL BEKLE MOVLW B'001110' MOVWF PORTA CALL BEKLE MOVLW B'000111' MOVWF PORTA CALL BEKLE MOVLW B'000011' MOVWF PORTA CALL BEKLE MOVLW B'000001' MOVWF PORTA CALL BEKLE MOVLW B'000000' MOVWF PORTA CALL BEKLE BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK2 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH2 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK2 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR2 ;TEKRAR RUTİNİNE GİT FLH2 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL ;---------------------------------------------------------------- ;-3- BAŞTAN VE SONDAN BİRER TANE YANARAK AKARDİON ;---------------------------------------------------------------- CALL HIZLAN TEKRAR3 ;PORTA VE PORTB'DEN BİRER TANE YAKARAK ORTADA BULUŞ MOVLW B'000001' MOVWF PORTA MOVLW B'10000000' MOVWF PORTB CALL BEKLE MOVLW B'000011' MOVWF PORTA MOVLW B'11000000' MOVWF PORTB CALL BEKLE MOVLW B'000111' MOVWF PORTA MOVLW B'11100000' MOVWF PORTB CALL BEKLE MOVLW B'001111' MOVWF PORTA MOVLW B'11110000' MOVWF PORTB CALL BEKLE MOVLW B'101111' MOVWF PORTA MOVLW B'11110100' MOVWF PORTB CALL BEKLE ;PORTB VE PORTE YANIYOR MOVLW B'11110110' MOVWF PORTB MOVLW B'001' MOVWF PORTE CALL BEKLE MOVLW B'11110111' MOVWF PORTB MOVLW B'011' MOVWF PORTE CALL BEKLE ;PORTE VE PORTD YANIYOR MOVLW B'111' MOVWF PORTE MOVLW B'10000000' MOVWF PORTD CALL BEKLE ;PORTD VE PORTC YANIYOR MOVLW B'11000000' MOVWF PORTD MOVLW B'00000001' MOVWF PORTC CALL BEKLE DON20 RRF PORTD BSF PORTD,7 RLF PORTC BSF PORTC,0 CALL BEKLE BTFSS PORTC,7 GOTO DON20 ;AKARDION PORTA VE PORTB'DEN İTİBAREN SÖNÜYOR MOVLW B'101110' MOVWF PORTA MOVLW B'01110111' MOVWF PORTB CALL BEKLE MOVLW B'101100' MOVWF PORTA MOVLW B'00110111' MOVWF PORTB CALL BEKLE MOVLW B'101000' MOVWF PORTA MOVLW B'00010111' MOVWF PORTB CALL BEKLE MOVLW B'100000' MOVWF PORTA MOVLW B'00000111' MOVWF PORTB CALL BEKLE MOVLW B'000000' MOVWF PORTA MOVLW B'00000011' MOVWF PORTB CALL BEKLE ;PORTE VE PORTB SÖNÜYOR MOVLW B'110' MOVWF PORTE MOVLW B'00000001' MOVWF PORTB CALL BEKLE MOVLW B'100' MOVWF PORTE MOVLW B'00000000' MOVWF PORTB CALL BEKLE ;PORTE VE PORTD SÖNÜYOR MOVLW B'000' MOVWF PORTE MOVLW B'01111111' MOVWF PORTD CALL BEKLE ;PORTC VE PORTD SÖNÜYOR MOVLW B'11111110' MOVWF PORTC MOVLW B'00111111' MOVWF PORTD CALL BEKLE DON21 RLF PORTC BCF PORTC,0 RRF PORTD BCF PORTD,7 CALL BEKLE BTFSC PORTC,7 GOTO DON21 BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK3 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH3 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK3 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR3 ;GERİ DÖN FLH3 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL ;---------------------------------------------------------------- ;-4- PORTA'DAN İTİBAREN 5 LED YAKARAK SONA KADAR GİT(BEŞLİ KARA ŞİMŞEK) ;---------------------------------------------------------------- CALL HIZLAN TEKRAR4 MOVLW B'000001' MOVWF PORTA CALL BEKLE MOVLW B'000011' MOVWF PORTA CALL BEKLE MOVLW B'000111' MOVWF PORTA CALL BEKLE MOVLW B'001111' MOVWF PORTA CALL BEKLE MOVLW B'101111' MOVWF PORTA CALL BEKLE ;PORTE'YE GEÇİYOR MOVLW B'101110' MOVWF PORTA MOVLW B'001' MOVWF PORTE CALL BEKLE MOVLW B'101100' MOVWF PORTA MOVLW B'011' MOVWF PORTE CALL BEKLE MOVLW B'101000' MOVWF PORTA MOVLW B'111' MOVWF PORTE CALL BEKLE ;PORTC'YE GEÇİYOR MOVLW B'100000' MOVWF PORTA MOVLW B'111' MOVWF PORTE MOVLW B'00000001' MOVWF PORTC CALL BEKLE CLRF PORTA MOVLW B'111' MOVWF PORTE MOVLW B'00000011' MOVWF PORTC CALL BEKLE MOVLW B'110' MOVWF PORTE MOVLW B'00000111' MOVWF PORTC CALL BEKLE MOVLW B'100' MOVWF PORTE MOVLW B'00001111' MOVWF PORTC CALL BEKLE MOVLW B'000' MOVWF PORTE MOVLW B'00011111' MOVWF PORTC CALL BEKLE DON22 RLF PORTC BCF PORTC,0 CALL BEKLE BTFSS PORTC,7 GOTO DON22 MOVLW B'11110000' MOVWF PORTC MOVLW B'00000001' MOVWF PORTD CALL BEKLE DON23 RLF PORTC BCF PORTC,0 RLF PORTD BSF PORTD,0 CALL BEKLE BTFSS PORTD,4 GOTO DON23 DON24 RLF PORTD BCF PORTD,0 CALL BEKLE BTFSS PORTD,7 GOTO DON24 MOVLW B'11110000' MOVWF PORTD MOVLW B'00000001' MOVWF PORTB CALL BEKLE MOVLW B'11100000' MOVWF PORTD MOVLW B'00000011' MOVWF PORTB CALL BEKLE MOVLW B'11000000' MOVWF PORTD MOVLW B'00000111' MOVWF PORTB CALL BEKLE MOVLW B'10000000' MOVWF PORTD MOVLW B'00010111' MOVWF PORTB CALL BEKLE CLRF PORTD MOVLW B'00110111' MOVWF PORTB CALL BEKLE MOVLW B'01110110' MOVWF PORTB CALL BEKLE MOVLW B'11110100' MOVWF PORTB CALL BEKLE MOVLW B'11110000' MOVWF PORTB CALL BEKLE MOVLW B'11100000' MOVWF PORTB CALL BEKLE MOVLW B'11000000' MOVWF PORTB CALL BEKLE MOVLW B'10000000' MOVWF PORTB CALL BEKLE CLRF PORTB CALL BEKLE ;------------- ;5 LED YAKARAK GERİ DÖNÜŞ MOVLW B'10000000' MOVWF PORTB CALL BEKLE MOVLW B'11000000' MOVWF PORTB CALL BEKLE MOVLW B'11100000' MOVWF PORTB CALL BEKLE MOVLW B'11110000' MOVWF PORTB CALL BEKLE MOVLW B'11110100' MOVWF PORTB CALL BEKLE MOVLW B'01110110' MOVWF PORTB CALL BEKLE MOVLW B'00110111' MOVWF PORTB CALL BEKLE ;PORTD'YE GEÇİYOR MOVLW B'00010111' MOVWF PORTB MOVLW B'10000000' MOVWF PORTD CALL BEKLE MOVLW B'00000111' MOVWF PORTB MOVLW B'11000000' MOVWF PORTD CALL BEKLE MOVLW B'00000011' MOVWF PORTB MOVLW B'11100000' MOVWF PORTD CALL BEKLE MOVLW B'00000001' MOVWF PORTB MOVLW B'11110000' MOVWF PORTD CALL BEKLE CLRF PORTB MOVLW B'11111000' MOVWF PORTD CALL BEKLE DON25 RRF PORTD BCF PORTD,7 CALL BEKLE BTFSS PORTD,0 GOTO DON25 ;PORTC'YE GEÇİYOR MOVLW B'00001111' MOVWF PORTD MOVLW B'10000000' MOVWF PORTC CALL BEKLE DON26 RRF PORTD BCF PORTD,0 RRF PORTC BSF PORTC,7 CALL BEKLE BTFSS PORTC,3 GOTO DON26 DON27 RRF PORTC BCF PORTC,7 CALL BEKLE BTFSS PORTC,0 GOTO DON27 ;PORTE'YE GEÇİYOR MOVLW B'100' MOVWF PORTE MOVLW B'00001111' MOVWF PORTC CALL BEKLE MOVLW B'110' MOVWF PORTE MOVLW B'00000111' MOVWF PORTC CALL BEKLE MOVLW B'111' MOVWF PORTE MOVLW B'00000011' MOVWF PORTC CALL BEKLE ;PORTA'YA GEÇİYOR MOVLW B'00000001' MOVWF PORTC MOVLW B'111' MOVWF PORTE MOVLW B'100000' MOVWF PORTA CALL BEKLE CLRF PORTC MOVLW B'111' MOVWF PORTE MOVLW B'101000' MOVWF PORTA CALL BEKLE MOVLW B'011' MOVWF PORTA MOVLW B'101100' MOVWF PORTA CALL BEKLE MOVLW B'001' MOVWF PORTA MOVLW B'101110' MOVWF PORTA CALL BEKLE CLRF PORTE MOVLW B'101111' MOVWF PORTA CALL BEKLE MOVLW B'001111' MOVWF PORTA CALL BEKLE MOVLW B'000111' MOVWF PORTA CALL BEKLE MOVLW B'000011' MOVWF PORTA CALL BEKLE MOVLW B'000001' MOVWF PORTA CALL BEKLE CLRF PORTA CALL BEKLE BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK4 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH4 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK4 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR4 ;GERİ DÖN FLH4 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL ;-- ;PORTB'DEN GERİYE DOĞRU EN BAŞA KADAR YANARAK GİTSİN ;-- CALL HIZLAN TEKRAR5 ;PORTB LEDLERİ GERİYE DOĞRU YANSIN MOVLW B'10000000' MOVWF PORTB CALL BEKLE MOVLW B'11000000' MOVWF PORTB CALL BEKLE MOVLW B'11100000' MOVWF PORTB CALL BEKLE MOVLW B'11110000' MOVWF PORTB CALL BEKLE MOVLW B'11110100' MOVWF PORTB CALL BEKLE MOVLW B'11110110' MOVWF PORTB CALL BEKLE MOVLW B'11110111' MOVWF PORTB CALL BEKLE ;PORTD LEDLERİ GERİYE DOĞRU YANSIN MOVLW B'10000000' MOVWF PORTD CALL BEKLE DON63 RRF PORTD BSF PORTD,7 CALL BEKLE BTFSS PORTD,0 GOTO DON63 ;PORTC LEDLERİ GERİYE DOĞRU YANSIN MOVLW B'10000000' MOVWF PORTC CALL BEKLE DON64 RRF PORTC BSF PORTC,7 CALL BEKLE BTFSS PORTC,0 GOTO DON64 ;PORTE LEDLERİ GERİYE DOĞRU YANSIN MOVLW B'100' MOVWF PORTE CALL BEKLE MOVLW B'110' MOVWF PORTE CALL BEKLE MOVLW B'111' MOVWF PORTE CALL BEKLE ;PORTA LEDLERİ GERİYE DOĞRU YANSIN MOVLW B'100000' MOVWF PORTA CALL BEKLE MOVLW B'101000' MOVWF PORTA CALL BEKLE MOVLW B'101100' MOVWF PORTA CALL BEKLE MOVLW B'101110' MOVWF PORTA CALL BEKLE MOVLW B'101111' MOVWF PORTA CALL BEKLE ;PORTA'DAN İTİBAREN GERİ SÖNSÜN MOVLW B'101110' MOVWF PORTA CALL BEKLE MOVLW B'101100' MOVWF PORTA CALL BEKLE MOVLW B'101000' MOVWF PORTA CALL BEKLE MOVLW B'100000' MOVWF PORTA CALL BEKLE MOVLW B'000000' MOVWF PORTA CALL BEKLE ;PORTE GERİ SÖNSÜN MOVLW B'110' MOVWF PORTE CALL BEKLE MOVLW B'100' MOVWF PORTE CALL BEKLE MOVLW B'000' MOVWF PORTE CALL BEKLE ;PORTC GERİ SÖNSÜN MOVLW B'11111111' MOVWF PORTC DON65 RLF PORTC BCF PORTC,0 CALL BEKLE BTFSC PORTC,7 GOTO DON65 ;PORTD GERİ SÖNSÜN MOVLW B'11111111' MOVWF PORTD DON66 RLF PORTD BCF PORTD,0 CALL BEKLE BTFSC PORTD,7 GOTO DON66 ;PORTB GERİ SÖNSÜN MOVLW B'11110110' MOVWF PORTB CALL BEKLE MOVLW B'11110100' MOVWF PORTB CALL BEKLE MOVLW B'11110000' MOVWF PORTB CALL BEKLE MOVLW B'11100000' MOVWF PORTB CALL BEKLE MOVLW B'11000000' MOVWF PORTB CALL BEKLE MOVLW B'10000000' MOVWF PORTB CALL BEKLE MOVLW B'00000000' MOVWF PORTB CALL BEKLE BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK5 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH5 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK5 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR5 ;GERİ DÖN FLH5 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL ;---------------------------------------------------------------- ;-6- PORTA'DAN İLERİYE 1-11-21-31. LEDLER YANSIN VE BİRER ARTSIN ;---------------------------------------------------------------- CALL HIZLAN TEKRAR6 ;PORTA 0 + PORTC 2 + PORTD 4+ PORTB 7 LEDLERİ YANSIN MOVLW B'000001' MOVWF PORTA MOVLW B'00000100' MOVWF PORTC MOVLW B'00010000' MOVWF PORTD MOVLW B'10000000' MOVWF PORTB CALL BEKLE MOVLW B'000011' MOVWF PORTA MOVLW B'00001100' MOVWF PORTC MOVLW B'00110000' MOVWF PORTD CALL BEKLE MOVLW B'000111' MOVWF PORTA MOVLW B'00011100' MOVWF PORTC MOVLW B'01110000' MOVWF PORTD CALL BEKLE MOVLW B'001111' MOVWF PORTA MOVLW B'00111100' MOVWF PORTC MOVLW B'11110000' MOVWF PORTD CALL BEKLE MOVLW B'101111' MOVWF PORTA MOVLW B'01111100' MOVWF PORTC MOVLW B'10000001' MOVWF PORTB CALL BEKLE MOVLW B'001' MOVWF PORTE MOVLW B'11111100' MOVWF PORTC MOVLW B'10000011' MOVWF PORTB CALL BEKLE MOVLW B'011' MOVWF PORTE MOVLW B'11110001' MOVWF PORTD MOVLW B'10000111' MOVWF PORTB CALL BEKLE MOVLW B'111' MOVWF PORTE MOVLW B'11110011' MOVWF PORTD MOVLW B'10010111' MOVWF PORTB CALL BEKLE MOVLW B'111111101' MOVWF PORTC MOVLW B'11110111' MOVWF PORTD MOVLW B'10110111' MOVWF PORTB CALL BEKLE MOVLW B'111111111' MOVWF PORTC MOVLW B'11111111' MOVWF PORTD MOVLW B'11110111' MOVWF PORTB CALL BEKLE ;GERİ SÖNME İŞLEMİ MOVLW B'101110' MOVWF PORTA MOVLW B'11111011' MOVWF PORTC MOVLW B'11101111' MOVWF PORTD CALL BEKLE ;2.LEDLER SÖNÜYOR MOVLW B'101100' MOVWF PORTA MOVLW B'11110011' MOVWF PORTC MOVLW B'11001111' MOVWF PORTD CALL BEKLE ;3.LEDLER SÖNÜYOR MOVLW B'101000' MOVWF PORTA MOVLW B'11100011' MOVWF PORTC MOVLW B'10001111' MOVWF PORTD CALL BEKLE ;4.LEDLER SÖNÜYOR MOVLW B'100000' MOVWF PORTA MOVLW B'11000011' MOVWF PORTC MOVLW B'00001111' MOVWF PORTD CALL BEKLE ;5.LEDLER SÖNÜYOR MOVLW B'000000' MOVWF PORTA MOVLW B'10000011' MOVWF PORTC MOVLW B'11110110' MOVWF PORTB CALL BEKLE ;6.LEDLER SÖNÜYOR MOVLW B'110' MOVWF PORTE MOVLW B'00000011' MOVWF PORTC MOVLW B'11110100' MOVWF PORTB CALL BEKLE ;7.LEDLER SÖNÜYOR MOVLW B'100' MOVWF PORTE MOVLW B'00001110' MOVWF PORTD MOVLW B'11110000' MOVWF PORTB CALL BEKLE ;8.LEDLER SÖNÜYOR MOVLW B'000' MOVWF PORTE MOVLW B'00001100' MOVWF PORTD MOVLW B'11100000' MOVWF PORTB CALL BEKLE ;9.LEDLER SÖNÜYOR MOVLW B'00000010' MOVWF PORTC MOVLW B'00001000' MOVWF PORTD MOVLW B'11000000' MOVWF PORTB CALL BEKLE ;10.LEDLER SÖNÜYOR MOVLW B'00000000' MOVWF PORTC MOVLW B'00000000' MOVWF PORTD MOVLW B'00000000' MOVWF PORTB CALL BEKLE BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK6 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH6 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK6 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR6 ;GERİ DÖN FLH6 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL ;---------------------------------------------------------------- ;-7- PORTA'DAN İLERİYE LEDLER 5'ERLİ YANSIN VE MEKSİKA DALGALANMASI ;---------------------------------------------------------------- CALL HIZLAN TEKRAR7 ;PORTA 0-5 LEDLERİ YANSIN MOVLW B'101111' MOVWF PORTA CALL BEKLE ;PORTE 0-1-2 VE PORTC 0-1 LEDLERİ YANSIN MOVLW B'111' MOVWF PORTE MOVLW B'00000011' MOVWF PORTC CALL BEKLE ;PORTC 2-3-4-5-6 LEDLERİ YANSIN MOVLW B'01111111' MOVWF PORTC CALL BEKLE ;PORTC 7 VE PORTD 0-1-2-3 LEDLERİ YANSIN MOVLW B'11111111' MOVWF PORTC MOVLW B'00001111' MOVWF PORTD CALL BEKLE ;PORTD 4-5-6-7 VE PORTB 0 LEDLERİ YANSIN MOVLW B'11111111' MOVWF PORTD MOVLW B'00000001' MOVWF PORTB CALL BEKLE ;PORTB 1-2-4-5-6-7- LEDLERİ YANSIN MOVLW B'11110111' MOVWF PORTB CALL BEKLE ;MEKSİKA DALGALANMASI -3 LEDLİ HAREKET MOVLW B'101110' MOVWF PORTA CALL BEKLE MOVLW B'101100' MOVWF PORTA CALL BEKLE MOVLW B'101000' MOVWF PORTA CALL BEKLE MOVLW B'100001' MOVWF PORTA CALL BEKLE MOVLW B'000011' MOVWF PORTA CALL BEKLE MOVLW B'000111' MOVWF PORTA MOVLW B'110' MOVWF PORTE CALL BEKLE MOVLW B'001111' MOVWF PORTA MOVLW B'100' MOVWF PORTE CALL BEKLE MOVLW B'101111' MOVWF PORTA MOVLW B'000' MOVWF PORTE CALL BEKLE MOVLW B'001' MOVWF PORTE MOVLW B'11111110' MOVWF PORTC CALL BEKLE MOVLW B'011' MOVWF PORTE MOVLW B'11111100' MOVWF PORTC CALL BEKLE MOVLW B'111' MOVWF PORTE MOVLW B'11111000' MOVWF PORTC CALL BEKLE DON67 RLF PORTC BSF PORTC,0 CALL BEKLE BTFSC PORTC,7 GOTO DON67 DON68 RLF PORTC BSF PORTC,0 RLF PORTD BCF PORTD,0 CALL BEKLE BTFSC PORTD,2 GOTO DON68 DON69 RLF PORTD BSF PORTD,0 CALL BEKLE BTFSC PORTD,7 GOTO DON69 MOVLW B'00111111' MOVWF PORTD MOVLW B'11110110' MOVWF PORTB CALL BEKLE MOVLW B'01111111' MOVWF PORTD MOVLW B'11110100' MOVWF PORTB CALL BEKLE MOVLW B'11111111' MOVWF PORTD MOVLW B'11110000' MOVWF PORTB CALL BEKLE MOVLW B'11100001' MOVWF PORTB CALL BEKLE MOVLW B'11000011' MOVWF PORTB CALL BEKLE MOVLW B'10000111' MOVWF PORTB CALL BEKLE MOVLW B'00010111' MOVWF PORTB CALL BEKLE MOVLW B'00110111' MOVWF PORTB CALL BEKLE MOVLW B'01110111' MOVWF PORTB CALL BEKLE MOVLW B'11110111' MOVWF PORTB CALL BEKLE ;GERİ DÖNÜŞ MOVLW B'01110111' MOVWF PORTB CALL BEKLE MOVLW B'00110111' MOVWF PORTB CALL BEKLE MOVLW B'00010111' MOVWF PORTB CALL BEKLE MOVLW B'10000111' MOVWF PORTB CALL BEKLE MOVLW B'11000011' MOVWF PORTB CALL BEKLE MOVLW B'11100001' MOVWF PORTB CALL BEKLE MOVLW B'11110000' MOVWF PORTB CALL BEKLE MOVLW B'01111111' MOVWF PORTD MOVLW B'11110100' MOVWF PORTB CALL BEKLE MOVLW B'00111111' MOVWF PORTD MOVLW B'11110110' MOVWF PORTB CALL BEKLE MOVLW B'00011111' MOVWF PORTD MOVLW B'11110111' MOVWF PORTB CALL BEKLE DON70 RRF PORTD BSF PORTD,7 CALL BEKLE BTFSC PORTD,0 GOTO DON70 DON71 RRF PORTD BSF PORTD,7 RRF PORTC BCF PORTC,7 BTFSC PORTC,5 GOTO DON71 DON72 RRF PORTC BSF PORTC,7 CALL BEKLE BTFSC PORTC,0 GOTO DON72 MOVLW B'00111111' MOVWF PORTC MOVLW B'011' MOVWF PORTE CALL BEKLE MOVLW B'01111111' MOVWF PORTC MOVLW B'001' MOVWF PORTE CALL BEKLE MOVLW B'11111111' MOVWF PORTC MOVLW B'000' MOVWF PORTE CALL BEKLE MOVLW B'100' MOVWF PORTE MOVLW B'001111' MOVWF PORTA CALL BEKLE MOVLW B'110' MOVWF PORTE MOVLW B'000111' MOVWF PORTA CALL BEKLE MOVLW B'111' MOVWF PORTE MOVLW B'000011' MOVWF PORTA CALL BEKLE MOVLW B'100001' MOVWF PORTA CALL BEKLE MOVLW B'101000' MOVWF PORTA CALL BEKLE MOVLW B'101100' MOVWF PORTA CALL BEKLE MOVLW B'101110' MOVWF PORTA CALL BEKLE MOVLW B'101111' MOVWF PORTA CALL BEKLE BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK7 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH7 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK7 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR7 ;GERİ DÖN FLH7 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL ;---------------------------------------------------------------- ;-8- ORTADAN BAŞA VE SONA DOĞRU AKARDION ;---------------------------------------------------------------- CALL HIZLAN TEKRAR8 MOVLW B'10000000' MOVWF PORTC CALL BEKLE DON73 RRF PORTC BSF PORTC,7 RLF PORTD BSF PORTD,0 CALL BEKLE BTFSS PORTC,0 GOTO DON73 MOVLW B'100' MOVWF PORTE MOVLW B'11111111' MOVWF PORTD CALL BEKLE MOVLW B'110' MOVWF PORTE MOVLW B'00000001' MOVWF PORTB CALL BEKLE MOVLW B'111' MOVWF PORTE MOVLW B'00000011' MOVWF PORTB CALL BEKLE MOVLW B'100000' MOVWF PORTA MOVLW B'00000111' MOVWF PORTB CALL BEKLE MOVLW B'101000' MOVWF PORTA MOVLW B'00010111' MOVWF PORTB CALL BEKLE MOVLW B'101100' MOVWF PORTA MOVLW B'00110111' MOVWF PORTB CALL BEKLE MOVLW B'101110' MOVWF PORTA MOVLW B'01110111' MOVWF PORTB CALL BEKLE MOVLW B'101111' MOVWF PORTA MOVLW B'11110111' MOVWF PORTB CALL BEKLE ;GERİ DÖNÜŞ HAREKETLERİ MOVLW B'101110' MOVWF PORTA MOVLW B'01110111' MOVWF PORTB CALL BEKLE MOVLW B'101100' MOVWF PORTA MOVLW B'00110111' MOVWF PORTB CALL BEKLE MOVLW B'101000' MOVWF PORTA MOVLW B'00010111' MOVWF PORTB CALL BEKLE MOVLW B'100000' MOVWF PORTA MOVLW B'00000111' MOVWF PORTB CALL BEKLE MOVLW B'000000' MOVWF PORTA MOVLW B'00000011' MOVWF PORTB CALL BEKLE MOVLW B'110' MOVWF PORTE MOVLW B'00000001' MOVWF PORTB CALL BEKLE MOVLW B'100' MOVWF PORTE MOVLW B'00000000' MOVWF PORTB CALL BEKLE MOVLW B'000' MOVWF PORTE MOVLW B'01111111' MOVWF PORTD CALL BEKLE DON74 RLF PORTC BCF PORTC,0 RRF PORTD BCF PORTD,7 CALL BEKLE BTFSC PORTD,0 GOTO DON74 MOVLW B'00000000' MOVWF PORTC CALL BEKLE BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK8 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH8 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK8 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR8 ;GERİ DÖN FLH8 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL ;---------------------------------------------------------------- ;-9- PORTA'DAN SONA DOĞRU TEK TEK HAREKET (TEKLİ KARA ŞİMŞEK) ;---------------------------------------------------------------- ; SONDENEY CALL HIZLAN TEKRAR9 MOVLW B'000001' MOVWF PORTA CALL BEKLE MOVLW B'000010' MOVWF PORTA CALL BEKLE MOVLW B'000100' MOVWF PORTA CALL BEKLE MOVLW B'001000' MOVWF PORTA CALL BEKLE MOVLW B'100000' MOVWF PORTA CALL BEKLE ;PORTE LEDLERİ YANIYOR MOVLW B'000000' MOVWF PORTA MOVLW B'001' MOVWF PORTE CALL BEKLE MOVLW B'010' MOVWF PORTE CALL BEKLE MOVLW B'100' MOVWF PORTE CALL BEKLE ;PORTC LEDLERİ YANIYOR MOVLW B'000' MOVWF PORTE MOVLW B'00000001' MOVWF PORTC CALL BEKLE DON75 RLF PORTC BCF PORTC,0 CALL BEKLE BTFSS PORTC,7 GOTO DON75 ;PORTD LEDLERİ YANIYOR MOVLW B'00000000' MOVWF PORTC MOVLW B'00000001' MOVWF PORTD CALL BEKLE DON76 RLF PORTD BCF PORTD,0 CALL BEKLE BTFSS PORTD,7 GOTO DON76 ;PORTB LEDLERİ YANIYOR MOVLW B'00000000' MOVWF PORTD MOVLW B'00000001' MOVWF PORTB CALL BEKLE MOVLW B'00000010' MOVWF PORTB CALL BEKLE MOVLW B'00000100' MOVWF PORTB CALL BEKLE MOVLW B'00010000' MOVWF PORTB CALL BEKLE MOVLW B'00100000' MOVWF PORTB CALL BEKLE MOVLW B'01000000' MOVWF PORTB CALL BEKLE MOVLW B'10000000' MOVWF PORTB CALL BEKLE MOVLW B'00000000' MOVWF PORTB CALL BEKLE ;GERİ DÖNÜŞ HAREKETLERİ -PORTB MOVLW B'10000000' MOVWF PORTB CALL BEKLE MOVLW B'01000000' MOVWF PORTB CALL BEKLE MOVLW B'00100000' MOVWF PORTB CALL BEKLE MOVLW B'00010000' MOVWF PORTB CALL BEKLE MOVLW B'00000100' MOVWF PORTB CALL BEKLE MOVLW B'00000010' MOVWF PORTB CALL BEKLE MOVLW B'00000001' MOVWF PORTB CALL BEKLE ;PORTD LEDLERİ GERİ DÖNÜŞ MOVLW B'00000000' MOVWF PORTB MOVLW B'10000000' MOVWF PORTD CALL BEKLE DON77 RRF PORTD BCF PORTD,7 CALL BEKLE BTFSS PORTD,0 GOTO DON77 ;PORTC LEDLERİ GERİ DÖNÜŞ MOVLW B'00000000' MOVWF PORTD MOVLW B'10000000' MOVWF PORTC CALL BEKLE DON78 RRF PORTC BCF PORTC,7 CALL BEKLE BTFSS PORTC,0 GOTO DON78 ;PORTE LEDLERİ GERİ DÖNÜŞ MOVLW B'00000000' MOVWF PORTC MOVLW B'100' MOVWF PORTE CALL BEKLE MOVLW B'010' MOVWF PORTE CALL BEKLE MOVLW B'001' MOVWF PORTE CALL BEKLE ;PORTB LEDLERİ GERİ DÖNÜŞ MOVLW B'000' MOVWF PORTE MOVLW B'100000' MOVWF PORTA CALL BEKLE MOVLW B'001000' MOVWF PORTA CALL BEKLE MOVLW B'000100' MOVWF PORTA CALL BEKLE MOVLW B'000010' MOVWF PORTA CALL BEKLE MOVLW B'000001' MOVWF PORTA CALL BEKLE MOVLW B'000000' MOVWF PORTA CALL BEKLE BCF STATUS,0 DECFSZ ADET,1 ;DECREMENT F SKIP IF ZERO-ADET DEĞİŞKENİNİ 1 EKSİLT GOTO MUK9 ;ADET DEĞİŞKENİ 0 DEĞİL İSE MUK1 RUTİNİNE GİT GOTO FLH9 ;ADET DEĞİŞKENİ 0 İSE FLH1 RUTİNİNE GİT MUK9 RLF HIZ ;HIZ DEĞİŞKENİNİ SOLA KAYDIR (001)-(010)-(100) GOTO TEKRAR9 ;GERİ DÖN FLH9 MOVLW B'001' MOVWF HIZ CALL FLASH ;ADET DEĞİŞKENİ SIFIR İSE, FLASH RUTİNİNİ ÇAĞIR GEL GOTO BASLA ;------------------------------------------------------- HIZLAN MOVLW .3 ;W REG'E DECIMAL 3 SAYISINI YÜKLE (3 DEFA TEKRAR ETMEK İÇİN) MOVWF ADET ;W REG'DEKİ 3 SAYISINI ADET DEĞİŞKENİNE YÜKLE MOVLW B'001' ;W REG'E BINARY'001' SAYISINI YÜKLE (3 FARKLI HIZ İÇİN) MOVWF HIZ ;W REG'DEKİ '0001' SAYISINI HIZ DEĞİŞKENİNE YÜKLE RETURN ;------------------------------------------------------- SIL CLRF PORTA CLRF PORTB CLRF PORTC CLRF PORTD CLRF PORTE RETURN ;------------------------------------------------------- FLASH MOVLW .3 MOVWF ADET FLSH1 MOVLW B'101111' MOVWF PORTA MOVLW B'11110111' MOVWF PORTB MOVLW B'11111111' MOVWF PORTC MOVLW B'11111111' MOVWF PORTD MOVLW B'111' MOVWF PORTE CALL BEKLE CALL BEKLE CALL BEKLE CLRF PORTA CLRF PORTB CLRF PORTC CLRF PORTD CLRF PORTE CALL BEKLE CALL BEKLE CALL BEKLE DECFSZ ADET,1 GOTO FLSH1 RETURN ; 1/2 SEC BEKLE SUBROUTINE WITH 4MHz CLOCK ;------------------------------------------------------- BEKLE BTFSS HIZ,0 GOTO HIZ2 GOTO BEKLE1 HIZ2 BTFSS HIZ,1 GOTO HIZ3 GOTO BEKLE2 HIZ3 BTFSS HIZ,2 GOTO BEKLE3 GOTO BEKLE3 BEKLE1 MOVLW .150 ;W REG'E 200 SAYISINI AT MOVWF S1 ;S1 DEĞERİNİ W'DEN AL SAY1 MOVLW .150 ;WREG'E 200 SAYISINI AT MOVWF S2 ;S2 DEĞERİNİ W'DEN AL MOVLW .150 MOVWF S3 ; MOVLW .150 ; MOVWF S4 SAY2 DECFSZ S2,1 ;DECREMENT F SKIP IF 0- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY2 ;0 DEĞİLSE, D2'YE GİT SAY3 DECFSZ S3,1 ;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY3 ;0 DEĞİLSE, A1'E GİT ;SAY4 DECFSZ S4,1 ; GOTO SAY4 DECFSZ S1,1 ;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY1 ;0 DEĞİLSE, A1'E GİT RETURN BEKLE2 MOVLW .120 ;W REG'E 200 SAYISINI AT MOVWF S1 ;S1 DEĞERİNİ W'DEN AL SAY21 MOVLW .120 ;WREG'E 200 SAYISINI AT MOVWF S2 ;S2 DEĞERİNİ W'DEN AL MOVLW .120 MOVWF S3 SAY22 DECFSZ S2,1 ;DECREMENT F SKIP IF 0- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY22 ;0 DEĞİLSE, D2'YE GİT SAY23 DECFSZ S3,1 ;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY23 ;0 DEĞİLSE, A1'E GİT DECFSZ S1,1 ;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY21 ;0 DEĞİLSE, A1'E GİT RETURN BEKLE3 MOVLW .90 ;W REG'E 200 SAYISINI AT MOVWF S1 ;S1 DEĞERİNİ W'DEN AL SAY31 MOVLW .90 ;WREG'E 200 SAYISINI AT MOVWF S2 ;S2 DEĞERİNİ W'DEN AL MOVLW .90 MOVWF S3 SAY32 DECFSZ S2,1 ;DECREMENT F SKIP IF 0- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY32 ;0 DEĞİLSE, D2'YE GİT SAY33 DECFSZ S3,1 ;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY33 ;0 DEĞİLSE, A1'E GİT DECFSZ S1,1 ;DEC F Skip if Zero- SAYIYI AZALT, 0 İSE BİR KOMUT ATLA GOTO SAY31 ;0 DEĞİLSE, A1'E GİT RETURN END
pic-16f877-ledli-efekt-devresi-94-led-ay-yildiz
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/11/27 Etiketler: Assembly, efekt, isis, led bayrak, led uygulamaları, microchip pic projeleri, PIC16F877 örnekleri
s.a hocam bu devrenin baskı şemasında ledler seri bağlanmış ve bir tane bacak ları boş o şekil çalışıyor mu devre
Sami hocanın ayyıldız projesinden dolayı teşekkür ederim.Devreyi yaptım ve çalıştırdım fakat dört ayrı dosya halinde olan hex kodlarını entegreye yüklediğimde sadece iki dosya çalışıyor ve ikiside birbirinin aynısı.Diğer iki dosyayı yüklediğimde ise ledlerde hiçbir hareket olmuyor.Bu dosyaların çalışanlarına nasıl ulaşabilirim?
bu 3 grup led’den sonraki bacaklar boşta eğer boşta kalcaksa nasıl çalışcak ki devre acil haber verirmisiniz ?
Bu devreyi yıllık ödev olarak bende aldım daha yapmadım ama çok güzel devre 😉
Devreyi çalıştırabilmeniz için pcb ciziminde eksik olan üçlü grup ledlerin boşta kalan uçlarını birleştirerek +12V a bağlanmalı.Ayrıca transistörlerin 4,7 kohm a bağlanan emiter uçlarınıda tüm transistörlerde olmak üzere beslemenin eksi ucuna bağlamanız gerekiyor.Önemli olan bir noktada yine pcb çiziminde olmayan pic16f877 entegresine besleme voltajının verilmesi 11 nolu uç +5v , 12 nolu uç eksiye bağlanacak…bu bağlantıları eksiksiz ve yanlış yapmazsanız devre çalışıyor….
slmlar. ben bu devreyi proje olarak hazırlıyorum fakat devrede bazı ledlerin anot uçları açık. bu şekilde çalışıyormu birde eleman listesi verirsenin iyi olur.
Devre çok güzel olmuşta benim dikkatimi çeken nokta devre elemanları üste değilde alt kısımda ayrı bir plakette olsa daha hoş olurdu açıkcası orası işi bozmuş ama yinede emeğe saygı ….
Merhaba. Hocam bu devreyi bana bir proje için gönderebilir misiniz ve bir de fiyat alabilir miyim? mail:[email protected]
Selamün aleyküm. Ben devreyi yaptım her şeyi hazır ama ledleri birleştiriecek yerleri ,16f877 ye +5 nereye verildiğini detaylı şekilde anlatırsanız devrem çalışacak lütfen yardıcı olun
ben sami hocanın öğrencisiyim ve bu güne kadar 5 tane bayrak yaptım bu devrede boş kalan bacaklar şemada da belirtildiği gibi numaralı transistör bacaklarına bağlanacak ama devrenin yeni hali entegreli uln kullanarak yapıldı o daha güzel
Tayfun bey bu devrenin 150 led ile olanını yıllar önce yapmıştım.Sürekli çalıştırmaya başlayınca 2 ta da 3 gün sonra sistem kendini kitliyor gibi.Belirli led grupları yanıp sönüyor sadece.Çözüm olarak pic i yeniden progralmlıyorum ama 2 yada 3 gün sonra gene aynı.
bu devrenin +12 v girişi nerede acaba yardımcı olursanız sevinirim 🙂
devre yanlış yapmayın. emiter collektör arası direnç atmış hocamız 🙂 biz yaptık düzeltmek için çok uğraştık.
hocam devreyi inceledikce aklıma takılanları yazıyorum..ares şeklinde 1-2-3 var bunlar ne oluyor acaba
birde isis çizimindeki mavi kalın çizlerne oluyor onları çözemedim.. bilen varsa yardımcı olursa sevinirim..
devreyi aresteki gibi kurduktan sonra başka yapacak işlemler varmı acaba atlamalar, ilaveler gibi yapanlar aydınlatırlarsa çok memnun olurum ..teşekürler..
Kardeşim İyi Güzelde İndirdim Yine Aynı Eski Devre Çıktı Sende Varsa Link Atarmısın ?
arkadaşlar ben devrenin 877 lisini yaptım ama efektleri yapmıyor sabit yanıyor neden olur acaba..
devre güzele benziyor aklıma takılan şu boşta kalan ledlere direnç bağlanıyor mu bağlanıyorsa kaç ohm nereye bağlanıyor birde areste dirençler kaç ohm onlarıda yazarsanız sevinirim iyi günler kolay gelsin
Arkadaşlar benim de benzer bir projem var ve bir yerde takıldım, Tırcı bir arkadaşım için kırmızı ledlerden oluşan Türkiye haritası ( hesaplarıma göre 202 kırmızı led) ve harıtanın içine beyaz ledlerden oluşan ay- yıldız ( hesaplarıma gore 85 beyaz led) animasyon gerekmiyor, sabit yanacak, ama sorun seri ve paralel gruplar halinde bağlayıp yine hesaplamalarima gore 15 adet 7812 ile beslenen bu tabelanın, ışık şiddetini ayarlamak, yani dimmer’li olması gerekiyor, besleme tek olsa sorun yok ama 15 adet 7812 devresini aynı anda nasıl dimmer’li yapabilirim, eski bir elektronikciyim ve uzun zamandır meslekten uzak olduğum için biraz körelmişim, lütfen yardımlarınızı bekliyorum.
15 adet 7812 yerine 1adet LM338K kullanın ama soğutucuya bağlamak şart datasheet dosyasındaki standart devre işinizi görür
R2 5K trimpot 1.2k olacak 1.2v….13.5v arası ayarlama yapabilirsiniz
LM338K yani büyük metal tip olmalı gücü yüksektir LM338T işinizi görmez
iyi çalışmalar
Gevv, yardımın için çok teşekkür ederim. Bir sorum olacak izninle; toplamdaki 300’e yakın seri ve paralel bağlantılarla oluşturduğum devremi, yukarıda ki tek besleme ile çalıştırmam mümkün mü acaba, yani oluşturduğum 10’lu grubu birbirine paralel baglayıp verdiğin devreden besleyip aynı zamanda ışık şiddetini ayarlayabilir miyim? ben öyle anladım ama emin olmak için tekrar size sormak istedim. Yardımlarınız için tekrar çok teşekkürler. Hollanda’dan eski bir meslektaşınız…
lm338k 5 amper verir 1 led led 10ma çekse 300×10=3000 yani 3 amper orta halli bir soğutucu ile lm338k yeterli olur lm338k ayarlı olduğu için voltajı ayarlayarak led parlaklığınıda ayarlayabilirsiniz
bu arada biraz daha detay verseniz iyi olur giriş voltajı nedir onlu grup led bağlantısı nasıl şema hazırlayın duruma göre yardımcı olmaya çalışayım
İlgin için tekrar teşekkürler.
Giriş gerilimi kamyonun 24 V. aküsunden ( daha doğrusu çakmaklığından ) alınacak. Şemayı buraya eklemeyi başaramadım ama anlatmaya çalışayım; nominal gerilimi 3,5 volt, nominal akımı 20 mA olan 81 adet beyaz led icin; 27 ledden oluşan 3 grup oluşturmayı düşünüyorum. Bu 27 led, 3 seri ve onlara seri 82 ohm bir direnc ile 9 paralel bir devre oluşturulacak ( umarım anlatabilmişimdir ) bu grubu 12 V giriş gerilimine göre ayarladım, sebebi, oluşturulan devrenin yerine göre kamyonda değil de normal 12 V akülü bir araçta da kullanilabileceği olasılığı. Böylece Ay- Yıldız için 27; li 3 adet grup oluşturmuş olacağım. İlk etapta benim düşüncem, araçtan alınan 12-24 V gerilimi, bu üçlü grubun önüne koyduüum üç adet 7812 regületörü vasıtası ile çalıştırmaktı. Tabi dış çercevedeki 202 kırmızı ledden oluşan Türkiye harıtası içinde 7 grup hesapladım, toplam elimde 10 adet grup olacak. Besleme olarak ta 12V/ 24V akü gerilimi olacak. Ama arkadaşım, gerektiğinde ledlerin ışıkk şiddetini azaltmak istiyor, bunun için ya bir dimmer devresi oluşturmam gerekiyor ya da 12V/ 7V olarak iki giriş gerilimi ile bir swic ile seçim yapabilirim.
Sizin önerdiğiniz devreyi burada nasıl kullanabilirim, önemli olan tüm ledlerin ışık şiddetinin eşit olması. oluşturduğum bu 10 gruba direk olarak sizin önerdiğiniz bu devreyi bağlayabilirmiyim, Trimpot yerine bir Potansiyometre bağlayıp, bu potmeteri kasaya yerleştirip ışık şiddetini ayarlamak amacı ile kullanabilirmiyim.
Farkındayım biraz uzun bir anlatım oldu ama umarım derdimi anlatabilmişimdir. Yardımlarınız için tekrar çok teşekkürler.
şemayı http://postimage.org/ sitesine yükleyip verilen linki ekleyebilirsiniz
lm338k üzerinde voltaj ayarı için pot, trimpot kullanılabilir daha iyisi iki konumlu anahtarda kullanabilirsiniz yada komitatör olabilir
https://320volt.com/lm317-lm338-lm350-hesaplama/ sayfasından çıkış gerilimi için pot yerine kullanacağınız direncin değerini hesaplayabilirsiniz
mesela 2 farklı voltaj için hesaplama yaptınız 2 direnç kullanacaksınız 2 konumlu anahtar kullanırsınız anahratın bir ucuna direnc 1 diğer ucunada direnc 2 bağlanır anahrarın orta ucuda şaseye bağlanır konum değiştirdiğinizde voltajda değişir. sabit direnç kullandığınız için sizin belirlediğiniz voltaj çıkar
alternatif lm3xx hesaplama programları:
https://320volt.com/regulator-hesaplama-lm317-l200-tl431-m5237-78xx/
https://320volt.com/ayarlanabilir-pozitif-regulator-hesap-programi/
Yukarıda ki linklerde şemaları verdim.
resim 1. beyaz ledler,
resim 2. kirmizi ledler ( 30 adet, 68 ohm direnc değerleri )
resim 3. yine kırmızı ledler ( r1=68 ohm ve r2= 270 ohm )
1. şemadan 3 grup, 2. şemadan 6 grup ve 3. şemadan 1 grup olmak üzere toplam 10 grup ve tam sayı olmamakla birlikte +- 300 led
kırmızı ledlerin değerleri 1.9 V 10 mA
@A. Karabulut şimdi toparlayalım benim kafa gidiyor bugün yoğun geçti yorgunluk iyice çökmeye başladı 🙂 led bağlantıları düzenli sadece kırmızı ledlerde tam sıfıra sıfır hesaplamışsınız 🙂 normalde 1 led göz ardı edilip yerine direnç konulur neyse o büyük sorun değil
şimdi voltaj ayarı yani led parkalığı için 2 konumlu anahtar önerdim bu sorunu çözüyor sanırım şuan yapmanız gereken devreyi toplayıp test etmek
ledcalc.com sayfası yardımı ile yaptığım hesaplamalara göre; oluşturulan 10 grup birbiri ile paralel baglandığında 12V gerilim altında toplam 800 mA gibi bi akım çekecek …
Sayın arkadaşım, yardımların için çok teşekkürler, malzemelerimi toparladığımda devremi potmetre ve swic ile iki farklı şekilde kurup ölçümlerimi yapacağım, sonucu burada paylaşıp benzer projelere yardımcı olmaya çalışacağım. İnşallah olumlu haberlerle tekrar dönerim sizlere. VATANA ÇOK SELAMLAR…
Hayırlısı olsun umarım herşey yolunda gider iyi çalışmalar dilerim görüşmek üzere 😉
@Gevv arkadaşım, projemi tamamladım ve yukarıya projenin son halinin birkaç fotoğrafını koydum, yardımların için çok teşekkürler…
ben ayyıldız devresi yapıyorum ama malzeme listesine hiç bir yerden bulamıyorum bana malzeme listesi lazım yardım edebilir misiniz?
bende bu projeyi yapıyorum şu an ama ledler sürekli yanıyor 16f877 entegre işlem yapmıyor yardımcı olabilir misiniz ?
meraba arkadaşlar ben bu devreyi yaptım ama çalıştıramadım ledlerin artı boş uçlarına kaç volt vereceğiz pikin beslemesi hangi ucundan verecez birde şasesi neresi bulamadım yardımcı olursanız sevinirim?
bana malzeme konusunda yardımıcı olurmurmusun final ödevim bu
Devrenin çalışmasını anlatır mısınız acaba? proje devrem bu yüzden dosyaya eklemek zorundayım devrenin çalışmasını