Menu

PIC-40 DEVELOPMENT / TRAINING BOARD--EasyPIC-40-style by Logic Find | MCU: PIC16F877A

01. SYSTEM OVERVIEW: The PIC-40 is a 40-pin PIC16F877A microcontroller development and training board in the EasyPIC-40 style, aimed at hands-on embedded-systems instruction. A single board consolidates displays, input devices, communication interfaces, memory/clock peripherals, analog inputs, and full port-header expansion, letting students move from basic digital I/O through to integrated, multi-peripheral capstone projects without leaving the same platform. The board is programmed using the standard MPLAB X IDE with the XC8 compiler and a PICkit3 programmer connected via the on-board ICSP header. Yellow configuration jumpers route each peripheral (LCD, keypad, RS232, SD card, etc.) to the appropriate PIC16F877A port pins, so the same 40-pin MCU can be re-purposed across all 25 guided experiments simply by changing jumper settings.

02. CORE HARDWARE SPECIFICATIONS
Parameter Specification
Microcontroller PIC16F877A (40-pin DIP)
Development Board EasyPIC-40-style board (PIC-40, Logic Find clone)
IDE MPLAB X
Compiler XC8
Programmer PICkit3, via on-board ICSP / ICSP2 header
Programming Interfaces USB Programming Interface, ICSP Header, ICSP2 Header
Power Input DC Power Input Jack, Power ON/OFF Switch, Power Indicator LED
Voltage Regulation On-board regulator circuit providing 3.3V / 5V rails
Test Points Banana test points / power pins; GND pins; +5V output pins; 3.3V output pins
03. COMPONENT & MODULE OVERVIEW
Category Components / Modules
Display Modules • 6-Digit Multiplexed 7-Segment Display
• 16×2 Character LCD Expansion Connector
• LCD Contrast Adjustment Potentiometer
• LCD Backlight Adjustment Potentiometer
Communication Interfaces • USB Interface
• RS232 (Serial Communication) Port
• ICSP Programming Header
• ICSP2 Header
Memory & Clock • Micro SD Card Socket
• DS1302 Real-Time Clock (RTC) IC
• RTC Backup Coin Cell Battery Holder
• 32.768 kHz Crystal for RTC
• Main Crystal Oscillator (for MCU)
Input Devices • 4×4 Matrix Keypad (16 Push Buttons)
• 5-Way Navigation Joystick (Up / Down / Left / Right / Center)
• Reset Push Button
Output Devices • Piezo Buzzer / Speaker
• 8 User LEDs (L1–L8)
Analog & Sensor Section • ADC Input Potentiometer
• DS18B20 Temperature Sensor Socket
• IR Remote Receiver Module
• ADC/Temperature Sensor Headers
I/O Expansion • PORTA, PORTB, PORTC, PORTD, PORTE Headers
• Expansion Header for External Modules
Configuration & Test Points • Configuration Jumpers (Yellow Jumpers)
• Power Selection / USB Enable / LCD Configuration / Peripheral Selection Jumpers
• Banana Test Points / Power Pins, GND Pins, +5V and 3.3V Output Pins
04. KEY FEATURES
• 40-pin PIC16F877A microcontroller platform with a complete on-board I/O ecosystem for hands-on embedded-systems training
• On-board USB and ICSP/ICSP2 programming interfaces, compatible with the PICkit3 programmer
• Integrated display, input, communication, memory, and analog peripherals covering the full spectrum of embedded I/O techniques
• 25 progressive guided experiments spanning digital I/O, displays, input devices, analog/PWM, serial communication, RTC/storage, and audio output
• 4 fully worked integrated capstone projects — digital thermometer, RTC calendar, data logger, and IR-controlled LED panel
• Standardized MPLAB X + XC8 + PICkit3 workflow applied consistently across every experiment
• Jumper-configurable peripheral routing lets a single 40-pin MCU be re-purposed across all experiments
05. GUIDED EXPERIMENTS (25 TOTAL)
Experiments are grouped into eight progressive categories, from basic digital I/O through to fully integrated capstone projects:
Category Experiments
A. Basics (Exp. 1–3) • 1. LED Blinking (L1–L8) — PORTD digital output
• 2. Push Button Input — RB0 reading with software debounce
• 3. LED Chaser (Knight Rider) — running-light pattern, both directions
B. Display (Exp. 4–7) • 4. Single-Digit 7-Segment Counter — count 0–9
• 5. 6-Digit Multiplexed 7-Segment Stopwatch — multiplexed counter
• 6. 16×2 LCD "Hello World" — 4-bit mode init, static text
• 7. LCD + Potentiometer ADC Display — live ADC value on LCD
C. Input Devices (Exp. 8–10) • 8. 4×4 Matrix Keypad ? LCD — pressed key display
• 9. 5-Way Joystick Navigation — direction indicated via LEDs
• 10. Keypad + LCD Simple Calculator — add/subtract demo
D. Analog (Exp. 11–13) • 11. ADC Basics — binary display of ADC value on LEDs
• 12. ADC + PWM Dimmer — potentiometer controls LED/fan brightness
• 13. DS18B20 Temperature Sensor ? LCD — 1-Wire read and display
E. Communication (Exp. 14–16) • 14. RS232 UART — transmit "Hello" string to PC terminal
• 15. UART Command Interface — control LEDs from PC serial commands
• 16. IR Remote Receiver ? LCD — signal detection indicator
F. Timekeeping & Storage (Exp. 17–19) • 17. DS1302 RTC ? LCD — set & display real-time clock
• 18. RTC + Buzzer Alarm Clock — alarm-time comparison and beep
• 19. Micro SD Card Read/Write (Raw SPI) — CMD0 idle handshake
G. Output / Sound (Exp. 20–21) • 20. Piezo Buzzer Melody Player — ascending 8-note scale
• 21. Buzzer + Keypad DTMF-Style Tones — distinct tone per key
H. Integrated Projects (Exp. 22–25) • 22. Digital Thermometer — DS18B20 + LCD + threshold buzzer alarm
• 23. RTC Calendar + Keypad Time Setting — DS1302 + LCD + keypad
• 24. Data Logger — ADC + DS1302 + SD card, 1-record-per-second logging
• 25. IR Remote-Controlled LED Panel — remote-selectable LED patterns
06. PROGRAMMING WORKFLOW (MPLAB X + XC8 + PICkit3)
This standard procedure applies to every experiment; only the code, wiring, and jumper settings change between them.
Step Action
1 Open MPLAB X IDE
2 File ? New Project ? Standalone Project ? Microchip Embedded ? Standalone Project
3 Select device: PIC16F877A ? Next
4 Select tool: PICkit3 ? Next
5 Select compiler: XC8 (v2.x) ? Next
6 Name the project (e.g. ExpN_Name), choose save location ? Finish
7 Right-click Source Files ? New ? main.c (or add the provided .c file)
8 Paste/insert the experiment code into main.c and Save
9 Click Build Main Project (hammer icon) — MPLAB X invokes XC8 to generate the .hex file
10 Confirm "BUILD SUCCESSFUL" in the Output window; resolve any errors before proceeding
11 Connect PICkit3 to the ICSP header on the board; power ON (check Power Selection / USB Enable jumpers)
12 Click Make and Program Device with PICkit3 to flash the .hex file
13 Set the relevant Configuration/Peripheral Selection Jumpers for the module used in this experiment
07. NOTES ON PIN ASSUMPTIONS
• Several experiments assume standard EasyPIC-40-style pin mapping: keypad on PORTD, LCD data on PORTB with RS/EN on RC0/RC1, RTC on RC4–RC6, DS18B20 on RC3, SD card SPI on RC2–RC5, buzzer on RE2
• Verify each pin assignment against your specific board's schematic/silkscreen before wiring, since clone boards vary — adjust TRIS/port assignments in the code accordingly if your board differs
• Each experiment's full objective, key components, wiring/jumper notes, expected observation, and a build/observation result sheet are provided in the accompanying lab manual and firmware/ folder (expN_*.c)