Something like a Parallel In Serial Out register would help you save on the pins
0.5V will not trigger the interrupt since it's almost like 0. What you can do is to read the analog value on A0 instead and set a threshold to recognize it as triggered.
Since you are interfacing buttons to the core, it's essential an INPUT and there's no issue with the pins only OUTPUTTING 3.3v. You won't need the pins to be outputting a voltage.