اطلاعیه

Collapse
No announcement yet.

چند سوال درباره برنامه نویسی بسکام و mega32

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

    چند سوال درباره برنامه نویسی بسکام و mega32

    با سلام دوستان

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

    1- توی mmc یک فایل متنی دارم میخوام هر خطشو که 20 کراکتره بخونم و هر دوتا رو جدا جدا به هگز تبدیل کنم و به پورت ها بفرستم ؟ خوندنو بلدم تو یک رشته 20 تایی میریزم ولی جدا کردن و تبدیل به هگزشو بلد نیستم .
    مثلاخط اول فایل من اینه :
    267f5ecb445901cf4afb

    2- ارسال عدد 0 تا 15 به چهار خروجی lsb پورت b چه جوریه ؟ یعنی نمیخوام چهار پورت msb اون تغییری پیدا بکنه .

    3- می خوام با نگه داشتن کلیدی به مدت 5 ثانیه میکرو بره به حالتی و یک کاری را انجام بده تا زمانی که دوباره او کلید یکبار زده بشده میکرو ریست بشه برنامه اصلی رو اجرا کنه .

    دنيا بر پايه برنامه هايي هست که خدا با زبان برنامه نويسي خودش مينويسد . کامپايل شده آن اين جهان و قوانين آن است . start آن تولد است و end آن مرگ . پر از گزينه هاي شرطي و دستورات حلقه و تکرار ...

    #2
    پاسخ : چند سوال درباره برنامه نویسی بسکام و mega32

    1- با دستور Mid کاراکترها رو یکی یکی جدا کن و سپس با دستور Hexval به عدد هگز تبدیل کن
    Config Portb = Output
    Dim I As Byte , C As String * 1
    For I = 1 to 20
    C = Mid(Str , I , 1)z
    Portb = Hexval(C)z
    تاخیر در صورت نیاز
    Next I
    حرف z بعد از پرانتز رو نادیده بگیر
    Str متغیر رشته ای 20 کاراکتری خودت است

    2- پورت b رو با عدد مورد نظر خود OR کن
    PORTB = PORTB Or X
    X همون عدد 0 تا 15

    3-
    Config Watchdog = 512
    Config Porta.0 = Input
    Dim N As Long
    Do
    While Pina.1 = 0
    Incr N
    If N = xxx Then
    Goto Label1
    End If
    Wend
    N = 0
    دستورات برنامه
    Loop

    Label1:
    While Pinb.0 = 0
    Wend
    دستورات برنامه
    Start Watchdog
    Do
    Reset Watchdog
    If Pina.0 = 0 then
    Waitms 200
    If Pina.0 = 0 then
    End
    End If
    End If
    Loop
    پورت A0 ورودی کلید است و اگر صفر شود یعنی کلید فشرده شده است. به جای xxx مقداری را باید قرار دهی که تاخیر 5 ثانیه ای را ایجاد کند. احتمالا یک عدد بزرگ می شود به طور تجربی به دست می آید.
    در این برنامه از واچداگ استفاده شده است. در قسمت Label1 واچداگ فعال می شود و اگر کلید زده شود برنامه به End می رسد و پس از 512 میلی ثانیه میکرو توسط واچداگ ریست می شود.

    دیدگاه

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