$regfile = "m16def.dat"
'internal 1mhz rc osc is default
$crystal = 100000
Config Timer2 = Timer , Prescale = 1024
Dim A(10) As Byte , B(10) As Byte , C(10) As Byte , D(10) As Byte , Kbd As Byte , Z As Byte
Dim E(10) As Byte , F(10) As Byte , G(10) As Byte , H(10) As Byte , I(10) As Byte , J(10) As Byte
Dim L1 As Byte , M1 As Byte , N1 As Byte , O1 As Byte , P1 As Byte , Q1 As Byte , R1 As Byte , S1 As Byte , T1 As Byte , J1 As Byte
Config Lcdpin = Pin , Db4 = Pind.4 , Db5 = Pind.5 , Db6 = Pind.6 , Db7 = Pind.7 , _
Rs = Pind.2 , E = Pind.3
Config Lcd = 16 * 2
Config Kbd = Portc , Debounce = 1 , Delay = 1
Declare Sub Subno1
Main7:
Cls
Lcd " WELCOME"
Wait 30
Cls : Lcd "NO Pt:1"
Locate 2 , 1 : Lcd "Press 1-0"
Z = 1
A(z) = 0
B(z) = 0
C(z) = 0
D(z) = 0
E(z) = 0
F(z) = 0
G(z) = 0
H(z) = 0
I(z) = 0
J(z) = 0
No1:
'lcd a(1)
Kbd = Getkbd()
If Kbd > 15 Then Goto No1
Kbd = Lookup(kbd , Data_for_keyboard)
'Locate 2 , 1 : Lcd "T = " : Lcd T1
If Kbd = 1 Then : Incr A(z)
'waitms 100
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M1 = " : Lcd A(z) : Goto No1
End If
If Kbd = 2 Then : Incr B(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M2 = " : Lcd B(z) : Goto No1
End If
If Kbd = 3 Then : Incr C(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M3 = " : Lcd C(z) : Goto No1
End If
If Kbd = 4 Then : Incr D(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M4 = " : Lcd D(z) : Goto No1
End If
If Kbd = 5 Then : Incr E(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M5 = " : Lcd E(z) : Goto No1
End If
If Kbd = 6 Then : Incr F(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M6 = " : Lcd F(z) : Goto No1
End If
If Kbd = 7 Then : Incr G(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M7 = " : Lcd G(z) : Goto No1
End If
If Kbd = 8 Then : Incr H(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M8 = " : Lcd H(z) : Goto No1
End If
If Kbd = 9 Then : Incr I(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M9 = " : Lcd I(z) : Goto No1
End If
If Kbd = 0 Then : Incr J(z)
Call Subno1
Locate 2 , 1 : Lcd "T = " : Lcd T1 : Lcd " M0 = " : Lcd J(z) : Goto No1
End If
No2:
Incr Z
'If Z = 4 Then
'Cls
'Lcd A(1) : Lcd " " : Lcd A(2) : Lcd " " : Lcd A(3)
'End If
If Z = 3 Then
Wait 1
Cls : Lcd "NO Pt:3"
Locate 2 , 1 : Lcd "Press 1-0"
Jmp No1
End If
Wait 1
Cls : Lcd "NO Pt:2"
Locate 2 , 1 : Lcd "Press 1-0"
jmp no1
End
Subno1:
L1 = A(z) + B(z)
M1 = L1 + C(z)
N1 = M1 + D(z)
O1 = N1 + E(z)
P1 = O1 + F(z)
Q1 = P1 + G(z)
R1 = Q1 + H(z)
S1 = R1 + I(z)
T1 = S1 + J(z)
If T1 = 20 Then
Cls
Lcd "No Pt:1 = " : Lcd T1
jmp no2
End If
Return
'----------------------- DTAT LOOKUP TABLE -------------------------------------
Data_for_keyboard:
Data 1 , 2 , 3 , 10 , 4 , 5 , 6 , 11 , 7 , 8 , 9 , 12 , 13 , 0 , 14 , 15