اطلاعیه

Collapse
No announcement yet.

سوالی در مورد برنامه نوسی برای میکروکنترلر

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

    سوالی در مورد برنامه نوسی برای میکروکنترلر

    دوستان عزیز من تو این دو تا سوالی که در دو عکس زیر هست گیر کردم لطفآ کمک کنید.
    در عکس اول باید با شیفت نوشته بشه لطفآ کمک کنید.
    اینم کدها هگز برای سون سگمنت:



    #2
    پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

    اینم کدهای هگز:
    0=0x3f
    1=0x06
    2=0x5b
    3=0x4f
    4=0x66
    5=0x6d
    6=0x7d
    7=0x07
    8=0xff
    9=0x6f
    a=0x77
    b=0xff
    c=0x39
    d=0x3f
    e=0x79
    f=0x71

    دیدگاه


      #3
      پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

      نوشته اصلی توسط o_omid
      دوستان عزیز من تو این دو تا سوالی که در دو عکس زیر هست گیر کردم لطفآ کمک کنید.
      در عکس اول باید با شیفت نوشته بشه لطفآ کمک کنید.
      اینم کدها هگز برای سون سگمنت:


      این برنامه شکل اولی میشه:

      $regfile = "m8def.dat"
      $crystal = 8000000

      Config Pind.0 = Input
      Config Portb= Output
      Dim A As Byte
      A = &B00000001
      Do
      If Pind.0 = 1 Then
      Portb = A
      Waitms 200
      Rotate A , Left , 1
      If A > 8 Then
      A = &B00000001
      End If
      Else
      Portb = 0
      End If
      Loop
      End
      اگر روزي هيچ مشکلي سر راهم نبود ؛ ميفهمم که راه را اشتباه رفته ام!

      دیدگاه


        #4
        پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

        اینم قسمت الف دومی

        $regfile = "m8def.dat"
        $crystal = 8000000
        Config Portc = Output

        Dim A As Byte
        A = 0
        Do
        Portc = Lookup(a , Dat1)
        If A > 15 Then
        A = 0
        End If
        Wait 2
        Incr A
        Loop
        End 'end program

        Dat1:
        Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7D , &H07 , _
        &Hff , &H6F , &H77 , &HFF , &H39 , &H3F , &H79 , &H71
        اگر روزي هيچ مشکلي سر راهم نبود ؛ ميفهمم که راه را اشتباه رفته ام!

        دیدگاه


          #5
          پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

          اینم برنامه قسمت آخر دومی :
          $regfile = "m8def.dat"
          $crystal = 8000000
          Config Portd = Input
          Config Portb = Output
          Config Pinc.0 = Output
          Dim A As Byte , B As Byte
          A = 0
          Do
          Debounce Pind.0 , 1 , L1 , Sub
          Debounce Pind.1 , 1 , L2 , Sub
          Debounce Pind.2 , 1 , L3 , Sub
          Debounce Pind.3 , 1 , L4 , Sub
          Loop
          End 'end program

          L1:
          Incr A
          If A > 15 Then
          A = 0
          End If
          Portb = Lookup(a , Dat1)
          Return

          L2:
          Decr A
          If A > 15 Then
          A = 0
          End If
          Portb = Lookup(a , Dat1)
          Return

          L3:
          Portb = &H3F
          Return

          L4:
          Set Portc.0
          A = 0
          For B = 0 To 9
          Portb = Lookup(a , Dat1)
          Incr A
          Wait 1
          Next B
          A = 9
          For B = 9 To 0 Step -1
          Portb = Lookup(a , Dat1)
          Decr A
          Wait 1
          Next B
          Reset Portc.0
          Return


          Dat1:
          Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7D , &H07 , _
          &Hff , &H6F , &H77 , &HFF , &H39 , &H3F , &H79 , &H71

          امری باشه :question:

          موفق باشین
          :bye
          اگر روزي هيچ مشکلي سر راهم نبود ؛ ميفهمم که راه را اشتباه رفته ام!

          دیدگاه


            #6
            پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

            دوست عزیز من به زبان c می خوام اینها جدیدن من تا حالا ندیدم آیا اسمبلی هستن؟

            دیدگاه


              #7
              پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

              نوشته اصلی توسط o_omid
              دوست عزیز من به زبان c می خوام اینها جدیدن من تا حالا ندیدم آیا اسمبلی هستن؟
              دوست عزیز این زبان Basic هستش و با برنامه بسکام هم نوشته شده.

              شما با codvision میخاین؟
              اگر روزي هيچ مشکلي سر راهم نبود ؛ ميفهمم که راه را اشتباه رفته ام!

              دیدگاه


                #8
                پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

                نوشته اصلی توسط Akbar-Hi
                دوست عزیز این زبان Basic هستش و با برنامه بسکام هم نوشته شده.

                شما با codvision میخاین؟
                دوست عزیز بله با codevision می خوام خیلی ممنون میشم کمکم کنی چون واقعآ اضطراری هستش.

                دیدگاه


                  #9
                  پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

                  سلام دوباره.

                  بفرمایین اینم به زبان C و با کدویژن:

                  این برنامه اولی:

                  کد:
                  /*****************************************************
                  This program was produced by the
                  CodeWizardAVR V2.04.4a Advanced
                  Automatic Program Generator
                  © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
                  http://www.hpinfotech.com
                  
                  Project : 
                  Version : 
                  Date  : 2010/08/12
                  Author : Akbar
                  Company : Hi
                  Comments: 
                  
                  
                  Chip type        : ATmega8
                  Program type      : Application
                  AVR Core Clock frequency: 8.000000 MHz
                  Memory model      : Small
                  External RAM size    : 0
                  Data Stack size     : 256
                  *****************************************************/
                  
                  #include <mega8.h>
                  #include <delay.h>
                  // Declare your global variables here
                  
                  void main(void)
                  {
                  char a=1;
                  
                  // Input/Output Ports initialization
                  // Port B initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out 
                  // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 
                  PORTB=0x00;
                  DDRB=0x0F;
                  
                  // Port C initialization
                  // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                  // 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=P 
                  PORTD=0x01;
                  DDRD=0x00;
                  
                  // Timer/Counter 0 initialization
                  // Clock source: System Clock
                  // Clock value: Timer 0 Stopped
                  TCCR0=0x00;
                  TCNT0=0x00;
                  
                  // Timer/Counter 1 initialization
                  // Clock source: System Clock
                  // Clock value: Timer1 Stopped
                  // Mode: Normal top=FFFFh
                  // 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=FFh
                  // OC2 output: Disconnected
                  ASSR=0x00;
                  TCCR2=0x00;
                  TCNT2=0x00;
                  OCR2=0x00;
                  
                  // External Interrupt(s) initialization
                  // INT0: Off
                  // INT1: Off
                  MCUCR=0x00;
                  
                  // Timer(s)/Counter(s) Interrupt(s) initialization
                  TIMSK=0x00;
                  
                  // Analog Comparator initialization
                  // Analog Comparator: Off
                  // Analog Comparator Input Capture by Timer/Counter 1: Off
                  ACSR=0x80;
                  SFIOR=0x00;
                  
                  while (1)
                     {
                     if(PIND.0==0)
                     {
                      PORTB=a;
                      delay_ms(100);
                      a=a<<1;
                     }
                     else
                     {
                      a=1;
                      PORTB=0;
                     }
                     if(a>8)
                     a=1;
                     };
                  }
                  اینم دومی الف:

                  کد:
                  /*****************************************************
                  This program was produced by the
                  CodeWizardAVR V2.04.4a Advanced
                  Automatic Program Generator
                  © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
                  http://www.hpinfotech.com
                  
                  Project : 
                  Version : 
                  Date  : 2010/08/12
                  Author : Akbar
                  Company : Hi
                  Comments: 
                  
                  
                  Chip type        : ATmega8
                  Program type      : Application
                  AVR Core Clock frequency: 8.000000 MHz
                  Memory model      : Small
                  External RAM size    : 0
                  Data Stack size     : 256
                  *****************************************************/
                  
                  #include <mega8.h>
                  #include <delay.h>
                  // Declare your global variables here
                  
                  void main(void)
                  {
                  char a=1;
                  
                  // Input/Output Ports initialization
                  // Port B initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out 
                  // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 
                  PORTB=0x00;
                  DDRB=0x0F;
                  
                  // Port C initialization
                  // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                  // 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=P 
                  PORTD=0x01;
                  DDRD=0x00;
                  
                  // Timer/Counter 0 initialization
                  // Clock source: System Clock
                  // Clock value: Timer 0 Stopped
                  TCCR0=0x00;
                  TCNT0=0x00;
                  
                  // Timer/Counter 1 initialization
                  // Clock source: System Clock
                  // Clock value: Timer1 Stopped
                  // Mode: Normal top=FFFFh
                  // 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=FFh
                  // OC2 output: Disconnected
                  ASSR=0x00;
                  TCCR2=0x00;
                  TCNT2=0x00;
                  OCR2=0x00;
                  
                  // External Interrupt(s) initialization
                  // INT0: Off
                  // INT1: Off
                  MCUCR=0x00;
                  
                  // Timer(s)/Counter(s) Interrupt(s) initialization
                  TIMSK=0x00;
                  
                  // Analog Comparator initialization
                  // Analog Comparator: Off
                  // Analog Comparator Input Capture by Timer/Counter 1: Off
                  ACSR=0x80;
                  SFIOR=0x00;
                  
                  while (1)
                     {
                     if(PIND.0==0)
                     {
                      PORTB=a;
                      delay_ms(100);
                      a=a<<1;
                     }
                     else
                     {
                      a=1;
                      PORTB=0;
                     }
                     if(a>8)
                     a=1;
                     };
                  }
                  اینم قسمت دوم برنامه دومی:

                  کد:
                  /*****************************************************
                  This program was produced by the
                  CodeWizardAVR V2.04.4a Advanced
                  Automatic Program Generator
                  © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
                  http://www.hpinfotech.com
                  
                  Project : 
                  Version : 
                  Date  : 2010/08/12
                  Author : Akbar
                  Company : Hi
                  Comments: 
                  
                  
                  Chip type        : ATmega8
                  Program type      : Application
                  AVR Core Clock frequency: 8.000000 MHz
                  Memory model      : Small
                  External RAM size    : 0
                  Data Stack size     : 256
                  *****************************************************/
                  
                  #include <mega8.h>
                  #include <delay.h>
                  // Declare your global variables here
                  
                  void main(void)
                  {
                  char a=1;
                  
                  // Input/Output Ports initialization
                  // Port B initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out 
                  // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 
                  PORTB=0x00;
                  DDRB=0x0F;
                  
                  // Port C initialization
                  // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                  // 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=P 
                  PORTD=0x01;
                  DDRD=0x00;
                  
                  // Timer/Counter 0 initialization
                  // Clock source: System Clock
                  // Clock value: Timer 0 Stopped
                  TCCR0=0x00;
                  TCNT0=0x00;
                  
                  // Timer/Counter 1 initialization
                  // Clock source: System Clock
                  // Clock value: Timer1 Stopped
                  // Mode: Normal top=FFFFh
                  // 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=FFh
                  // OC2 output: Disconnected
                  ASSR=0x00;
                  TCCR2=0x00;
                  TCNT2=0x00;
                  OCR2=0x00;
                  
                  // External Interrupt(s) initialization
                  // INT0: Off
                  // INT1: Off
                  MCUCR=0x00;
                  
                  // Timer(s)/Counter(s) Interrupt(s) initialization
                  TIMSK=0x00;
                  
                  // Analog Comparator initialization
                  // Analog Comparator: Off
                  // Analog Comparator Input Capture by Timer/Counter 1: Off
                  ACSR=0x80;
                  SFIOR=0x00;
                  
                  while (1)
                     {
                     if(PIND.0==0)
                     {
                      PORTB=a;
                      delay_ms(100);
                      a=a<<1;
                     }
                     else
                     {
                      a=1;
                      PORTB=0;
                     }
                     if(a>8)
                     a=1;
                     };
                  }
                  همینجوری یه پروژه تو کدویژن بسازین و توش هر کدوم رو copy&paste کنین و کامپایل کنین.
                  سوالی بود در خدمتم.
                  :bye
                  اگر روزي هيچ مشکلي سر راهم نبود ؛ ميفهمم که راه را اشتباه رفته ام!

                  دیدگاه


                    #10
                    پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

                    آقا معذرت میخوام این پست قبلی که دادم سه تا برنامش همون اولی هستش؟
                    حواسم اصلا نبود. :mrgreen:

                    درستش اینه:

                    این برنامه اولی:
                    کد:
                    /*****************************************************
                    This program was produced by the
                    CodeWizardAVR V2.04.4a Advanced
                    Automatic Program Generator
                    © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
                    http://www.hpinfotech.com
                    
                    Project : 
                    Version : 
                    Date  : 2010/08/12
                    Author : Akbar
                    Company : Hi
                    Comments: 
                    
                    
                    Chip type        : ATmega8
                    Program type      : Application
                    AVR Core Clock frequency: 8.000000 MHz
                    Memory model      : Small
                    External RAM size    : 0
                    Data Stack size     : 256
                    *****************************************************/
                    
                    #include <mega8.h>
                    #include <delay.h>
                    // Declare your global variables here
                    
                    void main(void)
                    {
                    char a=1;
                    
                    // Input/Output Ports initialization
                    // Port B initialization
                    // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out 
                    // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 
                    PORTB=0x00;
                    DDRB=0x0F;
                    
                    // Port C initialization
                    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                    // 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=P 
                    PORTD=0x01;
                    DDRD=0x00;
                    
                    // Timer/Counter 0 initialization
                    // Clock source: System Clock
                    // Clock value: Timer 0 Stopped
                    TCCR0=0x00;
                    TCNT0=0x00;
                    
                    // Timer/Counter 1 initialization
                    // Clock source: System Clock
                    // Clock value: Timer1 Stopped
                    // Mode: Normal top=FFFFh
                    // 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=FFh
                    // OC2 output: Disconnected
                    ASSR=0x00;
                    TCCR2=0x00;
                    TCNT2=0x00;
                    OCR2=0x00;
                    
                    // External Interrupt(s) initialization
                    // INT0: Off
                    // INT1: Off
                    MCUCR=0x00;
                    
                    // Timer(s)/Counter(s) Interrupt(s) initialization
                    TIMSK=0x00;
                    
                    // Analog Comparator initialization
                    // Analog Comparator: Off
                    // Analog Comparator Input Capture by Timer/Counter 1: Off
                    ACSR=0x80;
                    SFIOR=0x00;
                    
                    while (1)
                       {
                       if(PIND.0==0)
                       {
                        PORTB=a;
                        delay_ms(100);
                        a=a<<1;
                       }
                       else
                       {
                        a=1;
                        PORTB=0;
                       }
                       if(a>8)
                       a=1;
                       };
                    }
                    اینم برنامه دومی:

                    کد:
                    /*****************************************************
                    This program was produced by the
                    CodeWizardAVR V2.04.4a Advanced
                    Automatic Program Generator
                    © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
                    http://www.hpinfotech.com
                    
                    Project : 
                    Version : 
                    Date  : 2010/08/12
                    Author : Akbar
                    Company : Hi
                    Comments: 
                    
                    
                    Chip type        : ATmega8
                    Program type      : Application
                    AVR Core Clock frequency: 8.000000 MHz
                    Memory model      : Small
                    External RAM size    : 0
                    Data Stack size     : 256
                    *****************************************************/
                    
                    #include <mega8.h>
                    #include <delay.h>
                    // Declare your global variables here
                    
                    void main(void)
                    {
                    unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xff,0x6f,0x77,0xff,0x39,0x3f,0x79,0x71};
                    char b;
                    // Input/Output Ports initialization
                    // Port B initialization
                    // Func7=In Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
                    // State7=T State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
                    PORTB=0x00;
                    DDRB=0x7F;
                    
                    // Port C initialization
                    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                    // 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
                    TCCR0=0x00;
                    TCNT0=0x00;
                    
                    // Timer/Counter 1 initialization
                    // Clock source: System Clock
                    // Clock value: Timer1 Stopped
                    // Mode: Normal top=FFFFh
                    // 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=FFh
                    // OC2 output: Disconnected
                    ASSR=0x00;
                    TCCR2=0x00;
                    TCNT2=0x00;
                    OCR2=0x00;
                    
                    // External Interrupt(s) initialization
                    // INT0: Off
                    // INT1: Off
                    MCUCR=0x00;
                    
                    // Timer(s)/Counter(s) Interrupt(s) initialization
                    TIMSK=0x00;
                    
                    // Analog Comparator initialization
                    // Analog Comparator: Off
                    // Analog Comparator Input Capture by Timer/Counter 1: Off
                    ACSR=0x80;
                    SFIOR=0x00;
                    
                    while (1)
                       {
                       for(b=0;b<16;b++)
                       {
                       PORTB=a[b];
                       delay_ms(2000);
                       }
                       };
                    }
                    اینم قسمت دوم برنامه دومی:

                    کد:
                    /*****************************************************
                    This program was produced by the
                    CodeWizardAVR V2.04.4a Advanced
                    Automatic Program Generator
                    © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
                    http://www.hpinfotech.com
                    
                    Project : 
                    Version : 
                    Date  : 2010/08/12
                    Author : Akbar
                    Company : Hi
                    Comments: 
                    
                    
                    Chip type        : ATmega8
                    Program type      : Application
                    AVR Core Clock frequency: 8.000000 MHz
                    Memory model      : Small
                    External RAM size    : 0
                    Data Stack size     : 256
                    *****************************************************/
                    
                    #include <mega8.h>
                    #include <delay.h>
                    // Declare your global variables here
                    
                    void main(void)
                    {
                    unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xff,0x6f,0x77,0xff,0x39,0x3f,0x79,0x71};
                    int b;
                    
                    // Input/Output Ports initialization
                    // Port B initialization
                    // Func7=In Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
                    // State7=T State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
                    PORTB=0x00;
                    DDRB=0x7F;
                    
                    // Port C initialization
                    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out 
                    // State6=T State5=T State4=T State3=T State2=T State1=T State0=0 
                    PORTC=0x00;
                    DDRC=0x01;
                    
                    // 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=P State2=P State1=P State0=P 
                    PORTD=0x0F;
                    DDRD=0x00;
                    
                    // Timer/Counter 0 initialization
                    // Clock source: System Clock
                    // Clock value: Timer 0 Stopped
                    TCCR0=0x00;
                    TCNT0=0x00;
                    
                    // Timer/Counter 1 initialization
                    // Clock source: System Clock
                    // Clock value: Timer1 Stopped
                    // Mode: Normal top=FFFFh
                    // 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=FFh
                    // OC2 output: Disconnected
                    ASSR=0x00;
                    TCCR2=0x00;
                    TCNT2=0x00;
                    OCR2=0x00;
                    
                    // External Interrupt(s) initialization
                    // INT0: Off
                    // INT1: Off
                    MCUCR=0x00;
                    
                    // Timer(s)/Counter(s) Interrupt(s) initialization
                    TIMSK=0x00;
                    
                    // Analog Comparator initialization
                    // Analog Comparator: Off
                    // Analog Comparator Input Capture by Timer/Counter 1: Off
                    ACSR=0x80;
                    SFIOR=0x00;
                    b=0;
                    while (1)
                       {
                       if(PIND.0==0)
                       {
                        delay_ms(200);
                        b++;
                        if(b>15)
                        {
                          b=15;
                        }
                        PORTB=a[b];
                       }
                       else if(PIND.1==0)
                       {
                        delay_ms(200);
                        b--;
                        PORTB=a[b];
                        if(b<0)
                        {
                          b=0;
                          PORTB=a[b];
                        }
                        
                       }
                       else if(PIND.2==0)
                       {
                       delay_ms(200);
                       PORTB=a[0];
                       }
                       else if(PIND.3==0)
                       {
                       PORTC=1;
                       for(b=0;b<10;b++)
                       {
                        PORTB=a[b];
                        delay_ms(2000);
                       }
                       for(b=8;b>=0;b--)
                       {
                        PORTB=a[b];
                        delay_ms(2000);
                       }
                       PORTC=0;
                       }
                       };
                    }
                    بازم به خاطر این اشتباه معذرت میخوام.
                    اینها رو هم تست کردم. درست جواب میدن سوالی بود در خدمتم.
                    اگر روزي هيچ مشکلي سر راهم نبود ؛ ميفهمم که راه را اشتباه رفته ام!

                    دیدگاه


                      #11
                      پاسخ : سوالی در مورد برنامه نوسی برای میکروکنترلر

                      اکبر جان سون سگمنت هم عالی کار کردش دستت طلا خیلی حال کردم. :applause: :wow: :job:

                      دیدگاه

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