Freescale S12 C-Family
Specific Device Used = APS12C128SLK
Courses Developed by Fredrick M. Cady
All files related to this course are at bottom of this page.
Introductory level course. Covers basic microcontroller concepts and exercises in both assembly and C programming language. Instructor editions of the laboratory include answers to questions and additional commentary by author especially for instructors.
The following is a laboratory short courses developed applying the Process Oriented Guided Inquiry Learning (POGIL) pedagogy.
POGIL uses guided inquiry – a learning cycle of exploration, concept invention and application – as the basis for many of the carefully designed materials that students use to guide them to construct new knowledge.
POGIL is a student-centered strategy; students work in small groups with individual roles to ensure that all students are fully engaged in the learning process.
POGIL activities focus on core concepts and encourage a deep understanding of the course material while developing higher-order thinking skills.
POGIL develops process skills such as critical thinking, problem solving, and communication through cooperation and reflection, helping students become lifelong learners and preparing them to be more competitive in a global market.
|Title||Topic||Document Name||Objective||S/W Required||H/W Required|
|The Microcontroller - General Principles||General Principles – The MCU||LABSS12CINTRO01.pdf||Show architecture of typical microcontroller; define terms.||None||None|
|Software Development||General Principles – S/W Development||LABS12CINTRO02.pdf||Show S/W/firmware development tools and process.||None||None|
|Introduction to CodeWarrior - Simluating the Microcontroller in Assembly Language||Introduction to the Laboratory – I||LABSS12CINTRO03.pdf||Introduce the S/W development system used in the lab.||CW|
|Introduction to CodeWarrior - Running Assembly Programs on the Microcontroller||Introduction to the Laboratory – II||LABSS12CINTRO04.pdf||Continue above and introduce hardware used in the lab.||CW||SLK|
|The Assembler||Assembler Program||LABSS12CINTRO05.pdf||Learn the fundamentals of the assembler.||CW|
|Exploring Embedded C Programming||The C Compiler||LABS12CINTRO06.pdf||Learn about using C in embedded systems.||CW|
|Introduction to CodeWarrior - Simulating the Microcontroller in C||Intro to uC Hardware||LABSS12CINTRO07.pdf||Learn programmer's model and addressing modes||None||None|
|Introduction to Your Microcontroller Hardware||Intro to uC Hardware||LABS12CINTRO08.pdf||Learn programmer's model and addressing modes||None||None|
|The Microcontroller Instruction Set I||Instructions – I||LABSS12CINTRO09.pdf||Start to learn the instruction set; memory addressing; conditional branching.||None||None|
|The Microcontroller Instruction Set II||Instructions – II||LABS12CINTRO10.pdf||Continue ".||CW||SLK|
|The Bouncing Switch in Assembly||Switch Debouncing in Assembly||LABS12CINTRO27.pdf||Demonstrate switch debouncing and solutions||CW||SLK|
|The Timer – Introduction to Timer Overflows With C||Timers – I||LABSS12CINTRO11.pdf||Generating a delay using the timer overflow.||CW||SLK|
|Digital Input and Output||Digital Input and Output||LABSS12CINTRO12.pdf||Input from switches, output to LEDs.||CW||SLK|
|Digital Input and Output With C||Digital Input and Output||LABS12CINTRO13.pdf||Input from switches, output to LEDs.||CW||SLK|
|I/O Software Synchronization||Digital I/O software||LABSS12CINTRO14.pdf||I/O software synchronization||CW||SLK|
|Introduction to Interrupts Using C||Interrupts – I||LABS12CINTRO15.pdf||Learn fundamentals of interrupt vectors, etc.||CW||SLK|
|The Bouncing Switch in C||Switch Debouncing in C||LABS12CINTRO28.pdf||Demonstrate switch debouncing and solutions||CW||SLK|
|Introduction to Interrupts||Interrupts – I||LABS12CINTRO16.pdf||Learn fundamentals of interrupt vectors, etc.||CW||SLK|
|Sources of Multiple Interrupts||Interrupts – II||LABS12CINTRO32.pdf||Multiple sources of interrupts.||CW||SLK and scope|
|The Timer – Introduction to Timer Overflows||The Timer – Intro to Timer Overflows||LABS12CINTRO17.pdf||Generating a delay by polling the timer overflow.||CW||SLK|
|The Timer – Timer Overflow Interrupts||The Timer – Timer Overflow Interrupts||LABS12CINTRO18.pdf||Generating a delay using timer overflow interrupts||CW||SLK|
|The Timer – Output Compare||The Timer – Output Compare||LABS12CINTRO19.pdf||Waveform generation using output compare and interrupts.||CW||SLK and scope|
|The Timer – Input Capture||The Timer – Input Capture||LABS12CINTRO20.pdf||Using input capture to measure pulse width||CW||SLK|
|The Timer – Pulse Accumulator||The Timer – Pulse Accumulator||LABS12CINTRO21.pdf||Using pulse accumulator in event counting and gated time mode||CW||SLK and signal generator|
|Analog Input using Assembly||ATD – I||LABSS12CINTRO22.pdf||Introduce analog-to-digital conversion||CW||SLK|
|Analog Input using C||ATD – I||LABSS12CINTRO26.pdf||Introduce analog-to-digital conversion||CW||SLK|
|Sampling and Resolution for Analog Input||ATD- II||LABS12CINTRO23.pdf||ATD Sampling||None||None|
|HCS12 A/D Digital I/O||ATD – III||LABSS12CINTRO24.pdf||Digital I/O using the ATD||CW||SLK|
|COP||Coming Soon||Using the COP||CW||SLK|
|MSCAN||Coming Soon||Using the CAN module||CW||SLK|
|SERIAL I/O – SCI||SCI||LABS12CINTRO29.pdf||Introduction to SCI||CW||SLK and terminal|
|SERIAL I/O INTERFACES – RS-232-C||SCI-II||LABS12CINTRO30.pdf||Creating an RS-232-C communication Interface|
|SERIAL I/O – The Serial Peripheral Interface||SPI – I||LABSS12CINTRO31.pdf||Introduction to the SPI||CW||SLK, scope, SPI device|
|SPI – II||Coming Soon||LCD||CW||SLK, LCD|
|Register Listing HCS12C Family||Register Listing HCS12C Family||LABS12CINTRO25.pdf|
Complete course files restricted to verified faculty only. Available for download in the Faculty-Portal