اطلاعیه

Collapse
No announcement yet.

Gadid اتصال کیبورد کامپیوتر به avr

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

    Gadid اتصال کیبورد کامپیوتر به avr

    با سلام خدمت دوستان
    من میخواستم کیبورد کامپیوتر را به avr متصل کنم. مداری ساده بستم تا کلید های فشار داده شده در کیبورد را در LCD نمایش بده که موفق هم شدم. در اینترنت گشتم دو نمونه کد را پیدا کردم که هر دوتا کد به خوبی کار نمیکند و مشکل دارد. کد اولی که اینجا میذارم کار میکنه فقط کلید های عددی سمت راست کیبورد با این کد کار نمیکنه. و برای تایپ اعداد حتما باید از کلید های اعداد بالای حروف ها استفاده شود. در حالی که من علاوه بر تایپ توسط اعداد بالای صفحه کلید میخوام از اعداد و کلید های اعداد سمت راست کیبورد هم استفاده کنم در حالی که با این کد فقط حروف و اعداد بالای حروف و کلید های ترکیبی و f ها قابل تشخیص است.
    دوستان اگه ممکنه راهنمایی کنید کد های کلید های سمت راست اگر میدادنید اعلام کنید. کارم بدجور گیره. هرکاری میکنم صفحه کلید اعداد سمت راست راه نمی افته و در lcd چیزی نشان نمیده.

    یک کد دیگه هم دارم که باز اعداد سمت راست صفحه کلید را فعال میکنه ولی کلید های ترکیبی را خراب میکنه و درست کار نمیکنه. مثلا علامت @ را درست نشان نمیده و ....

    ولی کد اولی که گذاشتم کامل تره ولی فقط تنها مشکل اینه که اعداد صفحه کلید سمت راست کیبورد را فعال نمیکنه.
    دوستان راهنمایی کنید ممنون میشم.


    کد اولی :


    $regfile = "m32def.dat"
    $crystal = 8000000

    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , _
    Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0
    Config Lcd = 16 * 2

    Config Keyboard = Pind.2 , Data = Pind.3 , Keydata = Keydata
    'clock=pind.2 , data=pind.3

    Dim K As Byte

    Waitms 100
    Cls

    Main:
    K = Getatkbd()
    Select Case K:
    Case 44:
    Cls
    Home
    Case 13:
    Lowerline
    Case 9:
    Shiftcursor Right
    Shiftcursor Right
    Shiftcursor Right
    Shiftcursor Right
    Case 8:
    Shiftcursor Left
    Lcd " ";
    Shiftcursor Left
    Case 141:
    Cls
    Lcd " Press F1"
    Case 142:
    Cls
    Lcd " Press F2"
    Case 143:
    Cls
    Lcd " Press F3"
    Case 144:
    Cls
    Lcd " Perss F4"
    Case 152:
    Cls
    Lcd " Press F5"
    Case 153:
    Cls
    Lcd " Press F6"
    Case 154:
    Cls
    Lcd " Press F10"
    Case 158:
    Cls
    Lcd " Press F8"
    Case 159:
    Cls
    Lcd " Press F9"
    Case 163:
    Cls
    Lcd " Press F11"
    Case 164:
    Cls
    Lcd " Press F12"
    Case 10:
    Cls
    Lcd " Press ESC"
    Case 28:
    Home
    Case 30:
    Upperline
    Case 31:
    Lowerline
    Case 134 :
    Shiftcursor Left
    Case 135:
    Shiftcursor Right
    Case Else Lcd String(1 , K)
    End Select
    jmp main
    End
    'end program

    Keydata: 'designed by ETRmodern
    'normal keys lower case
    Data 0 , 159 , 0 , 152 , 143 , 141 , 142 , 164 , 0 , 154 , 158 , 153 , 144 , 9 , 0 , 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 , 0 , 0 , 0 , 109 , 106 , 117 , 55 , 56 , 0
    Data 0 , 0 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 47 , 108 , 59 , 112 , 45 , 0
    Data 0 , 0 , 39 , 0 , 91 , 61 , 0 , 0 , 0 , 0 , 13 , 93 , 0 , 0 , 0 , 0
    Data 0 , 0 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 0 , 0 , 134 , 28 , 0 , 0 , 0
    Data 0 , 44 , 31 , 0 , 135 , 30 , 10 , 0 , 163 , 0 , 0 , 0 , 0 , 0 , 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 , 64 , 0
    Data 0 , 67 , 88 , 68 , 69 , 36 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
    Data 0 , 78 , 66 , 72 , 71 , 89 , 94 , 0 , 0 , 0 , 77 , 74 , 85 , 38 , 42 , 0
    Data 0 , 60 , 75 , 73 , 79 , 41 , 40 , 0 , 0 , 62 , 63 , 76 , 58 , 80 , 95 , 0
    Data 0 , 0 , 34 , 0 , 123 , 43 , 0 , 0 , 0 , 0 , 13 , 125 , 0 , 166 , 0 , 0
    Data 0 , 0 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
    Data 0 , 44 , 0 , 0 , 0 , 0 , 10 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0


    کد دوم :

    $regfile = "m32def.dat"
    $crystal = 1000000
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , _
    Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0

    Config Keyboard = Pind.2 , Data = Pind.3 , Keydata = Key

    Dim A As Byte
    Do
    A = Getatkbd()
    If A <> 0 Then
    Lcd String(1 , A)
    End If
    Loop
    End

    Key:
    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 , 42 , 57 , 0 , 0
لطفا صبر کنید...
X