Page 1 of 1

Module Code - Title:

EE4524 - DIGITAL SYSTEMS 3

Year Last Offered:

2025/6

Hours Per Week:

Lecture

2

Lab

2

Tutorial

1

Other

0

Private

5

Credits

6

Grading Type:

N

Prerequisite Modules:

EE4522

Rationale and Purpose of the Module:

The module provides an in-depth treatment of the following topics: Basic Microprocessor; Processor Architecture and programming in machine code; Instruction sets, Addressing modes, Data formats; Exception handling, I/O programming; Software polling, Interrupts, Basic interrupt processing concepts, Interrupt service routines (ISRs); C programming as a programming language for embedded systems; Practical application of using a software development toolchain. (Digital Systems 1 on the programme is a prerequisite for this module.)

Syllabus:

Microprocessor and Microcontroller Architecture: Processor Architecture and programming in machine code. Programmer's model, data formats including integer types, floating point numbers, ASCII and Unicode. Program instruction cycle. Instruction sets: Addressing modes: register, immediate, direct, indirect, relative. Program control flow instructions. Stacks, local variables and subroutines. Exception handling. I/O programming: Simple handshaking concepts. Software polling. Interrupts: Basic interrupt processing concepts. Interrupt service routines (ISRs). Interrupt hardware -fixed versus programmable priority, interrupt vectoring. C programming as a programming language for embedded systems: Pointers and Macros in embedded software. Linking and sub-programs. Assembly programming and C. Memory: Addressing concepts, including memory mapped and I/O mapped I/O. Volatile and non-volatile memory. ROM, RAM. Serial data: Asynchronous and synchronous transfers. RS232, SPI, I2C.

Learning Outcomes:

Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

On successful completion of the module, the student will be able to: Describe the operation of a basic microprocessor Write assembly code that uses processor and microcontroller on-chip I/O resources. Explain the relationship between high level languages, assembly language and machine code. Compile, debug and test a C program (comprising of multiple source files) Code and utilise interrupts Program and utilise microcontroller on-chip I/O devices using C

Affective (Attitudes and Values)

N/A

Psychomotor (Physical Skills)

On successful completion of the module, the student will be able to: Build up an embedded system from supplied components and write software to run on their system.

How the Module will be Taught and what will be the Learning Experiences of the Students:

Module is taught using 2 hours per week of lectures, 1 hour tutorial and a 2 hour lab session involving project work.

Research Findings Incorporated in to the Syllabus (If Relevant):

Prime Texts:

Williams, E (2014) Make: AVR Programming: Learning to Write Software for Hardware , Maker Media
Smith, W.A. (2016) C Programming with Arduino , Elektor Publications

Other Relevant Texts:

Russel, D.J., Thornton, M.A. (2010) Introduction to Embedded Systems: Using ANSI C and the Arduino Development Environment , Morgan & Claypool

Programme(s) in which this Module is Offered:

BEECENUFA - ELECTRONIC AND COMPUTER ENGINEERING

Semester(s) Module is Offered:

Spring

Module Leader:

gabriel.leen@ul.ie