Ejecutar el programa directamente con MPLAB X (PIC16F628A)

0

Quiero parpadear el LED con PIC16F628A y ejecutarlo directamente con el botón make and program device main project de MPLAB X. Para programar el PIC, hice el cableado simple que se muestra en este tutorial sin usar ninguna resistencia (solo cableado).

Para hacer parpadear el LED, acabo de conectar RA0 --- > resistencia --- > LED --- > terreno pero nada funciona.

¿Debo quitar algunos cables después de programar el PIC o agregar algo?

código:

#include<htc.h>
#include <pic.h>
#include <pic16f628a.h>
// Config word
__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & CP_OFF);
#define LED  RA0
#define _XTAL_FREQ   4000000
void main()
{   
        TRISA0 = 0;                // Make RA0 pin output
        LED    = 0;
        CMCON = 0x07;
        // Make RA0 low
    while(1)
    {
        __delay_ms(1000);       // Half sec delay
        LED = 0;               // LED off
        __delay_ms(1000);       // Half sec delay
        LED = 1;               // LED on
    }
}

Salida de MPLAB X

BUILD SUCCESSFUL (total time: 5s)
Loading code from C:/Users/makhlouf/MPLABXProjects/blink.X/dist/default/production/blink.X.production.hex...
Loading completed
Connecting to programmer...
Programming target...
Programming completed
Running target...

    
pregunta Makhlouf GHARBI

3 respuestas

1

Verifique su cableado, parece que ha enchufado el conector PICkit al revés en la placa de pruebas.

Lea la documentación más detenidamente en el futuro.

    
respondido por el kjgregory
1

Falta un condensador de desacoplamiento entre Vcc y Gnd.

Cada vez, pero incluso más cuando se trabaja con una placa de pruebas, se necesitan tapas de desacoplamiento.

"¿Qué es una tapa de desacoplamiento"

Esto puede ser la causa de comportamientos extraños de su PIC.

    
respondido por el Blup1980
1

Su código configura el PIC para usar el reinicio de MCLR, pero no tiene nada que lo lleve a MCLR a vdd. AFAIK el PICkit2 no lo elevará a vdd, sino que simplemente lo liberará. Puede agregar una resistencia externa que arrastre su MCLR a Vdd o puede probar su código con:

--- __CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & CP_OFF);
+++ __CONFIG( FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & CP_OFF & MCLRE_OFF );

Tengo que señalar que, aunque parezca básico para algunos, los LED no pueden funcionar a la inversa, si no está 100% seguro de que tiene la polaridad correcta, intente invertir el LED (muy pocos LED tienen la máxima inversión) voltajes inferiores a 5 V, por lo que esto no debería poder dañar el LED o el PIC).

Además, no olvides alimentar tu circuito. Debe indicar explícitamente al PICkit (especialmente al PICkit3) que alimente el circuito principal, de lo contrario, asumirá que el circuito tiene su propia fuente de alimentación y no alimentará energía a su circuito.

En la interfaz de PICKit2 (su imagen):

  1. marque la casilla "VDD PICKit2" - "ON" para indicarle al pickit que suministre energía a su circuito.

En la interfaz de MPLABX:

  1. haz clic derecho en tu proyecto
  2. haga clic en propiedades
  3. en el árbol a la izquierda de la ventana de propiedades (categorías tituladas), haga clic en PICkit 2
  4. Desmarca la casilla "Usar potencia de destino siempre"
respondido por el Mathieu L.

Lea otras preguntas en las etiquetas