Learning Outcomes
To introduce the fundamentals of microprocessor design procedures and application concepts.
To understand the internal structure of a typical simple microcontroller.
To understand the correspondence between instruction execution and the timing signals on the microprocessor external buses and pins. To demonstrate the technical and economic criteria in order to design and implement a microcontroller.
To become familiar with the architecture of a commercial microcontroller in order to understand instructions and internal register structures. To be able to use the assembly language for specific problems. Usage of tools and techniques in the Laboratory in order to implement and debug microprocessor-based systems.
Course Content (Syllabus)
Introduction to analog and digital design methods. Αbstract computational models. Design of Computer Architecture. Hardwired and microprogrammed control units. Instruction level parallelism. Pipeline unit. Superscalar machines. RISC processors.
Main aspects and applications of microprocessors. Microprocessor architecture and organization. Internal structure. Machine and instruction cycles. Register set. Bus architectures, memory and I/O subsystems. Control bus signals organization and interfacing. Programming model. Instruction format. Data types. Memory addressing modes. Instruction set. Assemblers and microprocessor development systems.
Fundamentals of assembly programming for the AVR microcontroller. Development of programs for simple arithmetic operations, code conversion, operations in look up tables and data structures. Subroutines and macros.