Microprocessor Applications
EEL4744 — Microprocessor Principles and Applications
← Course Modules
Course Description
Microprocessor Applications covers the elements of microprocessor-based systems, with emphasis on hardware interfacing, software design, and assembly language programming. UWF notes that a grade of "C" or better is required in all EEL-prefixed prerequisites and a "C-" or better in COP-prefixed prerequisites.
Within the SCNS taxonomy, EEL is the Electrical Engineering prefix. The University of West Florida publishes this at 3 semester hours through the Department of Electrical and Computer Engineering, College of Science and Engineering. Institutions carrying the integrated EEL4744C offer it at approximately 4 Florida institutions.
This is the course that turns an electrical engineering student into someone who can build a product. Digital logic gives combinational and sequential circuits; this course adds a processor, and with it the ability to change behaviour by changing software rather than rewiring. The emphasis the catalog places on interfacing is the distinguishing feature — a computer science embedded course teaches the programming, while this one insists that the student also understand the electrical side of the boundary: what a pin can actually drive, why a signal needs a pull-up, and what happens when a mechanical switch bounces.
Assembly language is taught here not because anyone writes large programs in it, but because it removes the last abstraction. At the assembly level there is no runtime, no allocator, and no operating system — only registers, memory, and the instruction set. Students who have written interrupt handlers in assembly understand what a processor is, and that understanding is what makes them effective in C afterwards.
⚠ Why this guide exists under this number
Many Florida institutions carry this material as a single integrated course with a C suffix. UWF instead runs a separate lecture and a separate laboratory, each with its own SCNS number, and this guide documents the UWF lecture. Its laboratory partner is documented separately in this repository. ⚠ SCNS equivalency does not cross numbers, so a transfer between the integrated and split forms is evaluated by hand rather than automatically — carry a syllabus in either direction.
⚠ The contact-hour figure is derived — the University of West Florida publishes none
UWF's catalog publishes a credit value in semester hours, the college and department, prerequisites, and a description. It does not publish contact hours, a lecture and laboratory split, or terms of offering for any course. It does publish a material and supply fee notice on the minority of courses that carry one — and maintains a separate Material & Supply and Equipment Fees section of the catalog — so the absence of a fee notice on this entry is meaningful, while the fee amount is not published here. Every contact-hour value in a UWF guide in this repository is therefore derived. The figure here applies the standard lecture convention of 15 contact hours per credit, giving 45 hours for a 3-semester-hour course. Confirm the meeting schedule with the department.
Learning Outcomes
Required Outcomes
- Describe microprocessor and microcontroller architecture and their differences.
- Describe the memory map and address decoding of an embedded system.
- Describe the instruction set and addressing modes of a target processor.
- Write, assemble, and debug assembly language programs.
- Implement control flow, subroutines, and stack operations in assembly.
- Describe the calling convention and parameter passing.
- Interface C and assembly code in one program.
- Configure and use general purpose input and output ports.
- Apply electrical interfacing practice including pull-ups, drive limits, and level shifting.
- Implement switch debouncing in hardware or software.
- Describe the interrupt mechanism, vectors, and priority.
- Write interrupt service routines correctly.
- Configure and use timers for periodic events and pulse width modulation.
- Configure and use analog-to-digital conversion.
- Implement serial communication using UART, SPI, and I2C.
- Interface external devices including sensors, displays, and motor drivers.
- Describe direct memory access and its use.
- Analyse timing and real-time constraints in an embedded program.
- Debug embedded systems using appropriate tools.
- Design a microprocessor-based system to a stated specification.
Optional Outcomes
- Describe real-time operating system concepts.
- Describe low-power modes and energy-aware design.
- Implement a communication protocol stack at an introductory level.
- Describe watchdog timers and fault recovery.
- Describe bootloaders and firmware update mechanisms.
- Describe embedded security considerations.
Major Topics
Required Topics
- Microprocessor and microcontroller architecture
- Memory maps and address decoding
- Instruction sets and addressing modes
- Assembly language programming
- Subroutines, the stack, and calling conventions
- Mixing C and assembly
- General purpose input and output
- Electrical interfacing: drive, pull-ups, level shifting
- Switch bounce and debouncing
- Interrupts, vectors, and priority
- Interrupt service routine design
- Timers, counters, and PWM
- Analog-to-digital conversion
- UART, SPI, and I2C
- Sensor, display, and actuator interfacing
- Direct memory access
- Real-time constraints and timing analysis
- Embedded debugging
- System design
Optional Topics
- Real-time operating systems
- Low-power design
- Protocol stacks
- Watchdogs and fault recovery
- Bootloaders and firmware update
- Embedded security
Resources & Tools
- The target processor's reference manual and datasheet — free from the vendor, and this is the primary text whatever book is assigned. Learning to navigate a thousand-page reference manual is a core outcome of the course.
- The vendor's development environment — Microchip MPLAB X, STM32CubeIDE, or TI Code Composer Studio; all have free editions.
- Valvano, Embedded Systems series — widely used, and strong on the interfacing side that this course emphasises.
- Huang, The HCS12/9S12 or the equivalent for the department's chosen processor.
- A logic analyser — inexpensive USB units with free software; indispensable for debugging SPI and I2C, where the failure is almost always visible on the wire.
- An oscilloscope — for the electrical side of interfacing, where a logic analyser shows nothing useful.
- A personal development board — genuinely inexpensive, and owning one removes the scheduling constraint on practice.
- Ganssle's embedded writing — free articles on debouncing, interrupts, and real-time design; practical and widely respected.
- Version control — git; embedded projects accumulate state quickly and being able to return to a working firmware image is worth the setup.
Career Pathways
- Computer hardware engineers — SOC 17-2061; electrical engineers — SOC 17-2071.
- Embedded systems and firmware engineering — one of the largest and most consistently in-demand engineering roles there is, and this course is its direct preparation.
- Internet-of-things and connected product development.
- Defence and aerospace embedded systems — L3Harris, Lockheed Martin, Northrop Grumman, and the programmes at Eglin Air Force Base and NSA Panama City in UWF's region.
- Automotive and electric vehicle electronics — a modern vehicle contains dozens of microcontrollers.
- Medical device firmware — regulated, well compensated, and a growing Florida sector.
- Industrial control and instrumentation — and see EEL4276 for the security dimension.
- Robotics — see EEL4663.
- ⚠ This is among the most directly employable courses in the electrical engineering curriculum. A student who can show working embedded projects is hireable on that basis alone, so keep the projects and document them.
Special Information
⚠⚠ The asterisk in a UWF prerequisite means the course may be taken at the same time
- UWF's catalog marks a concurrent course with an asterisk, defined on the catalog's Course Information page as: "This course may be taken prior to or during the same term."
- ⚠ This is the single most useful piece of notation in the UWF engineering catalog, and it is easy to miss. A prerequisite written without an asterisk must be completed first; one written with an asterisk may be taken in the same term.
- The practical effect is on time to degree. Reading an asterisked prerequisite as a hard prerequisite adds a term to the sequence for no reason, and in a tightly chained major like electrical engineering that error compounds down the whole plan.
- Confirm with an advisor before relying on it, and note that the registration system, not the catalog text, is what actually enforces the rule.
⚠⚠ The grade requirement differs by prefix — C for EEL, C-minus for COP
- UWF publishes a prefix-differentiated grade condition: a grade of C or better in all EEL-prefixed prerequisites and a C-minus or better in all COP-prefixed prerequisites.
- ⚠ This is a genuine trap. A student holding a C-minus in a programming course meets the requirement; the same grade in an EEL course does not. The two thresholds sit in one sentence and are easy to read past.
- ⚠⚠ UWF grade conditions are not uniform across the EEL prefix. Different courses in this same prefix require C, C-minus, or nothing at all — check each course rather than assuming a departmental standard.
- Verify against the registration system, which is what actually enforces the rule.
⚠ The prerequisite structure, and the laboratory that is not required
- UWF publishes: (COP2253 OR COP2334 OR COP3014 OR EEL4834) AND (EEL3701). Neither branch is asterisked, so both must be complete.
- ⚠⚠ Note the asymmetry with the other split pairs in this prefix. EEL3111, EEL3701 and EEL4712 each list their own laboratory as a concurrent requirement; this course does not list EEL4744L. The laboratory lists this course with the asterisk, but the requirement does not run both ways.
- ⚠ The practical consequence is that EEL4744 can be taken without the laboratory — and for a course whose entire value is hands-on interfacing, that is a choice worth making deliberately rather than by default. Take EEL4744L with it unless there is a specific reason not to.
- EEL3701 is the timing constraint, as it is for EEL4712 and EEL4713.
⚠⚠ Where embedded systems students actually lose time
- Reading the datasheet is the job. Nearly every configuration question — which register, which bit, what order — is answered in the reference manual, and students who guess instead of reading lose hours to problems the document answers in a paragraph.
- ⚠⚠ Interrupt service routines must be short and must not block. Long computation, waiting loops, or blocking calls inside an ISR cause missed interrupts and unpredictable timing. Set a flag and handle the work in the main loop.
- ⚠ Variables shared between an ISR and main code need
volatile, or the compiler may optimise away reads that appear redundant and are not. This produces a bug that disappears when optimisation is disabled, which is a maddening way to lose an afternoon.
- Shared data needs atomic access. A multi-byte variable updated in an ISR can be read half-updated by the main loop, producing a value that was never actually written.
- ⚠⚠ Stack overflow in an embedded system is silent. There is no protective fault on most microcontrollers — memory is simply corrupted, and the symptom appears somewhere unrelated.
- Switch bounce is real and produces multiple events per press. Every student meets this, usually as a counter that increments unpredictably.
- Check pin drive limits before connecting anything. A microcontroller pin cannot drive a motor or a relay directly, and attempting it destroys the pin or the chip — use a transistor or a driver.
⚠ Assembly is a teaching tool with a real purpose
- Almost no production firmware is written primarily in assembly, and the course teaches it anyway for good reasons.
- It removes every abstraction — the student sees registers, the stack, and the instruction set with nothing between them and the hardware.
- ⚠ It is still needed in practice for startup code, interrupt vectors, context switching, and cycle-exact timing, and for reading a disassembly when debugging a compiler-optimised failure.
- Understanding the calling convention is what makes C and assembly interoperate, and it is also what lets a student read the assembly a compiler produced and understand why the C behaved as it did.
FE exam relevance
The Fundamentals of Engineering (FE) exam is the first step toward Professional Engineer licensure, and in Florida it is administered under the Florida Board of Professional Engineers. Most students take the FE Electrical and Computer exam in their final year. Licensure matters less in electrical engineering than in civil — the industrial exemption means most electrical engineers in manufacturing and product work never need a PE — but it is required for consulting practice, for sealing designs, and for power and building-systems work, which is exactly where Florida's utility and infrastructure employment sits.
Course format and position in the curriculum
- Lecture with programming assignments, with hardware work carried by EEL4744L where taken.
- Typically taken in the fourth year, after EEL3701.
- ⚠ Debugging time is not predictable. Embedded problems can take an hour or a day, and starting assignments early is not general advice here but a specific requirement.
- Pairs naturally with EEL4663 Elements of Robotics and with EEL4712.
- UWF publishes no contact hours, lecture and laboratory split, or terms of offering for any course, and no material and supply fee is noted on this entry — though EEL4744L does carry one. Confirm the offering pattern with the department.
How Florida course levels affect transfer
The first digit of an SCNS number denotes the year of offering, not transferability. Courses at the 1000 and 2000 levels transfer transparently between Florida public institutions, and 3000 to 4000 is unproblematic since both are upper division. The boundary that actually matters is 2000 to 3000, where lower-division credit generally cannot satisfy an upper-division requirement. ⚠ For engineering specifically, ABET-accredited programmes commonly require that upper-division engineering coursework be taken in residence, so transferability of the credit and applicability to the degree are separate questions.
EEL4744 is 3 semester hours at the University of West Florida, with the 1-semester-hour EEL4744L available alongside. Institutions carrying the integrated EEL4744C combine both in one course.