In an effort to make my serial data processing faster, I attempted to use serial mode 0 with a system clock speed of about 3.686Mhz. Its clock comes from the ALE output of an unprogrammed at89S52 that has a 22.1184Mhz clock attached to it. Rather than resort to bit-banging, I'm going to try to lower my crystal speed because I was looking at a datasheet for 74HC595 from Texas Instruments and it mentioned about some rise and fall time for 500ns and based on 8051 documentation serial mode 0 makes a clock at 307200Hz (1/12th the 3.6Mhz). I also seen values of 100ns and numbers close to it in both 74HC138 and 74HC595 datasheet as well. Basically the circuits I show is pretty much a serial to parallel data expander in which the output dataset is selectable by the microcontroller, and also the microcontroller can issue a flush to the registers when its time to display the data.Before this post, I've first read some knowledge about microcontroller. Here is one article I found in a blog called Kynix Semiconductor Electronic Blog What's the highest speed crystal I should be using for this microcontroller to overcome the propogation delays under the worst-case scenarios (assuming power is 5VDC regulated)? Do I just add the biggest delays up for each bit or is it more involved? And when I send the data, I'll be filling all the bits up. Example: for device zero, I'll be filling up all 16-bits and for device 1, I'll be filling up all 24-bits, so the clear functionality of each register is unnecessary as the outputs will eventually be connected to LED's through resistors anyway.