اطلاعیه

Collapse
No announcement yet.

تغییر برنامه سنسور lm35 ؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : تغییر برنامه سنسور lm35 ؟

    کد:
    #include <mega16.h>
    #include <stdio.h>
    #include <delay.h>
    
    #asm
      .equ __lcd_port=0x12 ;PORTD
    #endasm
    #include <lcd.h>
     
    #define ADC_VREF_TYPE 0xE0
    
    char lcd_buff[10];
    
    // ADC interrupt service routine
    interrupt [ADC_INT] void adc_isr(void)
    {
    
    unsigned char adc_data;
    adc_data=ADCH;
    sprintf(lcd_buff,"Temp=%5.1f C",adc_data);
    lcd_clear();
    lcd_gotoxy(0,0);
    lcd_puts(lcd_buff);
    
    }
    
    // Declare your global variables here
    
    void main(void)
    {
    
    // ADC initialization
    // ADC Clock frequency: 15.625 kHz
    // ADC Voltage Reference: AREF pin
    // ADC Auto Trigger Source: None
    // Only the 8 most significant bits of
    // the AD conversion result are used
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x8E;
    
    lcd_init(16);
    // Global enable interrupts
    
    #asm("sei")
    
     while (1){
     if((ADCSRA & 0x40)==0){
     ADCSRA|=(1<<ADSC);
     }
     };
    
     }

    .The best question deserves a better answer
    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
    «پناه»می برم «به خدا»
    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

    دیدگاه


      #17
      پاسخ : تغییر برنامه سنسور lm35 ؟

      دوست عزیز بازم جواب نداد از ADSC هم error می گیره ! میگه ADSC تعریف نشده است !

      دیدگاه


        #18
        پاسخ : تغییر برنامه سنسور lm35 ؟

        احتمالا ورژن codevisent پاینه که نمیشناسه
        بجای ADSC بزار 6

        اینجوری:
        کد:
        #include <mega16.h>
        #include <stdio.h>
        #include <delay.h>
        
        #asm
          .equ __lcd_port=0x12 ;PORTD
        #endasm
        #include <lcd.h>
         
        #define ADC_VREF_TYPE 0xE0
        
        char lcd_buff[10];
        
        // ADC interrupt service routine
        interrupt [ADC_INT] void adc_isr(void)
        {
        
        unsigned char adc_data;
        adc_data=ADCH;
        sprintf(lcd_buff,"Temp=%5.1f C",adc_data);
        lcd_clear();
        lcd_gotoxy(0,0);
        lcd_puts(lcd_buff);
        
        }
        
        // Declare your global variables here
        
        void main(void)
        {
        
        // ADC initialization
        // ADC Clock frequency: 15.625 kHz
        // ADC Voltage Reference: AREF pin
        // ADC Auto Trigger Source: None
        // Only the 8 most significant bits of
        // the AD conversion result are used
        ADMUX=ADC_VREF_TYPE & 0xff;
        ADCSRA=0x8E;
        
        lcd_init(16);
        // Global enable interrupts
        
        #asm("sei")
        
         while (1){
         if((ADCSRA & 0x40)==0){
         ADCSRA|=(1<<6);
         }
         };
        
         }
        .The best question deserves a better answer
        =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
        «پناه»می برم «به خدا»
        از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
        محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

        دیدگاه


          #19
          پاسخ : تغییر برنامه سنسور lm35 ؟

          با گذاشتن 6 error بر طرف شد اما هرچی دما رو تغییر میدم دمای صفر درجه رو بر روی ال سی دی نشون میده ؟!

          دیدگاه


            #20
            پاسخ : تغییر برنامه سنسور lm35 ؟

            عملی چک میکنی یا پروتئوس؟
            اگه پروتئوس فایلتو برام بزار
            .The best question deserves a better answer
            =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
            «پناه»می برم «به خدا»
            از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
            محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

            دیدگاه


              #21
              پاسخ : تغییر برنامه سنسور lm35 ؟

              [/img]

              با پروتئوس ال سی دی رو به پورت D وسنسور ال لم 35 را به پایه 40 یعنی ADC0 متصل کردم ...

              دیدگاه


                #22
                پاسخ : تغییر برنامه سنسور lm35 ؟

                کد:
                #include <mega16.h>
                #include <stdio.h>
                #include <delay.h>
                #include <stdlib.h>
                #asm
                  .equ __lcd_port=0x12 ;PORTD
                #endasm
                #include <lcd.h>
                 
                
                
                char lcd_buff[10];
                
                // ADC interrupt service routine
                interrupt [ADC_INT] void adc_isr(void)
                {
                
                unsigned int adc_data;
                float temp;
                adc_data=ADCW;
                temp=adc_data * 2.5;
                temp/=10;
                ftoa(temp,2,lcd_buff);
                
                
                lcd_clear();
                lcd_gotoxy(0,0);
                lcd_puts(lcd_buff);
                
                }
                
                // Declare your global variables here
                
                void main(void)
                {
                
                // ADC initialization
                // ADC Clock frequency: 15.625 kHz
                // ADC Voltage Reference: AREF pin
                // ADC Auto Trigger Source: None
                // Only the 8 most significant bits of
                // the AD conversion result are used
                ADMUX=0xC0 ;
                ADCSRA=0x8E;
                
                lcd_init(16);
                // Global enable interrupts
                
                #asm("sei")
                
                 while (1){
                 if((ADCSRA & 0x50)==0){
                 ADCSRA|=(1<<6);
                 }
                 };
                
                 }

                کلاک میکرو 8 مگ داخلی
                .The best question deserves a better answer
                =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                «پناه»می برم «به خدا»
                از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                دیدگاه


                  #23
                  پاسخ : تغییر برنامه سنسور lm35 ؟

                  این برنامه شما جواب داد اما میخوام با همون فرم قبلی جواب بده یعنی ADMUX=E0 و از تابع sprintf نیز استفاده بشه .....

                  دیدگاه


                    #24
                    پاسخ : تغییر برنامه سنسور lm35 ؟

                    با sprintf و admux=e0


                    کد:
                    #include <mega16.h>
                    #include <delay.h>
                    #include <stdio.h>
                    #asm
                      .equ __lcd_port=0x12 ;PORTD
                    #endasm
                    #include <lcd.h>
                     
                    
                    
                    char lcd_buff[16];
                    
                    // ADC interrupt service routine
                    interrupt [ADC_INT] void adc_isr(void)
                    {
                    
                    unsigned int adc_data;
                    float temp;
                    adc_data=ADCH;
                    temp=adc_data;
                    
                    sprintf(lcd_buff,"Temp=%.2f C",temp);
                    
                    
                    
                    lcd_clear();
                    lcd_gotoxy(0,0);
                    lcd_puts(lcd_buff);
                    
                    }
                    
                    // Declare your global variables here
                    
                    void main(void)
                    {
                    
                    // ADC initialization
                    // ADC Clock frequency: 15.625 kHz
                    // ADC Voltage Reference: AREF pin
                    // ADC Auto Trigger Source: None
                    // Only the 8 most significant bits of
                    // the AD conversion result are used
                    ADMUX=0xE0 ;
                    ADCSRA=0x8E;
                    
                    lcd_init(16);
                    // Global enable interrupts
                    
                    #asm("sei")
                    
                     while (1){
                     if((ADCSRA & 0x50)==0){
                     ADCSRA|=(1<<6);
                     }
                     };
                    
                     }
                    .The best question deserves a better answer
                    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                    «پناه»می برم «به خدا»
                    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                    دیدگاه


                      #25
                      پاسخ : تغییر برنامه سنسور lm35 ؟

                      دوست عزیز جواب داد خیلی لطف کردی حالا میشه در مورد نحوه عملکرد دو کد زیر برام توضیح بدی :
                      while (1){
                      if((ADCSRA & 0x50)==0){
                      ADCSRA|=(1<<6);
                      }

                      دیدگاه


                        #26
                        پاسخ : تغییر برنامه سنسور lm35 ؟

                        خواهش داداش

                        گفتیم اگه در ریجستر adcsra بیتadsc که مخفف adc start convert هست و بیت adif که ADC Interrupt Flag هست and اونها با 0x50 مساوی بود با صفر(یعنی adc در حال تبدیل نباشه )فرمان استارت بده
                        data sheet بخون کامل دستت میاد
                        اگه 0x40 هم بزاری جواب میده اما 0x50 برا محکم کاریه :mrgreen:
                        .The best question deserves a better answer
                        =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                        «پناه»می برم «به خدا»
                        از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                        محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                        دیدگاه

                        لطفا صبر کنید...
                        X