Welcome to the  Embedded Controller Programming (ECP) Web Page

This page is the online resource center for the UCSD (University of California, San Diego) Embedded Controller Programming Classes.  These classes focus on programming and software development using embedded microcontrollers.  Course material covers basic microcontroller architecture, hardware features, interfacing and programming techniques using both assembly and the C programming language. Questions about this course? Email the instructor. For the ECP I course ecp1_AT_hte.com (substitute @ for the _AT_) or ecp2_AT_hte.com for the ECP II course.

For additional information on related technology classes available at UCSD please visit UCSD Extension at the link below;
UCSD Extension Web Page


CLASS RESOURCES - 8051 and Class Related Resources

SDK (8051 Development Board)  -  Information on the SDK (software development kit) board used in class as well as SDK Manuals and related Documentation.

Internet Based Resources - This page provides a wide range of Internet resources relating to embedded controller programming with particular focus on 8051 family tools, code, tutorials and related information.


ECP 1 - Introduction to Embedded Controller Programming

ECP 1 introduces basic microcontroller concepts including typical architectures, the 8051 hardware model, the 8051 instruction set, assembly language programming and debugging techniques and standard hardware features such as timer/counters, UARTs, and I/O pins and ports.  The topics are divided into 6 sections, which are accessed by the links below;

Week 1 - Microcontrollers and Microcontroller Architecture

Week 2 - Introduction to Assembly Language and Number Systems

Week 3 - Timers/Counters and Assembler Programming

Week 4 - Programming (cont'd) and Embedded Memory

Week 5 - I/O and Intro to Embedded C

Week 6 - Conclusion and Student Project Presentations
 


ECP II - Embedded Controller Programming II

SDCC Development Tools – Download the most recent version of the FREE Unlimited SDCC Command line Compiler and documentation. There are versions of SDCC that run on Windows and Linux.

MIDE-51 – A Free, Simple IDE for the SDCC Compiler available from OpCube download the ~3MByte IDE packed with ASEM-51 and SDCC for a one step installation of the compiler, assembler and IDE.

Keil Development Tools - Downloadable Version of the Evaluation Version of the Keil Tools NOTE that the free C51 evaluation version of the Keil tools from their web site will NO LONGER RUN ON THE SDK!  The version that comes on the CD-ROM in the ECP II text book “Embedded C” by Michael Pont may work with the SDK.

Miscellaneous Stuff - ECP 2 Course Overview and Requirements Material

SDCC Hello World Example Program – For use with the SDCC or MIDE tools:  A ZIP File containing an SDK Specific Hello World Program

SDK Hello World Example Program – For the Keil tools: a Self Extracting ZIP File with the .uv2 project. PLEASE NOTE that this only works with the paid Keil compiler or Keil C51 eval versions 6.x or earlier.

SDCC putchar function for the SDK – SDCC version - This is an assembly language replacement of putchar that calls the SDK's monitor ROM routine “sendchar:“ to output via the external monitor debug UART serial port, so you don’t have to move the serial cable to connector P1 to see printf output.

Keil putchar.a51 assembly function for the SDK – Keil compatible version of putchar above.

Project - The ECP II student project is described in this document.

Section 7 - C Language Review and Getting Started with Embedded C

Section 8 - Embedded C Programming Review and Examples

Section 9 - Embedded Development Environment and Examples

Section 10 - Switches, Keypads and Other Input Devices

Section 11 - LCD, LED and Other Display/Output Devices

Section 12 - Summary and Student Projects