اطلاعیه

Collapse
No announcement yet.

8051

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

    8051

    سلام دوستان
    میخوام برنامه ای بنویسم که میکرو89c51 بطور پیوسته پورته خاصی مثلا(p1.0) رو چک کنه و اگه highبود مقدار 55هگزا دسیمال به یکی دیگه پورت lمثلا(p0)ارسال کنه
    ممنون lمیشم راهنماییم کنید :sad:

    #2
    پاسخ : 8051

    سلام
    این برنامه میاد اول p1.0 رو بررسی میکنه اگه p1.0 صفر باشه باز میاد p1.0 رو چک میکنه تا زمانی که P1.0 یک بشه اگه P1.0 یک بود سطر بعدی یعنی کپی کردن 55 هگزبه p0 رو انجام میده


    البته با اسمبلی
    کد:
    LOOP:  jnb   p1.0,loop
        mov   p0,55

    دیدگاه


      #3
      پاسخ : 8051

      با تشکر از پاسختون :nice:
      اما متاسفانه به طور واضح نفهمیدم برنامه چطوری عمل میکنه چند نمونه شبیه سازی کردم اما نتیجه نگرفتم میشه بیشتر راهنمایی کنید و جوری بگید که بتونم شبیه سازی بکنم برای خودم.سپاس فراوان

      دیدگاه


        #4
        پاسخ : 8051

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

        کد:
            org   0
            mov   p0,#0
            mov   p1,#0
        loop:  jnb   p1.0,loop
            mov   p0,#55
            end

        دیدگاه


          #5
          پاسخ : 8051

          ممنون از شما دوسته عزیز :nice:
          اما متاسفانه هنوز نفهمیدم برنامه چطوری کار میکنه !!!!به نظرم اون برنامه ای که نوشتید اشتباه است و قادر به شبیه سازی نمیباشد

          از دوستان دیگر اگه کسی بلده دریغ نکنه

          دیدگاه


            #6
            پاسخ : 8051

            پس چرا موقعی که من امتحان میکنم درست کار میکنه
            فایل asm و پروتئوس رو برات پ کردم تا به اشتباهت پی ببری

            http://up.vbiran.ir/uploads/eca%20help_1290413942140725826.rar

            دیدگاه


              #7
              پاسخ : 8051

              با تشکر از شما دوست گرامی :nice:
              یه توضیحی درباره روشن شدن ledها میدید مگه 55Hمنظورش 110111نیست پس چرا شبیه سازی شما اینجور عمل نمیکند؟؟؟ :cry2:

              دیدگاه


                #8
                پاسخ : 8051

                55 هگز یعنی 01010101

                دفعه اول و دوم که برنامه رو براتون گذاشتم اونقدر هواسم پرت بود که یادم رفت بعد 55 حرف h رو بذارم
                چون h رو نذاشته بودم کامپایلر بجای 55هگز ، 55دسیمال رو کامپایل میکرد و تویه شبیه سازی 110111 رو نشون میداد

                در هر حال اشتباه از من بود
                به بزرگواری خودتون ببخشید

                دیدگاه


                  #9
                  پاسخ : 8051

                  شما خودتون بزرگوارید .مرسی از اینکه وقت گذاشتید و پاسخ دادید .دمتون گرم :job:.سپاس مجدد
                  یا حق

                  دیدگاه


                    #10
                    پاسخ : 8051

                    شرمنده داداش :smile:
                    میشه یه نگاه به اینی که طرح کردم بندازی بگی اگه بخوام اینبار شرط lowباشه چطوریه؟ شبیه سازیشو انجام دادم ببخشید گیج شدم

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

                    دیدگاه


                      #11
                      پاسخ : 8051

                      یه دونه اشکال داشتی یا شاید هم حواست نبوده
                      اومدی بجای jnb از jb استفاده کردی

                      بعدش هم من تویه مداری که گذاشته بودم اومده بودم پورت صفر رو با مقاومت 10کیلو به Vcc وصل کرده بودم ، اونم بخاطر کلکتور باز بودن پایه های این پورت
                      دیگه لازم نیست بیای از هر پورتی که استفاده میکنی اونو با مقاومت به Vcc وصل کنی
                      چون بقیه پورت ها کلکتورشون بایاس شده
                      از یه پورت دیگه برای نمایش استفاده کردم تا خوب بفهمی

                      بگذریم

                      اگه بخوای بجای High بودن ، low بودن خونه حافظه یا پایه رو شرط قرار بدی
                      باید حالت اولیه پایه رو رویه high قرار بدی
                      بعد بجای دستور شرط jnb از jbc استفاده کنی
                      بعش هم جای کلید و مقاومت رو عوض کنی


                      http://up.vbiran.ir/uploads/eca%20help_24952139422211725500.rar

                      البته توبه 99.99% طراحی ها از یک بودن پورت برای شرط استفاده میکنن

                      کد:
                          org   0
                          mov   p2,#0
                          mov   p1,#00000001b
                      loop:  jbc   p1.0,loop
                          mov   p2,#55h
                          jmp   loop
                          end

                      دیدگاه

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