TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: xootraoox en 31 de Marzo de 2005, 02:48:00

Título: enviar datos de forma serial
Publicado por: xootraoox en 31 de Marzo de 2005, 02:48:00
bueno lo que pasa es que necesito enviar d forma serial cadenas de 80 bits pero la verdad es que no se como debo hacerlo ya que de la forma en que lo hago utilizo mucha memoria en el micro y tengo mas que claro que se puede hacer de alguna otra forma bueno un ejemplo en pocas palabras de lo que necesito hacer seria esto

00000000000000000000000000000000000000000000000000000000000000000000000000000001   --->cadena 1
00000000000000000000000000000000000000000000000000000000000000000000000000000010   --->cadena 2
00000000000000000000000000000000000000000000000000000000000000000000000000000100   --->cadena 3
00000000000000000000000000000000000000000000000000000000000000000000000000001000   --->cadena 4
00000000000000000000000000000000000000000000000000000000000000000000000000010000   --->cadena 5
00000000000000000000000000000000000000000000000000000000000000000000000000100000   --->cadena 6
00000000000000000000000000000000000000000000000000000000000000000000000001000000   --->cadena 7

y asi sucesivamente...

el asunto es que es para controlar unos shift register los cuales estan encargados de barrer una matriz de leds de 16 matrices de 5x7

a la vez tambien hay una señal de clock la cual por cada bit enviado tiene que activarse osea al mismo tiempo y al termino de la transmicion envio un pulso de latch para activar todos los shift registers

bueno el shift register que utilizo es el 74hc595 que es de entrada serial y salida paralela lo que me permite con uno de estos transformar 3 pines del micro en 8 y que a la vez tambien poseen una salida serial para poder ponerlos en cascada unos con otros para asi tener el numero de salidas que uno guste...

yo solo utilizo 10 de estos para asi generar 80 salidas para recorrer las columnas de mi matriz

les dejo unas fotos de la matriz para que vean como esta quedando


Foto1



Foto2



Foto3



Foto4



Foto5



Foto6



-==XooTRAooX==-
Título: RE: enviar datos de forma serial
Publicado por: J0N4TH4N en 01 de Abril de 2005, 03:30:00
Holas, se me ocurre que podrias usar menos bytes para formar lo que necesitas, si almacenas las cadenas que te son necesarias si que te molestara el tema del espacio, por eso se me ocurre que al ser que esto debe ir rotando el bit podrias usar un byte con las instrucciones de rotacion y el bit C del registro status, lo que harias seria, enviar el byte 0, luego lo rotas cuanto quieras y vuelves a enviar.. mas o menos es una idea, tu que entiendes lo que haces la aplicarias a tus necesidades, como nadie ha contestado me he atrevido a darte esta solucion no muy buena Angelito .. Saludos y estare pensando para ver que se puede encontrar. Suerte!
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 01 de Abril de 2005, 03:52:00
RollEyesRollEyesRollEyes ufff la verdad es que no entendi mucho pero igual se agradece ya que no he tenido respuestas en de los dos intentos que hecho por averiguar sobre el tema la verdad es que me tiene bien tomado del pelo este tema ya que es super interesante con decir que la matriz de las fotos es de un letrero de esos comerciales y que la verdad son bastante costosos y aunque no lo crean LO ROMPI SOLO PARA EXPERIMENTAR CON ELSonrisa GiganteSonrisa Gigante y es esa ademas una de las razones de la  improtancia para mi el poder hacerlo trabajar ya que no quiero sentirme arrepentido por haber desarmado este letrero que trabajaba sin problemas y era bastante entretenido todo lo que hacia

bueno en fin buscando por hay me encontre que en lenguaje c se puede transformar varios registros en uno solo lo cual seria ideal para lo que yo necesito

make16(variable1,variable2)

eso es en lenguaje c, ahora ¿se puede hacer eso mismo en asm y con mas registros? por ejemplo 10 a la vez

bueno si alguien pudiese hecharme una manito se agradece de antemano
Título: RE: enviar datos de forma serial
Publicado por: J0N4TH4N en 01 de Abril de 2005, 04:04:00
Una pregunta.. el cartel luminoso imprime lo que tienes en memoria del pic o se conecta a un PC con un programa donde cambias el texto que quieres mostrar???... ahora voy entendiendo un poco mas y puede ser que se me ocurra algo que te sea util.. cada caracter esta formado en un cuadro de 7*5.. mas los bits que necesitas para los espacios entre ellos.. respondeme lo anterior, estaba viendo que lo que necesitas es similar al codigo necesario para escribir caracteres en un lcd grafico sin driver.. el de Nokia 3310. Saludos y disculpas por el mensaje anterios.. si que fue confuso Payaso
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 01 de Abril de 2005, 04:34:00
bueno primero que nada agradesco tu interes y paso a explicar un poco en lo que consiste esto

mi idea es crear una matriz lo mas cercana a lo que se encuentra en el comercio la cual va a consistir n lo siguiente

por el momento el micro sera un 16f628 y si las necesidades lo requieren pensare en otro
una memoria del tipo 24lcxx que contenga los mensajes (por el momento la memoria interna basta para hacer las pruebas)
tengo pensado a la vez la posibilidad de programarlo con un teclado de pc convencional asi como tambien una interface rs232

bueno y cualquier otra sugerencia que mejore el diseño

a la vez quiero poder agregarle varios tipos de efectos, como por ejemplo

-scroll up
-scroll down
-scroll left
-scroll right
-split scroll
-random
-flash

bueno encontre un diseño que cumple mas menos con eso pero en realidad no entiendo nada ya que esta diseñado para un microcontrolador z80 el cual dejo los enlaces por si es de interes asi como el codigo fuete

http://members.lycos.co.uk/leeedavison/z80/led/

http://members.lycos.co.uk/leeedavison/z80/led/led_drvasm.html

a la vez zi alguien necesita un poco mas de informacion no dude en pedirla asi como tambien se agradecen todo tipo de comentarios
Título: RE: enviar datos de forma serial
Publicado por: J0N4TH4N en 03 de Abril de 2005, 03:09:00
Holas,  la verdad que bastante complicado el tema, pero no es imposible Sonrisa ... queria consultarte.. los caracteres para formarlos, como piensas hacer?.. en columnas o en filas? .. me interesaria darte una mano ya que el tema de carteles luminosos de este tipo es interesante por su elevado costo. Si quieres agregame a tu msn y charlamos mas directo. Un Abrazo

loco mal 8 arroba hotmail punto com
Título: RE: enviar datos de forma serial
Publicado por: Micom en 04 de Abril de 2005, 00:13:00
No se si mi idea este fuera de contexto pero te sugiero que mires en el programa "PIC DREAM" si ya se que es para TV pero ahi se muestra un texto que corres de derecha a izquierda y tiene de limite como 90 letras o espacios si y todo se maneja por medio de solo 2 tablas, bueno es mi sugerencia. Hasta pronto
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 04 de Abril de 2005, 00:53:00
bueno amigo micom estuve mirando lo que comentaste pero lamentablemente no es lo que necesito

lo principal por ahora es ver como se podria trabajar con un registro de por lo menos 80 bits para poder almacenar hay los datos a enviar serialmente la verdad es que esa seria una solucion bastante eficiente para lo que pretendo hacer

bueno espero poder ver como hacerle para solucionarlo ya que lo unico que he encontrado es en c pero no se si se podra hacer con mas de dos registros

bueno el codigo que encontre en c es algo asi

make16(variable1,variable2)

y lo ideal seria porsupuesto

make80(variable1,variable2,variable3,variable4,variable5,variable6,variable7,variable8,variable9,variable10)


Título: RE: enviar datos de forma serial
Publicado por: blocktel en 05 de Abril de 2005, 21:29:00
Mejor por que no activas las filas que son 7 y no las columnas que son 80, yo acabo de hacer un letrero de 7x80, y me quedo ok.
el mensaje a mostrar lo grabo en una eeprom 24lc08, y cada cierto tiempo deacuerdo al desplazamiento voy leendo cada letra, despues busco su respectiva trama y lo vuelco a los registros de desplazamiento...los mensajes lo grabo,  manualmente con tres inerruptores, sube, baja  y enter respectivamente..Todo esto me ocupa media pagina del pic16f628.
bueno a ver prueba con esto,
inicializar
.
movlw.80
movwf columnas
.
interrupcion  
   decfsz columnas; por cada interrupcion activas una columna
   goto una_mas
    movlw  .80    ; nuevamente empieza
   movwf  columnas
uno_mas
    movf  columnas,w
    movwf columna_sale

    bsf  bit_desplaza  ; inicias
aqui
   decfsz  columna_sale
   goto  clock
; despúes que posicionaste la respectiva columna
; activas el ic
    bsf   activas_latch
   nop
    bcf   activas_latch
   retfie      
clock; envias el reloj
      bsf  clock_sale  
      bcf  clock_sale
      bcf  bit_desplaza ; ahora todos ceros
      goto aqui
claro con esto empiezas a activar la primera columna de iz a derecha,
prueba a ver si funciona, es una sugerencia
suerte..
     
     
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 06 de Abril de 2005, 03:58:00
primero que nada hola a todos y gracias blocktel

amigo blocktel te explico... mi matriz esta formada por unos integrados del tipo shift registers que controlan las columnas pero estos estan en cascada por medio de una salida serial que poseen estos mismo y que trabajan mas menos de esta forma:

los 10 integrados se controlan con solo 3 pines del micro los cuales corresponden a

1- clock
2- data
3- latch

--bueno obviamente por cada bitenviado, sea alto o bajo, debe ir acompañado de un clock

--estos mismos trabajan en cierta forma como un buffer por que al enviar los primeros 8 bits de datos se activa la salida serial que poseen dejando en memoria los datos recibidos y dejan pasar los siguientes datos por su salida hacia los demas que esten en cascada es por eso que la trama de datos debe de ser larga, en este caso de 80 bits para controlar los 10 shift registers
Codigo:

           ********                      ********                     ********
 data in-- ********--data out--data in-- ********--data out--data in--********--etc...
           ********                      ********                     ********


por lo que obviamente los ultimos 8 bits solo llegan hasta el ultimo shift register formandose asi la cascada

bueno el shift register usado es el *74hc595* pero con interface de potencia siendo este el *tpic6b595n* por lo que se ahorra espacio y costos ya que internamente esta dotado de transistores mosfet lo por lo que no es necesario agregar transistores para obtener mayor drenaje para los leds

bueno quizas es mucho pedir pero es posible que compartieras tu experiencia de lo comentado para poder ir probando nuevos metodos si es posible que nos comentaras el tipo de hardware que haz usado, que tipos de shift registers, etc...
y si es posible el codigo para poder llegar a algo mas concreto, ademas te comento que con un amigo de aqui tenemos planeado llevar esto lo mas lejos posible dotandolo de una buena interfas para el pc ya que el es programador y se maneja bien en el tema lo cual seria genial poder llagar a algo tan parecido como lo que se encuentra en el comercio ademas tenemos muchas ideas de como dotarlo de efectos mas alla de los del tipo comercial

bueno espero puedas "compartir informacion y desde ya la agradesco y me despido coordialmente

-==XooTRAooX==-
Título: RE: enviar datos de forma serial
Publicado por: blocktel en 06 de Abril de 2005, 11:43:00
Bueno el hardware es imilar al tuyo, primero que todo hay que lograr un multiplexado eficaz, insisto por que no vas activando las filas que son siete una a una cad 1miliseg, aqui un ejem de enviar el caracter  A

  00111000  ;activas primera fila y envias el dato serial 00111000(74595) y apagas
  01101100 ;activas 2da fila dato 01101100 y desactivas
  11000110    ...  
  11111110    ...
  11000110    ...
  11000110
  11000110   ; llegas ala ultima fila e inicias nuevamente
;si tienes 10 caracteres tendrias que activar la fila correspondiente y enviar despues  serialmente el dato (10byte), una de cada caracter que corresponda a la fila.
suerte
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 06 de Abril de 2005, 17:33:00
mm.. una pregunta amigo blocktel,,, tu matriz se compone de caracteres de 7x8 puntos????

si es asi se hace un poco mas facil la cosa.

mira te explico un poco lo que pretendo realizar para que te hagas una idea de donde esta mi problema

lo que pasa es que para poder darle los efectos nesesarios a mi matriz primero necesito enviar los datos a unos registros en donde hay los procesaria a mi gusto, pero en mi matriz los caracteres van a ser de 7x5 puntos... lo que se resume en que es un poco mas complicado por que en tu caso se puede enviar las columnas completas de un caracter a un registro y procesarlas pero en el mio son solo los 5 columnas y a la hora de prosesarlos se complicaria un poco la cosa por que por ejemplo si quisiera hacer un efecto de scroll solo tendria que rotar esos registros pero resulta que solo 5 bits son utiles por lo que al rotar se me mesclarian con los tres bits del mismo en desuso...

lo que realmente en este caso seria conveniente es por ejemplo poder tener ya un registro mas grande como por ejemplo de 80 bits  cosa de poder manipular las columnas completamente desde un solo registro ya que si quiero hacer un scroll solo roto ese registro sin preocuparme por nada.

no se si se entiende la idea de la forma que la he planteado, espero que si y alguien pueda giarme un poco en lo que no puedo realizar
Título: RE: enviar datos de forma serial
Publicado por: blocktel en 07 de Abril de 2005, 09:37:00
Bueno, primero que nada el multiplexado es independiente el tipo de matriz que sea 7x5, 7x6 7x7x o 7x8.. yo los envio de este modo
;
cblock h"20"

   byte1,byte2,byte3,byte4.................byte10    ; activo primera fila y envio
   byte11,byte12..................................byte20
    ............                                    ........byte30
    .......
    ......
    .....
    byte71........................            ..........byte80
    encd

; cuando inicias tu programa blanqueas todos los byte (byte1  a byte80)
y cargas
        movlw  byte1
        movwf   fsr     ;puntero
        MOVLW   H"BF"     ; se activa la primera fila
        MOVWF   LINEA      ; en mi caso h"BF" ; rotamos el cero

; despues creas una interrupcion de 1miliseg para activar cada fila
SIGUE_1MSEG      
     
            MOVLW .10
            MOVWF COUNT_BYTE ;SE ENVIA 10 BYTEX FILA

PRIMERO
             MOVF  INDF,W   ;    
             MOVWF BYTE     ; bufer
;
             MOVLW  H"08"
             MOVWF   COUNT_BIT  ;8 bit por byte

TX_XX

             BCF     DATO               ;del 74hc595
             RLF     BYTE,1
             BTFSC   STATUS, CARRY
             BSF     DATO
             CALL    CLOCK             ;ADENTRO
             decfsz  COUNT_BIT,1   ;ES OCHO BIT
             goto    TX_XX               ;AUN
             INCF    FSR,1                ; si el proximo byte

             DECFSZ   COUNT_BYTE,1  ;acabo los 10
             GOTO    PRIMERO              ; no el siguiente    
; si acabo

             MOVF    LINEA,W   ;tomo linea
             MOVWF   PORTB     ; activo
             NOP
             BSF     CARGO        ; cargo byte lacth 74hc595
             nop
             BCF     CARGO         ; apago
             NOP
             BSf     STATUS,CARRY
             RRF    LINEA,1            ;preoero la proxima fila
             BTFSC STATUS,CARRY  ; se acabo todas las filas
             RETFIE                         ; no
             MOVLW  BYTE1   ;si empezamos denuevo
             MOVWF   FSR      
             MOVLW   H"BF"     ; se activa la primera fila
             MOVWF   LINEA    ; bufer de salida a filas
             RETFIE

CLOCK       ; del 74hc595        
             bCf  CK              
             NOP
             NOP
             bSf  CK
             RETURN

; chequealo bien y me comentas
hasta luego

Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 07 de Abril de 2005, 13:34:00
ok me pondre a experimentar y luego contare como es que me ha resultado por otro lado comento que realizare bien los esquemas para poder colocarlos por si es de interes para alguien

saludos desde chile
Título: RE: enviar datos de forma serial
Publicado por: antoniof en 07 de Abril de 2005, 18:58:00
Buenas xootraoox.

Por lo que he podido deducir, con los registros de desplazamiento lo que controlas son las columnas, es decir, si escribes un "1" en un registro y "latcheas" , este "1" activará el ánodo/cátodo común de los LEDs y los cátodos/ánodos de las filas los controlas aparte con un puerto de 7 bits del PIC, esta es la forma estándar de controlar una matriz de tantos puntos. Si es asi, no necesitas un registro de 80 bits para enviar un uno e irlo pasando de columna a columna. Tan sólo necesitas escribir un uno la primera vez y "latchear" y después escribes un cero y "latcheas" 79 veces más. Esto se puede hacer con un bucle normal de toda la vida.

Lo mejor viene cuando tengas que enviar los datos de la columna que estas "encendiendo" en ese momento por el puerto de 7 bits.

No se como anda ese PIC de memoria pero deberás reservar 80 registros para los desplazamientos de los mensajes hacia izquierda , derecha, arriba y abajo.

Se pueden hacer subrrutinas sencillas con el direccionamiento indirecto "fsr" e "indf" son muy utiles en estos casos.

Espero haberte ayudado. Dime si funciona asi tu "MATRIX".
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 07 de Abril de 2005, 23:16:00
hola usuario_registrado primero que nada agradesco tu aporte a este proyecto... bueno con respecto a lo que dices
***
Tan sólo necesitas escribir un uno la primera vez y "latchear" y después escribes un cero y "latcheas" 79 veces más. Esto se puede hacer con un bucle normal de toda la vida.
***

no es factible en este caso... por que en realidad el latch es para desplegar de forma paralela los datos enviados de forma serial, por lo que si envio un uno y latcheo se encendera solo la primera columna y si lo coloco a cero nuevamente y lactheo 79 veces solo colocare 79 veces un cero en la primera columna.... entiendes?

por otra parte, nunca he tocado el tema ***direccionamiento indirecto "fsr" e "indf" *** y si alguien me pudiese explicar un poco de forma que pueda entender de lo que se trata ya que la verdad mi nivel en esto es bien basico ya que hace poco me he iniciado y solo he hecho cosas muy basicas y la verdad ya se que me he metido en un lio al haber dado un paso tan grande con este proyecto pero se que de alguna forma y con ayuda de uds podre sacarlo adelante y mi aprendizaje avanzara un buen tramo

por lo demas, desde ya extiendo mis agradecimientos a todos los de este gran foro

despide xootraoox
Título: RE: enviar datos de forma serial
Publicado por: Micom en 08 de Abril de 2005, 00:33:00
Hola Xootraoox fijate que ya me senti motivado ha hacer algo parecido a lo que estas haciendo ya que tengo por ahi unos 100 leds rojos que no estoy ocupando y pues empezaria, asi que te pido que me digas que integrado estas usando para manejar la matriz y para multiplexar si no es mucha la molestia, hasta luego.
Título: RE: enviar datos de forma serial
Publicado por: antoniof en 08 de Abril de 2005, 05:03:00
Buenas.

Me acabo de bajar el datasheet del 74HC595 de Digchip.com.

Por lo que he podido comprobar, así funciona:

El pin 14 "DS" es por donde entras los datos serial.
El pin 11 "SH_CP" es el clock del registro de desplazamiento interno.
El pin 12 "ST_CP" es el clock del registro paralelo (el latch) que al macena el sato que hay en el registro de desplazamiento y cuya salida es el dato paralelo.

La secuanci que yo haría es la siguiente:

1.- Pongo un "1" en el pin DS.
2.- Doy un pulso de reloj en el pin SH_CP.
3.- Doy otro pulso de reloj en el pin ST_CP. (Ya tenemos un uno en la salida Q0).

4.- Pongo un "0" en el pin DS.
5.- Doy un pulso de reloj en el pin SH_CP. Con esto hemos desplazado el primer "1" a la segunda posición y tenemos un cero en la primera posición.
6.- Doy otro pulso de reloj en el pin ST_CP. (Se carga el cero que acabamos de meter en Q0 y el uno anterior en Q1).

7.-Los pasos 4 a 6 los repites 78 veces más, y cada vez que lo repitas el "1" va cambiando de posición.

Cuando latcheas no borras el contenido del registro de desplazamiento interno, por lo que el "1" sigue hay, solo tienes que ir desplazandolo y latcheandolo sucesiavamente. En el propio datasheet del IC viene un ejemplo que muestra esta función.
Título: RE: enviar datos de forma serial
Publicado por: antoniof en 08 de Abril de 2005, 05:24:00
En cuanto a como utilizar los registros "indf" y "fsr" te voy a poner un ejemplo(a ver si me sale) de como desplazar un solo caracter (A) de 5 columnas y 7 filas, a la derecha.

El caracter lo voy a representar de la siguiente forma:

bit 7 --> 0 1 1 0 0
bit 6 --> 1 0 0 1 0
bit 5 --> 1 0 0 1 0
bit 4 --> 1 1 1 1 0
bit 3 --> 1 0 0 1 0
bit 2 --> 1 0 0 1 0
bit 1 --> 1 0 0 1 0
bit 0 --> 0 0 0 0 0

Cada columna del caracter la voy a almacenar en un registro del PIC

Tenemos, por lo tanto, 5 registros de 8 bits que llamaremos, por ejemplo, col1, col2.. col5, que ocupan los registros 0x20, 0x21.... 0x24 del PIC:

col1    equ    0x20
col2    equ    0x21
col3    equ    0x22
col4    equ    0x23
col5    equ    0x24

movlw    0x7e
movwf    col1

etc....

Vamos a la rutina de desplazamiento a derechas.

El registro fsr del PIC se utiliza como puntero, es decir, en el indicas la dirección de memoria que vas a leer o escribir. A través del indf, lees o escribes la dirección de memoria a la que apunta el fsr. Por lo tanto si quieres leer por ejemplo la dirección 0x20, el programa seria:

movlw   0x20
movwf   fsr
movf      indf,w

En nuestro ejemplo, tendrias el valor 0x7e en el registro w.

Continua en el sisuiente mensaje
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 08 de Abril de 2005, 11:26:00
bueno amigos agradesco el interes y el tiempo de *usuario_registrado* para dar ese tipo de explicaciones a la vez me pongo al dia con lo prometido y me coloco ahora ya a realizar los esquematicos para que puedan ir viendo de que se compone en parte de hardware este proyecto... taan pronto los termine los colocare aqui para que vean de que se trata

despide -==XooTRAooX==-
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 08 de Abril de 2005, 11:54:00
bueno antes les comento que me he encontrado con un proyecto de un profesor que es en cuanto a hardware casi tan igual a lo que estoy haciendo con la diferencia que el uso un pic16c65 el cual posee un modulo integrado SSP el cual permite una comunicacion SPI.... bueno al soft le hice solo una modificacion a modo de emular por soft esta comunicacion (en realidad solo reutilice la rutina que estaba ya ocupando) la diferencia es que este proyecto se trata de un reloj por lo que solo despliega los numeros sobre una matriz... pero al probar no me ha trabajado y la verdad no se a que se debe ya que he revisado y aparentemente esta todo ok para trabajar sobre un 16f628

bueno les dejo el pdf y el asm modificado por mi para que lo vean

PDF
ASM
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 08 de Abril de 2005, 20:32:00
bueno pido disculpas por la demora pero, pero se que todos no trabajan con PROTEL DXP, es por eso que, tenia que dubirlo en algun formato mas estandart y tube que descargar ciertos softwares para poder pasarlo... pero ya esta

para los que les acomode en formato PROTEL DXP

para los que les acomode en formato PDF (acrobat reader)
Título: RE: enviar datos de forma serial
Publicado por: Micom en 08 de Abril de 2005, 21:51:00
Gracias Xootraoox pronto me pondre a trabajar en ello y veremos que sale, hasta pronto.
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 08 de Abril de 2005, 22:17:00
apsss se me olvidaba comentar nuevamente que en realidad no uso exactamente el 74hc595 sino que uso el tpic6b595n el cual a diferencia de el 74hc595 trae integrados unos transistores mosfet a modo de drenar mas corriente por sus salidas para asi ahorrarse una etapa de transistores ya que si por ejemplo quisiera encender 8 leds con la salida del 74hc595 apenas se encenderian es mas si es que pueden hacer la prueba y hacer una seguencia con el 74ch595 de esta forma y solo con leds se daran cuenta de lo que les digo

00000001
00000011
00000111
00001111
00011111
00111111
01111111
11111111

bueno con eso podran notar que al encender el primer led quizas enciende sin problemas pero ya al encender el segundo el brillo caera casi a la mitad y bueno si continuan encendiendo hasta los 8 leds el brillo decaera demaciado es por eso que es mejor usar el tpic6b595 que ya poseen una etapa de mayor drenaje pensada justo para estos casos.... en el caso mio enciendo hasta 12 leds con una misma salida sin ningun problema.... tambien hay otros que reemplazan al tpic6b595 pero en este momento no merecuerdo cuales son

en todo caso les dejo los datasheets de los 2 para que vean que es exactamente lo mismo salv que trae mas pines 2 que no se utilizan mas otros que sirven de  gnd, etc

74hc595

tpic6b595

NOTA: El tpic6b595 no es un producto de la conocida empresa microchip
Título: RE: enviar datos de forma serial
Publicado por: xootraoox en 09 de Abril de 2005, 01:44:00
UFFFF... despues de buscar y leer un poco de info acerca de el direccionamiento indirecto he podido comprender algo RollEyes.... y si estoy en lo correcto es exactamente lo que buscaba ya que permite guardar y leer datos secuencialmente en las paginas del micro (corrijanme si estoy equivocado) como por ejemplo... me aseguro de dejar un espacio sin usar en una de las paginas como por ejemplo

MEMORIA equ 0x20

y desde hay voy escribiendo datos por medio de un contador que vaya incrementando la direccion, en otras palabras voy almacenando secuencialmente a lo largo de la pag. los datos

0x20   = 00000000
0x21   = 00000001
0x22   = 00000010
0x23   = 00000100
0x24   = 00001000
0x25   = 00010000
0x26   = 00100000
0x27   = 01000000
0x28   = 10000000

y asi sucesivamente, para luego leer los mismos...... si es asi por favor haganmelo saber por que esa seria la solucion que estaba buscandoya que asi generaria un buffer de 80 bits de forma  totalmente efectiva....

ahora la verdad es que todabia no entiendo bien el como aplicarlo es por eso que agradeceria algun tipo de ejemplo en el cual se realize lo que he comentado... osea definir una direccion para la memoria y escribir aunque sean 2 direcciones de la misma (por ejemplo 0x20, 0x21) y luego leerlas para enviarlas a uno de los puertos

he editado este posT para comentar que el ejemplo ya no es necesario ya que al instante de postear encontre lo que queria es por eso que lo coloco aqui por si alguien necesita un ejemplo DEL DIRECCIONAMIENTO INDIRECTO

EJEMPLO DIRECCIONAMIENTO INDIRECTO


DOCUMENTO                     CODIGO


bueno ya se que hasta aqui he pedido mucho pero de verdad es que mi deseo es aprender el arte de manejar a estos animalitos llamados pic y es por eso que agradesco la comprencion y ayuda prestada y no duden en que una vez que entienda todo esto sere uno mas de uds ayudando a los demas a resolver sus dudas

una vez mas agradesco lo que hacenRebotadoRebotadoRebotado