ايران ويج

نسخه‌ی کامل: گرفتن عدد دو رقمی و بیشتر از کیبرد
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
کد php:
$regfile "m16def.dat"
$crystal 1000000

Config Kbd 
Portd

Config Lcdpin 
Pin Rs Pinc.0 Pinc.1 Db4 Pinc.2 Db5 Pinc.3 Db6 Pinc.4 Db7 Pinc.5
Cursor Off 
Config Lcd 16 Cls

Dim Kbd 
As Byte
Dim Key 
As String 1
Dim Keys 
As String 8
Dim Vals 
As Long

Again
:
Do
Kbd Getkbd()
If 
Kbd >= 16 Then Goto Again
Key 
Lookupstr(kbd Keypad)

If 
Key "*" Then
Keys 
""
Cls Home Lcd "Clearing..."
Waitms 200
Goto Again
Elseif Len(keys) > 8 Then
Waitms 200
Goto Again
End 
If

Keys Keys Key
Cls 
Home Lcd Keys Waitms 200

'Vals = Val(keys)

Loop

Keypad:
Data "1" , "2" , "3" , ""
Data "4" , "5" , "6" , ""
Data "7" , "8" , "9" , ""
Data "*" , "0" , "" , "" 

این کد خیلی راحته
توضیحش هم گذاشتم

اعداد رو کنار هم میذاره
مثلا بار اول عدد 1
بار دوم عدد 4
و بار سوم عدد 5 زدیم به صورت 145 نشون میده که برای استفاده مانند ماشین حساب این کارکترها رو به عدد تبدیل کنیم که با دستور Val() این کار میکنیم

امیدورام به دردتون بخوره
موفق باشید ....
(۲۶-مرداد-۱۳۹۲, ۱۸:۲۹:۳۴)sinoo6 نوشته است: [ -> ]سلام خسته نباشین
من خواندن عدد 3 رقمی را اجرا کردم و ولی بد از زدن یکی دو رقم روی lcd اعداد عجیب قریب نشون میده
خودمم نفهمیدم مشکل از کجاست
میشه بگین مشکلش از کجاست؟

خوب ببین عدی که میدی از 255 بیشتره؟ چون احتمالا متغیرت از نوع بایته
سلام-من یه برنامه تو محیط cod vision دارم که یک عدد با استفاده از keypad روlcd نشون میده--اگه بخوامتو برنامم عدد دو رقمی بنویسه
تو برنامم باید چه تغیراتی بدم؟
سلام دوستان یه برنامه نوشتم قراره عدد سه رقمی از کیپد بگیره و بر رو 7seg نمایش بده مشکل داره نمیدونم ... میتونید کمک کنید؟؟؟
$regfile = "m32def.dat"
$crystal = 1000000
Config Kbd = Portd
Config Portb = Output
Ddra = 7
Dim Seg(16) As Byte , Yekan As Byte , Dahgan As Byte , Sadgan As Byte , Temp As Word
Dim A As Byte , Kbd As Word , Namber As Word , B As Byte , C As Byte , K As Byte
Seg(1) = &B01000000
Seg(2) = &B01111001
Seg(3) = &B00100100
Seg(4) = &B00110000
Seg(5) = &B00011001
Seg(6) = &B00010010
Seg(7) = &B00000010
Seg(8) = &B01111000
Seg(9) = &B00000000
Seg(10) = &B00010000
A = 0
B = 0
C = 0
Namber = 0
Do
Scan:
K = Getkbd()
If Kbd > 15 Then Goto Scan
Kbd = Lookup(k , Dat)
If Kbd > 999 Then Goto Scan
If A = 0 And B = 0 And C = 0 Then
   A = Kbd
Elseif A > 0 And B = 0 And C = 0 Then
   B = Kbd
Elseif A > 0 And B > 0 And C = 0 Then
   C = Kbd
Elseif A > 0 And B > 0 And C > 0 Then
   Namber = A * 10
   Namber = Namber + B
   Namber = Namber * 10
   Namber = Namber + C
Temp = Namber
Yekan = Temp Mod 10
Temp = Temp / 10
Dahgan = Temp Mod 10
Temp = Temp / 10
Sadgan = Temp Mod 10
Porta = &B00000011
Yekan = Yekan + 1
Portb = Seg(yekan)
Waitms 50
Porta = &B00000101
Dahgan = Dahgan + 1
Portb = Seg(dahgan)
Waitms 50

Porta = &B00000110
Sadgan = Sadgan + 1
Portb = Seg(sadgan)
Waitms 50
End If
Loop
Dat:
Data 7 , 4 , 1 , 1000 , 8 , 5 , 2 , 0 , 9 , 6 , 3 , 1000 , 1000 , 1000 , 1000 , 1000
صفحه‌ها: 1 2