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