Microcontrollers: From Assembly Language to C Using the PIC24 Family

This site introduces students, educators, and hobbyists
to the capabilities of a powerful modern microcontroller, the MicrochipPIC24.

Microcontrollers: From Assembly Language to C Using the PIC24 Family
covers a broad range of topics in a straightforward, conversational
style accessible to students and hobbyists alike. Topics include PIC24 assembly language programming and hardware interfacing using the C language. The text introduces the PIC24 library collection and contains an
extensive set of examples carefully explained in
the text. The
text then presents ESOS, a low-overhead operating system for the PIC24
and provides a capstone design chapter in which the designs of an audio record/playback system, reflow
oven and a remote-controlled robot are presented. The book is available from Delmar Learning. A video tutorials page is also available that contains selected topics from the book.

The
PIC24 library collection accompanying the text provides a
tested, well-documented set of libraries illustrated by numerous examples which simplify many common programming tasks for the PIC24. The getting started guide provides all
information necessary to get your PIC24 system up and running. With an
operational system, the PIC24 support libraryprovides support for all major subsystems of the PIC24. The ESOS
library contains a low-overhead, cooperative OS.

The
ECE3724 course on microprocessors features on-line lecture notes and lab
experiments which cover major portions of the text, including four
assembly labs and 6 hardware labs, including experiments with a digital
thermometer and fan speed control.

9-Jul-2013: A new, beta release containing major updates to the code archive in the PIC24 library collection is available, featuring preliminary MPLAB X support, redesigned GPIO macros, and much more. See the release notes for more details.

15-Aug-2012: There are more video lectures available for our ECE3724 course and more will be added as the Fall 2012 semester progresses.

22-Mar-2012: The code archive has been updated to provide initial support for the PIC24E/dsPIC33E families, as well as some some bug fixes and cleanup. See the release notes for more details. This page discusses some of the differences between the PIC24H and PIC24E families.

8-Apr-2011: The code archive is updated with a number of improvements and some significant changes. The common/, include/, and lkr/ directories have been moved to lib/common/, lib/include/, and lib/lkr/. All project files in the library have been updated with these new paths; use these as a template to upgrade your current projects.

Jan. 2011: The examples in the code archive have been updated so that all examples link with V3.25 of the MPLAB C Compiler for PIC24 and dsPIC in LITE mode. A few examples used printf statements with floating point formats, and these no longer link on devices with only 2K RAM (printf format strings are built in data memory) as the printf data buffer reserved by the compiler has greatly increased in this compiler version. On CPUs with greater than 2K RAM the code examples work the same as before; on CPUs with 2K RAM (such as the PIC24HJ32GP202) conditional compilation is used to select code that only uses printf statements with integer formats for output strings. Most of the affected code is in Chapter 11, such as chap11/adc2pots1.c or chap11/adc_test.c. The code update also includes a user-submitted fix for the Bully Bootloader when loading software greater than 64K (thanks John N. and Vaifro D.!). Microchip has promised a fix for the printf data RAM buffer usage, and the printf code changes in the examples will be backed out once that fix is released.