PIC16F84A YAZDIRMA SORUNU

Başlatan maviay09, 01 Ağustos 2011, 17:00:42

maviay09

ARKADAŞLAR ELİMDE DAHA ÖNCE ÇALIŞAN  AMA ŞUAN PROTESUTA ÇALIŞMAYAN BİR DEVRE VAR KEYPAD DEN BİLGİ GİRİNCE EKRANDA GÖRÜNTÜ KAYBOLUYOR KOD VE DEVRE ÇİZİM ŞEMASI VAR PROTEUS 7.7. SP2 KULLANIYORUM İŞLETİM SİS. WİN7 ULTİMADE


LIST P=16F84A 								   
	#include <P16F84A.INC> 
;---------------------------------------------------
	CBLOCK	0x20
	ON,BIR,SAYI,SAYI11,SAYI22	
	ENDC
;---------------------------------------------------
	ORG	0x00
	GOTO	TANIM
;---------------------------------------------------
GECIK
	MOVLW	.10
	MOVWF	SAYI11
GEC1
	MOVLW	.250
	MOVWF	SAYI22
GEC2
	DECFSZ	SAYI22,F
	GOTO	GEC2
	DECFSZ	SAYI11,F
	GOTO	GEC1
	RETURN
;---------------------------------------------------
ANA
	CALL	DISP_TARA
;
	BCF	PORTB,1
;
	BTFSS	PORTB,4
	GOTO	SAYI1	
	BTFSS	PORTB,5
	GOTO	SAYI4
	BTFSS	PORTB,6
	GOTO	SAYI7
	BTFSS	PORTB,7
	GOTO	SAYI10
;
	BSF	PORTB,1
	BCF	PORTB,2
;
	BTFSS	PORTB,4
	GOTO	SAYI2	
	BTFSS	PORTB,5
	GOTO	SAYI5
	BTFSS	PORTB,6
	GOTO	SAYI8
	BTFSS	PORTB,7
	GOTO	SAYI0
;
	BSF	PORTB,2
	BCF	PORTB,3
;
	BTFSS	PORTB,4
	GOTO	SAYI3	
	BTFSS	PORTB,5
	GOTO	SAYI6
	BTFSS	PORTB,6
	GOTO	SAYI9
	BTFSS	PORTB,7
	GOTO	SAYI111
;
	BSF	PORTB,3
;
	GOTO	ANA
;----------------------------------------------------
SAYI0
	MOVLW	.0
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI1
	MOVLW	.1
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI2
	MOVLW	.2
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI3
	MOVLW	.3
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI4
	MOVLW	.4
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI5
	MOVLW	.5
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI6
	MOVLW	.6
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI7
	MOVLW	.7
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI8
	MOVLW	.8
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI9
	MOVLW	.9
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI10
	MOVLW	.10
	MOVWF	SAYI
	GOTO	KAYDIR
SAYI111
	MOVLW	.11
	MOVWF	SAYI
	GOTO	KAYDIR
;
KAYDIR
	MOVF	BIR,W
	MOVWF	ON
	MOVF	SAYI,W
	MOVWF	BIR
BEKLE
	BTFSS	PORTB,4
	GOTO	BEKLE
	BTFSS	PORTB,5
	GOTO	BEKLE
	BTFSS	PORTB,6
	GOTO	BEKLE
	BTFSS	PORTB,7
	GOTO	BEKLE
	GOTO	ANA
;--------------------------------------------------
TANIM
	BSF	STATUS,RP0
	MOVLW	B'00000000'
	MOVWF	TRISA
	MOVLW	B'11110000'
	MOVWF	TRISB
	BCF	OPTION_REG,7		
	BCF	STATUS,RP0
;
	MOVLW	.255
	MOVWF	PORTA
	MOVLW	0x0F
	MOVWF	PORTB
	CLRF	SAYI
	CLRF	SAYI11
	CLRF	SAYI22
	CLRF	BIR
	CLRF	ON
	GOTO	ANA
;----------------------------------------------------
DISP_TARA
	BSF	STATUS,RP0
	CLRF	TRISB
	BSF	OPTION_REG,7		;?
	BCF	STATUS,RP0
	MOVF	BIR,W
	CALL	TABLO
	MOVWF	PORTB
	BCF	PORTA,1
	CALL	GECIK
	BSF	PORTA,1
;
	MOVF	ON,W
	CALL	TABLO
	MOVWF	PORTB
	BCF	PORTA,0
	CALL	GECIK
	BSF	PORTA,0
;
	BSF	STATUS,RP0
	MOVLW	B'11110000'
	MOVWF	TRISB
	BCF	OPTION_REG,7		;?
	BCF	STATUS,RP0
;
	MOVLW	0x0F
	MOVWF	PORTB
	RETURN
;----------------------------------------------------
TABLO
	ADDWF	PCL,F
	RETLW	H'3F'
	RETLW	H'06'
	RETLW	H'5B'
	RETLW	H'4F'
	RETLW	H'66'
	RETLW	H'6D'
	RETLW	H'7D'
	RETLW	H'07'
	RETLW	H'7F'
	RETLW	H'6F'
;----------------------------------------------------
	END

-Hasan-

Arkadaşım, biraz eleştiri ile başlayalım; programında hiç açıklama yok. Açıklama yapılmamış bir assembly programını anlamak oldukça zordur, bırak bizi bir süre sonra sen bile kendi yazdığın programı anlayamazsın. Bir de şema yok; neyi nereye bağladığını bilmiyoruz ki. ???