Hola jukinch, como va todo espero que bien, mire tus enlaces y me decidí por el de ucontrol, yo creía que en ese articulo el barrido era por colunas
(que equivocado estaba), pero bueno ya entendí la parte de de colocar las letras en las pantallas, a ver si no estoy mal, lo que tocaba era cargar en los dos registros de desplazamiento, los datos que correspondían a la fila 1(adjunto la imagen de mis avances), publico el código que estoy usando para que lo revisen me ayuden ahora con el desplazamiento de las letras
// Usando el CD4094 para manejar 2 matrices led 8x8
#include <16F84A.h>
#fuses XT,NOPROTECT,NOWDT,PUT
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
// Definición de pines de control
#define DATA PIN_A0
#define CLOCK PIN_A1
#define STROBE PIN_A2
int t;
int a,b; //a sirve para llevar el conteo de las filas, b habilita la fila cuando ya se cargo el valor en las dos pantallas
byte const segmentos[14]={0b11000011,0b10000011,0b10111101,0b10111101,0b10111101,0b10111101,0b10111101,
0b10000011,0b10111101,0b10111111,0b10111101,0b10111111,0b11000011,0b10111111};
// declaración de la función escribir_4094
void escribir_4094(int caracter);
// programa principal
void main(){
set_tris_a(0x00);
set_tris_b(0x00);
output_a(0x00);
output_b(0x00);
a=1;
b=0;
while(true){
for(t=0;t<14;t++){
escribir_4094(t); // envía los datos a las columnas para armar la letra o el caracter en la matriz
if(b==2){ //**si ya cargo los valores en las dos matrices habilite la fila para mostrarlo
output_B(a); //muestra el dato habilitando la fila que corresponda a
a*=2; // aumenta el valor de la fila para el próximo dato que se genere en las columnas
if(a>64)a=1; // si el dato termino las 7 filas vuelva a comenzar desde la primera
delay_ms(7);
output_B(0);
b=0;
}
}
}
}
void escribir_4094(int caracter){
int contador_8;
output_low(DATA);
output_low(STROBE);
output_low(CLOCK);
for(contador_8=0;contador_8<8;contador_8++){
output_bit(DATA,bit_test(segmentos[caracter],contador_8));
output_high(CLOCK);
delay_cycles(1);
output_low(CLOCK);
}
output_low(CLOCK);
output_high(STROBE);
delay_cycles(1);
output_low(STROBE);
b++;
}