DEVICE 16F628A ; Pic type. CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF ALL_DIGITAL TRUE ; Alle ingangen digitaal. 'Declares lcd_rspin porta.4 lcd_enpin porta.3 lcd_lines 2 delayms 500 Cls 'Symbols Symbol Lcd_Length = 15 'Dim's Dim Toets As byte Dim BepaaldeToets As Byte Dim Teken [96] As Byte Dim AantalIndrukken As Byte Dim VorigeToets As Byte Dim AantalTekens As Byte Clear 'Array Codes Teken[0] = "a" Teken[1] = "b" Teken[2] = "c" Teken[3] = "d" Teken[4] = "e" Teken[5] = "f" Teken[6] = "g" Teken[7] = "h" Teken[8] = "i" Teken[9] = "j" Teken[10] = "k" Teken[11] = "l" Teken[12] = "m" Teken[13] = "n" Teken[14] = "o" Teken[15] = "p" Teken[16] = "q" Teken[17] = "r" Teken[18] = "s" Teken[19] = "t" Teken[20] = "u" Teken[21] = "v" Teken[22] = "w" Teken[23] = "x" Teken[24] = "y" Teken[25] = "z" Teken[26] = "A" Teken[27] = "B" Teken[28] = "C" Teken[29] = "D" Teken[30] = "E" Teken[31] = "F" Teken[32] = "G" Teken[33] = "H" Teken[34] = "I" Teken[35] = "J" Teken[36] = "K" Teken[37] = "L" Teken[38] = "M" Teken[39] = "N" Teken[40] = "O" Teken[41] = "P" Teken[42] = "Q" Teken[43] = "R" Teken[44] = "S" Teken[45] = "T" Teken[46] = "U" Teken[47] = "V" Teken[48] = "W" Teken[49] = "X" Teken[50] = "Y" Teken[51] = "Z" Teken[52] = "." Teken[53] = "," Teken[54] = "?" Teken[55] = "!" Teken[56] = "@" Teken[57] = "€" Teken[58] = "$" Teken[59] = "%" Teken[60] = "^" Teken[61] = "&" Teken[62] = "~" Teken[64] = ")" Teken[65] = "(" Teken[66] = "-" Teken[67] = "_" Teken[68] = "=" Teken[69] = "+" Teken[70] = "\" Teken[71] = "|" Teken[72] = "[" Teken[73] = "]" Teken[74] = "{" Teken[75] = "}" Teken[76] = ":" Teken[77] = ";" Teken[78] = "/" Teken[79] = "<" Teken[80] = ">" Teken[81] = """ Teken[82] = "`" Teken[83] = " " Teken[84] = "1" Teken[85] = "2" Teken[86] = "3" Teken[87] = "4" Teken[88] = "5" Teken[89] = "6" Teken[90] = "7" Teken[91] = "8" Teken[92] = "9" Teken[93] = "*" Teken[94] = "0" Teken[95] = "#" 'Programma While 1=1 Gosub OphalenToets If BepaaldeToets = VorigeToets Then Inc AantalIndrukken If AantalIndrukken >9 Then AantalIndrukken = 0 Else Inc AantalTekens AantalIndrukken = 0 VorigeToets = BepaaldeToets End If Gosub VertaalToetsNaarTeken Gosub TekenOpLcd Wend OphalenToets: Repeat BepaaldeToets = inkey, If BepaaldeToets <> 16 Then DelayMS 50 While InKey <> 16: wend DelayMS 10 End If Until BepaaldeToets <> 16 Return VertaalToetsNaarTeken: select BepaaldeToets case 0: Toets = Lookup AantalIndrukken, ["52,53,54,55,76,77,81,82,72,73,84"] Case 1: Toets = LookUp AantalIndrukken, [0,1,2,26,27,28,85] Case 2: Toets = LookUp AantalIndrukken, [3,4,5,29,30,31,86] Case 3: Toets = Lookup AantalIndrukken, [6,7,8,32,33,34,87] case 4: Toets = LOOKUP AantalIndrukken, [9,10,11,35,36,37,88] Case 5: Toets = Lookup AantalIndrukken, [12,13,14,38,39,40,89] case 6: Toets = Lookup AantalIndrukken, [15,16,17,18,41,42,43,44,90] case 7: Toets = Lookup AantalIndrukken, [19,20,21,45,46,47,91] case 8: Toets = Lookup AantalIndrukken, [22,23,24,25,48,49,50,51,92] case 9: Toets = Lookup AantalIndrukken, [56,57,58,59,60,61,62,68,69,93] case 10: Toets = Lookup AantalIndrukken, [82,94] case 11: Toets = Lookup AantalIndrukken, [63,64,65,66,67,70,71,74,75,78,79,80,95] Endselect TekenOpLcd: If AantalTekens=0 Then Inc AantalTekens Print at 2,aantaltekens, Toets Return