This document describes a microcontroller-based circuit designed for software protection. The circuit exchanges an encrypted key between a protected software program and a hardware "hard key". The key exchange process and encryption algorithm are described. The circuit hardware components including a microcontroller, crystal oscillator, and MAX232 chip are listed. Software was written in C to control the microcontroller. Testing showed the protected software runs fully with a valid hard key, but with limitations without a valid key, demonstrating the circuit can reliably protect software from unauthorized use and piracy.