Back to Portfolio
Microprocessors | PIC18F47K42 | Embedded C and Assembly

PIC18F47K42 Microprocessor Projects

A cleaned portfolio collection of EE310 microprocessor coursework focused on low-level embedded firmware development using the PIC18F47K42.

These projects demonstrate microcontroller programming, UART communication, LCD output, basic I/O, assembly programming, and embedded-system debugging.

PIC18 Microcontroller firmware
C Embedded application code
ASM Low-level assembly projects
UART Serial communication practice

Project Overview

Purpose

This repository presents cleaned EE310 coursework as a professional embedded-systems portfolio project. The focus is on lower-level microcontroller programming and peripheral control using the PIC18F47K42.

Engineering Focus

The work emphasizes embedded C, assembly, device initialization, peripheral setup, UART communication, LCD output, basic I/O, and structured firmware organization.

Project Photo

PIC18F47K42 microprocessor project hardware

PIC18F47K42 microprocessor coursework hardware or development setup used for embedded C, assembly, UART, LCD, and basic I/O projects.

Project Areas

Basic I/O

Embedded C GPIO Device Logic

Basic embedded C projects focused on microcontroller outputs, simple control logic, and foundational firmware structure.

  • Buzzer control
  • Basic output behavior
  • Simple firmware logic
  • Microcontroller I/O practice

LCD Output

LCD Display Logic Embedded C

LCD-related firmware demonstrates display communication, text output, and structured use of helper/header files for embedded projects.

  • LCD display output
  • Header file organization
  • Reusable helper functions
  • Peripheral initialization

UART Communication

UART Serial Communication Debugging

UART projects focus on serial communication and microcontroller interaction through transmitted and received data.

  • Serial communication setup
  • Transmit/receive behavior
  • Random-number style UART interaction
  • Firmware debugging through serial output

Assembly Programming

Assembly Low-Level Logic PIC18

Assembly projects demonstrate lower-level programming concepts, instruction-level behavior, counting sequences, and direct control of microcontroller logic.

  • Counting sequence logic
  • Temperature/change logic
  • Instruction-level programming
  • Low-level firmware practice

Hardware and Tools

Hardware

  • PIC18F47K42 microcontroller
  • Breadboard-based circuits
  • LCD display
  • Buzzer/output devices
  • Wiring and support components
  • Development/debugging hardware

Software and Development Tools

  • MPLAB X IDE
  • XC8 compiler
  • Embedded C
  • PIC18 assembly
  • Header/source file organization
  • Serial communication tools

Repository Organization

The portfolio version is organized by project type so the coursework is easier to navigate.

basic-io/
  buzzer_main.c
  calculator.c

lcd/
  lcd_display_xyz.c

uart/
  uart_random_number.c

assembly/
  count_code_sequence.asm
  temp_change.asm

final-project/
  final_project.c

include/
  Functions.h
  Header.h
  Initialization.h

Development Process

Device Initialization

Configured microcontroller behavior through initialization files and setup routines for embedded project development.

Peripheral Interaction

Worked with outputs, display behavior, UART communication, and microcontroller I/O.

Low-Level Programming

Used both embedded C and assembly to understand firmware behavior at different levels of abstraction.

Code Organization

Cleaned and reorganized coursework files into a public portfolio repository with clearer names, folders, and documentation.

Technologies and Skills Demonstrated

Technologies

PIC18F47K42 Embedded C Assembly UART LCD GPIO MPLAB X XC8

Skills

Low-Level Firmware Microcontroller Programming Peripheral Setup Serial Communication Assembly Logic Embedded Debugging Code Organization

Project Outcome

These PIC18F47K42 projects demonstrate foundational embedded-systems experience using microcontroller firmware, low-level C, assembly, UART communication, LCD output, and basic I/O control.

This work supports my broader embedded-systems portfolio by showing experience below the IoT/dashboard layer, closer to microcontroller initialization, peripheral interaction, and low-level firmware behavior.