ايران ويج

نسخه‌ی کامل: مشکل در برنامه ی تایپ با کیپد 4×4
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام به همگی
چند وقتیه روی برنامه ی شبیه سازی تایپ(فقط حروف انگلیسی) با کیپد 4×4 روی ATMGA32 کار می کنم.
روش کار هم اینه:
{
کلید های 1 تا 9 در کیپد مثل کیپد نوکیا حروف را دربر دارند با این تفاوت که الفبای انگلیسی + فاصله به طور همگن بین 9 کلید کیپد تقسیم بندی شده اند و با فشردن (مثلا) کلید 1 در خط دوم ال سی دی (باید!) حروف a-b-c نمایش داده شوند تا کاربر با انتخاب حرف مورد نظر بوسیله ی فشردن کلید های 1 تا 3 آنرا در خط اول ال سی دی تایپ کند(locate 1,1)}
اما نمی دونم اشکال کار کجاست که وقتی دکمه ای از کیپد رو می زنم به جای نمایش 3 تا حرف یک سطر نشون میده. اگه به برنامه و عکس نگاه کنید متوجه می شین.

[img][تصویر:  th.d1c09bde1c.jpg][/img]

کد php:
$regfile "m32def.dat"
Declare Function Getkey(byval Value As Integer )as Integer
$crystal 
16000000
Config Lcdpin 
Pin Db4 Portb.1 Db5 Portb.2 Db6 Portb.3 Db7 Portb.4 Portb.5 Rs Portb.6
Config Lcd 
16 2
Config Kbd 
Portc Debounce 50 Delay 10

Dim Key 
As Integer Key_0 As Integer Modd As Boolean S_key As Integer T1 As Integer T2 As Integer T3 As Integer Tmpp As Integer

Dim A_b 
As String 27
Dim Ab
(27) As String 1


A_b 
"AbcDefGhiJklMnoPqrStuVwxYz "




Main:

For 
Tmpp 1 To 27

 Ab
(tmpp -1) = Mid(a_b Tmpp 1)

Next Tmpp

Do

 
Waitms 15
 
If Modd 0 Then

 S_key 
Getkbd()
 If 
S_key <> 16 Then
 Modd 
1
 Key_0 
Getkey(s_key)
 
Locate 2 1
 T1 
Key_0 1
 T2 
T1 3
 T3 
T2 2

 
For Tmpp T2 To T3

 Lcd Ab
(tmpp) ; "-"

 
Next Tmpp
 End 
If

 Else

 
S_key Getkbd()
 If 
S_key <> 16 Then
 Modd 
0
 Key 
Getkey(s_key)
 
Locate 2 1
 Lcd 
" "
 
Locate 1 1

 T1 
Key_0 1
 T2 
T1 3
 T3 
T2 Key

 Lcd Ab
(t3)

 
End If

 
End If
Loop

End



Function Getkey(byval Value As Integer )as Integer
 Local Rtn 
As Byte

 
If Value And <= Value Then
 Rtn 
Value 1
 End 
If

 If 
Value And Value 7 Then
 Rtn 
Value
 End 
If
 If 
Value And Value 11 Then
 Rtn 
Value 1
 End 
If
 
Select Case Value
 
Case 3
 Rtn 
255
 
Case 7
 Rtn 
254
 
Case 11
 Rtn 
253
 
Case 15
 Rtn 
252
 
Case 12
 Rtn 
200
 
Case 13
 Rtn 
0
 
Case 14
 Rtn 
199

 End Select
 
If Value 16 Then
 Rtn 
111
 End 
If
 
Getkey Rtn
End 
Function 
مهندس میشه بگی تو برنامه چی کار کردی و روش کارت به چی صورت بوده !

آخه از برنامت فقط خودت سر در میاری !!!
(۰۱-اسفند-۱۳۸۸, ۰۱:۴۰:۲۳)t3r!p3000 نوشته است: [ -> ]مهندس میشه بگی تو برنامه چی کار کردی و روش کارت به چی صورت بوده !

آخه از برنامت فقط خودت سر در میاری !!!

ببخشید.
من به طور تجربی برنامه نویسی رو یاد گرفتم (با چند تا کتاب) ....
اما یه خبر خوش => تونستم درستش کنم .
اینم کد برنامه (گفتم شاید به درد بعضی ها بخوره)

کد php:
$regfile "m32def.dat"
Declare Function Getkey(byval Value As Integer )as Integer
$crystal 
16000000
Config Lcdpin 
Pin Db4 Portb.1 Db5 Portb.2 Db6 Portb.3 Db7 Portb.4 Portb.5 Rs Portb.6
Config Lcd 
16 2
Config Kbd 
Portc Debounce 50 Delay 10
Dim S 
As String 13
Dim Key 
As Integer Key_0 As Integer Tmp As String 16 Modd As Boolean S_key As Integer T_ab As String T_ab1 As String Lng As Integer
Dim T1 
As Integer T2 As Integer T3 As Integer

Dim A_b 
As String 27
Dim Ab
(27) As String 1
Dim Tmpp 
As Integer

A_b 
"AbcDefGhiJklMnoPqrStuVwxYz "

Main:
Locate 1 1
For Tmpp 1 To 10

 Ab
(tmpp -1) = Mid(a_b Tmpp 1)
 
Lcd Ab(tmpp -1)
Next Tmpp



Goto Main

End



Function Getkey(byval Value As Integer )as Integer
 Local Rtn 
As Byte

 
If Value And <= Value Then
 Rtn 
Value 1
 End 
If

 If 
Value And Value 7 Then
 Rtn 
Value
 End 
If
 If 
Value And Value 11 Then
 Rtn 
Value 1
 End 
If
 
Select Case Value
 
Case 3
 Rtn 
255
 
Case 7
 Rtn 
254
 
Case 11
 Rtn 
253
 
Case 15
 Rtn 
252
 
Case 12
 Rtn 
200
 
Case 13
 Rtn 
0
 
Case 14
 Rtn 
199

 End Select
 
If Value 16 Then
 Rtn 
111
 End 
If
 
Getkey Rtn
End 
Function 
اشکال برنامه توی تبدیل نوع داده ها بود.
سلام؟

میشه یه برنامه با زبان بیسیک بهم بگید تا بتونم یه موتور سروو را با 1کیبرد سروو راه اندازی کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟خواهش میکنم خیلی به این برنامه نیاز دارم؟؟؟؟؟؟یعنی وقتی به کیبرد زاویه 45 میدم موتور سروو زاویه 45 بهم نشون بده؟؟؟؟؟؟؟؟؟؟
لطفا شبیه سازی برنامتون در پرتئوس هم بذارید .. ممنون