4 votos

Primera foto de Programa con PIC16F877A y su configuración de bits para el reloj Interno?

Tengo un PIC16F877A y yo escribimos un programa en MPLAB X IDE para hacer parpadear un LED.

Este es mi programa :

#include <xc.h>
#define _XTAL_FREQ 6000000
void main()
{
    TRISB7 = 0;
   while(1)
   {
         RB7=1;
      __delay_ms(1000);
          RB7=0;
       __delay_ms(1000);
   }
}

He compilado correctamente, pero cuando voy a cargar el hex archivo en PICKit2v2 , se mostrará una advertencia como la siguiente :

enter image description here

Y también cuando traté de escribir que hex archivo en el MCU, Se mostrará el siguiente mensaje de error :

enter image description here

Así que volví a abrir mi proyecto en MPLAB X IDE V2.26 y trató de agregar los datos de configuración a mi código, con el asistente de Windows --> PIC vista de Memoria --> Configuración de Bits Pero cuando hago clic en él, veo que esta debajo de la ventana en la parte inferior de la pantalla :

enter image description here

Pregunta 1 : ¿por Qué la mayoría de la memoria es igual a 3FFF en la primera y segunda imagen que he adjuntado arriba? ¿Eso significa que mi programa es sólo alrededor de 6 bytes? (Los seis primeros bytes son diferentes)

Pregunta 2 : El error que he recibido, es acerca de la configuración de los bits? O es algo más?!

Pregunta 3 : ¿cuál de esta opción, debe seleccionar para el reloj interno? No quiero usar cualquier reloj externo o de cristal o RC.

Pregunta 4 : ¿Cuál es la diferencia entre htc.h y xc.h bibliotecas? Algunos de código de ejemplo en el internet vi htc.h incluido en el sobre de programa? Para qué es esto? Que las bibliotecas se delay() la función?

Pregunta 5 : Es la segunda línea en mi programa obligatorio (me refiero #define _XTAL_FREQ 6000000) lo Hace por externa del cristal? o ...?

Soy nuevo en el PIC MCU de la programación. Ruegos arrojar alguna luz sobre esta cuestión, para mí y para los futuros espectadores.


Actualización :

He añadido la opción de configuración de mi programa : Ahora este es mi programa :

/*
 * File:   newmain.c
 * Author: Amir Ebrahim
 *
 * Created on January 3, 2015, 1:42 PM
 */

#include <xc.h>
#define _XTAL_FREQ 12000000

#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = ON        // Watchdog Timer Enable bit (WDT enabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON       // Brown-out Reset Enable bit (BOR enabled)
#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()
{
    TRISB7 = 0;
   while(1)
   {
         RB7=1;
      __delay_ms(1000);
          RB7=0;
       __delay_ms(1000);
   }
}

Cuando puedo cargar el hex archivo en PICKit2v2 he recibido éxito de carga :

enter image description here

Pero cuando quiero escribir el archivo en el MCU, recibo el mismo error anterior!

enter image description here

Por qué?! :(

5voto

user4245 Puntos 324

Pregunta 1 : ¿por Qué la mayoría de la memoria es igual a 3FFF en la primera y segunda imagen que he adjuntado arriba? ¿Eso significa que mi programa es sólo alrededor de 6 bytes? (Los seis primeros bytes son diferentes)

Desplácese hacia abajo - vamos a ver más que sólo eso. El primer bit es "saltar a su código", entonces hay la tabla de vectores de interrupciones, entonces no es tu código.

Pregunta 2 : El error que he recibido, es acerca de la configuración de los bits? O es algo más?!

Que es lo que se dice, ¿no? Sin config bits no funciona.

Pregunta 3 : ¿cuál de esta opción, debe seleccionar para el reloj interno? No quiero usar cualquier reloj externo o de cristal o RC.

El PIC16F877A no tiene oscilador interno. Para que usted quiere elegir un más moderno chip.

Pregunta 4 : ¿Cuál es la diferencia entre htc.h y xc.h bibliotecas? Algunos de código de ejemplo en el internet vi htc.h incluido en el sobre de programa? Para qué es esto? Que las bibliotecas es para la función delay ()?

htc.h es para el Hi-Tec compilador. xc.h es para el compilador XC8. Elegir uno para su compilador.

Pregunta 5 : Es la segunda línea en mi programa obligatorio (me refiero #define _XTAL_FREQ 6000000) lo Hace por externa del cristal? o ...?

Que puede ser utilizado para la sincronización de __delay_ms() dependiendo del compilador de la aplicación. Si es así, debe coincidir con el cristal que se adjunte a la ficha.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X