NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 5493 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 3 از 3

موضوع: کمک در محتوا برنامه

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Apr 2009
    نوشته ها
    37
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض کمک در محتوا برنامه

    $regfile = "m16def.dat"
    $crystal = 8000000
    Dim A As Byte
    Dim B As Byte
    Dim X As Byte
    Dim C As Byte
    Config Portb = Output
    Config Portc = Output
    Config Porta = Input
    Config Portd = Input
    A = 0
    B = 0
    q:
    Do
    X = Porta
    If Portd.0 = 1 Then Exit Do
    Loop
    Do
    C = X Mod 2
    If C = 0 Then Incr A
    If C = 1 Then Incr B
    If X < 2 Then Exit Do
    X = X / 2
    Loop

    Portb = B
    Portc = A
    goto q
    End
    تو برنامه بالا C = X Mod 2یعنی چیه؟

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Aug 2008
    نوشته ها
    212
    تشکر
    10
    تشکر شده 48 بار در 38 پست

    پیش فرض RE: کمک در محتوا برنامه

    سلام
    این دستور مقدار باقیمانده رو حساب میکنه
    میتونستی تو تایپک قبلی هم بپرسی

  4. #3
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض RE: کمک در محتوا برنامه

    سلام
    regfile = "m16def.dat"
    $crystal = 8000000
    معرفی میکرو و کریستال ، در این برنامه میکرو ما مگا 16 و مقدار کریستال 8 مگا هرتز هست
    Dim A As Byte
    Dim B As Byte
    Dim X As Byte
    Dim C As Byte
    معرفی چند متغیر ، متغیر ها مکان های از حافظه هستند که برای یک عملیات در نظر گرفته میشن ، مثلا متغیر c از جنس بایت هست و میتونه از 0 تا 255 تغییر کنه ، شما میتونید هر عدد ( به هر فرم (باینری ، هگز ،...)) رو در اون ذخیره کنید و روی اون انواع عملیات های حسابی رو انجام بدید .
    Config Portb = Output
    Config Portc = Output
    Config Porta = Input
    Config Portd = Input
    پورت b و c به عنوان ورودی و پورت a,d به عنوان خروجی تعریف شدن ، در بسکام پورت های که بهشون جریان (ولتاژ ) میدیم به عنوان ورودی و پورت های که ازشون ولتاژ میگیرم به عنوان خروجی تعریف میشن ،
    A = 0
    B = 0
    مقدار 0 برای دومتغیر a,b در نظر گرفته شده
    q:
    Do
    X = Porta
    If Portd.0 = 1 Then Exit Do
    Loop
    q نام یه برچسب است ، که cpu میکرو میتونه در قسمت های مختلف برنامه و با دستور goto یا jmp یا ... به اون پرش کنه
    در این بخش cpu در داخل حلقه do-loop گیر میافته و تا زمانی که Portd.0 یک بشه در اون حلقه میچرخه ، با یک شدن Portd.0 میکرو از حلقه خارج میشه و برنامه رو از خط بعد از loop ادامه میده
    Do
    C = X Mod 2
    If C = 0 Then Incr A
    If C = 1 Then Incr B
    If X < 2 Then Exit Do
    X = X / 2
    Loop
    دستور C = X Mod 2 ، همون طور که اقا مهرداد گفتن مقدار باقیمانده رو حساب میکنه .
    اگه c برابر 0 بود به a افزوده میشه ........ اگه x کوچکتر از 2 بود ، از حلقه خارج میشیم و ..
    Portb = B
    Portc = A
    goto q
    در ادامه مقدار a و b رو روی دوتا پورت نمایش میدیم .
    یه مثال :
    عددی روی پورت" آ" وارد می شود وبروی پورت" بی" و"سی" 4 عدد" ال ای دی" قرار دارد .برنامه ای بنویسید که تعداد صفرها ویک های عدد وارد شده را محاسبه نماید وتعداد یک هارا روی پورت" بی "وصفر ها را روی پورت "سی" نمایش دهد؟مثلا اگر 6 تا صفر داشتیم عدد 110ویا اگر 4 تا یک داشتیم عدد 100 را نمایش دهد.
    فرض کن عدد ورودی 10101010 هست ، عدد ما دارای 4 تا 1 و 4 تا صفر هست
    برنامه شروع میشه و شما پایه Portd.0 رو یک میکنید و cpu به حلقه اصلی میره .
    در اونجا X = X / 2 انجام میگیره ( در حال حاضر مقدار x برابر 170 هست با تقسیم به 2 برابر 127 یا 1010101 میشه .)
    در اولین تقسیم مقدار باقیمانده 0 هیت بنابراین دستور If C = 0 Then Incr A اجرا میشه ( A=1 )
    دوباره حلقه تکرار میشه ، 85 به دو تقسیم میشه ، اینبار مقدار با قیمانده برابر 1 هست ، پس If C = 1 Then Incr B اجرا میشه و...
    حلقه تا وقتی که مقدار C برابر با 1 بشه ادامه پیدا میکنه و در نهایت مقدار A برابر 4 و مقدار B برابر 4 میشه ،
    ما از حلقه خارج میشیم و دوباره با فشردن کلید همه چیز ادامه پیدا میکنه .
    برنامه خیلی ساده و روان هست و البته جالب
    اگه سوالی بود بپرسید

موضوعات مشابه

  1. حداکثر ولتاژ ورودی رگولاتور 5 ولت بدون ایجاد مشکل در دراز مدت
    توسط dariush_ab در انجمن طراحی و ساخت و آزمایش مدارت الکترونیک
    پاسخ: 17
    آخرين نوشته: 30-07-2021, 02:27
  2. !!!!! رگولاتور ولتاژ ژنراتور با استفاده از فیدبک !!!!!
    توسط REZA_KLNTR در انجمن کنترل هوشمند و plc
    پاسخ: 19
    آخرين نوشته: 29-05-2016, 17:18
  3. رگولاتور داخلی arm
    توسط aminm_fx در انجمن AT91 series (ATMEL)
    پاسخ: 2
    آخرين نوشته: 27-06-2013, 19:17
  4. کارتهای ۵۰ دلاری اینتل جهت افزایش توان پردازنده
    توسط M3R در انجمن اخبار کامپیوتر و IT و مسابقات رباتیک
    پاسخ: 0
    آخرين نوشته: 30-09-2010, 13:01

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •