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.