G4USP

Page last updated: 01/11/2009

IAMBIC Keyer software:

    The software for the IAMBIC keyer, originally developed by Ed EI9GQ to run on a PIC16F84, has now been amended to run on a PIC12F509 device.

    MPLAB, a propriety integrated development environment (IDE), developed by Arizona Microchip and which can be downloaded free of charge from Arizona Microchip I found to be an invaluable tool. Intuitive in use, with its integrated linker and simulator, I believe hours if not days, will be shaved off the development time of any software written for the PIC series of microcontrollers.

    The assembly listing for IAMBIC keyer PIC12F509.asm can be found here, simply follow the link.

            Software description

    Open IAMBIC keyer PIC12F509.asm with MPLAB, or any text editing tool i.e. NOTEPAD if MPLAB is not available, however it is worth downloading and installing MPLAB as it formats the file in a way that makes it much easier to read.

    The assembly listing is organised and set out in a logical order, but a little further explanation of some sections / sub routines is in order:

include P12F509.inc: when MPLAB compiles and assembles IAMBIC keyer PIC12F509.asm the contents of P12F509.inc are included.  P12F509.inc simply contains common definitions i.e. ports and commonly used registers associated with the PIC12F509 microcontroller used for this IAMBIC keyer. Its contents could just as easily have been cut and pasted into IAMBIC keyer PIC12F509.asm but using the command include and the file name P12F509.inc makes for a less cluttered assembly listing.

system initialisation: as its name suggests system initialisation takes place here. Interrupts are disabled, timer and prescaler set up, I/O ports are configured, flags cleared, and Tx de-keyed.

primary delay loop: although all timing is ultimately derived from the controllers system clock, the relationship between DOT, DASH, and the system clock is formed here. 

main programme loop: once initialised the system proceeds to the main loop, from this point onwards everything is accessed from within the main loop.

 

BACK  HOME