LED Blink no funciona pero el código puede programarse con PIC18F4550 y MikroC

0

Intenté codificar el programa de encendido y apagado de LED para probar el microcontrolador PIC18F4550. El código puede programarse a IC usando Pikkit 2 pero un programa no funciona. Codifico utilizando MikroC Pro para Pic 6.6.1. Estoy usando oscilador de cristal de 4Mhz.

¿Por qué el programa no funciona? ¿Es IC no funciona?

Código:

void main() {
  TRISA.B0=0;

  while(1){
     PORTA.B0=1;
     Delay_ms(2000);
     PORTA.B0=0;
     Delay_ms(2000);
  }

}

Este es mi diagrama de circuito:

    
pregunta Ind

2 respuestas

1

TRIS son los registros que controlan la dirección (entrada o salida) de un pin. Solo utiliza este registro, por lo que todo lo que está haciendo es alternar entre entrada y salida.

La primera línea es correcta, pero en el bucle debe usar un registro PORT o (mejor) LAT para alternar el pin entre alto y bajo.

    
respondido por el Wouter van Ooijen
1

simular este circuito : esquema creado usando CircuitLab

Figura 1. Orientaciones de LED que funcionan.

Si el diodo en su esquema es el LED en cuestión, faltan las flechas de "luz" del símbolo y está hacia atrás para que nunca se encienda.

simular este circuito

Figura 2. Esta adición de RC hace que la línea \ $ \ overline {\ text {MCLR}} \ $ siga la fuente de alimentación con un 10k x 100n = 1 ms de retardo de tiempo.

También es posible que el \ $ \ overline {\ text {MCLR}} \ $ deba ser elevado un poco más tarde después de que el chip se haya encendido. Normalmente se utiliza un pequeño retardo de tiempo RC para esto. Compruebe los ejemplos de la hoja de datos para los valores recomendados. La demora permite que los voltajes internos se estabilicen y mantener la línea baja restablece todo a las condiciones iniciales conocidas, lo que garantiza una inicialización adecuada.

    
respondido por el Transistor

Lea otras preguntas en las etiquetas