Autor Tema: Como expandir tu micro usando un 4094 programa en Pic basic  (Leído 4161 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado shagrat

  • PIC10
  • *
  • Mensajes: 5
Como expandir tu micro usando un 4094 programa en Pic basic
« en: 21 de Junio de 2010, 15:08:09 »
Buenas tardes amigos de todo pic

Les muestro la manera de usar un pic 16f84 y un CI 4094.

El programa que incluyo a continuación esta realizado en PIC BASIC PRO, lo realice puesto que no he encontrado en la red algo parecido, con comentarios y funciona que es lo mejor  :P

Código: [Seleccionar]
TRISA=0;PUERTO DE SALIDA
TRISB=0;PUERTO DE SALIDA
PORTA=0;LIMPIO PUERTO
PORTB=0;LIMPIO PUERTO

DAT VAR PORTA.0;SALIDA PARA PIN DATA DEL 4094
CLK VAR PORTA.1;SALIDA PARA CLOCK DEL 4094
STTR VAR PORTA.2;SALIDA PARA STR DEL 4094
CONTADOR var word;CONTADOR A ESTE LE INSERTAMOS LOS 8 BITS A ENVIAR
DATOS VAR WORD; AQUI PONEMOS LOS DATOS QUE SE QUIEREN ENVIAR
;;;;;;;;;RUTINA PRINCIPAL;;;;;

INICIO:
PAUSEUS 40; RETARDO DE 40 MICROSEGS
DATOS=%01010101;LOS DATOS A ENVIAR Y CARGAR EN 4094
CONTADOR=8;LA CANTIDAD DE BITS A ENVIAR
STTR=0;ASEGURAMOS EL CERO PARA DECIRLE A 4094 QUE SE ESTA ENVIANDO LA CADENA
GOSUB ENVIO;LLAMAMOS LA RUTINA DE ENVIO HACIA EL 4094
PAUSEUS 40; RETARDO DE 40 MICROSEGS
DATOS=%00000000;EL SEGUNDO DATO A ENVIAR
CONTADOR=8;LA CANTIDAD DE BITS A ENVIAR
STTR=0;ASEGURAMOS EL CERO PARA DECIRLE A 4094 QUE SE ESTA ENVIANDO LA CADENA
GOSUB ENVIO;LLAMAMOS LA RUTINA DE ENVIO HACIA EL 4094
GOTO INICIO; LO HACEMOS INFINITAMENTE

;;;;;;;;;;;RUTINA DE ENVIO;;;
ENVIO:
IF CONTADOR<=0 THEN; AQUI ASEGURAMOS QUE CUANDO SE TRANSMISTAN LOS 8 RETORNE DE DONDE FUE LLAMADO
STTR=1; SE LE DICE QUE HA ACABADO LA CADENA AL 4094
RETURN;RETORNE
ELSE;SI AUN ESTA EN PROCESO REALIZA ESTA RUTINA
DATOS=DATOS>>1;CORRIMIENTO HACIA LA DERECHA DEL REGISTRO.. PARA GENERAR UN CARRY :D
IF STATUS.0==0 THEN; SE COMPARA SI EL CARRY ES 0
DAT=0; DE SER CERO EL CARRY NUESTRO DATO EN ESE BIT ES 0
PAUSEUS 40; RETARDO
CLK=1;DAMOS SEÑAL DE CLOCK
PAUSEUS 40;RETARDO
CLK=0;YA HA PASADO LA INFO ASI QUE APAGAMOS EL CLOCK
CONTADOR= CONTADOR-1; LE DECIMOS AL CONTADOR QUE YA ENVIE 1
goto ENVIO; VUELVE A LA COMPARACIÓN PARA SABER SI YA SE ENVIARON LOS 8
ELSE; SI EL CARRY ES 1
DAT=1;DE SER UNO EL CARRY NUESTRO DATO EN ESE BIT ES 1
PAUSEUS 40;RETARDO
CLK=1; DAMOS SEÑAL DE CLOCK
PAUSEUS 40;RETARDO
CLK=0;SEÑAL DE CLOCK QUE LE DICE QUE YA PASO LA INFO
CONTADOR= CONTADOR-1;LE DECIMOS AL CONTADOR QUE YA ENVIE 1
GOTO ENVIO;VUELVE A LA COMPARACIÓN PARA SABER SI YA SE ENVIARON LOS 8
ENDIF;TERMINO EL IF
ENDIF;TERMINO EL OTRO IF
END; FIN DEL PROG


La manera de conectar el circuito es la siguiente, lo probe en proteus.
aqui dejo los archivos
« Última modificación: 21 de Junio de 2010, 15:25:59 por shagrat »
Cuando análizas las variables y comprendes como interactuán, entenderas que el problema no es la electrónica, no es el sistema en sí, es que tu mente es un complejo inmenso que suele convertir lo más sencillo en lo más dificil, así que piensa antes de actuar y acuerdate, escucha al torpe e ignorante porque el también tiene su propia historia.