Summary of PIC10 RS232 Parity Checker using PIC10F202 with Proteus Simulation
The PIC10 RS232 Parity Checker uses a PIC10F202 to sample RS232 serial data bit-by-bit in software, count data ones, and verify parity (even/odd via GP2). GP0 receives serial bits, GP1 drives an LED on parity error, and timing delays emulate UART sampling. The project is demonstrated in Proteus VSM with a virtual terminal, illustrating timing-critical sampling and parity validation on a minimal microcontroller.Parts used in the PIC10 RS232 Parity Checker:
- PIC10F202 Microcontroller
- RS232 terminal (Proteus VTERM)
- LED (error indicator)
- 330Ω resistor
- Power supply and ground connections
How the Project Works (Overview)
This project receives RS232 serial data bit-by-bit on GP0 of the PIC10F202. The firmware manually samples each bit using timing delays instead of a hardware UART.
Eight data bits are captured, followed by a parity bit. The code counts the number of logic-high bits and determines whether the parity condition is valid.
A configuration input on GP2 allows switching between even parity and odd parity checking.
If a parity error is detected, GP1 is asserted to turn on an LED, providing immediate visual feedback.
Block Diagram / Workflow Explanation
Wait for Start Bit
The firmware continuously monitors GP0 until a low start bit is detected.Bit Sampling
Using calibrated delay loops, the PIC samples each of the 8 data bits at fixed intervals.Bit Counting
Each logic-high data bit increments a counter to track the number of ‘1’ bits.Parity Evaluation
The received parity bit and the GP2 parity-mode input are added to the bit count.Error Indication
If parity validation fails, GP1 drives an LED to indicate an error.Stop Bit & Restart
After detecting the stop bit, the system resets and waits for the next byte.
Key Features
Software-based RS232 reception using GPIO
Supports even and odd parity selection
Visual parity error indication using an LED
Minimal hardware with a PIC10 microcontroller
Fully testable using Proteus VSM simulation
Demonstrates timing-critical serial data sampling
Components Used
PIC10F202 Microcontroller
RS232 terminal (Proteus VTERM)
LED (error indicator)
330Ω resistor
Power supply and ground connections
Applications
Learning RS232 communication fundamentals
Educational embedded systems demonstrations
Debugging serial data parity behavior
Testing parity settings from terminal software
Training projects for low-pin-count microcontrollers
Explanation of the Code (High-Level)
The firmware begins by configuring GPIO directions, with GP0 as input and GP1 as output.
The program waits for a valid RS232 start bit, then samples incoming bits using precise delay loops.
Each received bit is shifted into a byte register while counting the number of logic-high bits.
After reading the parity bit, the code adjusts the bit count based on the selected parity mode (GP2).
If the final count indicates a parity mismatch, the LED output is activated.
The firmware then waits for the stop bit and repeats the process indefinitely.
Source Code
Download;PIC10 Parity Checker
LIST p=10F202 ;
#include "P10F202.INC" ; Include header file
CBLOCK 0x08 ; Temporary storage
dc1
bitcount
databyte
onecount
ENDC
; Vector for normal start up.
org 0
goto start
; Main program starts here:
start clrw ; Clear W.
movwf GPIO ; Ensure PORT is zero before we enable it.
movlw 0xFD ; All inputs except GP1
tris GPIO
Complete Source Code
Proteus Simulation
In Proteus VSM, the PIC10F202 is connected directly to a virtual RS232 terminal.
The terminal sends serial characters at a fixed baud rate, while the parity setting can be enabled or disabled.
When incorrect parity is transmitted, the LED turns on immediately, clearly showing how parity errors are detected in real time.
This setup makes it easy to experiment with different characters and parity configurations.
(FAQs)
Conclusion
The PIC10 RS232 Parity Checker is a clean, educational example of implementing serial communication logic on a very small microcontroller.
It highlights how timing, bit manipulation, and parity checking work at a low level without relying on hardware peripherals.
Through Proteus simulation, learners can safely explore RS232 behavior and parity errors in a controlled environment.
This project delivers strong learning value for anyone interested in embedded systems, DIY electronics, and practical firmware design.
Complete File
PIC10 RS232 Parity Checker using PIC10F202 with Proteus Simulation
Quick Solutions to Questions related to PIC10 RS232 Parity Checker:
- Why is there no hardware UART used in this project?
The PIC10F202 does not include a hardware UART, so serial communication is implemented in software. - Can this project work with different baud rates?
The baud rate is fixed by delay timing values in the code and would need recalibration to change. - How is even or odd parity selected?
Parity mode is selected using the GP2 input pin. - Why is Proteus ideal for this project?
Proteus allows accurate timing simulation and easy RS232 terminal testing without physical hardware. - Can this code run on other PIC10 devices?
It is specifically written for the PIC10F202 but can be adapted to similar PIC10 devices. - What happens if no parity bit is sent?
Characters without parity will often trigger errors, making this a useful experiment. - Can the LED logic be inverted?
Yes, the GPIO output logic can be modified to invert LED behavior. - Is this suitable for real hardware testing?
Yes, with proper RS232 level shifting, the design can be implemented on physical hardware.
Related projects
The Annoy – A Tiny Intelligent Buzzer using PIC10F202
A while back I made a blog post about a PIC10F200 Project: The Annoy. In this project they combined the simplicity in...
Programmers & ICSP · PIC10F200pickit 3 supported devices
Supported Devices To read the complete introduction and pinout of Pickit 3 refer to its introduction. Refer to MPLAB IDE v8.76, the...
Programmers & ICSPCalculator Test using PIC24FJ64GA006 with Proteus Simulation
Introduction The Calculator Test using EASYHDL is a practical microcontroller project built on the PIC24FJ64GA006 and simulated in Proteus. This project demonstrates...
Programmers & ICSPPID Controlled Oven using TMS320F28027PT with Proteus Simulation
IntroductionThis project demonstrates a PID controlled oven implemented using a PICCOLO TMS320F28027PT microcontroller and verified through Proteus simulation.It is a practical microcontroller...
Programmers & ICSPPICCOLO Motor Controller Sample Design using TMS320F28023PT with Proteus Simulation
IntroductionThis project demonstrates a PICCOLO motor controller sample design implemented using the TMS320F28023PT Piccolo microcontroller and tested through Proteus simulation. It focuses...
Programmers & ICSP · PIC16F84APIC Musical Doorbell using PIC16F84A with Proteus Simulation
IntroductionThis microcontroller project demonstrates a musical doorbell built around a PIC16F84A and a simple piezo sounder.Using two push buttons, the system allows...