Microchip Certified Training - PIC16/PIC12 Foundation Workshop using Assembly Code — A 3 day course
This hands-on course aims to provide engineers with an understanding of the PIC16/PIC12 families of microcontrollers and experience of using Microchip development tools to create and debug simple assembly language programs.
The emphasis is on providing a solid foundation of knowledge of the architecture and features of this range of microcontrollers, together with practical experience of the development tools and the steps required to embark on a new development.
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 MPLAB® ICD2 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:
- Understand the architecture and features of the PIC16/PIC12 families of microcontrollers
- Gain hands-on experience of Microchip development tools for creating and debugging assembly language programs on a target PIC16C / PIC16F microcontroller
- Be introduced to the use of on-chip peripherals to simplify interfaces to the outside world
Overview of Microchip and the PIC16 / PIC12 family of micro-controllers
Overview of Development Tools
- Microchip development software: MPLAB, MPSIM and associated tools
- Microchip In-Circuit Debugger (MPLAB ICD2) and In-Circuit Emulator (ICE) hardware
- Device programmers, and the design option of In-Circuit Serial Programming (ICSP)
- The PIC16 and PIC12 Architecture and Instruction Set
- Harvard versus Von Neumann architecture
- Organisation of program and data memory
- Op-codes and addressing modes: immediate, direct and indirect
- On-chip peripherals and interrupts
- Classes of operations performed by op-codes
- The MPASM Assembler
- Assembler directives and op-codes
- Programming style - use of templates and comments
- Debugging assembly code using MPLAB, MPSIM and MPLAB ICD2
- Interrupt service routines - how to create handlers using assembly code
- Basic multi-tasking using polling, interrupt driven and hybrid approaches.
Laboratory Workshops Include:
- Programme object code into a target PIC16 / PIC12 microcontroller using MPLAB and MPLAB ICD2
- Create, build and debug new assembly language projects using MPLAB and MPLAB ICD2
- Use MPSIM to simulate and debug code prior to programming it into a target device
- Understand the components of an assembly source file
- Set the PIC16/PIC12 configuration options appropriately for the target system
- Use digital I/O ports to interact with the outside world
- Manipulate data memory using direct and indirect addressing
- Create time delays using software loops and hardware timers
- Take advantage of interrupts to handle events in the background
- Jump and call routines across pages in program memory
- Use PC-relative addressing to implement look-up tables
- Implement robust design techniques to protect against malfunctions
This course is aimed at engineers with some understanding of microelectronics and programming who are new to the PIC16C / PIC16F architecture, or wish to fill in gaps in their knowledge.
Familiarity with the Windows environment on a Personal Computer, and with fundamental concepts such as bits, bytes, Boolean logic and addressing is assumed.
Some experience of assembly language on microprocessors or other microcontrollers will be useful background for an understanding of the more advanced concepts presented during this course.