Autor Tema: Controlar dos 74hc574  (Leído 1780 veces)

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

Desconectado numero110

  • PIC10
  • *
  • Mensajes: 1
Controlar dos 74hc574
« en: 01 de Febrero de 2007, 06:35:31 »
Hola.
Este es mi primer programa en C, Compilador CCS

El programa se compila bien.
Pero cuando lo pruebo en el Proteus, no funciona.
¿Alguna sugerencia?
Saludos.

He montado el siguiente circuito:
Un 16f84A. Por el puerto B, esta conectado a dos 74hc574.
En el puerto a, 0,1 estan conectados a dos pulsadores. 3 y 4 controlan la el CLK de los 74hc574.




El codigo del programa es:
----------------------------------------------------------
/* -------------------------------
   File : 74hc574
   Modificaciones : 31/01/07
   Autor: numero110
   Modulo : Gobernar dos 74HC574
   Puerto B: Salidas
   Puerto A: A0, A1 -> Entradas
             A3, A4 -> Salidas

   ------------------------------- */
#include "16F84A.h"

#fuses XT, NOWDT
#use delay (clock=4000000)
#use fast_io (A)
#use fast_io (B)

#define Entrada_A0 PIN_A0 /* Entrada */
#define Entrada_A1 PIN_A1 /* Entrada */
#define Entrada_A2 PIN_A2 /* Entrada */
#define Salida_A3 PIN_A3 /* Salida */
#define Salida_A4 PIN_A4 /* Salida */

#define Salida_Latch_01 PIN_A3 /* Salida */
#define Salida_Latch_02 PIN_A4 /* Salida */

#BYTE porta=0x05
#BYTE portb=0x06

void Salida_03 ();
void Salida_04 ();

void main () {
  set_tris_a (0x18); /* 0:E, 1:E, 2:e, 3:S, 4:S*/
  set_tris_b (0x00); /* 0-7:SALIDA */

  while (1) {
  portb = 0x00;
    if (input (Entrada_A0)) Salida_03 ();
    if (input (Entrada_A1)) Salida_04 ();
  }
}

void Salida_03 () {

  portb = 156; /* Valor que pongo para comprobar */
  output_high (Salida_Latch_01); /* Pulso positivo para el reloj del 74HC574 */
  output_low (Salida_Latch_02); /* Pongo a nivel bajo el reloj */
}

void Salida_04 () {

  portb = 1; /* Valor que pongo para comprobar */
  output_high (Salida_Latch_02); /* Pulso positivo para el reloj del 74HC574 */
  output_low (Salida_Latch_02); /* Pongo a nivel bajo el reloj*/
}



 

anything