TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: lucho_asd en 26 de Julio de 2007, 23:10:34
-
Hola primero q todo gracias por todoo porque ma han ayudado con mi proyecto en otras ocaciones ahora lo estoy terminando.
Es un pedal midi que quiero modificar mis salidas para mis 8 leds, tenia 3 salidas en portd y con un 4051 multiplexaba y prendian los 8 leds, en el proteus barbaro pero el la realidad es muy intestable y sensible entonces decidi poner un 74hc595 y trasmitir los datos en serie por un solo pin, mi unico incoveniente es q no soy para nada experto en assembler y lo poco q aprendi es sacar datos por paralelos
por ej : movlw b'00000001'
movwf TRISD ; donde en todo el puerto D tengo un 1 en el pord,7
ahora lo q quiero hacer es lo mismo pero ese 00000001 q sea enviado por un solo pin y en serie.
porfavor si a alguien me puede ayuda en lo q debo poner o usar voy a estar muy agradecido!!
puede q se les ocurra otra cosa mas facil! cualquier sugerencia es buenaa!
Muchas gracias!!
Saludos!
-
hola puedes postear un esquematico de lo que planeas hacer para visualizar mejor la solucion
-
hola! te digo lo mejor q puedo lo q quiero :
la idea es en un pin del pic enviar un dato en serie y q el 74hc595 lo interprete y me saque de la salida 1 los 5v luego cuando yo quiera otro dato y q me saque de la salida 2 5v y q apague la salida 1
es asi preciono un switch envia una señal midi (ya funcioando) y ademas le quiero agregar esto
-
el integrado 74hc595 son 8 bit serial input (en un pin) y 8 paralel output! en 8 pines
osea q necesesito una palabra de 8 bit q salga de alguna pata del pic! y q de alguna forma la pueda poner en binario!
Gracias
-
Hola.
Se usan rotaciones generalmente.
Ejemplo:
# DEFINE CLOCK PORTD,4 ;Defini pin usado para clock aqui
# DEFINE DATAS PORTD,5 ;Defini pin usado para data aqui
# DEFINE STROBE PORTD,6 ;Defini pin usado para strobe(si es que lo usas) aqui.
;Pin OE deberia ir a 5v gralmente( no se usa y a 5v está activado siempre)
Rotaciones EQU 0x40 ;reservo posicion RAM para variables
Temp EQU 0x41
;Funcion:
ENVIARBYTESERIAL
movwf Temp
movlw .8
movwf Rotaciones
bcf CLOCK
Otra
rlf Temp,F
bcf DATAS
btfsc STATUS,C
bsf DATAS
bsf CLOCK
bcf CLOCK
decfsz Rotaciones,F
goto Otra
bsf STROBE
bcf STROBE
return
Uso de la funcion:
movlw b'00101010'
call ENVIARBYTESERIAL ;envia 00101010 via serie al registro de desplazamiento.
Algo asi seria. Lo acabo de hacer asi que por ahi hay algo mal.
Saludos
-
seeeeeeeeeeeeee!!!!!!!!!!!!!!!!!! :-/ sos un fenomenooo
tuve q ponerle movwf Temp
movlw .9 <---------- si ponia 8 no me coincidian las salidas del 74hc595 no se porque
movwf Rotaciones
pero con 9 fue barbaro 00000001 , 00000010 y asi hasta el 10000000 cosa q con el 8 tenia q saltear uno y siempre me faltaba!
TODO LO HICE EN PROTEUS LA SIMULACION!!
yo calculo q ahora no deberia tener problemas como con el maldito 4051
vos crees q si funco bien en el proteus funcionara en pcb?
GRACIAS GRACIAS GRACIASSSSSS!!! MASTER :-/ :-/ :-/ :-/ :-/ :-/ :-/
-
Deberia funcionar en el PCB si te funciona en el Proteus. no es tan complejo el funcionamiento.
Con respecto a las 9 rotaciones en lugar de ocho...realmente raro. No conozco ese IC. Por ahi tiene alguna señal de clock invertida...
Saludos.
-
hola! con respecto a :
# DEFINE CLOCK PORTD,4 <-- q frecuencia es la q genera ese clock?
se puede elegir la q uno quiere?
graciaas!!
-
SIP.
-
hola! con respecto a :
# DEFINE CLOCK PORTD,4 <-- q frecuencia es la q genera ese clock?
se puede elegir la q uno quiere?
graciaas!!
Si. Pero asegurate configurarlo como salida durante el programa!
-
sisi ya esta como salida! pero lo q te preguntaba es como sabes a q frecuencia esta ahora y q debes poner en esa linea para elegir la frecuencia?
otra ves! MIL GRACIAS!!
-
frecuencia? vos necesitas generar una frecuencia?
La frecuencia de salida depende de la velocidad del micro y del algoritmo.
Saludos.
-
es cierto tenes razon! ya esta ya solucione el tema!!
muchas gracias por todo! me sirvio un monton!!
GRACIAS