Paso 3: Programación de PIC
El programa PIC es lo suficientemente simple como para que incluso un neófito como yo podría conseguir que se haga (con significativa plagiarization de Peter Shabino y otros - gracias, Pete!)
Tenga en cuenta... Yo no soy un programador. Como un programador amigo a menudo me dice, "programadores programar - ingenieros apenas escriben código"...
En primer lugar, aquí están los incluye:
/******************************************************************************/
/* Main Files to Include */ /******************************************************************************
/ Valores de Bit de configuración PIC12F1501
Declaraciones de configuración de línea de fuente de 'C'
#include
#pragma config declaraciones deben preceder incluye archivo de proyecto. Usar enumeraciones de proyecto en lugar de #define para encendido y apagado.
CONFIG1
#pragma config FOSC = INTOSC / / Bits de selección del oscilador (oscilador INTOSC: función de I/O en pin CLKIN) #pragma config WDTE = OFF / / habilitar de temporizador Watchdog (WDT deshabilitado)
#pragma config PWRTE = OFF / / habilitar de temporizador de encendido (PWRT deshabilitado)
#pragma config MCLRE = ON / / MCLR Pin Function Select (MCLR/VPP pin función es MCLR) #pragma config CP = OFF / / Flash programa protección de código de memoria (memoria de programa de protección de código está desactivada)
#pragma config BOREN = OFF / / permitir a Brown-out Reset (Brown-out Reset desactivado)
#pragma config CLKOUTEN = OFF / / reloj de habilitar (CLKOUT función está deshabilitada. Función de I/O u oscilador en el pin CLKOUT)
CONFIG2
#pragma config WRT = OFF / / Flash memoria uno mismo-escribir protección (Write off)
#pragma config STVREN = ON / / pila desbordamiento/subdesbordamiento Reset habilitar (Stack Overflow o desbordamiento de capacidad inferior será causar un Reset)
#pragma config BORV = LO / / selección de voltaje de Brown-out Reset (Brown-out Reset tensión (Vbor), bajo punto seleccionado).
#pragma config LPBOR = OFF / / baja potencia Brown Out Reset (BOR de baja potencia está desactivado)
#pragma config LVP = OFF / / programación permiten de bajo voltaje (alta tensión en MCLR/VPP debe usarse para programación)
OK, a continuación, aquí está el "main.c":
/******************************************************************************/
/* Files to Include */ /******************************************************************************/
#if defined(__XC)
#include / * XC8 General incluir archivo * /
#elif defined(HI_TECH_C)
#include / * alta tecnología General incluir archivo * /
#endif '
#include / * para la definición de uint8_t * /
#include / * para la determinación del verdadero/falso * /
#include "system.h" / * sistema funct/params, como configuración de oscilador periférico * /
#include "user.h" / * usuario funct/params, como InitApp *
******************************************************************************/
/ * Declaración de variables globales de usuario * / / ***
* es decir uint8_t; *
******************************************************************************/
/* Main Program */ /******************************************************************************/
int bucle;
void main
{
/ * Configurar el oscilador del dispositivo * /
ConfigureOscillator();
/ * Inicializar E/S y periféricos de uso * /
InitApp();
TRISAbits.TRISA2 = 0; configuración de RA2 como salida
TRISAbits.TRISA4 = 1; configuración de RA4 como entrada
ANSELAbits.ANSA4 = 0; configuración de RA4 como un pin digital
¿while(1) {si (PORTAbits.RA4 == 1) / / es interruptor abierto?
{para (bucle = 0; bucle < = 5; loop = bucle + 1)
{
LATAbits.LATA2 = 0; encender LED
wait_ms(3); esperar 100 ms
LATAbits.LATA2 = 1; volver a apagarlo
wait_ms(3); esperar 100 ms
}
wait_ms(50);
bucle = 0;
}
otra cosa
{
LATAbits.LATA2 = 0; encender LED
}
}
}