اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.
سلام.
اونجا توضیح دادم که با برنامه نویسی برای ADC (آنالوگ به دیجیتال) آشنایی ندارم.با استفاده از CodeVision می تونم برای LCD برنامشو بنویسم (زحمت می کشم!) ولی بقیشو نمیدونم!
که چه برنامه ای بنویسیم که اگه دکمه ای رو کی پد زده شد رو LCD نشون داده بشه.
خیلی خیلی ممنون.
اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.
راستش دوست عزیز من خودم تا حالا از این روش استفاده نکردم ولی اصولشو دوستمون تو اون تایپیک گفتند
فکر کنم اینجوری بشه البته من اینو تست نکردم در ضمن رنج مقاومتهایی که انتخاب کردم با اونا فرق دارن اما اصولش همینه
(البته فکر کنم همین باشه :redface
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
// Declare your global variables here
float key;
void main (void)
{
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x87;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
key=read_adc(0);
key=key*5/1024;
if ((key>0.80) && (key<0.99))
{
lcd_clear();
lcd_putsf("0"
}
else if (key>1.10 && key<1.24)
{
lcd_clear();
lcd_putsf("1"
}
else if (key>1.85 && key<2.18)
{
lcd_clear();
lcd_putsf("2"
}
else if (key>2.50 && key<2.78)
{
lcd_clear();
lcd_putsf("3"
دیدگاه