Course Description: An introduction to basic computer organization, microprocessor instruction sets, assembly language programming, the design of various types of digital as well as analog interfaces, and microprocessor system design considerations. The accompanying laboratory is designed to provide practical hands-on experience with microprocessor software applications and interfacing techniques. Topics include a detailed study of a particular microcomputer architecture and instruction set, assembly language programming techniques, system control signals and I/O structure, memory system design, I/O port design and handshaking protocols, interrupt control systems, parallel and serial interface subsystems, counter/timer subsystems, and analog (data and control) interfaces.
experiment2.S is an Assembly program that performs some simple Assembly instructions. PUSH/POP from stack, word addition, comparator, and embedded division.
experiment3.S is an Assembly program that blinks LEDs on the microcontroller dev board. GPIO introduction.
experiment4.S is an Assembly program that debounces the user button on the uC. It also includes a reaction timer game. GPIO application.
experiment5.C is an embedded C version of experiment4. Purpose being to transition the course to embedded C programming.
experiment6.C is an embedded C program that explores the ADC peripheral of the STM32F0 uC.
experiment7.C is an embedded C program that explores the PWM and DAC peripherals of the STM32F0 uC.
experiment8.C is an embedded C program utilizing the HAL Library and interfacing a keypad to realize a basic calculator.
experiment9.C is an embedded C program where I learned about UART, the first microcontroller peripheral with a focus on communication.
experiment10.C is an embedded C program where in this final experiment for ECE362, I exercised the art of reading datasheets to interface to a 16X2 LCD. In the process, I learned about synchronous serial communication through the use of the serial peripheral interface, or SPI.