Well the biggest issue I see is GPIO.3 MCLR needs to be pulled high unless you disable it in your configs.
I agree with previous about diodes. Remove them especially on the power pins and add the decoupling caps. They are not really necessary in light of the slow speed of your program.
If PIC is getting hot it's sinking/sourcing too much current. Usually to the base of the transistor you'd use a 10K but if you look at datasheet of 2222A you can calculate the right size to get the transistor to saturation. Diodes to transistor isn't necessary and should be removed.
Resistor to GPIO.1 should be at pin to pull pin low when circuit is not setting it high. You can ditch the diode there also.
Since you're doing all that shifting I'd suggest you not use GPIO.0 and GPIO.1. They are the ICSP pins and with out a switch to isolate circuit use of those pins as shown will not allow you to do ICSP. Don't forget GPIO.3 is an input only when configured properly and your controller reset input is the best use of that pin.
I suspect it will work as drawn once you fix the MCLR pin and transistor orientation if incorrect.
Bookmarks