shift register ile 8x8 led

Başlatan cesurcelik, 27 Ocak 2006, 16:16:31

cesurcelik

merhaba..
pic16f876 74hc595 kullanarak ,8x8 led matrix ile basit bir kayan yazi devresi yapmaya calisiyorum
yazdigim basit kod:
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2005 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 25/01/2006                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
INCLUDE "MODEDEFS.BAS"  
DEFINE OSC 4
X VAR BYTE
D VAR BYTE[7]
T VAR BYTE
TT VAR BYTE
TRISA=%000000
TRISB=%00000000
TRISC=%10010000
ADCON1=7
X=0
D=0
T=0
                START:
FOR X=0 TO 7 
LOOKUP X,[$00,$00,$F8,$34,$22,$24,$F8,$00],D   ''' "A" karakteri
D[T]=D    
SHIFTOUT PORTB.1, PORTB.2, 1, [D[T]]
D[T]=0
t=t+1
GOSUB SCAN  '''satir tarama islemi 74138 ile porta ya bagli
NEXT X
                GOTO START
                SCAN:
PORTA=TT
TT=TT+1
IF TT=7 THEN TT=0
PAUSE 15

HIGH PORTC.0   '''595 latch
PAUSEUS 1
LOW PORTC.0

RETURN
end

bu kodu proteus ta simule ettigimde "A" karakterinin kaydigini gorebiliyorum fakat devreye birden fazla 595   ve matrix leri kaskat baglayip,
birden fazla karakter kaydirmayi denedigimde herbir displayde gonderdigim karakterlerin toplamini.. disp1[a,b,c] ,disp2[a,b,c] gibi,
bundan cikardigim sonuc :
1-shift register mantigini tam bilmiyor olabilirim
2-satir tarama mantiginda bir sorun olabilir
3-shift register den vazgecip decoder kullanarak sutun taramayla cok kolay yapilabilir fakat  parlaklik ve titresim problemi olabilir(en son secenek)

kisacasi isin icinden (simdilik) cikamiyorum,lutfen onerilerinizi beliyorum
teşekkürler
mutlu gunler

cesurcelik

merhaba.
arkadaslar sorun cozuldu.

ilgilenen, ilgilenmeyen herkese teşekkür ederim.
mutlu gunler

x-tol

tebrikler.sorun neredeymiş

cesurcelik

merhaba...
sorun satir taramayi bilmememden kaynaklaniyormus,
dogrusu satir bilgilerini verdikten sonra o satira aktif yaptigimda sorun cozuldu
duzeltilmis code:
INCLUDE "MODEDEFS.BAS" 
@ DEVICE pic16F876A, WDT_OFF  
DEFINE OSC 4

hz var byte
i var byte
j var byte

DATAPIN1 VAR PORTB.1 
CLOCKPIN1 VAR PORTB.2
LATCH   VAR PORTB.0
TRISA=%000000
TRISB=%00000000
TRISC=%00000000
ADCON1=7

hz=2 
i=0 
j=0 

LOOP 



FOR I=0 TO 1
LOOKUP I,[$00,$00],J
ShiftOut DATAPIN1,CLOCKPIN1,1,[J]
high LATCH
pauseUS hz 
low LATCH 
NEXT I
PORTC=$80 
PAUSE 1
PORTC=0

FOR I=0 TO 1
LOOKUP I,[$F0,$20],J
ShiftOut DATAPIN1,CLOCKPIN1,1,[J]
high LATCH
pauseUS hz 
low LATCH
NEXT I 
PORTC=$40 
PAUSE 1
PORTC=0

FOR I=0 TO 1
LOOKUP I,[$88,$50],J
ShiftOut DATAPIN1,CLOCKPIN1,1,[J]
high LATCH
pauseUS hz 
low LATCH 
NEXT I
PORTC=$20 
PAUSE 1
PORTC=0

FOR I=0 TO 1
LOOKUP I,[$88,$88],J
ShiftOut DATAPIN1,CLOCKPIN1,1,[J]
high LATCH
pauseUS hz 
low LATCH 
NEXT I
PORTC=$10 
PAUSE 1
PORTC=0

FOR I=0 TO 1
LOOKUP I,[$F0,$88],J
ShiftOut DATAPIN1,CLOCKPIN1,1,[J]
high LATCH
pauseUS hz 
low LATCH
NEXT I 
PORTC=$08
PAUSE 1
PORTC=0

FOR I=0 TO 1
LOOKUP I,[$88,$F8],J
ShiftOut DATAPIN1,CLOCKPIN1,1,[J]
high LATCH
pauseUS hz 
low LATCH 
NEXT I
PORTC=$04
PAUSE 1
PORTC=0

FOR I=0 TO 1
LOOKUP I,[$88,$88],J
ShiftOut DATAPIN1,CLOCKPIN1,1,[J]
high LATCH
pauseUS hz 
low LATCH
NEXT I 
PORTC=$02 
PAUSE 1
PORTC=0

FOR I=0 TO 1
LOOKUP I,[$F0,$88],J
ShiftOut DATAPIN1,CLOCKPIN1,1,[J]
high LATCH
pauseUS hz 
low LATCH 
NEXT I
PORTC=$01
PAUSE 1
PORTC=0


goto loop

mutlu gunler