Overview
Built firmware for a PIC microcontroller-based microwave oven using a modular architecture and a screen-state finite state machine.
Highlights
- Targeted PIC @ 20 MHz (XC8 toolchain)
- Implemented 16x4 LCD driver in 4-bit mode
- Built matrix keypad scanning with state and level read modes
- Implemented operating flows for Micro, Grill, Convection, and Quick Start
- Added Timer2 ISR timing for countdown control (about 1 second tick logic)
- Added hardware controls for fan and buzzer during cook/preheat states
- Reduced display flicker using pre-draw and sparse UI updates
Architecture
- FSM-based screen navigation:
- power screen -> modes
- mode screens -> time/temp input -> cooking
- HAL modules for LCD, keypad, and timers separated by header/source boundaries
Outcome
Delivered a robust embedded UI and control flow implementation with clean module boundaries and real-device interaction handling.