hello
my teacher gave me this semester long project where we have to setup a data logger using 8051 microcontroller .he has asked us to find a suitable memory first for 40 bytes where each bit arrives after a delay of 600us(the arriving data has to be stored in this external memory) does this delay have anything to do with the memory size or type?kindly help,m looking forward to a solution.will be greatful!

Yes,any memory type may be serial or parallel will give you a write cycle time for each byte,it should be less then 600us in your case.You can find the write cycle time specification for your device in its datasheet.

The MCS-51 family works with the 27xxx and 27Cxxx external EPROMs if you're wanting parallel memory. But the lower address byte will need a parallel latch such as the 74HC/HCT373 or 74HC/HCT573 because the lower address byte and data are multiplexed onto P0.

thank you Jon.
there is one thing more that i have to ask is there any way we could interface 8051 with an external RAM greater than 64KB? will a non volatile RAM help? looking forward to an urgent reply.will be greatful

The 8051 can support up to 64K of external PROGRAM ROM. This is due to the fact that ports 0 and 2 are the external ROM address buss (with the data buss multiplexed onto port 0, which is the low byte of the EPROM address buss and is why a parallel latch is needed to read the data back from the EPROM). With only having 16 address lines (8 address lines per port x 2 ports), you can only access up to 65,536 addresses in program ROM (16 lines = 16 bits, and 16 bits can only count from 0 to 65535, for a total of accessibility to 65536 program ROM addresses).

But this is for PROGRAM ROM, i.e. the memory that holds the main program that makes the chip work.

However, if it's more RAM that you're looking for (which is memory that the chip uses for temporary storage of data during program execution), you can use as large a RAM as you can send address bits to it. A serial EEPROM can function as external RAM if need be. Microchip has a host of them available.

I would look at saving 8 bits at a time into the bit memory section of the 8051, or save the bits into the B register. Once I had the byte, I would save it out to the RAM.

As to more than 64K of RAM, what you would need to do is called "memory banking." Using the P1 pins as additional address / chip select lines, you can get up to 2^24 bytes. You will have to programmatically change the P1 settings. If you really want to go wild, you can utilize any unused P3 pins as well.