PORTB karaşimşek Devresi
PORTB ile 8 ledli karaşimşek devresi
bu devre port b ye bağlı olan ledleri sıra ile yakar.
4 MHZ kristal ile gecikme döngüsü ayarlanmıştır,
hızı ayarlamak için geikme döngüsünde bulunan sayac içeriklerini azaltınız.
LIST P=16F84 |
INCLUDE |
"P16F84A.INC" |
|
|
__CONFIG _CP_OFF &_WDT_OFF &_XT_OSC &_PWRTE_ON |
ORG 0X00 |
|
|
|
|
SAYAC1 |
EQU H'0C' |
|
|
SAYAC2 |
EQU H'0D' |
|
|
SAYAC3 |
EQU H'0E' |
|
|
CLRF |
PORTA |
|
|
MOVLW |
0X00 |
|
|
MOVWF |
PORTB |
|
|
BSF |
STATUS,RP0 |
|
|
CLRF |
TRISB |
|
|
BCF |
STATUS,5 |
|
BAS |
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 BAS |
|
|
GECIKME |
|
|
|
|
MOVLW |
D'2' |
|
|
MOVWF |
SAYAC1 |
|
DON1 |
|
|
|
|
MOVLW |
D'200' |
|
|
MOVWF |
SAYAC2 |
|
DON2 |
|
|
|
|
MOVLW |
D'250' |
|
|
MOVWF |
SAYAC3 |
|
DON3 |
|
|
|
|
DECFSZ
|
SAYAC3,F |
|
|
GOTO |
DON3 |
|
|
DECFSZ |
SAYAC2,F |
|
|
GOTO |
DON2 |
|
|
DECFSZ |
SAYAC1,F |
|
|
GOTO |
DON1 |
|
RETURN |
|
|
|
END
|
|
|
|
|