I am hoping someone in this group can explain why, the below, is ok to do. I'm a little cautious in implementing it because I already did something similar (without pulling up the 4-lines high with resisters) and it appears to have shorted the ports on my development board. I don't want to make another costly mistake! If you can respond to this...I'll be very indebted!
I'm attaching a schematic of what Zilog recommends in terms of how to connect a keyboard to the GPIO ports. The problem I have is that I don't understand it. Specifically:
Looking at the schematic - If you imagine that the GPIO pins PB4 - PB7 are output and set to high...and that the pins PB0 - PB3 are set to input. And that by pressing a key you make a direct connection from PB7 out through line 1 of the keypad then it would see that you would have a problem. with the current going through PB0. Because it is being sent through PB7 through the keypad and out of line 1 and into PB0 directly (there is no resister on that end) you would have a problem, wouldn't you?
Initially I think I burnt out my development board because I had half of the GPIO pins tied to the input of the other half of the pins with no current limiting resister. It appears that this schematic does the same thing, doesn't it?
Some further information about the pins when they are set to output and input modes is in the other attachment, GPIO modes.jpg.
The problem I'm having is that - based on the table you see in that attachment it appears that there should not be any problem connecting the output of one pin to the input of another. Because it is 'high impedance' it limits the current and, therefore, I don't need a limiting resister. If that's the case - how did I destroy my original development board? I didn't use resisters but I did tie the output to the input of another pin.
Links to the two examples I'm talking about can be found: ftp://
Thanks very much for your help!