اطلاعیه

Collapse
No announcement yet.

راه حل مشکل شبیه سازی کیپد در پروتئوس با بسکام

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

    راه حل مشکل شبیه سازی کیپد در پروتئوس با بسکام

    سلام دوستان بعضی ها (مثه مبتدیا عین خودم)دوست دارن قبل از اینکه هر مداری رو ببندن اول توی نرم افزار های شبیه سازی مثه پروتئوس مدارشون رو تست کنن که هیچ مشکلی نداشته باشه.اما همانطور که میدونید وقتی با میکروکنترلر های AVR میخوایم کیپد رو شبیه سازی کنیم یه مشکلی پیش میاد و میکرو درست کار نمیکنه.من میخوام راه حل این مشکل رو بگم.این مشکل بخاطر اشتباهیه که در کتابخانه این قطعه ها است.پس برای همین باید از این فایل زیر استفاده کنید.(نگران نباشد ویروس میروس نیس حجمشم 7 کیلوبایته به اطلاعات قبلی هم صدمه ای نمیزنه)

    حالا دو فایل AVR.LIB و AVR.IDX رو بریزین در محل نصب نرم افزارتون و اگه با پیام تطابق اسمی مواجه شدین(که حتما میشین) ریپلایس کنید و مطمئن باشید که مشکلی پیش نمیاد.بعد توی پروتئوس از میکرویی استفاده کنید که تازه به لیستتون افزوده شده(با اون یکی متفاوته)بعد که این کار رو کردین باید دیتا رو برای میکرو تعریف کنید که برای کیپد های مختلف متفاوته
    برای کیپد 4*4 (باید بگم که من توی این دیتا استاندارد رو رعایت نکردم)


    $regfile "m16def.dat"
    $crystal = 1000000


    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db7 = A.5 , Db6 = A.4 , Db5 = A.3 , Db4 = A.2 , E = A.1 , Rs = A.0


    Config Kbd = Portd


    Dim Kbd As Byte
    Dim Kbds As Byte


    Cls
    Cursor Off
    Do
    Main:
    Kbd = Getkbd()
    If Kbd > 15 Then Goto Main
    Kbds = Lookup(kbd , Data_for_kbd)
    Cls
    Home
    Lcd Kbds


    Select Case Kbds
    Case 10
    Cls
    Home
    Lcd "/"
    Case 11
    Cls
    Home
    Lcd "*"
    Case 12
    Cls
    Home
    Lcd "-"
    Case 13
    Cls
    Home
    Lcd "+"
    Case 14
    Cls
    Home
    Lcd "ON"
    Case 15
    Cls
    Home
    Lcd "="


    End Select
    Goto Main


    Loop
    End


    Data_for_kbd:
    Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 14 , 0 , 15 , 13
    اینم برنامش
    البته بگم که به ترتیب باید این پایه های میکرو رو به این پایه های کیپد وصل باشه
    A0-->1
    A1-->2
    A2-->3
    A3-->4
    A4-->A
    A5-->B
    A6-->C
    A7-->D
    و حالا کیپید 3*4:

    $regfile "m16def.dat"
    $crystal = 1000000

    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db7 = A.5 , Db6 = A.4 , Db5 = A.3 , Db4 = A.2 , E = A.1 , Rs = A.0

    Config Kbd = Portd

    Dim Kbd As Byte
    Dim Kbds As Byte

    Cls
    Cursor Off
    Do
    Main:
    Kbd = Getkbd()
    If Kbd > 15 Then Goto Main
    Kbds = Lookup(kbd , Data_for_kbd)
    Cls
    Home
    Lcd Kbds

    Select Case Kbds
    Case 13
    Cls
    Home
    Lcd "*"
    Case 14
    Cls
    Home
    Lcd "#"

    End Select
    Goto Main

    Loop
    End

    Data_for_kbd:
    Data 1 , 2 , 3 , 10 , 4 , 5 , 6 , 11 , 7 , 8 , 9 , 12 , 13 , 0 , 14 , 15


    اینم از این برنامه
    البته یادتون باشه که اینطوری باید به میکرو وصل بشه:

    A0-->1
    A1-->2
    A2-->3
    A4-->A
    A5-->B
    A6-->C
    A7-->D

    امیدوارم که مفید واقع شده باشه فایل پروژه رو هم میگذارم.
لطفا صبر کنید...
X