sounds good, will I still need the 4050 buffer chip?
Also I never really understood pull down resistors, if they can pull 1.5Vish down to 0, will a 5v signal be pulled down to 3V, or anything like that?
Thanks for taking the time to help me here
EDIT: do you mean this sort of setup? (red arrows just included to help clarity)
hi,
Without pullup or pulldown resistors on Inputs that can be left 'unconnected' to an external source, the inputs are 'floating'.
This means the inputs can assume any state ie : '0' or '1'.
By placing your hand or objects, wiring etc, close to the pins, there can be sufficient induced voltage, to make the high impedance [CMOS]
inputs at a an indeterminate state.
So when your program reads the input pins it could be either '0' or '1'.
By connecting pulldown resistors the unconnected input pin will be held close to 0v, so the program will 'see' a '0' state.
For a Column that has been set to 5V by the program, will, if a key on that Column is closed, then Row pin will be pulled to +5V, which the program detects as a '1'.
Note: In some cases depending upon the sense the Column is set active, it could be that the unselected Cols are all high and the selected Col is pulled low.
In that case the Rows would have pullup resistors, so when a key is pressed the Row pin is pulled Low.
EDIT:
On many of the 'larger' PIC's on PORTB, there is an option in the configuration part of the program to enable 'weak' INTERNAL pullup resistors [IIRC about 50k.?].
So if pullups are needed the weak pullups are used.