Computer Science & Software Engineering
CSCI 255
Introduction to Embedded Systems
Fall 2011
Final Information
Exam rules:
Monday, December 12th, 11:30a-1:30p
Closed book, closed notes, no electronic devices
You are allowed a two-sided 8 1/2 x 11 note sheet, hand-written
You will be given Appendix A-C from The 8051/8052 Microcontroller for use during the exam
No makeups will be considered without an official University excuse
Material covered:
Lectures 0-19
The 8051/8052 Microcontroller, Ch. 1-11, 18-19, 22.2, Appendix B
Class handouts
Lab assignments
Detailed topics:
Differences between general-purpose and embedded systems
Challenges of embedded development
Number systems: binary, decimal, hexadecimal, octal
Specifying decimal, hex and octal numbers in C
Bitwise operations AND, OR, NOT, XOR
C operators for bit operations, left and right shift, bit masking
Two's complement representation for negative numbers
Adding binary numbers
Subtraction of numbers in two's complement
Overflow behavior, unsigned and two's complement integers
Basic building blocks for logic gates
Logic gates, truth tables and diagram symbols: AND, OR, NOT, NOR, NAND, XOR, XNOR
Truth tables
Sum-of-products given a truth table
Circuit given a truth table or sum-of-products expression
Majority and odd Boolean functions
Minimizing Boolean expresssion using rules of Boolean algebra
Minimizing 2-4 variable Boolean expression using a Karnaugh map
Multiplexers, demultiplexers
Combinational vs. Sequential circuits
Latches and flip-flops
Use of a clock in computer circuits
Building a full adder
Arithmetic Logic Unit (ALU)
Building a register from a set of flip-flops
Building a register bank from a set of registers
Basic input/output, CPU coordinated versus DMA
Computer buses
Basic components and functionality of a CPU
Fetch-and-execute cycle
Memory architectures, Harvard vs. Von Neumann
8052 educational board details such as ports, buttons, LEDs
Process of building and running software on the 8052
Assembly language syntax: labels, comments, instructions
Declaring literal values in assembly
8052 memory addresses, register banks, basic SFRs (P0-P3, ACC, B, SP, PSW)
Assembly: moving data, setting/clearing bits, incrementing/decrementing values
Assembly: math operations, bitwise operations
Assembly: jumping, branching on values, creating loops
Assembly: creating and calling subroutines, effect on the stack
8052 addressing modes: immediate, direct, indirect, code indirect
Calculating number of cycles/time of give assembly program
Big Endian vs. Little Endian
8052 timers, timer0/1/2, different modes
8052 interrupts, external/timer/serial, protecting state
C programming: 8052 specific extensions like sbit, bit, sfr
C programming: declaring variables, creating and calling functions, creating ISRs
C programming: for-loops, while-loops, if/else statements
C programming: bit operations
C programming: enumerated types, switch-case statement
C programming: separating functions into .c and .h files
C programming: creating and using arrays
Switch debouncing
8052 power savings mode, use for creating a sleep function
Concurrency issues, protecting code critical sections
Decoding a 4x4 keypad
7-segment display
Multi-state systems
LCD display programming
Serial communication
Page last updated: August 16, 2012