Crownhill Associates

Free Download

Proton Plus Compiler

PICBASIC PICmicro Compiler for the Proton Development Suite

The Microchip PIC microcontrollers are arguably the most commonly used microcontrollers available to date, mainly due to their availability and price. But let’s not forget their functionality as well. The large diversity of PIC microcontrollers, range from tiny 6-pin to huge 84-pin devices. Each type of microcontroller offers differing levels of on-board features. The smallest devices offer the ability to add some simple automation to a project, while the larger devices have the capabilities of a microprocessor system, offering much more than simple control.

The PROTON+ compiler takes full advantage of each type of PICmicro® available, and offers a friendly and intuitive language that allows very complex operations to be carried out with a minimum of fuss, and provides a flexibility and functionality that is unparalleled in the world of PICmicro® programming. The PROTON+ compiler is functionally compatible with the language of the Parallax BASIC Stamp modules and the PICBASIC Pro Compiler from microEngineering labs. This offers the beginner a comfortable and familiar environment to gently move into the world of PIC programming.

The Professional code developer will find PROTON+ offers a speedy route to market, producing Tight, Fast, Readable and Editable assembly code, commented throughout with its BASIC counterpart. While the new comer will find an easy language to work with that will produce results virtually from the moment it is installed on the PC.

The rich command set of the PROTON+ compiler allows easy interfacing to a whole host of exotic peripherals, such as ADC’s, Accelerometers, Serial Eeprom’s etc, the list is endless. In fact, it’s probably possible to interface to almost any peripheral on the market today.

The output of the compiler is 100% Microchip MPASM compatible and the resulting Hex file, COD, ERR and LST files can be used with Microchip™ Compatible programming tools and Programmers.

The compiler has built in commands to access the Philips I2C bus, Generic SPI, Dallas 1-wire bus, RS232/RS485 serial, X10, Compact Flash Memory Cards, and USB. It also has a whole host of commands that access the on-board features of the PICmicro such as ADC, USART, PWM, Timers, Interrupts etc.

The compiler has a subset of string handling capabilities, as well as 32-bit integer and floating point variables. Not to mention the bread and butter BIT (1-bit) , BYTE (8-bits) , and WORD (16-bit) type variables and arrays found in the Parallax Stamp module. It also has unrivalled data handling capabilities which are a must for more serious programming tasks.

Feature Rich

The compiler supports many feature rich high level commands that simply don't appear in lessor products, for example:

Download the Lite Edition including the full 400 page user guide to see for yourself just how powerful and flexible the compiler is.

PICmicro Support

The compiler supports most of the PICmicro range of devices, and takes full advantage of their various features e.g. The A/D converter in the 16F87x series, the data memory eeprom area in the16F84, the hardware multiply present on the 16-bit core devices etc. New device support is regularly added to the Compiler, in line with the availability of new devices from Microchip.

Supported Devices

The list of devices below is added to on a regular basis and is correct at the time of writing (11th May, 2007).

12-bit core OTP (One Time Programmable)

12C508, 12C508A, 12C509, 12C509A, 12CE518, 12CE519, 16C505, 16C54, 16C54A, 16C54B, 16C54C, 16C55, 16C55A, 16C56, 16C56A, 16C57, 16C57C, 16C58A,16CR56, 16CR57A, 16CR57B, 16CR58A, 16CR58B, 16CR58C

12-bit core FLASH (Re-Writable)

10F200, 10F202, 10F204 , 10F206, 10F220, 10F222, 12F508, 12F509, 16F54, 16F57, RF509AF, RF509AG

14-bit core OTP (One Time Programmable)

16C554, 16C554A, 16C558, 16C558A, 16C61, 16C62, 16C620, 16C620A, 16C621, 16C621A, 16C622, 16C622A, 16C62A, 16C62B, 16C63, 16C63A, 16C64, 16C641, 16C642, 16C64A, 16C65, 16C65A, 16C65B, 16C66, 16C661, 16C662, 16C67, 16C71, 16C710, 16C711, 16C712, 16C715, 16C716, 16C71A, 16C72, 16C72A, 16C73, 16C73A, 16C73B, 16C73C, 16C74, 16C745, 16C74A, 16C76, 16C765, 16C77, 16C770, 16C771, 16C773, 16C774, 16CE625, 16CR620A

14-bit core FLASH (Re-Writable)

12C671, 12C672, 12CE673, 12CE674, 12F629, 12F635, 12F675, 12F683, 16C84, 16CR84, 16F627, 16F627A, 16F628, 16F628A, 16F630, 16F648A, 16F676, 16F684, 16F685, 16F687, 16F688, 16F689, 16F690, 16F716, 16F72, 16F73, 16F737, 16F74, 16F747, 16F76, 16F767, 16F77, 16F777, 16F785, 16F818, 16F819, 16F83, 16F84, 16F84A, 16F87, 16F870, 16F871, 16F872, 16F873, 16F873A, 16F874, 16F874A, 16F876, 16F876A, 16F877, 16F877A, 16F88, 16F883, 16F884, 16F886, 16F887, 16F913, 16F914, 16F916, 16F917, RF675F, RF675H, RF675K

16-bit FLASH (Re-Writable)

18F1220, 18F1320, 18F2220, 18F2320, 18F2331, 18F2410, 18F242, 18F2431, 18F2439, 18F2455, 18F248, 18F24J10, 18F2510, 18F2515, 18F252, 18F2520, 18F2525, 18F2539, 18F2550, 18F258, 18F2580, 18F2585, 18F2610, 18F2620, 18F2680, 18F4220, 18F4320, 18F4331, 18F4410, 18F442, 18F4431, 18F4439, 18F4455, 18F448, 18F44J10, 18F4510, 18F4515, 18F452, 18F4520, 18F4525, 18F4539, 18F4550, 18F458, 18F4580, 18F4585, 18F45J10, 18F4610, 18F4620, 18F4680, 18F6310, 18F6390, 18F6410, 18F6490, 18F6520, 18F6525, 18F6585, 18F6620, 18F6621, 18F6622, 18F6627, 18F6680, 18F66J10, 18F6720, 18F6722, 18F8310, 18F8390, 18F8410, 18F8490, 18F8520, 18F8525, 18F8585, 18F8620, 18F8621, 18F8627, 18F8680, 18F8720, 18F8722

 

Limited 12-bit Device Compatibility.

The 12-bit core PICmicro microcontrollers have been available for a long time, and are at the heart of many excellent, and complex projects. However, with their limited architecture, they were never intended to be used for high level languages such as BASIC. Some of these limits include only a two-level hardware stack and small amounts of general purpose RAM memory. The code page size is also small at 512 bytes. There is also a limitation that calls and computed jumps can only be made to the first half (256 words) of any code page. Therefore, these limitations have made it necessary to eliminate some compiler commands and modify the operation of others.

While many useful programs can be written for the 12-bit core PICmicros using the PROTON+ Compiler, there will be some applications that are not suited to these devices. Choosing a 14-bit core device with more resources will, in most instances, be the best solution.