با سلام خدمت اساتید عزیز
من برای قسمتی از پروژه خود نیاز به دمای محیط دارم که برای این کار از LM35 استفاده کردم ولی درجه حرارت روی LCD نمایش داده نمیشه و فقط عبارت T='C نمایان میشه!
با استفاده از پروتیوس هم شبیه سازی کردم همین مشکل وجود داره!
فرکانس میکرو روی 8Mhz بصورت داخلی با فیوزبیت های مربوطه تنظیم شده و اتصالات LM35 هم بدرستی انجام شده و خروجی سنسور به بیت اول پورت A وصل شده و برای Vref از ولتاژ داخلی خود میکرو یعنی 2.56 استفاده شده است.با استفاده از شبیه سازی پروتیوس روی ورودی میکرو تغییرات سنسور را دارم ولی مقدار آن روی LCD نمایش داده نمیشه!سورس برنامه هم ظاهرا درسته
از دوستان عزیز میخوام که منو در این مورد راهنمایی کنن
[hr]
من برای قسمتی از پروژه خود نیاز به دمای محیط دارم که برای این کار از LM35 استفاده کردم ولی درجه حرارت روی LCD نمایش داده نمیشه و فقط عبارت T='C نمایان میشه!
با استفاده از پروتیوس هم شبیه سازی کردم همین مشکل وجود داره!
فرکانس میکرو روی 8Mhz بصورت داخلی با فیوزبیت های مربوطه تنظیم شده و اتصالات LM35 هم بدرستی انجام شده و خروجی سنسور به بیت اول پورت A وصل شده و برای Vref از ولتاژ داخلی خود میکرو یعنی 2.56 استفاده شده است.با استفاده از شبیه سازی پروتیوس روی ورودی میکرو تغییرات سنسور را دارم ولی مقدار آن روی LCD نمایش داده نمیشه!سورس برنامه هم ظاهرا درسته
از دوستان عزیز میخوام که منو در این مورد راهنمایی کنن
[hr]
کد:
[left] #include <mega32.h> #include <lcd.h> #include <stdio.h> #include <delay.h> #define xtal 8000000 #asm .equ __lcd_port=0x18 ;PORTB #endasm #define ADC_VREF_TYPE 0xC0 float t0; unsigned int read_adc(unsigned char adc_input) { float t; ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); delay_us(10); ADCSRA|=0x40; while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; t=((ADCW*2.56)/1023)*100; return t; } void main(void) { char buffer[32]; SFIOR=0x00; ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x86; lcd_init(16); while (1) { t0=read_adc(0); lcd_clear(); sprintf(buffer,"T=%f\xdfC",t0); lcd_puts(buffer); delay_ms(100); }; } [/left]
دیدگاه