BASCOM-8051 Overview

From MCS Wiki
Jump to: navigation, search
8051 logo n.png

BASCOM-8051© is the Windows BASIC COMPILER for the 8051 family.
It is designed to run on XP/VISTA/WIN7/WIN8 and has all the features of BASCOM LT.
In addition it has full support for arrays and the single floating point data type.

Key Benefits

  • Structured BASIC with labels.
  • Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.
  • Fast machine code instead of interpreted code.
  • Variables and labels can be as long as 32 characters.
  • Bit, Byte, Integer, Word, Long, Single and String variables.
  • Compiled programs work with any 8051 uP such as AT89C1051, AT89C2051, 8031, 8032, 8051, 8052, 80552, 80535 and 80537  Processors.
  • Statements are highly compatible with Microsoft’s VB/QB.
  • Special commands for LCD-displays , I2C chips and 1WIRE chips.
  • Integrated terminal emulator with download option.
  • Integrated simulator for testing.
  • Integrated flash programmer and support for SPI, PG2051, PG302, SE512, SE514, TAFE. (hardware can be purchased separately)
  • Editor with statement highlighting.
  • Context sensitive help.
  • For compatibility with BASCOM LT, there is also a 32-bit version of the BASCOM LT compiler.




The following statements are supported:

Decision and structures
IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.

Input and output
PRINT, INPUT, INKEY, PRINTHEX, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, LCDHEX, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT.

Numeric functions
AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD.

I2C
I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.

1WIRE
1WWRITE, 1WREAD, 1WRESET.

SPI
SPIINIT, SPIIN, SPIOUT.

Interrupt programming
ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, PRIORITY SET/RESET, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.

Bit manipulation
SET, RESET, ROTATE, BITWAIT.

Variables
DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.

Miscellaneous
REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, GETRC5.

Compiler directives
$INCLUDE, $NOINIT, $BAUD and $CRYSTAL, $OBJ, $SERIALINPUT, $SERIALOUTPUT, $ROMSTART, $RAMSIZE, $RAMSTART, $MONSTART, $IRAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD.

Conditional compilation
#IF, #ELSE, #ENDIF

String manipulation
STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LCASE, UCASE




To make a program takes just a few steps :

  • Write the program in BASIC
  • Compile it to fast machine binary code
  • Test the result with the integrated simulator (with additional hardware you can simulate the hardware too)
  • Program the chip with one of the integrated programmers (hardware must be purchased separately)




The 8051 processor is included in many special chips.  BASCOM creates standard 8051 object code. So the object code can run on any 8051 compatible processor.

While we offer so called DAT files for many processors, it is impossible to write a DAT file for all the 8051 variants. The DAT files are however easy to make. They contain the hardware register names with their address.

The only thing you need to take care about is that some processors have modified instruction cycles. This means that these processors execute code faster than a normal 8051. This can effect some statements like WAITMS, WAIT, DELAY and other software timed instructions.



IDE Overview


BASCOM-8051 IDE

8051 desc ide.png


BASCOM-8051 Simulator

8051 desc sim1.png


8051 desc sim2.png



BASCOM-8051 Programmer

8051 desc prog.png



BASCOM-8051 Graphic converter

8051 desc graph.png



Personal tools
Namespaces
Variants
Actions
Navigation
Language