#include #define LCD_DEFAULT #include #pragma config FOSC = HS #pragma config WDT = OFF #pragma config LVP = OFF #pragma config PBADEN = OFF //OSC = HS Impostato per lavorare ad alta frequenza //WDT = OFF Disabilito il watchdog timer //LVP = OFF Disabilito programmazione LVP //PBADEN = OFF Disabilito gli ingressi analogici // Prototipo di funzione void copy (unsigned char * dest, rom const char * parola); // Variabile usata per creare un conteggio fittizio di pausa unsigned int i; typedef struct { unsigned char nome [20]; unsigned char cognome [20]; } persona; void main (void){ // Variabile tizio è di tipo persona persona tizio; // Variabile per salvare la sommatoria dei litri impostati unsigned int sommatoria = 0; // Variabile utilizzata per il numero delle letture litri impostati char l; // Imposto PORTA tutti ingressi LATA = 0x00; TRISA = 0xFF; // Imposto PORTA tutti ingressi LATA = 0x00; TRISA = 0xFF; // Imposto PORTB tutti ingressi LATB = 0x00; TRISB = 0xFF; // Imposto PORTC tutti ingressi LATC = 0x00; TRISC = 0xFF; // Imposto PORTD tutte uscite LATD = 0x00; TRISD = 0x00; // Imposto PORTE tutti ingressi LATE = 0x00; TRISE = 0xFF; // Abilita i resistori di pull-up sulla PORTB EnablePullups(); // Ciclo infinito while (1) { // Pausa for (i=0;i<64000; i++) { } // Controllo del Pulsante BT1 if (PORTBbits.RB4 == 0) { LATDbits.LATD1 = 0x01; //Accendo il led } else { LATDbits.LATD1 = 0x00; //Spengo il led } // Accendo il LED0 per il lampeggio LATDbits.LATD0 = 0x01; for (i=0;i<64000; i++) { //tempo di lampeggio } // Spengo il LED 0 per il lampeggio LATDbits.LATD0 = 0x00; } /////////////////////////////////////////////////////////////////////// ///////////////Associo il pulsante alla variabile///////////////////// (PORTBbits.RB4 == sommatoria); // Ciclo infinito while (1) { WriteStringLCD ("Litri impostati : "); //???????????? Writeunsignedintsommatoria ( ()); HomeLCD (); } ////////////////////////////////////////////////////////////////////// // Inizializzo il display LCD con quarzo a 20MHz OpenLCD (20); BacklightLCD (TURN_ON); // Scrivo i dati nella variabile tizio copy (tizio.nome, "litri imp:"); copy (tizio.cognome, "litri cont:"); // Scrivo il nome sull'LCD WriteVarLCD (tizio.nome); // Mi sposto alla seconda linea Line2LCD (); // Scrivo il cognome sull'LCD WriteVarLCD (tizio.cognome); // Ciclo infinito while (1) { } } void copy (unsigned char *dest, rom const char *parola) { while(*parola) { // Copio il carattere dentro l'array *dest = *parola; // Incremento il puntatore parola++; dest++; } // Inserisco il carattere di fine stringa *dest = '\0'; }