Programmazione di MPLAB Xpress Board: terzo esempio PushButtonS2

Con questo terzo articolo vediamo ancora che si può imparare a programmare facilmente un microcontrollore Microchip, il PIC16F18855 contenuto all'interno della MPLAB Xpress Evaluation Board della Microchip (DM164140)

Leggere questo articolo dopo il primo.

Si deve far riferimento alla seconda pagina dello schema elettrico.

Lo scopo di questo terzo esempio è di fare lampeggiare il solo led D2 (sempre), mentre il led D3 deve accendersi solo quando viene premuto il pulsante normalmente aperto S2.

 

Non si vuole usare MCC Code Configurator.

 

Si usa MPLAB Xpress IDE in cloud, creando un nuovo progetto.

New Project --> Microchip Embedded ---> Standalone Project

Family: Mid Range 8-bit MCUs (PIC 10/12/16)

Device: PIC16F18855

eppoi si sceglie il nome significativo al progetto: PIC16F18855_PushButtonS2

Si comincia inserendo il programma principale main.c:

Ecco il codice:

/*
 * File:   main.c
 * Author: mariani.fausto
 *
 * Created on 10/28/2017 3:24:12 PM UTC
 * "Created in MPLAB Xpress"
 */


#include "config.h"  // custom edited config file.
#include <xc.h>

#define _XTAL_FREQ 32000000

void main(void) {
    SYSTEM_Initialize();
    TRISA = 0b00100000;  // we set RA0, RA1, RA2, RA3, R4 as Output, RA5 as Input, RA6 and RA7 as Output
  
    /**
    ANSELx registers
     
    1 =  Analog input. Pin is assigned as analog input
        . Digital input buffer disabled.
    0   =  Digital I/O. Pin is assigned to port or digital special function
     */ 
    ANSELAbits.ANSA5 = 0;  // we want a Digital Input for RA5/ANA5

    while(1) {
        LATAbits.LATA0 = 1;    //we turn on D2 led
        __delay_ms(500);
        LATAbits.LATA0 = 0;    //we turn off D2 led
        __delay_ms(500);
        if (PORTAbits.RA5 == 1)
        {
            LATAbits.LATA1 = 0;   //we turn OFF: D3 led
        }
        else
        {
            LATAbits.LATA1 = 1;   //we turn ON: D3 led
        }
    }
    return;
}

Non si riporta anche il codice di configurazione config.h che conviene prendere da uno dei tanti esempi preesistenti, oppure si può prendere quello del primo articolo.