Hi everyone,

I m trying to drive 8x8 dot matrix and i m facing a weird problem.

when i try to display simple pattern like this
Name:  Capture.JPG
Views: 456
Size:  15.6 KB

i got

Name:  ff.jpg
Views: 710
Size:  12.9 KB

if you notice, the third and eight rows is supposed to be OFF but they are not. instead, they are ON with a little brightness than the second and the seventh ( ON rows )

i tried to figure out whats the problem. is there any reason that the shift register used to sink column currents isnt able to change its state instantly from logic 1 to logic 0 ? is there some capacitance related to its latch function ?

** i used hef4094 to sink columns current and it receives its data serially from PIC16f84
** i used 8 transistors to source current to rows. they are connected to portb


this is the code i used
Code:
INCLUDE "MODEDEFS.BAS"
TRISB = 0
TRISA = 0

SYMBOL  STRB  = PORTA.0
SYMBOL  DAT   = PORTA.1
SYMBOL  CLK   = PORTA.2
SYMBOL  EN    = PORTA.3
TEMP    VAR BYTE
CNTR1   VAR BYTE
CNTR2   VAR BYTE
COL     VAR BYTE
ROW     VAR BYTE
COLVAR  VAR BYTE[8]
ROWVAR  VAR BYTE[8]
PORTB = 0
PORTA = 0
CNTR1 = 0
CNTR2 = 0
EN = 1

start:
COLVAR[0] = %11000000:COLVAR[1]=%11000000:COLVAR[2]=0:COLVAR[3]=0
COLVAR[4] = 0:COLVAR[5] = 0:COLVAR[6] = %11000000:COLVAR[7] = 0 

MAIN:

FOR CNTR2 = 0 TO 100
PORTB = 1
FOR CNTR1 = 0 TO 7
 STRB = 0
 COL = COLVAR[CNTR1]^255
SHIFTOUT DAT,CLK,0,[COL]
SHIFTOUT DAT,CLK,0,[COL]
STRB = 1

PAUSE 2
PORTB = PORTB *2

NEXT CNTR1
NEXT CNTR2
'FOR CNTR1 = 0 TO 7
'COLVAR[CNTR1] = COLVAR[CNTR1]<<1
'NEXT CNTR1

GOTO MAIN