PIC16F Intermediate (Assembly)
Course
In Carshalton
Description
-
Type
Workshop
-
Location
Carshalton
-
Duration
3 Days
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. Suitable for: This course is aimed at engineers who are familiar with the baseline PIC16C / PIC16F architecture and wish to extend their knowledge of the capabilities of the high-end PIC16FXXX parts. 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.
Facilities
Location
Start date
Start date
Reviews
Course programme
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.
Key Skills
- Gain a detailed understanding of the features of the PIC16C / PIC16F family of microcontrollers
- Obtain hands-on experience with the use of on-chip peripherals for applications such as timing, digital control, analogue input, pulse width modulation, event capture and serial communication.
- Be introduced to the use of the linker to create relocatable code modules
Practical Work
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.
Exercises include:
- Create, build and debug projects on the development board using MPLAB® and the ICD
- Switch LEDs and other loads on and off using digital outputs
- Read an external keypad using "wake-up from sleep" mode on Port B digital inputs *
- Display information on an LCD module
- Create a real-time clock display using timers and interrupts
- Read the values of analogue inputs using the A-to-D converter
- Collect data in the background using an interrupt handler routine
- Set up a Pulse Width Modulation (PWM) output with a variable duty cycle *
- Measure the period of a pulse train using the capture/compare module *
- Communicate with a PC over a serial interface using the USART peripheral
- Calculate a checksum for program memory using the self-read capability
Course Contents
Microchip Overview
- Market profile
- Product range
- Key advantages and support network
- Microchip development software: MPLAB®, MPSIMTM and associated tools
- Microchip In-Circuit Debugger (ICD) and In-Circuit Emulator (ICE) hardware
- Device programmers, and the design option of In-Circuit Serial Programming (ICSPTM)
- Demonstration boards and kits
- Third-party development tools
- Harvard versus Von Neumann architecture
- Design features: word length, pipelining and single-cycle execution
- Organisation of program and data memory
- 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
- Overview of MPLINKTM 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
PIC16F Intermediate (Assembly)