// arlotto 2006 c18 sur 18F452 carte PICDEM2+ // démonstration i2c : affichage de température sur le lcd #include // configuration PICDEM2+ quartz #pragma config OSC = HS #pragma config WDT = OFF #pragma config LVP = OFF #pragma config PBADEN = OFF #include #include "xlcd100.h" #include #define BtnS2 PORTAbits.RA4 char cmd[]="\x9A\x00"; void main (void) { char x ; int temp ; OpenI2C(MASTER,SLEW_OFF); SSPADD = 9 ; x=SSPBUF ; OpenXLCD(OPEN_PICDEM_LCD); stdout = _H_USER ; printf("Temp : C"); for(;;) { if(BtnS2 == 0 ) { StartI2C(); IdleI2C(); WriteI2C(0x9A); if(SSPCON2bits.ACKSTAT) printf("A"); else printf("N"); WriteI2C(0x00); RestartI2C(); IdleI2C(); WriteI2C(0x9B); temp = ReadI2C(); NotAckI2C();IdleI2C(); StopI2C();IdleI2C(); gotoXLCD(LCD_LINE_ONE + 6 ); printf("%3d",temp); } } }