اطلاعیه

Collapse
No announcement yet.

برنامه برای روشن خاموش کردن led

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

    برنامه برای روشن خاموش کردن led

    سلام
    میدونین چی شده استاد ما بهمون تکلیف عیدی داده :applause:
    حلا از شما اسمبلی نویس ها میخام تا این برنامه رو برای من بنویسین چون من از اسمبلی هیچی بارم نیست ولی بیسیک م توپه (توپ والیبال )
    این شماتیکه

    و باید با زدن کلید inc یکی از led ها روشن (از چپ به راست به ترتیب) وبا زدن dinc یکی از led ها خاموش(از راست به چپ به ترتیب) بشه و بازدن reset همه led ها خاموش بشن
    یعنی با زدمinc ز led ها از چپ به راست روشن بشن وبا زدن dinc از راست به چپ خاموش بشن
    :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd:
    انجام پروژه هاي برنامه نويسي اندرويد
    [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
    http://cafebazaar.ir/app/?id=com.atxdroid

    #2
    پاسخ : برنامه برای روشن خاموش کردن led

    سلام
    org 030h
    jmp main
    org 00h
    main:
    mov p0,#00h
    call Delay
    mov p0,#0FFh
    call Delay
    jmp main
    delay:
    mov r1,#0FFh
    up:
    mov r2,#0FFh
    djnz r2,$
    djnz r1,up
    ret
    end
    البته من تاخیر رو زیاد گزاشتم شما می تونی بیشتر یا کمتر کنی.
    در ضمن این برنامه می یاد تمام Led ها رو با هم روشن و خاموش می کنه.
    موفق باشی

    دیدگاه


      #3
      پاسخ : برنامه برای روشن خاموش کردن led

      نوشته اصلی توسط Ahp_online
      سلام
      org 030h
      jmp main
      org 00h
      main:
      mov p0,#00h
      call Delay
      mov p0,#0FFh
      call Delay
      jmp main
      delay:
      mov r1,#0FFh
      up:
      mov r2,#0FFh
      djnz r2,$
      djnz r1,up
      ret
      end
      البته من تاخیر رو زیاد گزاشتم شما می تونی بیشتر یا کمتر کنی.
      در ضمن این برنامه می یاد تمام Led ها رو با هم روشن و خاموش می کنه.
      موفق باشی
      ای بابا یک لحظه اومدی خوشحالم کردی ولی در لحظه بعدی نوشتی (در ضمن این برنامه می یاد تمام Led ها رو با هم روشن و خاموش می کنه.)
      ما چی خاستیم شما چی نوشتین :cry:
      در هر صورت ممنون میشم اگه جواب کامل بدین
      انجام پروژه هاي برنامه نويسي اندرويد
      [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
      http://cafebazaar.ir/app/?id=com.atxdroid

      دیدگاه


        #4
        پاسخ : برنامه برای روشن خاموش کردن led

        سلام.

        آقا من برنامه رو برات نوشتم.البته از بداشتی که از نوشتت کردم.

        ببین درسته اگه مشکلی داشت بگو تا درستش کنم.

        اگه خوب بود که هیچی یه آقا محسن که بیشتر نداریم.

        http://data-sheets.persiangig.com/learn/MILAD_2546.rar

        اینم یه عکس سخت افزار:

        www.icesi.ir

        دیدگاه


          #5
          پاسخ : برنامه برای روشن خاموش کردن led

          خیلی خیلی خیلی ممنون میلاد جان :applause:
          به قول رفقا همتو همش ممنون :biggrin:
          از روم نمیشه بگم ولی چکار کنم میخاستم برام یه توضیح مختصر ی در مورد برنامه و با چه برنامه ای کامپایل میشه بنویسی :nerd:
          انجام پروژه هاي برنامه نويسي اندرويد
          [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
          http://cafebazaar.ir/app/?id=com.atxdroid

          دیدگاه


            #6
            پاسخ : برنامه برای روشن خاموش کردن led

            چشم حتما برات میذارم.
            یکمی صبر کن.
            www.icesi.ir

            دیدگاه


              #7
              پاسخ : برنامه برای روشن خاموش کردن led

              سلام محسن جان.

              چشم یه توضیح کوتاهی در مورد برنامه برات میدم. چند خط رو پیست میکنم و براش یه توضیح میدم.:

              ORG 00H
              MOV P1,#0FFH
              MOV P2,#00H
              MOV A,#00
              MOV R0,#00


              خط اول باعث میشه تا برنامه از محل 00 هگز حافظه شروع به اجرا بکنه.
              خط دوم پورت 1 رو ورودی میکنه.تو زبان اسمبلی با 8051 اگر در لحظه اول پورت رو یک کنی پورت به صورت ورودی قابل استفاده قرار میگیره.
              خط سوم ، چهارم ، پنجم به ترتیب پورت 2 ، رجیستر A و رجیستر R0 رو صفر میکنه.(یا پاک میکنه.)

              MILAD:
              JNB P1.0,inc1
              JNB P1.1,dinc
              JNB P1.2,reset
              JMP MILAD

              ما در این لوپ از برنامه تست کلید میکنیم.JNB یعنی jump Not Bit بپر هر موقع بیت نبود (هر موقع صفر بود.) برنامه تا موقعی که کلیدی زده نشده باشه در این لوپ گیر میکنه و بیرون نمی آد.
              یکی از دستورات شرطی رو برات توضی میدم اون یکی ها هم مثل همونه.
              بپر به برچسب inc1 وقتی در پین ورودی P1.0 بیتی نبود(هر موقع صفر شد.)
              دستور jMP هم دستور پرش غیر شرطی هستش که باعث میشه برنامه فقط در حال تست کلید باشه.

              inc1:
              INC B
              LOOP:JNB P1.0,LOOP
              CALL SHOW
              JMP MILAD

              حالا تصور کن که کلید inc1 رو بزنی برنامه به برچسب بالا میپره(برچسب inc1) خط دومش یکی به رجیستر B اضافه میکنه.
              خط سومش بانس کلید رو میگیره. یعنی تا زمانی که شما دستت رو کلید inc1 هست داخل این لوپ گیر میکنه تا زمانی که کلید رها بشه. و قتی کلید رها شد برنامه به خط بعدی میره.
              خط چهارم برچسب SHOW رو صدا میکنه.یعنی برنامه میپره به برچسب show و اون زیر برنامه رو اجرا میکنه. و با به کار بردن دستور ret میتوان در آخر برچسب show دوباره به خط بعدی CaLL Show بازگشت که من از دستور RET استفاده نکردم. مستقیم از دستور SJMP MILAD استفاده کردم.

              DINC:
              DEC B
              LOOP1:JNB P1.1,LOOP1
              CALL SHOW
              JMP MILAD

              توضیحات این لوپ دقیقا مانند لوپ INC1 میمونه.با این تفاومت که در خط دوم از دستور DEC استفاده کرده که یکی از رجیستر B کم میکنه.

              RESET:
              MOV P2,#00H
              MOV B,#00H
              LOOP2:JNB P1.0,LOOP2
              JMP MILAD

              این برچسب reset هستش که تو خط دومش پورت 2 رو خاموش کرده(با مقدار دهی 0 میتوان تمام led های پورت 2 رو خاموش کرد.)
              خط سومش رجسیتر b رو پاک میکنه(مقدار صفر رو به داخلش ریختیم.)
              دو خط بعدی هم تکراریه.

              LOOP4:
              MOV B,#00
              MOV P2,#00H
              RET

              خط دومش رجسیتر b رو پاک میکنه(مقدار صفر رو به داخلش ریختیم.)
              خط سومش هم پورت 2 رو خاموش کرده(با مقدار دهی 0 میتوان تمام led های پورت 2 رو خاموش کرد.)


              SHOW:
              MOV DPTR,#400H
              MOV A,B
              MOVC A,@A+DPTR
              JZ LOOP4
              MOV P2,A
              SJMP MILAD

              این لوپ از برنامه برای خاموش و روشن کردن led ها هستش.
              تو خط دومش به داخل رجستر DPTR مقدار 400 هگز رو میریزیم.
              تو خط بعدی مقدار B رو به داخل A میریزیم.
              تو خط بعدی هم هر مقداری در A هستش رو با مقدار 400 (در خط دوم به داخل DPTR مقدار 400 هگز رو ریخته بودیم.) جمع میکنیم و در مقدار معادل اونو از محل 400 هگز از حافظه ROM بر میدارد و به داخل رجیستر A میریزد.
              دستور JZ یعنی JUMP ZERO که هر موقع مقدار رجیستر A برابر صفر بشه به برچسب LOOP4 میپره.
              خط بعدی هم مقدار A رو بر روی پورت 2 قرار میدهد.
              خط بعدی هم به برچسب milad پرش میکنه.(short jump=Sjmp)

              ORG 400H
              DB 0,128,192,224,240,248,252,254,255,0
              END

              کد org 400h باعث میشه که کدهای زیر در محل 400هگز از حافظه ROM ریخته بشه.


              حالا یه توضیح سراسری از برنامه میدم :

              در لحضه اولیه برنامه شروع به کار میکنه و به برچسب milad میرسه و در داخل برچسب MILAD گیر میکنه تا زمانی که یه کلیدی فشرده شود.برای مثال ما کلید INC1 رو میزنیم.برنامه به برچسب INC1 میپره و یکی به رجیستر B اضافه میکنه. و به برچسب SHOW میپره.


              تو برچسب SHOW محتوای رجیستر B یه داخل A ریخته میشه.(چون دستور خط بعدی فقط با رجیستر A معتبر هست و گرنه کامپایلر ارور میده.)
              در حال حاضر چون ما یه بار کلید INC1 رو زدیم مقدار 1 داخل A قرار داره.
              1 با DPTR جمع میشود و عدد معادل 401 هست که در محل 401 از حافظه ROM مقدار 128 وجود داره که این مقدار داخل A قرار میگیره و در آخر هم بر روی پورت 2 نمایش میده.

              اگه بازم با برنامه مشکل داشتی بپرس. اگه منم بلد نبودم اساتید هستن.
              www.icesi.ir

              دیدگاه


                #8
                پاسخ : برنامه برای روشن خاموش کردن led

                بابا دستت درد نکنه :wow: :wow: :wow:
                خیلی عالی بود ولی میدونی چی شد فایلی که داده بودی وسط دسکتاپ بود و متاسفانه ویندوز خراب شد و درنتیجه پرید و حا لا هر کار میکنم لینکش دوباره جواب نمیده اگه می شه یکبار دیگه یا یه جای دیگه اپلود کن
                بازم ممنون :nerd:
                انجام پروژه هاي برنامه نويسي اندرويد
                [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                http://cafebazaar.ir/app/?id=com.atxdroid

                دیدگاه


                  #9
                  پاسخ : برنامه برای روشن خاموش کردن led

                  نوشته اصلی توسط mohsen.hex
                  لینکش دوباره جواب نمیده
                  من دانلود کردم مشکلی نداشت.
                  احتمالا از سیستم یا سرور خودته.

                  دیدگاه


                    #10
                    پاسخ : برنامه برای روشن خاموش کردن led

                    احتمالا مال سرور هستش چون با ایرانسل کانکت شدم باید برم خونه و با isp وصل بشم :cry:
                    انجام پروژه هاي برنامه نويسي اندرويد
                    [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                    http://cafebazaar.ir/app/?id=com.atxdroid

                    دیدگاه


                      #11
                      پاسخ : برنامه برای روشن خاموش کردن led

                      راستی میلاد جان شما کجا اسم حامد رو دیدین که نوشتین :biggrin:
                      فکر کنم از حامد منظورت میلاد بود. سکرت صحبت میکنی>؟
                      .
                      .
                      .
                      .
                      .
                      .
                      میدونی چرا باز نمیبینی چون ویرایش کردم :nice:خوب جیگر اگه همچین مشکلی دیدی زایع نکن بیا و در گوشم بگو تا بقیه نشنوند
                      راستی بازم همتو همش همتو ممنون :applause:
                      انجام پروژه هاي برنامه نويسي اندرويد
                      [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                      http://cafebazaar.ir/app/?id=com.atxdroid

                      دیدگاه


                        #12
                        پاسخ : برنامه برای روشن خاموش کردن led

                        منم یه بار دیگه تست کردم درسته.

                        نوشته اصلی توسط mohsen.hex
                        راستی میلاد جان شما کجا اسم حامد رو دیدین که نوشتین :biggrin:
                        فکر کنم از حامد منظورت میلاد بود. سکرت صحبت میکنی>؟
                        .
                        .
                        .
                        .
                        .
                        .
                        میدونی چرا باز نمیبینی چون ویرایش کردم :nice:خوب جیگر اگه همچین مشکلی دیدی زایع نکن بیا و در گوشم بگو تا بقیه نشنوند
                        راستی بازم همتو همش همتو ممنون :applause:
                        من اصلا همچین تایپکی نذاشتم.
                        www.icesi.ir

                        دیدگاه

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