اطلاعیه

Collapse
No announcement yet.

تبدیل کد سی کدویژن به اسمبلی

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

    تبدیل کد سی کدویژن به اسمبلی

    سلام دوستان

    با کمک چند تا از شما تونستم اولین برنامم که برنامه زیر هست رو با موفقیت و با فهم خوب به استادم ارائه بدم

    #include <mega16.h>
    #include <delay.h>

    void main()
    {
    DDRA=0b01000000;
    while(1)
    {
    if(PINA.0==0x01)
    PORTA.6=0x01;
    else
    PORTA.6=0x00;
    }
    }


    حالا استاد از ما خواسته تا در محیط کدویژن با اسمبلی همین برنامه رو بنویسیم

    یعنی همین کد بالا رو به صورت اسمبلی بنویسیم

    من اصلا نمیدونم چیجوری اسمبلی رو توو کدویژن مینویسن و خروجی میگیرن

    با دستورات اسمبلی تا حدودی آشنایی دارم

    بچه این یه خواهش هست که کمکم کنید نه دستور

    آخه قبلا کمک خواستم به بعضیا برخورده بود

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

    من رشتم کامپیوتره و کمتر به این چیزا نیاز دارم
    تازشم تخصصم طراحی سایته و برای همین اصلا نیازم نمیشه فعلا

    #2
    پاسخ : تبدیل کد سی کدویژن به اسمبلی

    برای نوشتن اسمبلی توی کد ویژن کافی دستورات رو توی پرانتز زیر بنویسی وسط کوتیشن.
    کد:
    #asm("")
    مثلا دستور فعال کردن سراسری وقفه ها به صورت اسمبلی میشه
    کد:
    #asm("sei")

    دیدگاه


      #3
      پاسخ : تبدیل کد سی کدویژن به اسمبلی

      ممنون از راهنماییتون

      اما من اصلا برای ای وی ار کد اسمبلی نزدم تا حالا

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

      لطفا
      :(

      دیدگاه


        #4
        پاسخ : تبدیل کد سی کدویژن به اسمبلی

        این به دردتون میخوره؟
        www.avr-asm-download.de/beginner_ir.pdf
        درضمن نوشتن بصورت اسمبلی در کدویژن اینطوری هستش:
        [code=c]#asm
        .
        .
        .
        #endasm
        [/code]
        بجای ... دستورات اسمبلی بنویسید.
        1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
        من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
        !Electronic On! Programming On
        هوشمندانه سوال بپرسیم!
        http://ir02x6.persiangig.com/logo/eca/tanks_01.png

        دیدگاه


          #5
          پاسخ : تبدیل کد سی کدویژن به اسمبلی

          کد مورد نظرتون رو با Atmel Studio بنویسید و بعد کامپایل کنید و توی قسمت دیباگ دستورات و برنامه کامل رو به صورت اسمبلی می تونید ببینید. تا اینجا برنامه اسمبلی شما آماده هستش. واسه اینکه بدونید چطور هم کار میکنه کتاب یا توی نت می تونید در مورد کدهای اسمبلی AVR مطالب پیدا کنید که گفته هر دستور چیکار میکنه. بعد اینکه دستورات رو پیدا کردید دیگه خیلی راحت می فهمید چطور کار میکنه.

          همین الان برو و کاری که گفتم رو انجام بده. کارت راه میفته.

          دیدگاه


            #6
            پاسخ : تبدیل کد سی کدویژن به اسمبلی

            سلام.شاید این کارتو راه بندازه.
            کد:
            #include "m16def.inc"
            ldi r16,0b01000000
            out ddra,r16
            
            start:
            sbis pina,0
            cbi porta,0
            cbic pina,0
            sbi porta,0
            rjmp star

            دیدگاه


              #7
              پاسخ : تبدیل کد سی کدویژن به اسمبلی

              اینو توی کدویژن مستقیم کپی کن.
              کد:
              void main(void){
              
              #asm
              ldi r16,0b01000000
              sts $3a,r16     //ddra= 0b01000000
              
              start:
              sbis $19,0    //pina
              cbi $1b,6   //porta.6=0
              sbic $19,0  //pina
              sbi $1b,6 //porta.6=1
              rjmp start
              #endasm
              }
              ldi ریجیستر r16 را با مقدار 0b01000000 بارگذاری میکند
              دستور sts مقدار ریجیستر r16 را در ادرس 3a$ که همان ادرس ddra هست میریزد.
              sbis میگه اگه pina.0 که ادرسش 19,0$ هست رو چک میکنه.اگه pina.0 یک شد دستور بعدی اجرا نخواهد شد.اگه صفر شد هیچ کاری نمیکنه.و دستور بعدی اجرا میشه.
              دستور cbi کارش پاک کردن ادرس 1b$ که این ادرس porta هست.
              sbi هم برای یک کردن port بکار میره.
              start: هم که یه برچسبه.
              rjmp هم که یه دستور برای پرش به start هست.

              دیدگاه


                #8
                پاسخ : تبدیل کد سی کدویژن به اسمبلی

                اون آدرس ها از کجا اومدههههههههههههههه

                دیدگاه


                  #9
                  پاسخ : تبدیل کد سی کدویژن به اسمبلی

                  با این برنامه مشکلت حل شد؟برنامه بهت جواب میده؟
                  اون ادرسا از دیتاشیت من خودم از avr studio بدستشون اوردم.
                  وقتی توی avr studio سیمولینکش میکنی بصورت تصویری ادرس تمام پریفرال های avr رو نشون میده.

                  دیدگاه


                    #10
                    پاسخ : تبدیل کد سی کدویژن به اسمبلی

                    سلام

                    آره حل شد

                    توو کد ویژن هم یه فایل اسمبل داره که آدرسا با توضیحش هست

                    واقعا ممنون

                    چند تا برنامه دیگه هم نوشتم

                    خیلی خیلی ممنون

                    دیدگاه


                      #11
                      پاسخ : تبدیل کد سی کدویژن به اسمبلی

                      خواهش.موفق باشی.

                      دیدگاه

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