اطلاعیه

Collapse
No announcement yet.

مشکل در سون سگمنت

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

    مشکل در سون سگمنت

    سلام
    من یک برنامه برای سون سگمنت 4 رقم نوشتم که از دو رقمش میخوام استفاده کنم اما رقم ها در هم تداخل میکنه برنامه رو در زیر مینویسم ممنون میشم کمکم کنید

    while (1)
    {
    PORTD.7=0;

    PORTC=0b00000001;
    delay_ms(1000);
    PORTC=0b00000000;
    delay_ms(1000);
    PORTA.7=0;
    PORTD.7=1;

    PORTC=0b00000010;
    delay_ms(1000);
    PORTC=0b00000000;
    delay_ms(1000);
    PORTA.7=1;
    }
    }

    #2
    پاسخ : مشکل در سون سگمنت

    اولا میخوای روی سگمنت چی نمایش بدی؟
    دوما شماتیک کو ؟
    سوما سون سگمنت اند مشترکه یا کاتد؟
    http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

    دیدگاه


      #3
      پاسخ : مشکل در سون سگمنت

      میخوام یک LED از هر کدوم از سون سگمنت ها رو روشن کنم
      آند مشترکه
      پورت C رو به aتاg وصل کردم PORTA.7 ,PORTD.7 برای فعال کردن هر سون سگمنت هست

      دیدگاه


        #4
        پاسخ : مشکل در سون سگمنت

        برای این کار شما باید یکی از پین های فعال ساز خودتونو 1 کنید
        بعد دیتایی را که میخواهید نمایش بدید روی سگمنت بریزید
        چند میلی ثانیه تاخیر
        دوباره جای 0و1 پین های فعال ساز جا به جا کنی
        دیتای سگمنت دوم
        چنت میلی ثانیه تاخیر
        http://www.eca.ir/forum2/index.php?topic=102119.0
        تایپیک استاد اسدی رو ببین من از همین تایپیک کامل راه افتادم
        http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

        دیدگاه


          #5
          پاسخ : مشکل در سون سگمنت

          البته آندمشترکه با صفر فعال میشه منم همین کار و کردم
          اول پایه یکی و فعال و پورت C رو با اون مقداری که باید باشه پر کردم و همین کار وبرای دومی اما اعداد تداخل میکنه

          اضافه شده در تاریخ :
          کد:
          /*****************************************************
          This program was produced by the
          CodeWizardAVR V2.05.0 Professional
          Automatic Program Generator
          © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
          http://www.hpinfotech.com
          
          Project : 
          Version : 
          Date  : 1/22/2015
          Author : 
          Company : 
          Comments: 
          
          
          Chip type        : ATmega32
          Program type      : Application
          AVR Core Clock frequency: 1.000000 MHz
          Memory model      : Small
          External RAM size    : 0
          Data Stack size     : 512
          *****************************************************/
          
          #include <mega32.h>
          #include <delay.h>
           unsigned short segment[8],seg,segnum;                                   
          unsigned short const ledfunc[10]={0b00001100,0b11011010,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11111000,0b10000000,0b10010000};
          // Timer 0 overflow interrupt service routine
          interrupt [TIM0_OVF] void timer0_ovf_isr(void)
          {
          
          }
          
          // Declare your global variables here
          
          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=0xFF;
          DDRA=0b10000000;
          
          // 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=Out 
          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=0 
          PORTC=0x00;
          DDRC=0xFF;
          
          // 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=0xFF;
          DDRD=0xFF;
          
          // Timer/Counter 0 initialization
          // Clock source: System Clock
          // Clock value: Timer 0 Stopped
          // Mode: Normal top=0xFF
          // OC0 output: Disconnected
          TCCR0=0x03;
          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=0x01;
          
          // 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;
          
          // Global enable interrupts
          
           PORTA.7=1;
          while (1)
             { 
          PORTD.7=0;   
              PORTA.7=1;
          
          PORTC=0b00000001;
           delay_ms(1000); 
           PORTD.7=1;  
           PORTC=0b00000000; 
           delay_ms(1000); 
          
            
           PORTC=0b00000010;
          
            delay_ms(1000);
           PORTC=0b00000000;  
           delay_ms(1000); 
           
          }
          }

          دیدگاه


            #6
            پاسخ : مشکل در سون سگمنت

            کد:
            /*******************************************************
            This program was created by the
            CodeWizardAVR V3.12 Advanced
            Automatic Program Generator
            © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
            http://www.hpinfotech.com
            
            Project : 
            Version : 
            Date  : 1/23/2015
            Author : 
            Company : mahdi zamani
            Comments: 
            
            
            Chip type        : ATmega32A
            Program type      : Application
            AVR Core Clock frequency: 1.000000 MHz
            Memory model      : Small
            External RAM size    : 0
            Data Stack size     : 512
            *******************************************************/
            
            #include <mega32a.h>
            #include <delay.h>
            
            #define dahgan PORTA=80
            #define yekan PORTD=80
            #define reset PORTA=0
            #define resett PORTD=0
            
            
            // Declare your global variables here
            
            void main(void)
            {
            
            
              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=(1<<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) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
              PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
            
            
            
            while (1)
               {
                dahgan;
                PORTC=2;
                 delay_ms(3);
                reset;
                
                 yekan;
                PORTC=0;
                 delay_ms(3);
                resett;  
               
               }
            }
            اینو تست کن ببین کار میده یا ن
            http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

            دیدگاه


              #7
              پاسخ : مشکل در سون سگمنت

              نه مهندس جفت سون سگمنت ها یک پایه رو داره روشن میکنه

              دیدگاه


                #8
                پاسخ : مشکل در سون سگمنت

                سون سگمنت دوتایی داری؟ از اونایی که باید رفرش بشن؟

                اضافه شده در تاریخ :
                کد:
                /*******************************************************
                This program was created by the
                CodeWizardAVR V3.12 Advanced
                Automatic Program Generator
                © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
                http://www.hpinfotech.com
                
                Project : 
                Version : 
                Date  : 1/23/2015
                Author : 
                Company : mahdi zamani
                Comments: 
                
                
                Chip type        : ATmega32A
                Program type      : Application
                AVR Core Clock frequency: 1.000000 MHz
                Memory model      : Small
                External RAM size    : 0
                Data Stack size     : 512
                *******************************************************/
                
                #include <mega32a.h>
                #include <delay.h>
                
                #define dahgan PORTA.7=80
                #define yekan PORTD.7=80
                #define reset PORTA=0
                #define resett PORTD=0
                
                
                // Declare your global variables here
                
                void main(void)
                {
                
                
                  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=(1<<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) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
                  PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
                
                
                
                while (1)
                   {
                    dahgan;
                    PORTC=192;
                     delay_ms(3);
                    reset;
                    
                     yekan;
                    PORTC=192;
                     delay_ms(3);
                    resett;  
                   
                   }
                }
                ببخشید قبلی یه اشتباه کوچولو داشت
                این یکی کار میده توی پروتیوس تست کردم
                الان با این برنامه باید روی جفت سگمنت ها عدد 0 رو ببینی اگه دیدی بعدش تغیر بدهبرنامه رو
                http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                دیدگاه


                  #9
                  پاسخ : مشکل در سون سگمنت

                  همچنان همون مشکل اول برقراره
                  هر کارکتری که سون سگمنت اول نشون میده
                  در سون سگمنت دوم هم نشون میده به اضافه کارکتر مربوط به خودش
                  :angry: :angry: :angry:
                  مثلا تو اولی یک نشون بده
                  توی دومی یک اولی هست به اضافه کارکتر که مربوط به خودشه
                  انگار تداخل میکنه کارکتر ها باهم

                  دیدگاه


                    #10
                    پاسخ : مشکل در سون سگمنت

                    خب اینی من دادم دوتارو 0 نشون میداد
                    میکرو رو عوض بکن منم ی سری با سون سگمنت کار میکردم dهیچکدوم سون سگمنت ها روشن نمیشد منم میکرو عوض کردم درست شد
                    شما در سخت افزار دنبال مشکلت بگرد در نرم افزار هیچ مشکلی نیست
                    http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                    دیدگاه


                      #11
                      پاسخ : مشکل در سون سگمنت

                      شما چرا پورت a و d رو pull up کردید؟؟!! فقط باید خروجی باشند.
                      در ضمن اگر سون سگمنتاتون مالتی پلکس و آند مشترک هستند به این شیوه باید عمل کنید:
                      ابتدا شما فعال ساز سون 7seg اول رو فعال میکنید(1 منطقی) و فعال ساز 7segدوم رو غیرفعال کنید و روی پورت دیتاتون برای روشن شدن هر ال ای دی صفر بدید.( چون آند هستش پس ال ای دی ها با صفر روشن میشن)
                      سپس یه delay در حدود 5 میلی ثانیه بذارید و فعال ساز اول رو صفر وفعال ساز دوم رو 1 بدید و مقدار جدید رو برای پورت دیتا تون در نظر بگیرید و دوباره یه delay در حدود 5 میلی ثانیه بذارید و تمام.
                      www.gam-co.blogsky.com

                      دیدگاه


                        #12
                        پاسخ : مشکل در سون سگمنت

                        نوشته اصلی توسط vahidabedi
                        شما چرا پورت a و d v رو pull up کردید؟؟!! فقط باید خروجی باشند.
                        در ضمن اگر سون سگنتاتون مالتی پلکس و آند مشترک هستند به این شیوه باید عمل کنید:
                        ابتدا شما فعال ساز سون 7seg اول رو فعال میکنید(1 منطقی) و فعال ساز 7segدوم رو غیرفعال کنید و پورت دیتاتون رو صفر بدید.( چون آند هستش پس ال ای دی ها با صفر روشن میشن)
                        سپس یه delay در حدود 5 میلی ثانیه بذارید و مقدار پورت های فعال ساز هاتون رو برعکس کنید ومقدار جدید رو برای پورت دیتا تون در نظر بگیرید و دوباره یه delay در حدود 5 میلی ثانیه بذارید و تمام.
                        استاد من همین کار انجام دادم مناسب ترین زمان هم 3 میلی ثانیه هست که نه نور کم بشه نه چشمک بزنه
                        برنامه دومی که نوشتم در پروتیوس کامل جواب داد
                        مشکل برنامه نیست
                        http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                        دیدگاه


                          #13
                          پاسخ : مشکل در سون سگمنت

                          خب وقتی اومدید پورت های فعال سازتون رو پول پ کردید ینی دائم دوتا سون سگمنت رو فعال نگهداشتید.برای همینه که دیتاهاشون تداخل دارند.
                          www.gam-co.blogsky.com

                          دیدگاه


                            #14
                            پاسخ : مشکل در سون سگمنت

                            رو مدار من مشکل داره مهندس برنامتون برنامه ای که من فرستادمم
                            پول پ هست ولی تو حلقه مقدارپورت ها تغییر میکنه
                            من مستقیم پایه های میکرو رو به پایه های کنترلی سون سگمنت وصل کردم بدون مقاومت
                            ممکنه ایراد سخت افزاری باشه؟
                            یا از کلاک یا فیوز بیت ها؟

                            دیدگاه


                              #15
                              پاسخ : مشکل در سون سگمنت

                              فیوزبیتاها باید روی پیشفرض باشه
                              مشکل سخت فزار داری
                              مقاومت رو بزار شاید پینای میکروت بسوزن
                              http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                              دیدگاه

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