PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : لطفا کمک



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

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

سلام
مهندس پروتکل ارتباط با کی برد همون ps2 و تا بحال ندیدم کسی با مکس بخواد راه اندازی کنه!
ارتباط با ps2؛
برای ارتباط با ps2 نیازه که اول درمورد ترتیب پایه های سوکت رو بدونیم
این سوکت ها نوع نری و مادگی دارن که ترتیب پایه ها تو هرکدوم فرق میکنه

You can see links before reply
تصویر بالا سوکت سمت راست نوع نری و سمت چپ نوع مادگی را نشان می دهد.
پایه های 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 -->



خوش باشید.

emtedad
08-05-2013, 14:19
:hi:
ممنون از توضیحاتتون
ببنید سعی کردم مدارشو با استفاده از پروتکل rs232 طراحی کنم به این ترتیب که اطلاعات رو از کیبورد به max232 بفرستم وبعد بافر و بعد pic.
برا picهم اینطور برنامه بنویسم که مثلا اگه کد 87 دریافت کردی a رو روی lcd نمایش بده و به همین ترتیب دیگر کلیدهای مورد نیاز رو برا میکرو معرفی کنم ؛ اما استادم گفت اگه به جای rs232 از ps2 استفاده کنم دیگه هم نیازی به مکس نیست هم حجم برنامه کمتر میشه
حالا من نمیدونم جزییات کار چطور میشه ینی اگه ps2 رو با توجه به پایه هاش به میکرو متصل کنم کافیه؟!
لطفا اگه اطلاعاتی در این مورد دارین یا مرجعی میشناسین بگینcry::