Comment programmer un PIC microcontrôleur & lire un codeur (6 / 7 étapes)

Étape 6: programmation

À ce stade, nous travaillerons exclusivement avec le X de MPLAB IDE. Pour commencer, notez le panneau intitulé projets sur le côté gauche de la fenêtre de MPLAB IDE. À partir de ce panneau, créez un code :

Faites un clic droit sur le dossier « Fichiers Source » ci-dessous votre projet > Nouveau > fichier principal C

Se sentir libre de le nommer comme vous souhait (« Main » est très bien) vous verrez maintenant que MPLAB X a créé un fichier principal, visible dans le panneau central.

Code : Aux fins de ce tutoriel, je vais vous donner le code nécessaire, que vous pouvez copier et coller dans la fenêtre Centre (après la suppression de tous les autres textes dans le fichier) pour vous donner une idée de ce que fait le code, j’ai inclus un bref aperçu ci-dessous ainsi que les commentaires dans le code lui-même (collé ci-dessous)

Vue d’ensemble : Il y a deux ou trois parties distinctes du code pour la programmation d’un microcontrôleur PIC, qui sont décrits ci-dessous.

Définir des instructions : Définir des instructions permettent aux programmeurs d’utiliser des mots qui peuvent signifier quelque chose d’autre à l’ordinateur. Par exemple, nous pourrions définir le mot OFF pour signifier un « 0 » binaire. Ainsi tandis que nous voyons le mot off, rendre le code plus facile à comprendre, l’ordinateur lit un « 0 » binaire.

Instructions include : Inclure des déclarations indiquer au compilateur d’inclure plusieurs fichiers d’en-tête. Ces fichiers externes peuvent être des fichiers qui définissent les fonctions d’entrée/sortie (stdlib.h à) ou une variété de fonctions standard C (stdio.h), etc..

Pragmas : Pragmas sont utilisés pour définir les bits de configuration sur le microcontrôleur qui contrôlent les aspects tels que la sélection de l’oscillateur, protection du code, etc.. N’hésitez pas à consulter les bits de configuration sélectionnez Fenêtre > PIC mémoire vues > Bits de Configuration

Fonctions : Les fonctions sont des sections du programme qui effectuent des tâches spécifiques. La fonction principale est où le programme commence à s’exécuter.

Programme :

/********************************************************************

Comment programmer un PIC et lire un programme encodeur

Dernière mise à jour : 03/01/14
Auteurs : Carson Miller
Écrit pour : PIC18F4525 (Version actuelle)

*********************************************************************/

#define entrée 1
#define sortie 0

#define _XTAL_FREQ 4000000 //Used par la macro de delay_ms(x) XC8

Paramètres de Configuration du Bit PIC18F25K22

#include < xc.h > //Includes mappage de matériel photo
#include « GenericTypeDefs.h » //Includes types de variables standards

#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.

CONFIG1H
#pragma config OSC = INTIO7 / / sélection d’oscillateur mèches (bloc oscillateur interne, fonction CLKOUT sur RA6, fonction du port sur RA7)
#pragma config FCMEN = OFF / / Fail-Safe horloge écran activer bits (Fail-Safe horloge écran désactivé)
#pragma config SIERE = OFF / / interne/externe oscillateur passage au bit (oscillateur passage au mode désactivé)

CONFIG2L
#pragma config PWRT = OFF / / Power-up Timer Enable bit (PWRT désactivé)
#pragma config BOREN = SBORDIS / / Brown-out Reset Enable bits (Brown-out Reset activée dans le matériel uniquement (SBOREN est désactivé))
#pragma config BORV = 3 / / Brown hors tension réinitialiser mèches (réglage Minimum)

CONFIG2H
#pragma config WDT = OFF / / Watchdog Timer activer bits (WDT activé)
#pragma config WDTPS = 32768 / / Watchdog Timer Postscale Select bits (1:32768)

CONFIG3H
#pragma config CCP2MX = PORTC / / MUX CCP2 bits (CCP2 entrée/sortie est multiplexé avec RC1)
#pragma config PBADEN = ON / / port a/d activer bits (broches PORTB < 4:0 > sont configurés comme entrées analogiques sur Reset)
#pragma config LPT1OSC = OFF / / Low-Power Timer1 oscillateur activer bits (Timer1 configuré pour la motorisation supérieure)
#pragma config MCLRE = ON / / permettre à broche MCLR bit (broche MCLR activé ; RE3 entrée pin désactivé)

CONFIG4L
#pragma config STVREN = ON / / pile pleine/Underflow réinitialiser activer bits (pile pleine/underflow causera Reset)
#pragma config LVP = OFF / / alimentation simple ICSP activer bits (CIPS alimentation simple activé)
#pragma config XINST = OFF / / Extended Instruction Set permettent de bits (Instruction set extension et indexé mode d’adressage désactivé (mode traditionnel))

CONFIG5L
#pragma config CP0 = OFF / / bit (bloc 0 (000800-003FFFh) non protégés par le code) de la Protection de Code
#pragma config CP1 = OFF / / Code Protection bit (bloc 1 (004000-007FFFh) non protégés par le code)
#pragma config CP2 = OFF / / Code Protection bit (bloc 2 (008000-00BFFFh) non protégés par le code)

CONFIG5H
#pragma config CPB = OFF / / Boot Block Code Protection bit (bloc de démarrage (000000-0007FFh) non protégés par le code)
#pragma config DPC = OFF / / Code de Protection de données EEPROM bits (données EEPROM non protégés par le code)

CONFIG6L
#pragma config WRT0 = OFF / / écriture bit de Protection (bloc 0 (000800-003FFFh) pas protégée en écriture)
#pragma config WRT1 = OFF / / écriture bit de Protection (bloc 1 (004000-007FFFh) pas protégée en écriture)
#pragma config WRT2 = OFF / / écriture bit de Protection (bloc 2 (008000-00BFFFh) pas protégée en écriture)

CONFIG6H
#pragma config WRTC = OFF / / Configuration Register écriture bit de Protection (registres de Configuration (300000-3000FFh) pas protégée en écriture)
#pragma config WRTB = OFF / / bloc de démarrage écriture bit de Protection (bloc de démarrage (000000-0007FFh) pas protégée en écriture)
#pragma config WRTD = OFF / / Protection de données EEPROM écrire bits (données EEPROM pas protégée en écriture)

CONFIG7L
#pragma config EBTR0 = OFF / / Table lire le bit de Protection (bloc 0 (000800-003FFFh) ne pas protégé contre les lectures de table exécutées dans les autres blocs)
#pragma config EBTR1 = OFF / / Table lire le bit de Protection (bloc 1 (004000-007FFFh) ne pas protégés contre les lectures de table exécutées dans les autres blocs)
#pragma config EBTR2 = OFF / / Table lire le bit de Protection (bloc 2 (008000-00BFFFh) ne pas protégés contre les lectures de table exécutées dans les autres blocs)

CONFIG7H
#pragma config EBTRB = OFF / / Boot Block Table lire le bit de Protection (bloc de démarrage (000000-0007FFh) ne pas protégés contre les lectures de table exécutées dans les autres blocs)

Programme d’installation variable factice

Distance UINT = 0 ;
Direction de CHAR = 0 ;
Erreur CHAR = 0 ;

Sub configure(void)
{

Configuration de l’ADC

ADCON1bits.PCFG = 1111 ; Désactive toutes les entrées analogiques (voir fiche p. 224)

Configuration de l’oscillateur

OSCCONbits.IRCF = 110 ; Oscillateur ensembles à 4MHz

Interrompre le programme d’installation

INTCONbits.GIE = 1 ; Permet tous démasquée ou haute priorité interrompt (Selon IPEN)
INTCONbits.PEIE = 1 ; Permet toutes les interruptions périphériques démasquées ou interruptions de faible priorité (Selon IPEN)
INTCONbits.INT0IF = 0 ; Efface interrupt flag 0 bit (doit avoir lieu avant d’activer l’interruption)
INTCONbits.INT0IE = 1 ; Permet l’interruption externe INT0

INTCON2bits.INTEDG0 = 1 ; Jeux extérieurs interrompre 0 interrompre sur front montant

RCONbits.IPEN = 0 ; Désactive les niveaux de priorité sur les interruptions

TRISBbits.TRISB0 = entrée ; Définit INT0 comme entrée
TRISBbits.TRISB1 = entrée ; INT1 ensembles comme entrée

}

Sub main()
{
Configure() ;

while(1)

{
Boucle de programme
}
}

Routine du service principal d’interruption (ISR)
void interrupt ISR()
{
Vérifier pour voir si c’est interruption 0
Si (INTCONbits.INT0IF == 1)
{
distance ++ ;
INTCONbits.INT0IF = 0 ; Efface interrupt flag
}
d’autre
erreur = 1 ;
}

Articles Liés

PIC microcontrôleur Volume Adjuster Program(Proteus 8 Stimulation)

PIC microcontrôleur Volume Adjuster Program(Proteus 8 Stimulation)

Bonjour à tous,L'aspect important de tout apprentissage est d'induire la curiosité et faire quelque chose de significatif pour assurer que. Avec l'aide de cette curiosité, je fais ici un programme de réglage de volume qui ressemble à l'identique dans
Comment programmer un PIC 18F2550 ou 18f4550 avec Arduino UNO

Comment programmer un PIC 18F2550 ou 18f4550 avec Arduino UNO

Voici notre notre premier tutoriel sur Instructable alors soyez indulgent. Ce tutoriel montre la méthode d'utilisation d'une carte Arduino UNO comme un programmateur de microcontrôleur PIC. Cette méthode a été testée et PIC 18F2550 18f4550 mais peut
Comment tester facilement un microcontrôleur avec un analyseur logique

Comment tester facilement un microcontrôleur avec un analyseur logique

Certains de mes projets dans le passé ont eu des problèmes en raison d'une mauvaise broche numérique. Si c'est jamais arrivé à vous, alors vous savez comment il peut être frustrant. Première réaction de la plupart des gens, c'est qu'il y a quelque ch
Max l’araignée - propulsée par LEGO et PIC microcontrôleur

Max l’araignée - propulsée par LEGO et PIC microcontrôleur

So Max l'araignée nous a rendu visite dans le laboratoire aujourd'hui et je voulais entrer dans l'esprit de l'halloween. « Je tiens à tomber sur les gens dans l'ascenseur », il souriait, de sorte que seulement une araignée pouvait.« J'ai juste la cho
Début microcontrôleurs partie 3: Transfert d’un programme dans le microcontrôleur (pilotes)

Début microcontrôleurs partie 3: Transfert d’un programme dans le microcontrôleur (pilotes)

Bienvenue à la partie 3. Il s'agit d'un petit tutoriel qui traitera simplement chargement des pilotes pour s'assurer que votre programmeur puisse communiquer avec votre ordinateur correctement.Veuillez noter que parfois les appareils TinyISP et USBAV
Comment programme microcontrôleurs AVR, bon marchés et faciles

Comment programme microcontrôleurs AVR, bon marchés et faciles

Cette volonté instructable guide vous étape par étape comment faire pour exécuter un programme simple en un micro-contrôleur ATMEGA (uC). Si don´t vous savez tout sur comment votre code est stocké dans les microcontrôleurs, il existe essentiellement
Programmateur de microcontrôleur PIC 16F917

Programmateur de microcontrôleur PIC 16F917

dans ce instructable, je vais vous montrer comment construire un microcontrôleur PIC 16F917 circuit de programmation. Ce microcontrôleur est une forme très agréable du chip Microcontroller le fabricant de la célèbre puce Microchip.Ce microcontrôleur
Comment choisir un microcontrôleur

Comment choisir un microcontrôleur

il l'habitude d'être assez limitait le nombre de jetons de microcontrôleur différents disponibles pour les amateurs. Tu dois utiliser tout ce que vous arrivaient à acheter chez le marchand de puce de correspondance, et qui réduit le choix à un petit
Début microcontrôleurs partie 2: Création d’une Interface SPI du programmateur au microcontrôleur

Début microcontrôleurs partie 2: Création d’une Interface SPI du programmateur au microcontrôleur

Bonjour, nous espérons que vous avez apprécié la partie 1 de début de microcontrôleurs. Nous allons avancer dans la partie 2 et de commencer à parler sur les interfaces et comment obtenir votre microcontrôleur pour communiquer avec un ordinateur.Donc
GSM base polyvalent robotique véhicule à l’aide de microcontrôleur PIC

GSM base polyvalent robotique véhicule à l’aide de microcontrôleur PIC

ce projet vise à développer un véhicule robotisé qui peut être contrôlé par un téléphone cellulaire. Envoient des commandes DTMF d'un téléphone à un autre téléphone cellulaire qui est monté sur le véhicule robotisé. Ces commandes servent à nourrir un
Début microcontrôleurs partie 6: Écrit le premier programme à tour sur une LED

Début microcontrôleurs partie 6: Écrit le premier programme à tour sur une LED

Je sais que vous êtes prêt à écrire le premier programme. Vous avez visité par beaucoup jusqu'à présent ! Alors que nous sommes sur le sujet, récapitulons les événements. Vous avez sortit et le microcontrôleur Atmel AVR de votre choix. J'ai choisi th
5 raisons pourquoi vous êtes pas en mesure à programme A microcontrôleur

5 raisons pourquoi vous êtes pas en mesure à programme A microcontrôleur

quand à partir de microcontrôleurs, vous êtes susceptible de rencontrer quelques problèmes dans la programmation de votre microcontrôleur, et il n'y a rien de plus frustrant que de perdre des heures pour trouver le problème et toujours ne pas être en
Début microcontrôleurs partie 4: Installation de l’environnement de programmation (WinAVR)

Début microcontrôleurs partie 4: Installation de l’environnement de programmation (WinAVR)

Bienvenue à la prochaine étape de notre série. Nous allons introduire certains éléments de programmation base maintenant. Ce tutoriel est tout simplement sur l'installation de votre environnement de programmation. L'environnement de programmation que
En savoir plus sur microcontrôleurs

En savoir plus sur microcontrôleurs

Cet Instructable a été conçu pour répondre à la question : Comment puis-je commencer à microcontrôleurs ? Maintenant, en clair, un anglais simple, vous pouvez apprendre ce qu'un microcontrôleur est et comment utiliser un. Vous apprendrez comment fair