اطلاعیه

Collapse
No announcement yet.

کمک در مورد 74hc595

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

    کمک در مورد 74hc595

    سلام
    من می خوام آی سی 74hc595 رو به Atmega128 وصل کنم. چطور میشه از جدول دیتا تو Bascom-avr یک
    byte مثلا &H55 رو به صورت سریال به آی سی 74hc595 ارسال کرد.؟

    #2
    پاسخ : کمک در مورد 74hc595

    باید بیت به بیت از طریق یک پایه اونو ارسال کنی. با هر بار ارسال احتیاج داری تا یه پالس هم بفرستی.
    در مجموع دو پایه که یکی برای دیتا و یکی برای پالس

    دیدگاه


      #3
      پاسخ : کمک در مورد 74hc595

      سلام
      میشه یه مثال عملی بزنی؟

      دیدگاه


        #4
        پاسخ : کمک در مورد 74hc595

        سلام ....................

        ببینید روال کار به این تر تیبه که فرض کنید بخواید با گیت و ادوات LOGIC این کار رو انجام بدید . خب برای این منظور یه منبع کلاک میخواید و یه خط ارسال دیتا .

        خب اول باید دید که قراره چه اتفاقی بیفته؟ ببینید اطلاعات سریال میان و پارالل خارج میشن . اگه قرار باشه اطلاعات یریال بیان پس باید یه معیار برای سنکرون کردن ارسال داشته باشیم . خب این کار برای کلاک مدارمون تعریف میشه . یعنی به ازای Transition به بالا در هر کلاک ؛ یه دیتا ارسال مشه و با هشت ارسال ؛ دیتای پارالل آماده میشه .

        حالا توی میکرو هم وضعیت به همین ترتیبه ؛ یعنی یه پایه رو باید بذارید برای شبیه سازی کلاک (حکم بالا و پایین رفتن لبه به واسطه ی صفر و یک کردن پایه ی میکرو) و یه پایه رو هم بذارید برای ارسال سریال دیتا ؛ یعنی این اطلاعات رو بیت به بیت (به صورت سریال) ارسال کنید . موفق باشید .
        دوستان! مدتی کمتر به سایت میام ..

        دیدگاه


          #5
          پاسخ : کمک در مورد 74hc595

          نوشته اصلی توسط feshwari
          سلام
          من می خوام آی سی 74hc595 رو به Atmega128 وصل کنم. چطور میشه از جدول دیتا تو Bascom-avr یک
          byte مثلا &H55 رو به صورت سریال به آی سی 74hc595 ارسال کرد.؟
          دوستان در مورد عملکرد توضیح دادند ولی شما میخواستی ببینی که با چه دستوری باید این کار رو کرد..؟ درسته؟

          شما 2 راه داری...البته به نظر من(اگه روش فکر کنیم به نتایج بهتری خواهیم رسید)
          راه اول:اینکه از دستور mid بیت به بیت رو از عدد جدا کنیم و اگر 0 بود به 74hc595 صفر و اگر 1 بود به 74hc595 یک را ارسال کنیم.
          راه دوم: داخل یک زیر برنامه با دستور if بیت به بیت رو چک کنیم که آیا 1 است یا 0 و طبق جواب if خروجی مورد نظر را فعال کنیم.
          مثلا:
          If x.1=0 then
          set porta.0
          end If

          If x.2=0 then
          set porta.0
          end If

          If x.3=0 then
          set porta.0
          end If

          البته یکمی منظم تر من مثال زدم
          موفق باشی.
          www.icesi.ir

          دیدگاه


            #6
            پاسخ : کمک در مورد 74hc595

            با بیسکام راه دیگه ای هم وجود داره. Help بسکام رو برای دستور Shiftout نگاه کن.

            دیدگاه


              #7
              پاسخ : کمک در مورد 74hc595

              اگه میشه یه مثال عملی با پرتوس بزارید
              ممنون

              دیدگاه


                #8
                پاسخ : کمک در مورد 74hc595

                سلام
                مگه کسی با 74hc595 کار نکرده که پروژه بزاره؟
                کمک فوری احتیاج دارم. البته با پروتوس
                ممنون

                دیدگاه


                  #9
                  پاسخ : کمک در مورد 74hc595

                  نوشته اصلی توسط feshwari
                  سلام
                  مگه کسی با 74hc595 کار نکرده که پروژه بزاره؟
                  کمک فوری احتیاج دارم. البته با پروتوس
                  ممنون
                  سلام.
                  ببینید دوست عزیز دوستان توضیح کامل رو دادن و دوست خوبم هم آقای جعفری هم دستور مورد نظر رو ارائه دادن.
                  دیگه فقط میمونه تست که اون به عهده خودتون باشه بهتره.
                  اگر مشکلی بود باز هم مطرح کنید.
                  موفق باشید
                  www.icesi.ir

                  دیدگاه


                    #10
                    پاسخ : کمک در مورد 74hc595

                    سلام
                    یه برنامه نوشتم لطفا چک شود

                    for i = 0 to 7
                    pind.0 = lookup ( i , animation
                    if pind.0 = 1 then
                    set pind.1
                    reset pind.1
                    if pind.0 = 0 then
                    set pind.1
                    reset pind.1
                    next

                    فرض شود که این برنامه درست باشه. من در این برنامه پین pind.0 رو چک می کنم اگه 1 باشه یه کلاک به ای سی 74hc595 ارسال می شود عدد 1 به ای سی ارسال می شه. عدد بعدی هم به این صورت تا 8 بیت کامل شود. حالا می خوام 8 بیت دیگه ارسال کنم ولی به یه ای سی 74hc595 دیگه. حالا وقتی دو تا ای سی پر شد چطور باید هم زمان 16 بیت با هم داشته باشیم؟
                    یعنی چطور میشه لچ هر 2 رو با هم زد؟ که هر 2 تا ای سی در یک زمان 16 بیت خروجی داشته باشیم.
                    اگه میشه یه مثال عملی بزارید
                    محمد شرفی

                    دیدگاه


                      #11
                      پاسخ : کمک در مورد 74hc595

                      چرا کسی کمک نمی منه؟

                      دیدگاه


                        #12
                        پاسخ : کمک در مورد 74hc595

                        تو برنامه ای که نوشتی دستور If اضافیه.چون در هر دو صورت یه کارو انجام میده.
                        یکی از ویژگی های شیفت رجیستر خاصیت تاخیر زمانی اونه. به هیچ عنوان نمی توی در یک لحظه همه تغییرات رو اعمال کنی. برای داشتن 16 بیت باید به اندازه 16 پالس صبر کنی.
                        برای انتقال دیتا از یک لچ به لچ بعدی هم پایه Q'7 آیسی اول رو به Q1 آیسی دوم وصل کن.

                        دیدگاه


                          #13
                          پاسخ : کمک در مورد 74hc595

                          از دوستان خواهش می کنم یه مثال عملی بزارن

                          دیدگاه


                            #14
                            پاسخ : کمک در مورد 74hc595

                            سلام
                            باید به صورت زیر عمل کنی مثلا عدد 101 رو خوندی و ریختی تو یک متغییر به نام D
                            for i = 0 to 7
                            Clk = 1
                            Portd.0 = &b00000001 AND (Shift ,Left ,D,J) d
                            Clk = 0
                            next
                            دستور شیفت رو تو بیسیک یادم رفته ولی فکر کنم همین باشه.

                            دیدگاه


                              #15
                              پاسخ : کمک در مورد 74hc595

                              دستتون درد نکنه
                              اون سه پایه 595 رو به کدوم پین از میکرو وصل کنم(کدوم پورت و پین)
                              اگه ای سی اول پر شد چطور ای سی دوم پر می شه؟
                              تو مثال بالا J D چی هستن؟
                              تو مثال بالا شما دیتا رو portd.0 و کلاک رو مشخص کردین. پس پین لچ اون چی می شه؟
                              اگه یه مثال داری برام بفرست
                              خیلی ممنون

                              دیدگاه

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