سلام به همگی
من امروز بیکار بودم... خواستم یه برنامه دماسنج برای خودم بنویسم و نوشتم ولی نمیدونم چگونه باید خروجی ADCW از ماژول A2D رو مقدار دهی کرد تا خروجی رو درست روی lcd نمایش بده.
برنامه اینه:
کد:
#include <mega16.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
char buffer[10];
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
ADMUX = 0b01100000;
ADCSRA = 0b11100111;
SFIOR = 0b00000000;
lcd_init(16);
lcd_gotoxy(0,0);
lcd_puts("TEMP: 'C");
while (1)
{
ADCW= (ADCW/4);
sprintf(buffer,"%d",ADCW);
lcd_gotoxy(6,0);
lcd_puts(buffer);
}
}
آدرس فایل کدویژن به همراه فایل پروتئوس هم اینه: حجمش 96 کیلوبایت بیشتر نیست:
termometer
یه کمکی بکنید...چیز زیادی از شما نمیخوام...فقط بفرمایید ضرب و تقسیم مقدار خروجی ADCW که شامل دو رجیستر هشت بیتی ADCH و ADCL هست چگونه باید باشد تا مقدار دما درست نشون داده بشه..
اون تقسیم بر 4 رو هم همینجوری گذاشتم...چیز بهتری به ذهنم نرسید.
در ضمن از سنسور LM35 برای پروژه استفاده کردم.
ممنونم