The following gives a complete list of PBASIC commands for both versions of the Stamp. It does not include arithmetic or logical operators. Many enhancements were made to the PBASIC language with the release of the BASIC Stamp II and thus some commands only exist on one version of the BASIC Stamp. For more detailed information on the differences between PBASIC1 and PBASIC2, download the BASIC Stamp I to BASIC Stamp II Conversion document.
BRANCHING
| ||
IF . . .THEN | Compare and conditionally branch. | |
BRANCH | Branch to address specified by offset. | |
GOTO | Branch to address. | |
GOSUB | Branch to subroutine at address. | |
RETURN | Return from subroutine. | |
LOOPING
| ||
FOR . . . NEXT | Establish a FOR - NEXT loop. | |
NUMERICS
| ||
LET | Perform variable manipulation, such as A=5, B=A+2, etc. Possible operations are add, subtract, multiply, divide, max. limit, min. limit, and logical operations AND, OR, XOR, AND NOT, OR NOT, and XOR NOT. | |
LOOKUP | Lookup data specified by offset and store in variable. This instruction provides a means to make a lookup table. | |
LOOKDOWN | Find target's match number (0-N) and store in variable. | |
RANDOM | Generate a pseudo-random number. | |
DIGITAL I/O
| ||
INPUT | Make pin an input | |
OUTPUT | Make pin an output | |
REVERSE | If pin is an output, make it an input. If pin is an input, make it an output. | |
LOW | Make pin output low. | |
HIGH | Make pin output high. | |
TOGGLE | Make pin an output and toggle state. | |
PULSIN | Measure an input pulse. | |
PULSOUT | Output a timed pulse by inverting a pin for some time. | |
BUTTON | Debounce button, perform auto-repeat, and branch to address if button is in target state. | |
SHIFTIN | Shift bits in from parallel-to-serial shift register. | |
SHIFTOUT | Shift bits out to serial-to-parallel shift register. | |
COUNT | Count cycles on a pin for a given amount of time (0 to 125 kHz, assuming 50/50 duty cycle). | |
XOUT | Generate X-10 powerline control codes. For use with X-10 lamp and appliance control modules. | |
SERIAL I/O
| ||
SERIN | Serial input with optional qualifiers and variables for storage of received data. On the Stamp D and BS1-IC, baud rates of 300, 600, 1200, and 2400 are possible. On the BS2-IC, any baud rate (up to 50k baud) is possible. Also, the BS2-IC has a serial input time-out function. | |
SEROUT | Send data serially. On the Stamp D and BS1-IC, data is sent at 300, 600, 1200, or 2400 baud. On the BS2-IC, data is sent at any baud rate (up to 50k baud). | |
ANALOG I/O
| ||
PWM | Output PWM, then return pin to input. This can be used to output analog voltages (0 to 5 V) using a capacitor and resistor. | |
POT | Read a 5 to 50K potentiometer and scale result. | |
RCTIME | Measure an RC charge/discharge time. Can be used to measure potentiometers (faster than POT on Stamp D and BS1-IC). | |
SOUND
| ||
FREQOUT | Generate one or two sine waves of specified frequencies (each from 0 to 32767 Hz). | |
DTMFOUT | Generate DTMF telephone tones. | |
SOUND | Play notes. Note 0 is silence, notes 1 to 127 are ascending tones, and notes 128 to 255 are white noises. | |
EEPROM ACCESS
| ||
DATA | Store data in EEPROM before downloading BASIC program (BS2-IC). | |
EEPROM | Store data in EEPROM before downloading BASIC program (Stamp D and BS1-IC) | |
READ | Read EEPROM byte into variable. | |
WRITE | Write byte into EEPROM | |
TIME
| ||
PAUSE | Pause execution for 0 to 65536 milliseconds. | |
POWER CONTROL
| ||
NAP | Nap for a short period. Power consumption is reduced. | |
SLEEP | Sleep for 1 to 65535 seconds. Power consumption is reduced to 20 µA (Stamp D and BS1-IC) or 50 µA (BS2-IC). | |
END | Sleep until the power cycles or the PC connects. Power consumption is the same as SLEEP instruction. | |
PROGRAM DEBUGGING
| ||
DEBUG | Sends variables to PC for viewing. |