ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2

موضوع: برنامه lm35

  1. #1
    2019/07/14
    3
    0

    برنامه lm35

    سلام دوستان یه برنامه برای lm35 نوشتم که روی دو تا سون سگمنت دما رو نشون بده متاسفانه یکان درست نمایش داده میشه ولی دهگانش مشکل داره لطفا کمکم کنید.
    اینم برنامش

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <mega16a.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <delay.h>


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))

    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | ADC_VREF_TYPE;
    delay_us(10);
    ADCSRA|=(1<<ADSC);
    while ((ADCSRA & (1<<ADIF))==0);
    ADCSRA|=(1<<ADIF);
    return ADCW;
    }

    void seg1(int num)
    {
    if(num == 0) PORTC = 0b00111111;
    else if(num == 1) PORTC = 0b00000011;
    else if(num == 2) PORTC = 0b01101101;
    else if(num == 3) PORTC = 0b01100111;
    else if(num == 4) PORTC = 0b01010011;
    else if(num == 5) PORTC = 0b01110110;
    else if(num == 6) PORTC = 0b01111110;
    else if(num == 7) PORTC = 0b00100011;
    else if(num == 8) PORTC = 0b01111111;
    else if(num == 9) PORTC = 0b01110111;
    }

    void seg2(int num)
    {
    if(num == 0) PORTD = 0b00111111;
    else if(num == 1) PORTD = 0b00000011;
    else if(num == 2) PORTD = 0b01101101;
    else if(num == 3) PORTD = 0b01100111;
    else if(num == 4) PORTD = 0b01010011;
    else if(num == 5) PORTD = 0b01110110;
    else if(num == 6) PORTD = 0b01111110;
    else if(num == 7) PORTD = 0b00100011;
    else if(num == 8) PORTD = 0b01111111;
    else if(num == 9) PORTD = 0b01110111;
    }


    void main(void)
    {
    int temp=0;
    DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
    PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

    DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
    PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

    DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);
    PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

    DDRD=(1<<DDD7) | (1<<DDD6) | (1<<DDD5) | (1<<DDD4) | (1<<DDD3) | (1<<DDD2) | (1<<DDD1) | (1<<DDD0);
    PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

    TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);
    TCNT0=0x00;
    OCR0=0x00;

    TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
    TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    ASSR=0<<AS2;
    TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
    TCNT2=0x00;
    OCR2=0x00;

    TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

    MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
    MCUCSR=(0<<ISC2);

    UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

    ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

    ADMUX=ADC_VREF_TYPE;
    ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
    SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);

    SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

    TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

    while (1)
    {
    temp = read_adc(0) / 3.043;
    seg1((temp / 10) % 10);
    seg2(temp % 10);
    delay_ms(500);
    }
    }
  2. #2
    2016/06/21
    312
    95

    پاسخ : برنامه lm35

    سلام .برنامه شما دیدم تابع سون سگمت کدهای باینری اشتباهاتی داشت که تصحیح کردم همین رفرنس ADC روی 2.56 فرض کردم مقدار تقسیم شد 4 .موفق باشید........................................ ...............

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

نمایش نتایج: از 1 به 2 از 2

موضوعات مشابه

  1. نوشتن برنامه lm35 با وقفه ADC ؟
    توسط fmicro در انجمن میکروکنترلرهای AVR
    پاسخ: 26
    آخرين نوشته: 2017/10/21, 15:14
  2. مشکل در برنامه براي LM35
    توسط ((O-I-O)) در انجمن میکروکنترلرهای AVR
    پاسخ: 12
    آخرين نوشته: 2014/07/09, 17:54
  3. برنامه lm35 با بسکام
    توسط cdmanx در انجمن برنامه نویسی و اینترفیس
    پاسخ: 5
    آخرين نوشته: 2012/10/12, 19:22
  4. مشکل با برنامه ترمومتر LM35
    توسط vahidff در انجمن میکروکنترلرهای AVR
    پاسخ: 7
    آخرين نوشته: 2010/04/02, 10:49
  5. برنامه دماسنج با lm35
    توسط sadegh_barca در انجمن میکروکنترلرهای AVR
    پاسخ: 19
    آخرين نوشته: 2010/01/11, 12:21

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

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