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

موضوع: لطفا کمک

  1. #1
    تازه وارد
    تاریخ عضویت
    Mar 2013
    نوشته ها
    2
    تشکر
    6
    تشکر شده 0 بار در 0 پست

    Exclamation لطفا کمک


    دارم سعی میکنم بین کی بورد و lcd ارتباط برقرار کنم توسط میکرو پیک.
    کسی میدونه اینکار رو چطور میشه با ps2انجام داد ؟
    چون میگن اگه با ps2انجام بدم ضمن اینکه به جای مکس باید از یه سری icاستفاده کنم ؛ حجم برنامه خیلی کمتر میشه و دیگه نیاز نیست که برا هر کد کیبورد برنامه بنویسم.
    ویرایش توسط emtedad : 06-05-2013 در ساعت 16:36

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

  3. #2
    کاربر فعال r0b0 آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    امید عزیزی
    نوشته ها
    140
    تشکر
    205
    تشکر شده 198 بار در 80 پست

    پیش فرض

    نقل قول نوشته اصلی توسط emtedad نمایش پست ها

    دارم سعی میکنم بین کی بورد و lcd ارتباط برقرار کنم توسط میکرو پیک.
    کسی میدونه اینکار رو چطور میشه با ps2انجام داد ؟
    چون میگن اگه با ps2انجام بدم ضمن اینکه به جای مکس باید از یه سری icاستفاده کنم ؛ حجم برنامه خیلی کمتر میشه و دیگه نیاز نیست که برا هر کد کیبورد برنامه بنویسم.
    سلام
    مهندس پروتکل ارتباط با کی برد همون ps2 و تا بحال ندیدم کسی با مکس بخواد راه اندازی کنه!
    ارتباط با ps2؛
    برای ارتباط با ps2 نیازه که اول درمورد ترتیب پایه های سوکت رو بدونیم
    این سوکت ها نوع نری و مادگی دارن که ترتیب پایه ها تو هرکدوم فرق میکنه


    تصویر بالا سوکت سمت راست نوع نری و سمت چپ نوع مادگی را نشان می دهد.
    پایه های 2و6 آزاد بوده و پایه ها 3 و4 تغذیه سوکت را تامین می کنند
    همچنین پایه 1 برای ارسال دیتا و پایه 5 برای کلاک تعبیه شده اند.

    برنامه نویسی؛
    مشکلی که در اتصال کی برد به میکرو وجود داره، نداشتن خروجی کد اسکی میکروهای avr است که برای رفع این مشکل در بسیک جدولی ایجاد شده است که کدهای دریافتی از کی برد رو به کد اسکی تبدیل می کنه؛
    کد:
    Keydata:
    'normal keys lower case
    Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
    Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
    Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
    Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
    Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
    Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
    Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
    Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
    'shifted keys UPPER case
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
    Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
    Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
    Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
    Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
    Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
    Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
    Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 -->
    باقی رو بعد توضیح میدم
    فعلا یک برنامه آماده اتصال کی برد به میکرو میذارم تا کمی بیس کار دستتون بیاد و توضیح اضافی خواستید درخواست کند.
    کد:
    $regfile = "m32def.dat"
    $crystal = 4000000
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , Rs = Porta.0 , E = Porta.1
    Config Keyboard = Pind.2 , Data = Pind.4 , Keydata = Keydata
    
    Dim Text As String * 20
    Dim I As Byte
    Dim L As Byte
    
    $serialinput = Kbdinput
    $serialinput2lcd
    
    Text = "This is a Test!"
    L = Len(text)
    Cursor Off
    Cls
    Print Text
    Wait 1
    For I = 1 To 16
     Shiftlcd Right
     Wait 1
    Next I
    
    For I = 1 To L
     Shiftlcd Left
     Wait 1
    Next I
    
    Do
    
    Cls
    Cursor Blink
    Cursor On
    Print "Enter Text :"
    Locate 2 , 1
    Input Text
    L = Len(text)
    Cursor Noblink
    Cursor Off
    Cls
    Print Text
    For I = 1 To 16
     Shiftlcd Right
     'Wait 1
    Next I
    Wait 1
    L = L + 16
    For I = 1 To L
     Shiftlcd Left
     Wait 1
    Next I
    Loop
    
    End
    
    Kbdinput:
    
    $asm
    
    push r16           ; save used register
    
    push r25
    
    push r26
    
    push r27
    
    
    
    Kbdinput1:
    
    rCall _getatkbd    ; call the function
    
    tst r24            ; check for zero
    
    breq Kbdinput1     ; yes so try again
    
    pop r27            ; we got a valid key so restore registers
    
    pop r26
    
    pop r25
    
    pop r16
    
    $end Asm
    
    Return
    
    I = Getatkbd()
    
    Keydata:
    'normal keys lower case
    Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
    Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
    Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
    Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
    Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
    Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
    Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
    Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
    'shifted keys UPPER case
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
    Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
    Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
    Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
    Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
    Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
    Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
    Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 -->

    خوش باشید.

  4. کاربران : 4 تشکر کرده اند از شما r0b0 برای ارسال این پست سودمند:


  5. #3
    تازه وارد
    تاریخ عضویت
    Mar 2013
    نوشته ها
    2
    تشکر
    6
    تشکر شده 0 بار در 0 پست

    Exclamation لطفا کمک


    ممنون از توضیحاتتون
    ببنید سعی کردم مدارشو با استفاده از پروتکل rs232 طراحی کنم به این ترتیب که اطلاعات رو از کیبورد به max232 بفرستم وبعد بافر و بعد pic.
    برا picهم اینطور برنامه بنویسم که مثلا اگه کد 87 دریافت کردی a رو روی lcd نمایش بده و به همین ترتیب دیگر کلیدهای مورد نیاز رو برا میکرو معرفی کنم ؛ اما استادم گفت اگه به جای rs232 از ps2 استفاده کنم دیگه هم نیازی به مکس نیست هم حجم برنامه کمتر میشه
    حالا من نمیدونم جزییات کار چطور میشه ینی اگه ps2 رو با توجه به پایه هاش به میکرو متصل کنم کافیه؟!
    لطفا اگه اطلاعاتی در این مورد دارین یا مرجعی میشناسین بگین

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

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