J'ai eu un problème pour faire afficher la température lue sur le LM35 connecté sur un PIC 16F877A et 2afficheurs 7segments. Après simulation, les afficheurs affichent jusqu'à 31° mais pas de suite.
Voilà mon programme sur microC:
int N=0,t=0,i=0,j=0;// i=unité,j=Dizaine,t=températur e. char tab[10]={63,6,91,79,102,109,125,7,127 ,111}; void main() { TRISA=0xFF; TRISB=0x00; TRISD=0x00; PORTB=0x00; PORTD=0x00; ADCON1=0x14; for(j=1;j<9;j++) { for(i=0;i<9;i++) { N= ADC_Read(0); t=(500*N)/1023; i=t%10; j=t/10; RD0_bit=0; PORTB=tab[i]; RD1_bit=1; delay_ms(5); RD1_bit=0; PORTB=tab[j]; RD0_bit=1; delay_ms(5); } } }
Tentative de correction avec introduction des balises code
Raté une première fois.
Code:int N=0,t=0,i=0,j=0;// i=unité,j=Dizaine,t=température. char tab[10]={63,6,91,79,102,109,125,7,127,111}; void main() { TRISA=0xFF; TRISB=0x00; TRISD=0x00; PORTB=0x00; PORTD=0x00; ADCON1=0x14; for(j=1;j<9;j++) { for(i=0;i<9;i++) { N= ADC_Read(0); t=(500*N)/1023; i=t%10; j=t/10; RD0_bit=0; PORTB=tab[i]; RD1_bit=1; delay_ms(5); RD1_bit=0; PORTB=tab[j]; RD0_bit=1; delay_ms(5); } } }
-----