well, it depends on a certain system you are going to develop of course. but i suppose that atmega128 could suit your needs, it has six (8pin) ports including multiplex data and address ports, and port g (alternative, i.e. instead of ALE, WR, RD, etc).
visit www.atmel.com
it depends on the detailed system... why you do not whant to use atmega? is it too expensive? of course, sometimes it's better to use 2 MPUs, 1 deals with basic tasks the other is for some peripherial tasks, but again, it's better to discuss a circuit in details, not just a general talk
I do not prefer to go with the atmega128 at the moment as I would need to make a PCB to mount the chip. I would prefer a DIP package for prototyping.
I know it would be easier to discuss a specific application, but at the moment it is conceptual and I am just trying to develop the BOM so that I can go about the procurement prior to development. I could post updates on my progress.
If we use 2 AVRs what would be the best way to get them to communicate with each other ?
On the top level this would need to have a keyboard to punch the item codes on a matrix keyboard, displaying the same on the lcd, the quantity and the totals added till a end switch is pressed.
All display would happen on the lcd for the moment.
well, try 90s8515 (it comes with DIP package too). interface to external memory, UART. the 2 MPUs could communicate via UART: 1 MPU is connected to keyboard and communicates with the other MPU via UART. if you want to reserve UART for an external rs232, then you can use general port pins plus a pin for external interrupt to provide data exchange between the 2 MPUs
By not wanting to develop using smt devices you are limiting your choices. Some devices are available ONLY in smt packages. One techinique for prototyping with smt packages is to fab an smt adapter board with pins so that it appears like a dip or sim package. There are companies that already sell these boards. An advantage to having your prototype pcb fab'd is that the board layout is already done AND verified. There are fab shops that specialize in protoype pcbs that are pretty inexpensive, like https://barebonespcb.com (as long as you can keep the design to 2 layers).
I would design with the ideal device and then find a way to deal with the packaging second.
Use to 2 paralel in/serial out latch register circuit (like 74LS597) for 16 keys. It consume 4 lines. The LCD can be access using 7 lines: 3 for control and 4 for data (or 6 2 control and 4 data but I do not recommend it). You can overlap the output lines for controling the serial latches with the data lines for the LCD. Until now you used 8 lines: 7 for LCD and 1 for latches (3 lines for the latches are overlap with the data bus from LCD) The rest of the circuit lines are for RS232 and RAM access. Hope that help you.
You can cut the total number of i/o pins by:
1) using serial lcd: they are most popular than the parallel ones, today
2) use analogic encoding for the 4*4 keyboard to have only one input pin occupied: you can find some app. note in the micr*chip website about that, i don't remember the number, sorry.