اطلاعیه

Collapse
No announcement yet.

ایجاد رابطه بین دو ای سی با یک حافظه واسطه

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

    ایجاد رابطه بین دو ای سی با یک حافظه واسطه

    سلام
    هدف من ساختن یه ساعته دیجیتاله که دقیقه ای یکبار میره ساعتو یه جا ذخیره می کنه و در ساعات معینی میاد و یه سری کارای مختلفی انجام میده
    حالا مشکل من اینجاست چه جوری یه حافظه مشترک بین دو تا ای سی قرار بدم و به یکی بگم بنویسه و اون یکی بیاد بخونه؟
    ای سیش 8051است
    ممنون

    #2
    پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

    1- شما فقط یه آی سی رو معرفی کردی که میکرو 8051 هست
    2- تو چه حافظه ای میخوای بنویسی(دائمی یا غیر دائم)؟ در هر صورت کسی شما میتونی اینکار رو انجام بدی مشکل خاصی نداره کنترل read , write حافظه و نهایتا استفاده از بافر با خروجی 3 حالته
    3- الزامی به انتخاب 8051 هست (اگه داری تازه شروع به کار میکنی بهتره با AVr یا PIC کار کنی)

    دیدگاه


      #3
      پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

      نوشته اصلی توسط mojalan
      1- شما فقط یه آی سی رو معرفی کردی که میکرو 8051 هست
      2- تو چه حافظه ای میخوای بنویسی(دائمی یا غیر دائم)؟ در هر صورت کسی شما میتونی اینکار رو انجام بدی مشکل خاصی نداره کنترل read , write حافظه و نهایتا استفاده از بافر با خروجی 3 حالته
      3- الزامی به انتخاب 8051 هست (اگه داری تازه شروع به کار میکنی بهتره با AVr یا PIC کار کنی)
      سلام اول ممنون
      نوع حافظش مهم نیست حتی می تونیم از 2 تا رجیستر استفاده کنیم
      من الان کل کداشو جدا جدا زدم اما نحوه پیاده سازی این ذخیره سازیو بلد نیستم یعنی چند تا کار انجام دادم نمیشه
      پروژه امه باید با 8051 پیاده کنم میدونم قدیمی ولی......
      اگه بخواهید می تونم کد و پروتیوسو بذارم تا نظرتونو بگید
      مثلا من نمی دونم که باید با اینتراپت بگم که بیاد ساعتارو سر دقیقه چک کنه یا نه
      یا مثلا یه بیت می خواد که وقتی این ای سی داره می نویسه اون یکی بیاد بخونه تا با هم کار نکنن
      ممنون

      دیدگاه


        #4
        پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

        باس داده و آدرس بین دو میکرو و حافظه مشترک بگیر
        سیگنال R,W هر دو میکرو هم با هم OR کن به حافظه متصل کن (گیت بستگی به منطق حافظه و کار خودت داره)
        حالا از خروجی سیگنال W میکرو اول که به OR فرستادی به میکرو دوم هم بفرست

        حالا با میکرو اول هر چی دلت بخواد رایت کن و با میکرو دوم تنها وقتی میتونی به حافظه دست رسی داشته باشی که سیگنال W میکرو اول غیر فعال باشه

        برای جلوگیری از عدم تداخل در باس مشترک یا باید ورودی ها با بافر یه حالته جدا کنی و یا پورت ها در وضعیت ورودی قرار بده و هروقت لازم بود داده ای بنویسی خروجی قرار بده و مجددا ورودی کن
        [glow=red,2,300]تاپیک های ایجاد شده[/glow]

        دیدگاه


          #5
          پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

          نوشته اصلی توسط ADMlN
          باس داده و آدرس بین دو میکرو و حافظه مشترک بگیر
          سیگنال R,W هر دو میکرو هم با هم OR کن به حافظه متصل کن (گیت بستگی به منطق حافظه و کار خودت داره)
          حالا از خروجی سیگنال W میکرو اول که به OR فرستادی به میکرو دوم هم بفرست

          حالا با میکرو اول هر چی دلت بخواد رایت کن و با میکرو دوم تنها وقتی میتونی به حافظه دست رسی داشته باشی که سیگنال W میکرو اول غیر فعال باشه

          برای جلوگیری از عدم تداخل در باس مشترک یا باید ورودی ها با بافر یه حالته جدا کنی و یا پورت ها در وضعیت ورودی قرار بده و هروقت لازم بود داده ای بنویسی خروجی قرار بده و مجددا ورودی کن
          ممنون دوستان
          من شکل مدارمو کشیدم الان یه حافظه گذاشتم واسه ذخیره دقیقه و یکی واسه ساعت
          اما الن دقیقا نمی دونم که منظور شما از read &writeکدومه دقیقا
          یعنی من خودم باید یکی از پین هارو سر یک دقیقه ست کنم و اون پین بشه مثلا read من؟
          ممنون باز هم
          http://s3.picofile.com/file/7579275806/pic1.jpg

          دیدگاه


            #6
            پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

            دوست عزیز به نظرت از این نقشه چیزی میشه فهمید؟
            کمی مرتب تر کار کن و سعی کن از باس و ترمینال برای خلوت کردن مدار استفاده کنی.
            W و R همون سیگنال هایی هستن که برای خوندن و نوشتن حافظه لازمه
            میکرو اول میاد باس چک میکنه اگه خلوت بود داده ارسال میکنه اگه باس اشغال بود تا زمان آزاد شدن باس که مدت کوتاهی هست صبر میکنه
            میکرو دوم هم به این ترتیب
            حالا چطور بفهمیم باس آزاد هست؟
            خب هر میکرو برای خوندن یا نوشتن باید یه سیگنال R یا W برای حافظه بفرسته. کافیه همون برای میکرو هم بفرسته
            [glow=red,2,300]تاپیک های ایجاد شده[/glow]

            دیدگاه


              #7
              پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

              نوشته اصلی توسط ADMlN
              دوست عزیز به نظرت از این نقشه چیزی میشه فهمید؟
              کمی مرتب تر کار کن و سعی کن از باس و ترمینال برای خلوت کردن مدار استفاده کنی.
              W و R همون سیگنال هایی هستن که برای خوندن و نوشتن حافظه لازمه
              میکرو اول میاد باس چک میکنه اگه خلوت بود داده ارسال میکنه اگه باس اشغال بود تا زمان آزاد شدن باس که مدت کوتاهی هست صبر میکنه
              میکرو دوم هم به این ترتیب
              حالا چطور بفهمیم باس آزاد هست؟
              خب هر میکرو برای خوندن یا نوشتن باید یه سیگنال R یا W برای حافظه بفرسته. کافیه همون برای میکرو هم بفرسته
              سلام
              من به حرف شما گوش کردم و مدارمو مرتب کردم و چون نمی دونستم مثلا اگر از رم استفاده کنم باید از چه ادرسی شروع کنم از 373 استفاده کردم اما نمی دونم چرا دیگه خود دقیقه و ساعت رو هم نشون نمی ده
              و تو پروتیوس رنگش زرده چرا؟؟؟؟؟؟؟؟؟؟
              http://s2.picofile.com/file/7582608595/madar.jpg
              بعد یه سوال دیگه من کد اولم درست کار می کنه اما کد دومم اصلا هیچ عکس العملی نشون نمیده کسی می دونه چرا؟
              ORG 00H
              JMP START
              ORG 30H
              START:
              JB P2.7,LOOP
              SJMP START
              LOOP:
              MOV A,P0
              CJNE A,#00000000B,START
              MOV A,P3
              L1: CJNE A,#00000111B,L2
              CALL STEPPERUP
              SJMP START
              L2: CJNE A,#00000110B,L3
              CALL OPENLOCK
              SJMP START
              L3: CJNE A,#00011001B,L4
              CALL TURNON
              CALL STEPPERDOWN
              SJMP START
              L4: CJNE A,#00100011B,L5
              CALL CLOSELOCK
              SJMP START
              L5: CJNE A,#00000000B,START
              CALL TURN0FF
              SJMP START
              STEPPERUP:
              MOV P2,#00H
              MOV R6,#0CH ;=12 for 12*4=48 ==> 48*7.5= 360
              MOV R5,#04H ; cunter for 4 steper

              MOV A,#128
              right_rotate:
              Rl A
              MOV P2,A
              CALL DELAY
              DEC R5
              CJNE R5,#00H,right_rotate
              MOV R5,#04H
              MOV A,#128
              DEC R6
              CJNE R6,#00H,right_rotate

              MOV R7,#14H ; FOR DELAY 1s
              CALL BACK

              MOV R6,#0CH ;=12 for 12*4=48 ==> 48*7.5= 360
              MOV R5,#04H
              MOV A,#16
              RET
              OPENLOCK:
              SETB P1.7
              RET
              TURNON:
              SETB P1.6
              RET
              STEPPERDOWN:
              MOV P2,#00H
              MOV R6,#0CH ;=12 for 12*4=48 ==> 48*7.5= 360
              MOV R5,#04H ; cunter for 4 steper

              MOV A,#128

              left_rotate:
              RR A
              MOV P2,A
              CALL DELAY
              DEC R5
              CJNE R5,#00H,left_rotate
              MOV R5,#04H
              MOV A,#16 ;128
              DEC R6
              CJNE R6,#00H,left_rotate

              MOV R7,#14H ; FOR DELAY 1s
              CALL BACK
              RET
              CLOSELOCK:
              SETB P1.5
              RET
              TURN0FF:
              SETB P1.4
              RET

              DELAY: MOV R7,#04H ;DELAY FOR 200mS
              BACK: MOV TMOD,#01H
              MOV TL0,#0B0H
              MOV TH0,#3CH
              SETB TR0
              JNB TF0,$
              CLR TR0
              CLR TF0
              DEC R7
              CJNE R7,#00H,BACK
              RET
              END

              ممنون دوستان

              دیدگاه


                #8
                پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

                این از قبلی خیلی بهتره
                شما دوتا خروجی به هم وصل کردی و وقتی یکی 0 و دیگری 1 میشه رنگش زرد میشه

                بهتون گفتم باید پورت های میکرو ورودی تعریف کنین و هر وقت باس آزاد بود و خواستید چیزی بنویسید میتونین اونها خروجی کنین و بعد از این که کارتون تموم شد باید بازم ورودی بشن
                [glow=red,2,300]تاپیک های ایجاد شده[/glow]

                دیدگاه


                  #9
                  پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

                  حالا تو مدار شما حافظه کجا هست؟
                  [glow=red,2,300]تاپیک های ایجاد شده[/glow]

                  دیدگاه


                    #10
                    پاسخ : ایجاد رابطه بین دو ای سی با یک حافظه واسطه

                    [quote author=ADMlN link=topic=70265.msg416874#msg416874 date=1355337666]
                    حالا تو مدار شما حافظه کجا هست؟
                    [\/quote]
                    مثلا خواستم ایده بزنم و به جاش از لچ استفاده کردم بعد این مشکلی که می گید با گذاشتن مقاومت برطرف شد دیگه زرد نمی شد
                    برای این نمی خواستم حافظه بذارم چون گویا دوستان می گفتن که باید پورت صفر ودور و بدیم به ادرس باس
                    به حرف شما رسیدم الان دارم رو حافظه کار می کنم
                    ممنون

                    دیدگاه

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