Version:0.9 StartHTML:0000000105 EndHTML:0000023295 StartFragment:0000001499 EndFragment:0000023279
sbit LCD_RS at RB0_bit; //Config connessioni LCD
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_RS_Direction at TRISB0_bit; //Config connessioni LCD
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
unsigned int Xinit, Yinit, Zinit, Conv; //Variabili senza segno
signed int Xasse, Yasse, Zasse, Visual; //variabili con segno
char TXT[4]; //Variabile testo
void main() { //programma principale
TRISB = 0x00; //PORTB tutte uscite
TRISA = 0b11100000; //Primi tre I/0 TRISA ingressi
Lcd_Init(); //Inizializza LCD
Lcd_Cmd(_LCD_CLEAR); //Pulisci LCD
Lcd_Cmd(_LCD_CURSOR_OFF); //Cursore spento
ADC_Init(); //Inizializza ADC
Delay_ms(500); //Attesa di stabilizzazione
Xinit = ADC_Get_Sample(0); //Leggi valore di riposo asse X
Yinit = ADC_Get_Sample(1); //Leggi valore di riposo asse Y
Zinit = ADC_Get_Sample(2); //Leggi valore di riposo asse Z
Delay_ms(500); //Attesa di stabilizzazione
while(1){
Conv = ADC_Get_Sample(0); //Leggi valore di riposo asse X
Xasse = (Conv-Xinit)*6; //Sottrai valore a riposo e x6
IntToStr(Xasse, TXT); //Trasforma in stringa
Lcd_Cmd(_LCD_CLEAR); //Pulisci LCD
Lcd_Out(1, 1, " Acc X"); //Informa che è il dato lungo X
Lcd_Out(2, 4, TXT); //mostra valore in millesimo di g
Delay_ms(700); //Aspetta 0.7S per visualizzare
Conv = ADC_Get_Sample(1); //Leggi valore di riposo asse Y
Xasse = (Conv-Yinit)*6; //Sottrai valore a riposo e x6
IntToStr(Xasse, TXT); //Trasforma in stringa
Lcd_Cmd(_LCD_CLEAR); //Pulisci LCD
Lcd_Out(1, 1, " Acc Y"); //Informa che è il dato lungo Y
Lcd_Out(2, 4, TXT); //mostra valore in millesimo di g
Delay_ms(700); //Aspetta 0.7S per visualizzare
Conv = ADC_Get_Sample(2); //Leggi valore di riposo asse Z
Xasse = (Conv-Zinit)*6; //Sottrai valore a riposo e x6
IntToStr(Xasse, TXT); //Trasforma in stringa
Lcd_Cmd(_LCD_CLEAR); //Pulisci LCD
Lcd_Out(1, 1, " Acc Z"); //Informa che è il dato lungo Z
Lcd_Out(2, 4, TXT); //mostra valore in millesimo di g
Delay_ms(700); //Aspetta 0.7S per visualizzare
}
}