Microchip Certified Training - PIC16/PIC12 Intermediate Workshop using Assembly Code — A 4 day course

contact usEnquire about this course


This hands-on course aims to provide engineers involved in product design with a detailed understanding of the features of the high-end PIC16C / PIC16F family of microcontrollers, and how to use the on-chip peripherals to create simple interfaces to real-world devices.

It will also explain how the linker provided with the Microchip development tools enables relocatable code modules to be created which can be re-used across multiple projects.

The course includes many practical workshop exercises which are interleaved with the relevant presentation material for maximum impact and variety. These exercises are carried out using MPLAB software running on a Windows PC, an ICD programmer/debugger and a target development board containing a PIC16C / PIC16F microcontroller on which programs created during the exercises can be observed to be running in real-time.


This course will enable delegates with the following skills:


Overview of Microchip, PIC16 and PIC12 Architectures and Development Tools

Op-codes and addressing modes: immediate, direct, indirect, PC absolute and PC relative

Classes of operations performed by op-codes

Interrupt model and how to create interrupt service routines

On-chip peripherals: overview and detailed description

Special features: e.g., clock options, sleep mode, watchdog timer, brown-out detection

The MPLAB Linker

Overview of MPLINK and its relationship to the other MPLAB components

Use of linker scripts, command files and map files

Linker directives

Allocation of sections for relocatable code

Global and external declarations

Macros and macro assembler programming

Program specification and design using Pseudocode and Flowchards

Conversion of Pseudocode and Flowcharts into assembler code

Modular approaches to assembly language programming

Structured approaches to multi-tasking in assembler - polling approaches, interrupt driven approaches, hybrid approaches.

Finite State Machines and their implementation in assembler.

Exercises include:

Suitable For

This course is aimed at engineers who are familiar with the baseline PIC16 / PIC12 architecture and wish to extend their knowledge of the capabilities of the higher-end micro-controllers as well as mastering more advanced structure assembly programming techniques.


Experience of assembly language programming is assumed, as well as familiarity with the Windows environment on a Personal Computer. Some knowledge of electronics will be advantageous for an understanding of the more advanced concepts presented during this course.