Arşiv

Kategoriler

Ne Dinliyorum...

asdad


0-99 İleri/Geri Sayıcı

Mikroiş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

“0-99 İleri/Geri Sayıcı” için 1 Yanıt

  1. 1 karrizma84

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

Yorum Yaz