Parallax, Inc.

PBASIC Instruction Set

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.

BS1-IC Indicates instruction is only available on BASIC Stamp D and BS1-IC.
BS2-IC Indicates instruction is only available on BS2-IC.

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
BS1-IC 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.
BS2-IC SHIFTIN Shift bits in from parallel-to-serial shift register.
BS2-IC SHIFTOUT Shift bits out to serial-to-parallel shift register.
BS2-IC COUNT Count cycles on a pin for a given amount of time (0 to 125 kHz, assuming 50/50 duty cycle).
BS2-IC 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.
BS1-IC POT Read a 5 to 50K potentiometer and scale result.
BS2-IC RCTIME Measure an RC charge/discharge time. Can be used to measure potentiometers (faster than POT on Stamp D and BS1-IC).
SOUND
BS2-IC FREQOUT Generate one or two sine waves of specified frequencies (each from 0 to 32767 Hz).
BS2-IC DTMFOUT Generate DTMF telephone tones.
BS1-IC SOUND Play notes. Note 0 is silence, notes 1 to 127 are ascending tones, and notes 128 to 255 are white noises.
EEPROM ACCESS
BS2-IC DATA Store data in EEPROM before downloading BASIC program (BS2-IC).
BS1-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.
Back to the Parallax, Inc. home page.
Please send your comments about our website to the Parallax Webmaster
© Parallax, Inc.