اطلاعیه

Collapse
No announcement yet.

برنامه رقص نور به زبان C

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

    برنامه رقص نور به زبان C

    یه برنامه رقص نور با led و دو تا push button میخوام که با زدن دکمه ها جهت چرخش نور LED ها عوض بشه

    #2
    پاسخ : برنامه رقص نور به زبان C

    با سلام.
    دوست عزیز اینجا کسی پروژه اماده تحویل نمیده، شما خودت شروع به کار کن مطمئن باش دوستان کمک می کنن.
    تو پروزه های سایت هم یه سری بزنی بد نیست.
    موفق باشید.
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : برنامه رقص نور به زبان C

      بگو یا علی وشروع کن
      ما هم کمکت می کنیم :applause: :applause:
      معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
      اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
      آموزش Modelsim

      دیدگاه


        #4
        پاسخ : برنامه رقص نور به زبان C

        فرضا اگه از یک پورت میکرو یعنی 8 پایه استفاده کنید هر بار که خروجی رو در 2 ضرب کنید led ها در یک جهت مشخص به ترتیب روشن میشن و اگر تقسیم بر 2 کنید خلاف جهت قبل روشن میشن. کافیه خروجی مضربی از 2 باشه!
        It's nice to be important but it's important to be nice!

        از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

        دیدگاه


          #5
          پاسخ : برنامه رقص نور به زبان C

          من برنامه زیر رو نوشتم البته فعلا برای یک کلید. مشکلم کار با پوش باتتنه.آخه این دکمه فقط برای یک لحظه عوض می شه و دوباره به حالت قبلی بر می گرده در حالی که ما می خوایم از وقتی این دکمه زده شد جهت چرخش تغییر کنه تا زمانی که دکمه دوباره زده بشه.چطور باید این قسمت رو اصلاح کنم؟
          /
          Project :
          Version :
          Date : 03/24/2012
          Author :
          Company :
          Comments:


          Chip type : ATmega32
          Program type : Application
          Clock frequency : 1.000000 MHz
          Memory model : Small
          External RAM size : 0
          Data Stack size : 512
          ************************************************** ***/

          #include <mega32.h>
          #include <delay.h>
          #define d1 PINC.0
          #define SP PORTD
          // Declare your global variables here
          unsigned char i=8;
          void backward();
          void forward()
          { if(i==8)
          { SP=8;
          i=1;
          }
          else
          { SP=i;
          i=i*2 ;
          }
          }

          void backward()
          {
          if (i==1)
          {SP=1;
          i=8;
          }
          else
          {SP=i;
          i=i/2;
          }

          }
          void main(void)
          {
          DDRD=0xFF;
          PORTC=0xFF;
          DDRC=0x00;

          while (1)
          {
          delay_ms(1000);
          if(!d1)
          forward();
          else
          backward();

          }




          }

          دیدگاه


            #6
            پاسخ : برنامه رقص نور به زبان C

            این برنامه واسه یک کلید هست که با زدن اون LED ها در یک جهت روشن میشن.
            در این مدار 8 led به پورت d و یک button به پین b.0 وصل شده.

            کد:
            #include <mega32a.h>
            #include <delay.h>
            // Declare your global variables here
            int i=1;
            bit x=0;
            void main(void)
            {
            // Declare your local variables here
            
            // Input/Output Ports initialization
            // Port A 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 
            PORTA=0x00;
            DDRA=0x00;
            
            // Port B initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
            // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P 
            PORTB=0xFF;
            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=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 
            PORTD=0x00;
            DDRD=0xFF;
            
            // 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)
               {
                if (PINB.0==0)  x=1;
                if (x==1){ 
                    PORTD=i;
                    delay_ms(500);
                    i=i*2;
                    if (i>128) i=1;
                    }
                }
            }
            چرا ناراحتی پاتریک!
            + امروز ی بچه دیدم سرچهارراه گل میفروخت
            - از دیدنش ناراحت شدی؟
            + نه
            پس چی ناراحتت کرده
            + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
            ------------------------------------------------------------------------------------------------------
            تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
            ------------------------------------------------------------------------------------------------------
            محصولات

            دیدگاه


              #7
              پاسخ : برنامه رقص نور به زبان C

              به نظرم بهتره کلیدها به اینتراپت متصل بشند و داخل زیر برنامه اینتراپت بنا به شماره اینتراپت تشخیص داده میشه که کدوم کلید فشرده شده و چه کار باید انجام بشه.
              It's nice to be important but it's important to be nice!

              از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

              دیدگاه


                #8
                پاسخ : برنامه رقص نور به زبان C

                نوشته اصلی توسط سوران آراسته
                این برنامه واسه یک کلید هست که با زدن اون LED ها در یک جهت روشن میشن.
                در این مدار 8 led به پورت d و یک button به پین b.0 وصل شده.

                کد:
                #include <mega32a.h>
                #include <delay.h>
                // Declare your global variables here
                int i=1;
                bit x=0;
                void main(void)
                {
                // Declare your local variables here
                
                // Input/Output Ports initialization
                // Port A 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 
                PORTA=0x00;
                DDRA=0x00;
                
                // Port B initialization
                // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P 
                PORTB=0xFF;
                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=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 
                PORTD=0x00;
                DDRD=0xFF;
                
                // 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)
                   {
                    if (PINB.0==0)  x=1;
                    if (x==1){ 
                        PORTD=i;
                        delay_ms(500);
                        i=i*2;
                        if (i>128) i=1;
                        }
                    }
                }
                مشکل من اینه که میخوام با هر بار زدن کلید جهت گردش نور عوض شه.واسه این نمی دونم چه کار کنم؟

                دیدگاه


                  #9
                  پاسخ : برنامه رقص نور به زبان C

                  یعنی می خوای وقتی اون یکی کلید رو زدی این بار ledها از این طرف روشن بشن ؟
                  چرا ناراحتی پاتریک!
                  + امروز ی بچه دیدم سرچهارراه گل میفروخت
                  - از دیدنش ناراحت شدی؟
                  + نه
                  پس چی ناراحتت کرده
                  + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                  ------------------------------------------------------------------------------------------------------
                  تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                  ------------------------------------------------------------------------------------------------------
                  محصولات

                  دیدگاه


                    #10
                    پاسخ : برنامه رقص نور به زبان C

                    کد:
                    #include <mega32a.h>
                    #include <delay.h>
                    // Declare your global variables here
                    int i=1;
                    bit x=0;
                    void main(void)
                    {
                    // Declare your local variables here
                    
                    // Input/Output Ports initialization
                    // Port A 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 
                    PORTA=0x00;
                    DDRA=0x00;
                    
                    // Port B initialization
                    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                    // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P 
                    PORTB=0xFF;
                    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=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 
                    PORTD=0x00;
                    DDRD=0xFF;
                    
                    // 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)
                       {
                       PORTD=i;
                       delay_ms(500);
                       i=i*2;
                       if (i>128) i=1;
                        if (PINB.0==0)
                        {
                        while (1)
                        { 
                        PORTD=i;
                        delay_ms(500);
                        i=i/2;
                        if (i<1) i=128;
                         if (PINB.0==0) break;
                        }
                        }
                        }
                    }


                    این برنامه سوران جان هستش که با کمی تغییر همونیه که شما خواستید. برنامه تست شده و کار میکنه.

                    دیدگاه

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