PORT B 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 |
şimdi bu devre oldukça uzun bir devre;
bunu kısaltabiliriz,