نمایش نتایج 1 تا 6 از 6

نام تاپیک: مشکل در مقدار ADC در نرم افزار پروتئوس

  1. #1
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    مشکل در مقدار ADC در نرم افزار پروتئوس

    باسلم در شبیه سازی برنامه Proteus مقادیر بالاتر از 50 را همان 50 نمایش میدهد ولی برای مقدایر 50 به پایین مشکلی ندارد. هرچه با کدها کلنجاررفتم حل نشد. قسمتی ازکدها وتصویر مدار را گذاشتم ، کسی دراین زمینه تجربه دارد؟


    temperature=(int)(ADCW>>2);
    itoa(temperature,DigitText);
    lcd_puts(DigitText);
    // Some code
    TempF=(int)((temperature*9/5)+32);
    itoa(TempF,DigitText);
    lcd_puts(DigitText);

    Name:  Thermo.JPG
Views: 322
Size:  66.2 کیلوبایت

  2. #2
    کاربر دائمی آواتار hamid-nic
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    اصفهان
    پست
    813

    نقل قول: مشکل در مقدار ADC در نرم افزار پروتئوس

    سلام
    به جای LM35 می توانید از یک پتانسیومتر استفاده کنید. امتحان کنید ببینید که جواب می ده ؟

  3. #3
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: مشکل در مقدار ADC در نرم افزار پروتئوس

    بله امتحان کردم اگر به پروب ولتاژکه درخروجی LM35 است نگاه کنید مقدار 0.71 ولت را نشان میدهد که با توجه به تنظیمات میکرو باید عدد 71 رانشان دهد وهمانطور که عرض کردم تا مقدار 50 را کاملاصحیح عمل میکند.

  4. #4
    کاربر دائمی آواتار hamid-nic
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    اصفهان
    پست
    813

    نقل قول: مشکل در مقدار ADC در نرم افزار پروتئوس

    ولتاژ رفرنس Vref را به چه شکلی مقدار دهی کردید ؟

  5. #5
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: مشکل در مقدار ADC در نرم افزار پروتئوس

    برای اینکه تمام سوالتان احتمالی آینده هم جواب داده شوند کد های مربوطه را در ذیل قرار میدهم. سخت افزار هم خیلی ساده مانند شکل فوق است.

    #include <mega16.h>
    #include <stdlib.h>
    #include <delay.h>
    #include <alcd.h>
    //#define HOT_VALUE 30
    //#define COLD_VALUE 20
    //#define HotAlarm PORTC.2
    //#define ColdAlarm PORTC.0
    // for Display degree sign save in Program code
    // because Character map in LCD Different from PC
    flash char degree_signC[3]={0xDF,0x43,0},degree_signF[3]={0xDF,0x46,0};
    unsigned char display_flag=0;
    char *DigitText; //Variable For save numbers to ASCII
    int TempF ;
    int temperature;
    // Timer1 overflow interrupt service routine
    interrupt [TIM1_OVF] void timer1_ovf_isr(void)
    {
    TCNT1=0xc240;
    display_flag=1;
    }
    #define ADC_VREF_TYPE 0xC0
    // ADC interrupt service routine
    interrupt [ADC_INT] void adc_isr(void)
    {
    temperature=(int)(ADCW>>2);
    }

    void read_adc(void)
    {
    delay_us(20);
    #asm
    in r30,mcucr
    cbr r30,__sm_mask
    sbr r30,__se_bit | __sm_adc_noise_red
    out mcucr,r30
    sleep
    cbr r30,__se_bit
    out mcucr,r30
    #endasm
    }

    void main(void)
    {

    PORTC=0x00;
    DDRC=0x07;
    TCCR1A=0x00;
    TCCR1B=0x03;
    TCNT1H=0xc2;
    TCNT1L=0x40;
    TIMSK=0x04;
    UCSRB=0x00;
    ACSR=0x80;
    // ADC initialization
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x8A;

    lcd_init(16);
    delay_ms(50);
    lcd_putsf(" Wait");
    // Global enable interrupts
    #asm("sei")
    ADCSRA|=0x40;
    while (1)
    {
    if(display_flag){
    lcd_clear();
    // ***** *****
    lcd_gotoxy(0,1);
    lcd_putsf("Temp: ");
    itoa(temperature,DigitText);
    lcd_puts(DigitText);
    lcd_putsf(degree_signC);
    // *******************
    /*if (temperature < COLD_VALUE)
    ColdAlarm=1;
    else if (temperature > HOT_VALUE)
    HotAlarm=1;
    else {
    HotAlarm=0;
    ColdAlarm=0;
    } */
    lcd_gotoxy(6,0);
    TempF=(int)((temperature*9/5)+32);
    itoa(TempF,DigitText);
    lcd_puts(DigitText);
    lcd_putsf(degree_signF);
    display_flag=0;
    read_adc();
    }
    };
    }

  6. #6

    نقل قول: مشکل در مقدار ADC در نرم افزار پروتئوس

    منم همین مشکلو داشتم که طی 7 ساعت کار مداوم و زل زدن به صفحه مانیتور بالاخره به این نتیجه رسیدم که باید پایه های avcc و avref رو به vcc وصل کنی

تاپیک های مشابه

  1. مشکل run نشدن apache در نرم افزار xampp
    نوشته شده توسط farahani1 در بخش PHP
    پاسخ: 12
    آخرین پست: پنج شنبه 17 آبان 1397, 10:53 صبح
  2. مشکل امنیتی در استفاده از نرم افزار تبدیل ffMpeg در وب؟
    نوشته شده توسط nasinas در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: سه شنبه 18 مرداد 1390, 19:01 عصر
  3. مشکل در انتخاب چاپگر توسط نرم افزار
    نوشته شده توسط ghoghnuse در بخش Foxpro
    پاسخ: 17
    آخرین پست: سه شنبه 19 بهمن 1389, 10:27 صبح
  4. رفع مشکل کشیدگی حروف فارسی در نرم افزار Active Report
    نوشته شده توسط soheil_programmer در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: جمعه 16 فروردین 1387, 01:40 صبح
  5. مشکل در ساخت Setup توسط نرم افزار Installshild12
    نوشته شده توسط larim2007 در بخش Setup و Deployment
    پاسخ: 3
    آخرین پست: شنبه 22 اردیبهشت 1386, 08:57 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •