0-99 İleri/Geri Sayıcı
1 Yorum Kategori: Projelerim || Etiketler: assembly, PIC, pic 16f628, Projelerim, sayıcı, up down counter || Tarih: Nisan 3rd, 2009Mikroişlemciler II dersi ödevi olarak yapmıştım. Devrenin Proteus çizimi ve Assembly kodlarına buradan ulaşabilirsiniz.
Devre butonlara basıldıkça birer sayı artarak yada azalarak sayıyor. Sayı “99″dayken ileri yada “0″ken geri basılırsa sabit kalıyor.
Kodlar 16f628 mikrodenetleyicisine göre ortak anod display için yazılmıştır. Devrenin şeması..
list p=16f628a #include "p16f628a.inc" CONSTANT SIFIR=h'C0' CONSTANT BIR=h'F9' CONSTANT IKI=h'A4' CONSTANT UC=h'B0' CONSTANT DORT=h'99' CONSTANT BES=h'92' CONSTANT ALTI=h'82' CONSTANT YEDI=h'F8' CONSTANT SEKIZ=h'80' CONSTANT DOKUZ=h'90' BIRLER EQU H'20' ONLAR EQU H'21' ORG h'0' ;BANK ISLEMLERI>BASLANGIC CLRF PORTA CLRF PORTB BSF STATUS,5 MOVLW h'F3' MOVWF TRISA CLRF TRISB BCF STATUS,5 ;BANK ISLEMLERI>BITIS MOVLW h'07' MOVWF CMCON CLRF BIRLER CLRF ONLAR ANA CALL EKRAN_BIRLER CALL EKRAN_ONLAR GOTO ART GOTO AZALT GOTO ANA SIFIRLA_BIRLER CLRW CALL RAKAMLAR MOVWF PORTB CALL SAY_ONLAR_ART CLRF BIRLER GOTO DON_SFR DOKUZLA_BIRLER MOVLW d'9' MOVWF BIRLER GOTO DON_BRL AZALT BTFSS PORTA,1 GOTO SAY_BIRLER_AZALT GOTO ANA SAY_BIRLER_AZALT MOVLW d'1' SUBWF BIRLER,F BTFSC STATUS,C GOTO CHKBTN CLRF BIRLER GOTO SAY_ONLAR_AZALT DON_BRL GOTO CHKBTN SAY_ONLAR_AZALT MOVLW d'1' SUBWF ONLAR,F BTFSC STATUS,C GOTO DOKUZLA_BIRLER CLRF ONLAR GOTO DON_BRL ART MOVLW d'9' SUBWF ONLAR,0 BTFSS STATUS,Z GOTO ATLAMA MOVLW d'9' SUBWF BIRLER,0 BTFSC STATUS,Z GOTO AZALT ATLAMA BTFSS PORTA,0 GOTO SAY_BIRLER_ART GOTO AZALT SAY_BIRLER_ART INCF BIRLER,1 MOVLW d'10' SUBWF BIRLER,0 BTFSC STATUS,Z GOTO SIFIRLA_BIRLER DON_SFR GOTO CHKBTN SAY_ONLAR_ART INCF ONLAR,1 RETURN CHKBTN CALL EKRAN_BIRLER CALL EKRAN_ONLAR BTFSS PORTA,0 GOTO CHKBTN BTFSS PORTA,1 GOTO CHKBTN GOTO ANA EKRAN_BIRLER BCF PORTA,2 MOVF BIRLER,W CALL RAKAMLAR MOVWF PORTB BSF PORTA,3 RETURN EKRAN_ONLAR BCF PORTA,3 MOVF ONLAR,W CALL RAKAMLAR MOVWF PORTB BSF PORTA,2 RETURN RAKAMLAR ADDWF PCL,F RETLW SIFIR RETLW BIR RETLW IKI RETLW UC RETLW DORT RETLW BES RETLW ALTI RETLW YEDI RETLW SEKIZ RETLW DOKUZ RETURN END

Hasan kardeşim çok sağol bu bilgi ışığında mikroyu finalde geçerim inşlh…:D
Eline emeğine sağlık…