'nappis.osc 'Näppäimistön liittäminen OOPiciin ja oKeypad-olion käyttö ' 'Copyright Dennis Clark 2003 'Permission is granted to use this code any way you like 'as long as you say you got it from me. ' 'Pohjautuu Dennis Clarkin kirjan Programming and customizing 'the OOPic microcontroller koodiin. ' 'Esutech Oy:n 12-näppäimisen näppäimistön kytkentä OOPiciin, 'I/O-linja 15 jätetään käyttämättä 'Pinni I/O-linja ' K(Y1) 8 ' J(Y2) 9 ' H(Y3) 10 ' G(Y4) 11 ' F(X1) 12 ' E(X2) 13 ' D(X3) 14 Dim LCD as New oLCD Dim KBD as New oKeyPad Dim encode as New oEvent Dim wire as New oWire Sub Main() 'LCD-näyttö kytkettynä www.esutech.com-sivuilla olevan esimerkin mukaan 'LCD initialization LCD.IOLineRS = 27 'RS line to the LCD module LCD.IOLineE = 26 'E line to the LCD module LCD.IOGroup = 3 'I/O lines 28-31 (pins 32-26) LCD.Nibble = 1 'Upper nibble LCD.Operate = cvTrue OOPic.delay = 3 LCD.Init LCD.Clear LCD.Locate(0,0) LCD.String = "OOPic Events" LCD.Locate(1,0) OOPic.delay = 300 'oKeypad käyttää I/O linjoja 8-15 rivi/sarake -matriisiin. 'I/O linjat 8-11 ovat rivit ja I/O linjat 12-15 ovat sarakkeet. KBD.Operate = cvTrue 'Not much to configure 'Virtuaalipiiri huolehtii tapahtuman generoinnista näppäintä painettaessa wire.Input.Link(KBD.Received) 'tulona näppäimen painallustapahtuma wire.Output.Link(encode.Operate) 'aiheuttaa encode-tapahtuman generoinnin wire.Operate = cvTrue End Sub Sub encode_CODE() 'Tähän tulee näppäimistön käsittelyrutiini. Riippuen painetusta 'näppäimestä tulostetaan näyttöön jotain tai tehdään jokin 'operaatio. Kaikki riippuu ohjelmoijan mielikuvituksesta. 'Palautettu arvo on (((rivi-1)*4)+(sarake-1)) Select Case KBD case 0 LCD.String = "1" case 1 LCD.String = "2" case 2 LCD.String = "3" case 3 '12-näppäimisessä ei ole neljättä saraketta case 4 LCD.String = "4" case 5 LCD.String = "5" case 6 LCD.String = "6" case 7 '12-näppäimisessä ei ole neljättä saraketta case 8 LCD.String = "7" case 9 LCD.String = "8" case 10 LCD.String = "9" case 11 '12-näppäimisessä ei ole neljättä saraketta case 12 LCD.String = "*" case 13 LCD.String = "0" case 14 LCD.String = "#" case 15 '12-näppäimisessä ei ole neljättä saraketta End Select End Sub