اطلاعیه

Collapse
No announcement yet.

شمارنده 0 تا 99 با سون سگمنت

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

    شمارنده 0 تا 99 با سون سگمنت

    یک شمارنده 0 تا 99 با سون سگمنت که هر یک ثانیه زیاد بشه ( تایمر هم نیود مهم نیست با دیلی حله )میخوام که با codevision باشه.
    با پروئوس هم بسته بشه.

    #2
    پاسخ : شمارنده 0 تا 99 با سون سگمنت

    چیز دیگه ای نمی خوای :biggrin:
    با bascom خواستی من در خدمتم

    دیدگاه


      #3
      پاسخ : شمارنده 0 تا 99 با سون سگمنت

      نه با کدویژن میخوام

      دیدگاه


        #4
        پاسخ : شمارنده 0 تا 99 با سون سگمنت

        سلام .
        یه for می نویسی که یه متغیری رو یکی یکی افزایش بده و روی یه پورتی بیاره و یک ثانیه delay بده .


        DDRA = 0xff ;


        for (i=0 ; i<99 ; i++ )

        {
        PORTA = i ;
        delay_ms(1000);
        }
        بگو که گل نفرستد کسی به خانه من
        که عطر یاد تو پر کرده آشیانه من

        دیدگاه


          #5
          پاسخ : شمارنده 0 تا 99 با سون سگمنت

          برای اینکه از یک پورت برای اتصال هر دو سون سگمنت استفاده کنی و باید کاتد مشترک سون سگمنت ها را با ترانزیستور به پینهای دیگر میکرو وصل کنی. در cod vision هم در یکwhile بی نهایت ابتدا یک متغیر برای شمارش تعریف میکنی بعد رقم های یکان ودهگان عدد را جدا میکنی واز روش تقسیم زمانی این یکان و دهگان را روی پورت سون سگمنت میریزی . اگه کد برنامه همراه فایل پروتئوس را میخواهید بگو تا براتون بذارم .

          دیدگاه


            #6
            پاسخ : شمارنده 0 تا 99 با سون سگمنت

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

            دیدگاه


              #7
              پاسخ : شمارنده 0 تا 99 با سون سگمنت

              این برنامه تا 9999 را در 4 سون سگمنت می شمارد .
              کد برنامه code vision :
              Chip type : ATmega32
              Program type : Application
              Clock frequency : 1.000000 MHz
              Memory model : Small
              External SRAM size : 0
              Data Stack size : 512
              ************************************************** ***/

              #include <mega32.h>
              #include <delay.h>
              // Declare your global variables here
              int count=0;
              char a,b,c,d,i;
              flash char sev[10] ={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6 F};
              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=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
              PORTB=0x00;
              DDRB=0xFF;

              // 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=FFh
              // OC0 output: Disconnected
              TCCR0=0x00;
              TCNT0=0x00;
              OCR0=0x00;

              // Timer/Counter 1 initialization
              // Clock source: System Clock
              // Clock value: Timer 1 Stopped
              // Mode: Normal top=FFFFh
              // OC1A output: Discon.
              // OC1B output: Discon.
              // Noise Canceler: Off
              // Input Capture on Falling Edge
              // Timer 1 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: Timer 2 Stopped
              // Mode: Normal top=FFh
              // 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;

              // Analog Comparator initialization
              // Analog Comparator: Off
              // Analog Comparator Input Capture by Timer/Counter 1: Off
              ACSR=0x80;
              SFIOR=0x00;

              while (1)
              {
              // Place your code here
              a=count/1000;
              b=(count%1000)/100;
              c=(count%100)/10;
              d=count%10;
              while (i<=25)
              {
              PORTA=sev[a];
              PORTB=0X01;
              delay_ms(10);
              PORTA=sev[b];
              PORTB=0X02;
              delay_ms(10);
              PORTA=sev[c];
              PORTB=0X04;
              delay_ms(10);
              PORTA=sev[d];
              PORTB=0X08;
              delay_ms(10);
              i++;
              };
              count++;
              };
              };
              لینک فایل عکس پروتئوس :http://persiandrive.com/40488
              البته یک جای این برنامه هنوز اشکال دارد که من متوجه نشدم اگه شما فهمیدی به ما هم بگو .

              دیدگاه


                #8
                پاسخ : شمارنده 0 تا 99 با سون سگمنت

                PORTA=sev[b]; باید بذاری در چند خط اخیر اون را جا گزاشتی

                دیدگاه


                  #9
                  پاسخ : شمارنده 0 تا 99 با سون سگمنت

                  نوشته اصلی توسط shahsavary
                  PORTA=sev[b]; باید بذاری در چند خط اخیر اون را جا گزاشتی
                  با درود . . .
                  دوست عزیز ورودتون به سایت رو تبریک عرض میکنم.
                  ممنون از اینکه مشکل رو رفع کردید.
                  لطفا قبل از ارسال جواب جهت کمک به سایر دوستان به تاریخ آخرین ارسال موضوع توجه نمائید.

                  با سپاس
                  موفق باشید
                  درد من تنهایی نیست؛ بلكه مرگ ملتی است كه گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حكمت خداوند می‏ نامند! "گاندی"

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

                  دیدگاه


                    #10
                    پاسخ : شمارنده 0 تا 99 با سون سگمنت

                    نوشته اصلی توسط حسن شیخیانی
                    چیز دیگه ای نمی خوای :biggrin:
                    با bascom خواستی من در خدمتم
                    میشه برنامه با بسکامشو بذارین؟؟؟ با توضیحات البته!!!!!!! :nerd:

                    دیدگاه


                      #11
                      پاسخ : شمارنده 0 تا 99 با سون سگمنت

                      آموزش سون سگمنت رو قبلا خودم گذاشته بودم!
                      این لینکش:
                      http://www.eca.ir/forum2/index.php?topic=82242.msg501926#msg501926
                      از مقدماتی تا حرفه ای هم آموزش داده شده ...
                      دانلود کن امیدوارم مفید واقع بشه! :nerd: :nice:
                      آنچه كه باعث موفقيت انسان ها مي شود سخت كوشي است و نه نخبه بودن! Porsche 911 Turbo S 181.000 $ USD
                      جناب سعدی فرموده بودند: "بر احوال ان مرد باید گریست _ که دخلش بود نوزده، خرجش بیست!"
                      که اگه الان بود باید میگفت: "بود حال و احوال آن مرد زار _ که دخلش ریال است ، خرجش دلار :|"
                      http://www.eca.ir/forum2/index.php?topic=80472.msg489565#msg489565
                      http://www.eca.ir/forum2/index.php?topic=82242.msg501926#msg501926

                      دیدگاه

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