با سلام خدمت اساتید محترم
من دارم روی پروژه تابلو روان با LCD 16*2 و Mega32 کار می کنم .
حالا به مشکلی در اسکن کیبورد کامپیوتر در هنگام نصب به AVR بر خوردم ، می خواستم اگه ممکنه از دوستان محترم کمک بگیرم. :eek:
برنامه ی که من نوشتم به این صورت عمل میکنه : میاد سطر اول رو پاک میکنه و بعد که در Locate 1,1 قرار گرفت، از کیبورد یک کاراکتر دریافت میکنه و به Locate 1,2 میره و دوباره کلید رو دریافت میکنه ، خلاصه هر با یک شماره به ستون locate اضافه میشه و وقتی به Locate 1,16 رسید ، سطر دوم رو پاک میکنه و همون مراحل قبلی رو این بار در سطر دوم انجام میده :
:redface:
Main:
Home Upper
Lcd " "
For A1 = 1 To 16
Locate 1 , A1
Call F16
Waitms 15
Next A1
Lowerline
Lcd " "
For A1 = 1 To 16
Locate 2 , A1
Call F16
Waitms 15
Next A1
jmp main
End 'end program
Sub F16
K = Getatkbd()
Select Case K:
Case 50:
Lowerline
Case 56:
Home
Case 44:
Cls
Home
Case 52:
Shiftcursor Left
Case 54:
Shiftcursor Right
Case 13:
Lowerline
Case 9:
Shiftcursor Right , 4
Case 8:
Shiftcursor Left
Lcd " ";
Shiftcursor Left
Case Else:
Lcd String(1 , K)
End Select
End Sub F16
Keydata:
'normal keys lower case
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 27 , 0 , 0 , 0 , 0 , 9 , 9 , &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
• و اما مشکلی که برام پیش اومده اینه که کلیدهای del / Bk Sp و F1 و .... کار نمی کنند و برنامه من فقط اسکن حروف ها رو انجام میده .
• کلیدهایی مثل Del و بالا و پایین یا حتی کلید enter وقتی زده می شود مکانما یک کاراکتر جلو می رود.
• و وقتی دکمه Shift هم میزنم باز مکانما یک کاراکتر جلو می رود و بعد از آن تمامی حروف فقط بزرگ چاپ می شوند تااینکه تغذیه AVR رو قطع و وصل کنم.
:twisted:
ممنون میشم اگه بهم کمک کنید .
موفق باشید
من دارم روی پروژه تابلو روان با LCD 16*2 و Mega32 کار می کنم .
حالا به مشکلی در اسکن کیبورد کامپیوتر در هنگام نصب به AVR بر خوردم ، می خواستم اگه ممکنه از دوستان محترم کمک بگیرم. :eek:
برنامه ی که من نوشتم به این صورت عمل میکنه : میاد سطر اول رو پاک میکنه و بعد که در Locate 1,1 قرار گرفت، از کیبورد یک کاراکتر دریافت میکنه و به Locate 1,2 میره و دوباره کلید رو دریافت میکنه ، خلاصه هر با یک شماره به ستون locate اضافه میشه و وقتی به Locate 1,16 رسید ، سطر دوم رو پاک میکنه و همون مراحل قبلی رو این بار در سطر دوم انجام میده :
:redface:
Main:
Home Upper
Lcd " "
For A1 = 1 To 16
Locate 1 , A1
Call F16
Waitms 15
Next A1
Lowerline
Lcd " "
For A1 = 1 To 16
Locate 2 , A1
Call F16
Waitms 15
Next A1
jmp main
End 'end program
Sub F16
K = Getatkbd()
Select Case K:
Case 50:
Lowerline
Case 56:
Home
Case 44:
Cls
Home
Case 52:
Shiftcursor Left
Case 54:
Shiftcursor Right
Case 13:
Lowerline
Case 9:
Shiftcursor Right , 4
Case 8:
Shiftcursor Left
Lcd " ";
Shiftcursor Left
Case Else:
Lcd String(1 , K)
End Select
End Sub F16
Keydata:
'normal keys lower case
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 27 , 0 , 0 , 0 , 0 , 9 , 9 , &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
• و اما مشکلی که برام پیش اومده اینه که کلیدهای del / Bk Sp و F1 و .... کار نمی کنند و برنامه من فقط اسکن حروف ها رو انجام میده .
• کلیدهایی مثل Del و بالا و پایین یا حتی کلید enter وقتی زده می شود مکانما یک کاراکتر جلو می رود.
• و وقتی دکمه Shift هم میزنم باز مکانما یک کاراکتر جلو می رود و بعد از آن تمامی حروف فقط بزرگ چاپ می شوند تااینکه تغذیه AVR رو قطع و وصل کنم.
:twisted:
ممنون میشم اگه بهم کمک کنید .
موفق باشید
دیدگاه