How to get input voltage of 5 and 6 volts
Chris Stratton's solution is the best, I think.

Get a 3.3V LDO. The PIC16F877A (datasheet) will run happily from 3.3V, as will most of the usual transistorised H-bridges that you might use for motor drive. You can then run the whole thing from 4 AA cells, either alkaline or NiMH rechargeables. This avoids problems when the battery terminal voltage drops under load (which it will once you turn on the motors).

It is not a good idea to run the motors and the PIC from the same power supply with no intermediate filtering or regulation, as the noise may cause the PIC to reset.