اطلاعیه

Collapse
No announcement yet.

روشن کردن 64 ال ای دی پشت سر هم با یک برنامه ی خیلی راحت

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

    روشن کردن 64 ال ای دی پشت سر هم با یک برنامه ی خیلی راحت

    برنامه ی زیر می تونه 64 ال ای دی رو پشت سرهم روشن کنه که شما می تونید توسط لینک زیر دانلود کنید
    برنامه به زبان بیسیکه و با تعداد خط های بسیار پایین :NO: به همراه فایل پروتوئوس
    [hr]
    لینک دانلود
    http://my-zoo.persiangig.com/barnamehyesaheh/dayere.rar

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

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

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

    $regfile = "m32def.dat"
    معرفی میکرو
    $crystal = 8000000
    مشخص کردن فرکانس کریستال داخلی
    Config Portd = Output
    تخصیص پورت دی به عنوان خروجی
    Config Portb = Output
    تخصیص پورت بی به عنوان خروجی
    Dim Row As Byte , Scan As Byte , I As Byte , D As Byte

    D = 0
    دی برابر است با 0
    Do
    ابتدای شروع حلقه
    Portb = &B11111110

    For I = 0 To 7

    For Row = 0 To 7

    If D = 0 Then Portd = Lookup(row , 0)

    Waitms 30
    توقف 30 میلی ثانیه ای
    Next

    Rotate Portb , Left

    Next

    Loop
    انتهای حلقه
    End
    0:
    Data &B00000001 , &B00000010 , &B00000100 , &B00001000 , _
    &B00010000 , &B00100000 , &B01000000 , &B10000000
    تخیل مهمتر از دانش است
    علم محدود است اما تخیل دنیا را دربر میآ‌گیرد
    آلبرت انیشتین

    دیدگاه


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

      پورت بی رو برابر با یک مقداری کرده ایم و یک یکی از پایه هاشو صفر کرده ایم چون پورت بی وصل کاتد هاست
      بعد حاقه ی i رو رد میکنه میوفته توی حلقه ی row
      از آنجا که پورت دی وصل آند هاست
      If D = 0 Then Portd = Lookup(row , 0)
      این دستور میگه اگر d برابر صفر بود , طبق متغیر راو بره واز زیر برنامه ی صفر مقداری رو برداره و بریزه توی پورت دی و در واقع اصل عمل این حلقه هم داره پورت d رو شیفت میده اگر دقت کنی
      بعد که حلقه تا 7 تا شمر د از حلقه خارج میشه میرسه به اینجا

      Rotate Portb , Left
      پورت b رو شیفت میده و یک سطر دیگه از کاتد ها برابر صفر میشه
      باز بر میگرده و مجدد تکرار میشه
      امید است که بد توضیح نداده باشم
      مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

      دیدگاه


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

        اختیار داری اصلا" جوابم ندین شما اساتید تاج سر مایین.

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

        از اینکه به این فوریت جواب دادین متشکرم
        بدرود



        $regfile = "m32def.dat"
        معرفی میکرو
        $crystal = 8000000
        مشخص کردن فرکانس کریستال داخلی
        Config Portd = Output
        تخصیص پورت دی به عنوان خروجی
        Config Portb = Output
        تخصیص پورت بی به عنوان خروجی
        Dim Row As Byte , Scan As Byte , I As Byte , D As Byte
        معرفی متغیر
        D = 0
        دی برابر 0
        دی برابر است با 0
        Do
        ابتدای شروع حلقه
        Portb = &B11111110
        ؟؟؟؟؟؟؟؟؟؟؟؟
        For I = 0 To 7
        ابتدای پله 0 به 7 = I
        For Row = 0 To 7
        ابتدای پله 0 به 7 =Row
        If D = 0 Then Portd = Lookup(row , 0)
        ?????????
        Waitms 30
        توقف 30 میلی ثانیه ای
        Next
        ادامه بعد از پله
        Rotate Portb , Left
        انتقال پورت B به چپ
        Next
        ادامه بعد از پله
        Loop
        انتهای حلقه
        End
        0:
        Data &B00000001 , &B00000010 , &B00000100 , &B00001000 , _
        &B00010000 , &B00100000 , &B01000000 , &B10000000
        ؟؟؟؟؟؟؟؟؟؟؟؟؟
        تخیل مهمتر از دانش است
        علم محدود است اما تخیل دنیا را دربر میآ‌گیرد
        آلبرت انیشتین

        دیدگاه


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

          Portb = &B11111110
          این دستور مقدار 11111110 رو به صورت باینری می ریزه توی پورت بی
          و ما چون قصد داریم سطر کاتد ها رو یکی یکی فعال کنیم اولی رو 0 دادیم که بعد بتونیم شیفت بدیم
          If D = 0 Then Portd = Lookup(row , 0
          و اما این یک شرطه که می تونه شرطش رو هم حذف کنید گفته اگر دی برابر با صفر بود برو دستور زیز رو
          Portd = Lookup(row , 0
          اجرا کن حالا این دستور چیکار میکنه بر طبقه متغیر row میره و از زیر برنامه صفر مقداری رو بر میداره و توی پورت دی میریزه به عنوان مثال اگر متغیر row یک باشه میره به زیر برنامه ی صفر و دومین عدد (B00000010)رو بر میداره و توی پورت دی میریزه
          و چون قبلا یک سطر از کاتد ها صفر شده و حالا یک ستون یا یک سطر آند ها یک شده یک ی از لامپ ها روشن میشه
          این تغییر ولتاژ در سطر ها یا سوتون های کاتد و آند باعث میشه یکی یکی لامپ ها روشن بشه
          0:
          Data &B00000001 , &B00000010 , &B00000100 , &B00001000 , _
          &B00010000 , &B00100000 , &B01000000 , &B10000000
          اینم که همون زیر برنامه ی صفره
          :nice:
          همین الان میخوام یک برنامه ی دیگه هم بنویسم که باعث بشه از اول که تا آخر میره باز برگرده براتون هم میزارم ش
          البته دوستان میتونن اون شرطو حذفش کنن
          و فقط اینو بنویسند
          Portd = Lookup(row , 0
          مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

          دیدگاه


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

            اینم برنامه دوم که زیاد فرقی با برنامه ی اول نمی کنه
            سلام یکی از دوستان خواستن بر نامه ی بالا به صورت رفت و برگشتی باشه براتون نوشتم میتونید دانلود ش کنید
            :NO:
            http://my-zoo.persiangig.com/barnamehyesaheh/dayere-r-b.rar
            مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

            دیدگاه


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

              اینم یکم کوچیکتر



              کد:
              $regfile = "m32def.dat"
              $crystal = 8000000
              Config Portd = Output
              Config Portb = Output
              
              Dim A As Byte , B As Byte , X As Byte , Y As Byte
              
              
              A = &B10000000
              B = &B01111111
              
              Do
                Rotate B, Left , 1
                Portb = B
                For X = 1 To 8
                 Rotate A, Left , 1
                 Portd = A
                 Waitms 100
                Next X
              Loop
              
              End
              ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

              وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

              r.babazadeh@yahoo.com

              دیدگاه


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

                [b]از اینکه به فکر ما هستین سپاسگذارم

                چنتا سوال دارم اگه زحمتی نیست جواب بدین تا این موضوع A = &B10000000 برای ما تازه کارا تفهیم شه.

                [b]من تا اونجارو فهمیدم که B10000000 یعنی پین 1 پورت B ست باشه و مابقی پینا ریست.
                درسته؟؟ لطفا" یه کم در این مورد توضییح بدین.

                سوال بعدی اینه که مگه خروجی پورتها همیشه + نیست؟؟
                چطور با دوتا پین از دو پورت LED روشن میشه؟؟؟

                سوال آخرم اینه که اگه فقط به پایه پینها توجه کرده باشید با یه سرعت مشخص و هماهنگ با پورت دوم روشن و خاموش میشن به این صورت که 1-1 2-1 3-1 ...... 1-2 2-2 3-2 ...... 1-3 2-3 3-3 ...... این خاموش روشن شدن چطور تنظیم میشه؟؟؟

                ببخشید اگه دیر میگیرم.

                [color=red]متشکرم[b]
                تخیل مهمتر از دانش است
                علم محدود است اما تخیل دنیا را دربر میآ‌گیرد
                آلبرت انیشتین

                دیدگاه


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

                  نوشته اصلی توسط محسن امیری
                  [b]از اینکه به فکر ما هستین سپاسگذارم

                  چنتا سوال دارم اگه زحمتی نیست جواب بدین تا این موضوع A = &B10000000 برای ما تازه کارا تفهیم شه.

                  [b]من تا اونجارو فهمیدم که B10000000 یعنی پین 1 پورت B ست باشه و مابقی پینا ریست.
                  درسته؟؟ لطفا" یه کم در این مورد توضییح بدین.

                  سوال بعدی اینه که مگه خروجی پورتها همیشه + نیست؟؟
                  چطور با دوتا پین از دو پورت LED روشن میشه؟؟؟

                  سوال آخرم اینه که اگه فقط به پایه پینها توجه کرده باشید با یه سرعت مشخص و هماهنگ با پورت دوم روشن و خاموش میشن به این صورت که 1-1 2-1 3-1 ...... 1-2 2-2 3-2 ...... 1-3 2-3 3-3 ...... این خاموش روشن شدن چطور تنظیم میشه؟؟؟

                  ببخشید اگه دیر میگیرم.

                  [color=red]متشکرم[b]
                  سلام داداش منم مثل شما تازه کاری بیش نیستم
                  اما در مورد سوال اول باید بگم که اشتباهه
                  پورت ها 8 تا پایه دارند که از 0 تا 7 شماره گذاری شده اند پس شما اگر داده ای به شکل بالا بفرستین پین باارش یک میشه و اگر داده را مثل زیر بنویسید پین 0 یک میشه
                  b00000001
                  و عدد باینری هستش و اون b نشانه ی اینه که عدد باینری و ربطی به پورت نداره
                  سوال دوم
                  اهمیتی نداره به این که مثبت باشه یا منفی و من هم نمیدونم که حتما باید منفی باشه یا مثبت , مهم اینه که شما چه داده ای رو به خروجی می فرستین
                  سوال سوم
                  خوب زمانی که یک پین یک باشه یک پین هم صفر , ال ای دی روشن میشه
                  سوال چهارم
                  مثلا شما دو سطر دارین که هشت تا ال ای داره یعنی هشت ستون ال ای دی دارین
                  سطر ها مثلا کاتد هاشون مشترک باشه و ستون ها آند هاشون , خوب
                  حالا شما میخواین این ال ای دی ها رو یکی یکی روشن کنید مسلما باید مثل بالا عمل کنید
                  یعنی هشت ای اول به این شکل 1-1 2-1 3-1
                  و هشت ای بعدی به این شکل 1-2 2-2 3-2
                  زمانی که شما به این شکل عمل کنید یکی یکی روشن می کنند
                  به شکل زیر هم یک نگاهی بندازی بد نیست این شکل داخلی یک دات ماتریکسه
                  مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

                  دیدگاه


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

                    این برنامه خیلی ساده است و به خاطر درخواست یکی از دوستان نوشته شد و گذاشته شد گفتم شاید بدرد یک دوست دیگر نیز بخورد و فقط 20 تا ال را پشت سرهم روشن می کند 2 تا کلید تنظیم سرعت هم دارد .
                    http://my-zoo.persiangig.com/barnamehyesaheh/20taee-ba-tanzem.rar
                    مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

                    دیدگاه

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