; A portunun 1. bitine bağlı butona 10 defa basınca B portunun 0. bit' indeki LED'i yakan program (TIMER lı-sorunsuz) ;::::05.05.2011:::UYG6.ASM:::::::::::::::::::::::::::::::::: LIST P=16F84 INCLUDE "P16F84.INC" SAYACl EQU h'0C' SAYAC2 EQU h'0D' MEM EQU h'0E' CLRF PORTB ;PortB'yi sıfırla BSF STATUS, 5 ;BANK2'ye geç CLRF TRISB ;PortA'nın 1. Bit'i giriş BSF TRISA, 1 ;portB'nin uçları çıkış BCF STATUS, 5 ;BANKl'e geç CLRF MEM ;MEM registerini sıfırla TEKRAR BTFSC PORTA, 1 ;PortA'nın l.bit'i 0 mı? GOTO TEKRAR ;Hayır, tekrar test et INCF MEM ;Evet, MEM=MEM+1 MOVF MEM,W ;W?MEM SUBLW h'0a' ;W = h'0a' - W BTFSC STATUS, 2 ;STATUS'un 2.bit'i 0 mı ? GOTO YAK ;Hayır, Z=1 CALL GECIKME ;Evet, buton arkının sönmesini bekle GOTO TEKRAR ;Butonu test için başa git YAK MOVLW h'FF' ;W?h’FF’ MOVWF PORTB ;PortB'deki tüm LED'leri yak DONGU GOTO DONGU ;===========; Gecikme alt programı.=========== GECIKME MOVLW h'FF' MOVWF SAYACl DONGUl MOVLW h'FF' MOVWF SAYAC2 DONGU2 DECFSZ SAYAC2, F GOTO DONGU2 DECFSZ SAYACl, F GOTO DONGUl RETURN END