کد php:
$regfile = "m16def.dat"
$crystal = 1000000
Config Kbd = Portd
Config Lcdpin = Pin , Rs = Pinc.0 , E = Pinc.1 , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinc.4 , Db7 = Pinc.5
Cursor Off : Config Lcd = 16 * 2 : 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