- Name:
- kbin
- Syntax:
-
KBIN variable KBIN [timeout], variable
KBIN [timeout, address],variable
KBIN #variable
KBIN [timeout], #variable
KBIN [timeout, address], #variable
Variable - receives the key
Timeout - is a variable/constant which sets the timeout period in milliseconds
Address - is a label which specifies where to go if a timeout occurs.
- Description:
-
Wait until a new keyboard press is received.
This command is similar to the keyin command found on older PICAXE parts, but also includes a timeout option.
This command is used to wait for a new key press from a computer keyboard (connected directly to the PICAXE - not the keyboard used whilst programming, see keyled in the manual command for connection details). All processing stops until the new key press is received, but program flow will jump to address after the timeout period. The value of the key press received is placed in the variable.
Note the design of the keyboard means that the value of each key is not logical, each key value must be identified from the table (see keyin command). Some keys use two numbers, the first $E0 is ignored by the PICAXE and so keyvalue will return the second number. Note all the codes are in hex and so should be prefixed with $ whilst programming. The PAUSE and PRNT SCRN keys cannot be used reliably as they have a special long multi-digit code. Also note that some keys may not work correctly when the 'Nums Lock' LED is set on with the keyled command.
To overcome some of these issues the #variable option has been added to M2 parts. In this case the ASCII character of the keyboard letter is loaded into the variable. Unsupported characters like 'Ctrl' will get an ASCII "?" returned. For older parts the sample file 'keyin.bas' (installed in the \samples folder) provides details on how you can convert the key presses into ASCII characters by means of a look up table.
Effect of Increased Clock Speed
This command will automatically use the internal 4MHz resonator for correct operation.
18M2 Firmware
Please note the 'kbin' command is only supported for 18M2 firmware D.x (PICAXE chips labelled 18M2+) and is not available for use with 18M2 firmware 2.x (PICAXE chips labelled 18M2).
The PICAXE compiler will syntax check code for an 18M2 as correct when using the 'kbin' command but will generate an error when an attempt is made to download into an 18M2 with firmware 2.x.
Keyboard interface connections
KB Data KB Clock 14M2 C.1 C.2 18M2+ C.7 C.6 20M2 C.1 C.2 20X2 C.1 C.2 28X2, 28X1 C.7 C.6 40X2, 40X1 D.7 D.6
- Applies To:
- 14M2, 18M2+, 20M2, 20X2, 28X1, 28X2, 40X1, 40X2
- See Also:
- Related Create:
Keyboard toggling a LED
When a key is pressed which has keycode value $25 a LED on output B.1 is turned on, and turned off when a key is pressed which has keycode value $45.
- Code Example:
-
main: kbin [1000,main],b1 if b1= $25 then high b.1 end if if b1 = $45 then low b.1 end if goto main
Copy Code Submit an Example
Submit Your Own Code!
You must be logged in to submit code examples. Login now.