SPI、I2C都是串行的,我想你说的所谓的串行口应该是UART吧,它们和51没什么关系。SPI应该是摩托罗拉公司首先使用的,它是四线(也可以三线)同步串行的,CS是位选段,控制器可以通过选择这一位来确定从器件,MOSI是主机输出从机输入,MISO是主机输入从机输出,SCLK是主机输出时钟。I2C是飞利浦公司发明的,采用两线制,SDA是数据总线,SCL是时钟线,所以他也是同步串行口,只有主机才能输出时钟。UART是异步串行口,TX和RX,一个是发总线一个是收总线,时钟是控制器内部产生,两个通信的控制器的内部时钟必须一致才能收发准确时间晚了,就写这么多,欢迎追问。