EstoytratandodesimplementeparpadearunaluzLEDusandoelmicrocontroladorpic16f877a.Lossoftwaresqueestoyusandoson,MPLABXIDE,MPLABIPEycompiladorXC8.YousoelprogramadorPickit3.5.Mipreguntaquemeduelelacabezaesquenotengoerroresaldescargar.hexalmicrocontroladorenelprogramaIPE(dice"Programación completa" y cuando se verifica - "Verificar que está completo"), pero el led ni siquiera se enciende. pero al descargar el programa, puedo ver que el LED parpadea aleatoriamente o permanece encendido durante algún tiempo , luego, cuando finaliza la programación, se apaga.
Me he asegurado,
trabajando -las conexiones son buenas -pic es nuevo (aunque intente usarlo por tres o cuatro veces)
No estoy seguro -si estoy usando algo llamado "diodo de señal" correctamente como se indica aquí enlace . Estoy usando diodo IN4007 (para conectar su cátodo al MCLR de la salida de pickit ...
Código:
#define _XTAL_FREQ 20000000
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
// CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = ON // Low-Voltage (Single-Supply) In-Circuit
Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage
programming enabled)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit
(Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits
(Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF // Flash Program Memory Code Protection bit
(Code protection off)
void main(void)
{
TRISB=0b00000000;
PORTBbits.RB0=1;
return;
}
Código ACTUALIZADO: (TRABAJANDO - solo durante el período de 'conexión' del pickit al software MPLAB IPE)
#define _XTAL_FREQ 20000000
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
// CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit
Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage
programming enabled)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit
(Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits
(Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF // Flash Program Memory Code Protection bit
(Code protection off)
void main(void)
{
TRISB=0;
while(1)
{
PORTBbits.RB0=1;
__delay_ms(50);
PORTBbits.RB0=0;
__delay_ms(50);
}
}
Componentes en mi placa de circuito,
-pic16f877a microcontrolador + base
-led
diodo-IN4007 (su cátodo se conecta al MCLR de la salida de pickit)
Oscilador de cristal de -20MHz (para CLKIN y CLKOUT de pic)
Capacitores -2x22pF (para oscilador)
-330R resistor (para led desde pin RB0)
resistencia de -10k (para diodo IN4007 de MCLR de la salida de pickit)
-0.1uF capacitor (para diodo IN4007 para conectarse a tierra)
- cables de puente
-pickit3.5 connection
Intenté usar varios microcontroladores como pic16f84a y pic18f452 también, siguiendo diferentes tutoriales en internet, pero no tuve suerte. Realmente me encanta hacer esto y no espero rendirme.
Alguien que ayude, aliviará un gran dolor de cabeza. ¡Muchas gracias! **