mình viết đoạn chương trình đọc dữ liệu qua ADC của mega32
code dọc adc:
unsigned int ADC_doc(unsigned char kenh)
{
ADMUX=0X40;// CHON NGUON SO SANH LA NGUỒN NGOÀI TẠI CHÂN 31
ADMUX|=kenh;//CHON KENH
delay_us(10);
ADCSRA|=ADEN;
ADCSRA|=ADSC; //ADSC = 1: start
while ((ADCSRA & ADIF)==0);
ADCSRA|=ADIF;
delay_ms(100);
return ADCW;
}
//================================================== ===============
đoạn code gọi ADC và hiển thị lên lcd
}
lcd_clear();
k=ADC_doc(R_CENTER);
doi_5so(k);
lcd_gotoxy(0,0);
lcd_putsf("doc adc R_CENTER");
for(i=0;i<5;i++)
{
lcd_gotoxy(i,1);
data[i]=data[i]+'0';
lcd_putchar(data[i]);
}
delay_ms(5000);
ctrinh con doi_5so
void doi_5so(unsigned int dlieu)
{
unsigned char i;
for(i=0;i<5;i++)
{
data[i]=dlieu%10;
dlieu=dlieu/10;
}
}
Các bác xem còn thiếu hay sai gì nữa không mà em thây nó hiện lên lcd những con số không đúng.
em có đo chân tại ngõ vào(R_CENTER) của avr thì thấy có điện áp thay đổi nhưng nó vẫn hiển thị một con số nhất định không thay đổi.
Rồi tự nhiên bây giờ nó chỉ hiện toàn số 0 mặc dù điện áp ở chân vào của nó có thay đổi
Các bác xem giúp em với. em cảm ơn nhiều!!!!
code dọc adc:
unsigned int ADC_doc(unsigned char kenh)
{
ADMUX=0X40;// CHON NGUON SO SANH LA NGUỒN NGOÀI TẠI CHÂN 31
ADMUX|=kenh;//CHON KENH
delay_us(10);
ADCSRA|=ADEN;
ADCSRA|=ADSC; //ADSC = 1: start
while ((ADCSRA & ADIF)==0);
ADCSRA|=ADIF;
delay_ms(100);
return ADCW;
}
//================================================== ===============
đoạn code gọi ADC và hiển thị lên lcd
}
lcd_clear();
k=ADC_doc(R_CENTER);
doi_5so(k);
lcd_gotoxy(0,0);
lcd_putsf("doc adc R_CENTER");
for(i=0;i<5;i++)
{
lcd_gotoxy(i,1);
data[i]=data[i]+'0';
lcd_putchar(data[i]);
}
delay_ms(5000);
ctrinh con doi_5so
void doi_5so(unsigned int dlieu)
{
unsigned char i;
for(i=0;i<5;i++)
{
data[i]=dlieu%10;
dlieu=dlieu/10;
}
}
Các bác xem còn thiếu hay sai gì nữa không mà em thây nó hiện lên lcd những con số không đúng.
em có đo chân tại ngõ vào(R_CENTER) của avr thì thấy có điện áp thay đổi nhưng nó vẫn hiển thị một con số nhất định không thay đổi.
Rồi tự nhiên bây giờ nó chỉ hiện toàn số 0 mặc dù điện áp ở chân vào của nó có thay đổi
Các bác xem giúp em với. em cảm ơn nhiều!!!!
Comment