Étape 3: PIC programmation
Le programme PIC est assez simple pour que même un néophyte comme moi pourrait obtenir fait (avec des plagiarization de Peter Shabino et d’autres - Merci, Pete!)
Veuillez noter... Je ne suis pas un programmeur. En tant que programmeur ami souvent me dit, « programmeurs program - ingénieurs juste écrire du code »...
Tout d’abord, voici le comprend :
/******************************************************************************/
/* Main Files to Include */ /******************************************************************************
/ Paramètres de Configuration du Bit PIC12F1501
Instructions de configuration de « C » source ligne
#include
#pragma config instructions doivent précéder le projet fichier inclut. Utiliser des énumérations de projet au lieu de #define pour ON et OFF.
CONFIG1
#pragma config FOSC = INTOSC / / Bits de sélection Oscillator (oscillateur INTOSC : fonctionnalité e/s sur la broche CLKIN) #pragma config WDTE = OFF / / Watchdog Timer Enable (WDT désactivé)
#pragma config PWRTE = OFF / / Power-up Timer Enable (PWRT désactivé)
#pragma config MCLRE = ON / / fonction broche MCLR Select (fonction broche MCLR/VPP est MCLR) #pragma config CP = OFF / / Flash programme mémoire Code Protection (protection par code est désactivée de la mémoire programme)
#pragma config BOREN = OFF / / Brown-out Reset Enable (Brown-out Reset désactivé)
#pragma config CLKOUTEN = OFF / / horloge sur Enable (fonction CLKOUT est désactivée. Fonction i/o ou oscillateur sur la broche CLKOUT)
CONFIG2
#pragma config WRT = OFF / / Flash mémoire autonome écrire Protection (protection contre l’écriture hors tension)
#pragma config STVREN = ON / / Stack Overflow/Underflow réinitialiser activer (Stack Overflow ou volonté de dépassement de capacité de provoquer une réinitialisation)
#pragma config BORV = LO / / Brown-out Reset sélecteur de tension (Brown-out Reset tension (Vbor), faible point de déclenchement sélectionné.)
#pragma config LPBOR = OFF / / Brown Out Reset de la faible puissance (faible puissance BOR est désactivé)
#pragma config LVP = OFF / / programmation permettre à basse tension (haute tension sur MCLR/VPP doit être utilisée pour la programmation)
OK, ensuite, voici le « main.c » :
/******************************************************************************/
/* Files to Include */ /******************************************************************************/
#if defined(__XC)
#include / * XC8 générale inclure fichier * /
#elif defined(HI_TECH_C)
#include / * HiTech générale inclure fichier * /
#endif '
#include / * pour la définition d’uint8_t * /
#include / * pour vrai/faux définition * /
#include « system.h » / * système funct/params, comme config osc/périphérique * /
#include « user.h » / * utilisateur funct/params, tels que InitApp *
******************************************************************************/
/ * Déclaration des variables globales utilisateur * / / ***
* soit uint8_t ; *
******************************************************************************/
/* Main Program */ /******************************************************************************/
boucle d’int ;
void main (void)
{
/ * Configure l’oscillateur pour le périphérique * /
ConfigureOscillator() ;
/ * Initialisation des e/s et périphériques pour application * /
InitApp() ;
TRISAbits.TRISA2 = 0 ; définition de RA2 comme une sortie
TRISAbits.TRISA4 = 1 ; définition de RA4 comme intrant
ANSELAbits.ANSA4 = 0 ; définition de RA4 comme une broche numérique
while(1) {si (PORTAbits.RA4 == 1) / / est interrupteur ouvert ?
{pour (boucle = 0; boucle < = 5; en boucle = boucle + 1)
{
LATAbits.LATA2 = 0 ; allumer la LED
wait_ms(3) ; attendre 100 ms
LATAbits.LATA2 = 1 ; Désactivez-la
wait_ms(3) ; attendre 100 ms
}
wait_ms(50) ;
Loop = 0 ;
}
d’autre
{
LATAbits.LATA2 = 0 ; allumer la LED
}
}
}