اطلاعیه

Collapse
No announcement yet.

توضیح کد برنامه چراغ چشمک زن

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

    توضیح کد برنامه چراغ چشمک زن

    دوستان عزیز سلام
    من قصد دارم از روی کد برنامه چراغ چشمک زن ، برنامه نویسیش رو یاد بگیرم. کسی هست همراهیم کنه؟
    سلام دوستان
    این کدی که میذارم برنامه ی یک چراغ چشمک زن هست. ظاهرن خیلی برنامه ی ساده ای هست ولی خب من بلد نیستم. یه سوال دارم و اینه که کدوم قسمتهای این کد همیشه ثابت هست و توی همه ی برنامه ها میاد و قسمت اصلی برنامه از کدوم خط شروع میشه؟
    کسی هست که بیاد بگه هر خط این برنامه چیکار میکنه؟
    کد:
    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V2.05.0 Advanced
    Automatic Program Generator
    © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
    <a href="http://www.hpinfotech.com" target="_blank">http://www.hpinfotech.com</a>
     
    Project : 
    Version : 
    Date  : 9/6/2014
    Author : <a href="http://www.Eca.ir" target="_blank">www.Eca.ir</a> *** <a href="http://www.Webkade.ir" target="_blank">www.Webkade.ir</a>
    Company : 
    Comments: 
     
     
    Chip type        : ATmega32
    Program type      : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model      : Small
    External RAM size    : 0
    Data Stack size     : 512
    ************************************************** ***/
     
    #include <mega32.h>
     
    // Declare your global variables here
     
    void main(void)
    {
    // Declare your local variables here
     
    // Input/Output Ports initialization
    // Port A initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
    PORTA=0x00;
    DDRA=0xFF;
     
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTB=0x00;
    DDRB=0x00;
     
    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTC=0x00;
    DDRC=0x00;
     
    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTD=0x00;
    DDRD=0x00;
     
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=0xFF
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
     
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
     
    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
     
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;
     
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;
     
    // USART initialization
    // USART disabled
    UCSRB=0x00;
     
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
     
    // ADC initialization
    // ADC disabled
    ADCSRA=0x00;
     
    // SPI initialization
    // SPI disabled
    SPCR=0x00;
     
    // TWI initialization
    // TWI disabled
    TWCR=0x00;
     
    while (1)
       {
       // Place your code here
        PORTA=0xff;
        delay_ms(5000);
        PORTA=0x00;
        delay_ms(5000);
       }
    }
    و سوالاتم بدین صورته :
    1- چرا در این برنامه از میکروکنترلر ATmega32 استفاده کرده و فرقش با 8 و 16 و غیره چیه؟
    2- کاربردشون فرق داره؟
    3- دستورات قبل از while توی همه ی برنامه ها ثابته؟ و برنامه اصلی قسمت داخل while هست؟
    کد:
    while (1)
       {
       // Place your code here
        PORTA=0xff;
        delay_ms(5000);
        PORTA=0x00;
        delay_ms(5000);
       }
    4- چرا اول پورت A یک میشه و بعد صفر؟ نباید برعکس باشه؟ یا فرقی نمیکنه؟
    5- سوال بعدی اینکه اگه برنامه به این صورت بود کدش چطوری نوشته می شد؟ (میخوام تغییرات کد رو متوجه بشم!)
    5 تا LED هر کدام به مدت 5 ثانیه یکی پس از دیگری روشن بشه. (سری یا موازی قرار گرفتن LED ها مهمه؟)
    ممنونم از وقتی که میذارید :smile:

    #2
    پاسخ : توضیح کد برنامه چراغ چشمک زن

    سلام
    atmega32 حافظش(چه فلش چه sram) بیشتر از 16 است و 16 پایه ها و امکاناتش بیشتر از 8
    البته برای چشمک زدن 8 هم زیاذه!
    دستورات قبل از while مسلما ثابت نیستند و گرنه آورده نمیشدند
    مربوط به فعال کردن و یا تنظیم قسمت های مختلف میکرو مثل تایمر یا adc و .. است
    قاعدا برا چمک زدن اول روشن میکنن بعد خاموش ولی فرقی نداره برعکسشم میشه منتهی 5 ثانیه اول خاموش نمیفهمی داره درست کار میکنه یا نه باید 5 ثانیه صبر کرد :|
    هر پایه را با دستور زیر میشه روشن (یک high) کرد : PORTX.n
    مثلا ; PORTA.0=1
    شما فقط بین هر کدوم یک دیلی میزارین
    با حلقه for یا شیفتم میشه نوشت

    دیدگاه


      #3
      پاسخ : توضیح کد برنامه چراغ چشمک زن

      میشه خط به خط این برنامه رو جلو بریم تا بفهمم واسه چی این کدها استفاده میشه؟
      این بخش از برنامه واسه چیه؟ و چه چیزی رو میخواد معرفی کنه؟
      کد:
      // Port A initialization
      // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
      // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
      PORTA=0x00;
      DDRA=0xFF;

      دیدگاه


        #4
        پاسخ : توضیح کد برنامه چراغ چشمک زن

        نصف کد ها چرت و پرت هستش....پاکش کنی مشکلی پیش نمیاد.....کد های ظروری رو در زیر میزارم+توضیحات

        کد:
        #include <mega32.h>
        #include <delay.h>
        
        void main(void)
        {
        
        //تعیین ورودی خروجی پورت ای--اگه خروجی باشه یعنی داره اطلاعات میفرسته
        DDRA=0xFF;
        //تعیین مقدار اولیه پورت ای
         PORTA=0x00;  
        
        //یه حلقه که تا بی نهاید ادامه داره>>>یعنی کد هاش هی اجرا میشن...>>>> led ها حی خاموش و روشن میشن
        while (1)
           {
        //یک کردن تمام پایه های پورت ای-----اگه پایه + led ها به پورت ای وصل باشه و پایه - به زمین>>>>
        //در این صورت تمام led ها روشن میشن
            PORTA=0xff;
        //5 صانیه صبر میکنه>>>>5 ثانیه led ها روشن میمونن
            delay_ms(5000);
        //صفر کردن تمام پایه های پورت ای-----اگه پایه + led ها به پورت ای وصل باشه و پایه - به زمین>>>>
        //در این صورت تمام led ها خاموش میشن
            PORTA=0x00;
        //5 صانیه صبر میکنه>>>>5 ثانیه led ها روشن میمونن
            delay_ms(5000);
           }
        اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

        اگه دوس دارید سریع به جواب برسید :
        1) قبل از پرسیدن سوال، بسرچید.
        2) سوالاتون رو با جزئیات کامل مطرح کنید.

        دیدگاه


          #5
          پاسخ : توضیح کد برنامه چراغ چشمک زن

          این طوری که معلومه شما تازه دارید avr رو یاد میگیرد....
          مطلب زیر رو ببینید بد نیست....
          http://dmf313.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%85%D8%B9-avr-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-c-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87/
          اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

          اگه دوس دارید سریع به جواب برسید :
          1) قبل از پرسیدن سوال، بسرچید.
          2) سوالاتون رو با جزئیات کامل مطرح کنید.

          دیدگاه


            #6
            پاسخ : توضیح کد برنامه چراغ چشمک زن

            آموزش های کاملی بود
            معيار واقعي بودن تصميم، آن است که دست به عمل بزنيم.

            دیدگاه


              #7
              پاسخ : توضیح کد برنامه چراغ چشمک زن

              نوشته اصلی توسط md3848
              نصف کد ها چرت و پرت هستش....پاکش کنی مشکلی پیش نمیاد.....کد های ظروری رو در زیر میزارم+توضیحات

              کد:
              #include <mega32.h>
              #include <delay.h>
              
              void main(void)
              {
              
              //تعیین ورودی خروجی پورت ای--اگه خروجی باشه یعنی داره اطلاعات میفرسته
              DDRA=0xFF;
              //تعیین مقدار اولیه پورت ای
               PORTA=0x00;  
              
              //یه حلقه که تا بی نهاید ادامه داره>>>یعنی کد هاش هی اجرا میشن...>>>> led ها حی خاموش و روشن میشن
              while (1)
                 {
              //یک کردن تمام پایه های پورت ای-----اگه پایه + led ها به پورت ای وصل باشه و پایه - به زمین>>>>
              //در این صورت تمام led ها روشن میشن
                  PORTA=0xff;
              //5 صانیه صبر میکنه>>>>5 ثانیه led ها روشن میمونن
                  delay_ms(5000);
              //صفر کردن تمام پایه های پورت ای-----اگه پایه + led ها به پورت ای وصل باشه و پایه - به زمین>>>>
              //در این صورت تمام led ها خاموش میشن
                  PORTA=0x00;
              //5 صانیه صبر میکنه>>>>5 ثانیه led ها روشن میمونن
                  delay_ms(5000);
                 }
              مهندس دستت درد نکنه.
              یه سوال بالا پرسیدم ولی دقیق جوابم رو نگرفتم!
              این برنامه ش به چه صورتی میشه؟
              5 تا LED هر کدام به مدت 5 ثانیه یکی پس از دیگری روشن بشه. (سری یا موازی قرار گرفتن LED ها مهمه؟)

              دیدگاه


                #8
                پاسخ : توضیح کد برنامه چراغ چشمک زن

                در ضمن من که توی خونه این کدها رو ران میکنم ، چطوری باید توی خود سخت افزار میکروکنترلر پروگرم کنم؟؟؟؟

                دیدگاه


                  #9
                  پاسخ : توضیح کد برنامه چراغ چشمک زن

                  اینطوری کار کنی خودت رو اذیت میکنی....>>>البته خودم هم تقریبا این جوری یاد گرفتم!!!!

                  برا ریختن اطلاعات رو میکرو>>>از پروگرامر استفاده باید کنی>>>خواستی بخری پروگرامر هاتل رو بخر(50 قیمتشه)>>>از ما گفتن از شما...

                  داش معلومه....
                  هر چی led که به پایه ای وصل کرده باشی با هم روشن(و خاموش) میشه >>>5 ثانیه صبر میکنه>>>خاموش میشه>>>5 ثانیه صبر میکنه>>>....

                  تو سایتl چند تا پروژه ساده با led گزاشتم>>>نگاه کن کد هاش رو و پروزه رو تو پروتئوس اجراش کن>>>قشنگ متوجه میشی....
                  اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                  اگه دوس دارید سریع به جواب برسید :
                  1) قبل از پرسیدن سوال، بسرچید.
                  2) سوالاتون رو با جزئیات کامل مطرح کنید.

                  دیدگاه


                    #10
                    پاسخ : توضیح کد برنامه چراغ چشمک زن

                    مرسی.
                    من با این سبک راحت تر یاد میگیرم.
                    میشه بگین اینا واسه چیه وچه چیزی رو توضیح داده؟
                    کد:
                    // Port A initialization
                    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
                    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

                    دیدگاه

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