دما سنج با LM35و میکروatmega8 کدوِیژن+شبیه ساز

در اين بخش مي‌توانيد طرح آماده و کامل شده مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مدیران انجمن: SAMAN, sinaset, شوراي نظارت

ارسال پست
Colonel II
Colonel II
نمایه کاربر
پست: 7008
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9184 بار
سپاس‌های دریافتی: 21045 بار
تماس:

دما سنج با LM35و میکروatmega8 کدوِیژن+شبیه ساز

پست توسط sinaset » شنبه 24 مرداد 1394, 9:32 am

با سلام

دما سنج با LM35و میکروatmega8 کدوِیژن+شبیه ساز
 تصویر 
در این برنامه به کمک دماسنج LM35 و میکروکنترولر ATMEGA8 دماسنجی ساخته شده،که دما را بر روی LCD نمایش میدهد .
دو led هم در این طرح به کار رفته و هرگاه دما زیر محدود 50 درجه باشد،led سبز روشن میشود و هرگاه بیشترر از 50 درجه باشه led قرمر روشن میشود.. و همچنین تغییر وضعیت led ها بر روی lcd نوشته میشود ...
 تصویر 
کدهای برنامه

کد: انتخاب همه

/*******************************************************
Project :Temp lm35
Version :1.0
Date    : 07/05/2015
Author  : Sinaset
Company :
Comments:

Chip type         : ATmega8A
Program type        : Application
AVR Core Clock frequency: 8.000000 MHz
*******************************************************/
#include <mega8.h>
#include <delay.h>       //استفاده از کتابخانه تاخيري
#include <stdlib.h>
#include <stdio.h>      
#include <alcd.h>       //استفاده از کتابخانه ال سي دي
#define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR))   //به عنوان ولتاژ مرجعAREF تايين پايه

unsigned int read_adc(unsigned char adc_input)  //ADC تابع نمونه گيري از واحد
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}

void main(void)  //تابع اصلي
{
char s[16];  //تعريف يک ارايه متغيري
int vol;   //تعريف يک  متغيير
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (1<<DDD1) | (1<<DDD0);

ADMUX=ADC_VREF_TYPE;  //ADC شروع کردن تابع نمونه گيري از واحد
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);  //تايين فرکانس کاري واحد
SFIOR=(0<<ACME);

lcd_init(16); //تعداد ستون هاي ال سي دي


                 lcd_putsf("BE NAME KHODA");      //پيام خوش آمد گويي و شروع با نام خدا
                 delay_ms(100);             //مدت زمان نمايش پيام
                 lcd_clear();               //پاک کردن پيام
while (1)                           
    {
       vol=read_adc(0)*.49;   //فرمول بدست اوردن دما از سنسور
       itoa(vol,s);
       sprintf(s,"Temp=%d % %c",vol);
       lcd_gotoxy(0,0);          //تايين موقعيت متن
       lcd_puts(s);            //نمايش متن
       delay_ms(50);           //تاخير نمايش
    
      if(vol>=50)    //درصورتي که دما بيشتر از 50 درجه سانتي گراد بود ،چراغ قرمز روشن شود
      {
       PORTD.0=1;
       PORTD.1=0;
       lcd_gotoxy(0,1);
       lcd_putsf("LED:Red    ");
      }                  
      if(vol<=50)   //درصورتي که دما کمتر از 50 درجه سانتي گراد بود،چراغ قرمز روشن شود
       {
       PORTD.0=0;
       PORTD.1=1;
       lcd_gotoxy(0,1);
       lcd_putsf("LED:GREEN  ");
       }   
    }
}


 تصویر  [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]سورس و شبیه ساز  [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]فایل HEX بصورت جداگانه.  . 
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

ارسال پست

بازگشت به “طرح آماده و کامل شده AVR”