两个51单片机如何通过i2c通讯?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个51单片机如何通过i2c通讯?相关的知识,希望对你有一定的参考价值。

我们做的是机器人。比如单片机A通过i2c向单片机B发送一个信号1,单片机B识别后能够做出反应,如向前走;然后发送一个2,识别后不动;发送一个3,识别后向后走等等。最最重要的是求程序,代码。

一般情况下,要进行I2C通讯,你最起码其中有一个芯片要本身就带有I2C通讯接口,用这个带有I2C接口的芯片来作从器件,这样就相对好处理一点。你要是两个都不带这个接口,来模拟的话,很有难度。除非你对I2C协议很清楚,不过从楼主的提问来看,估计就不怎么熟悉这种协议。
所以建议还是用别的通讯方式吧,比如用SPI,相对会好处理一点,用其中一个芯片的INTx来模拟CS接口,作为从器件在中断中来处理,另外一个就模拟主器件来控制从器件,这样或许会好弄点。如果楼主确实需要通讯,还是赶快换个思路吧,要是卡在一个地方动不了,会耽误你的进程的,祝你好运!
参考技术A 两个51单片机 通讯 可以通过 串口进行通讯(也可以多机通讯),如果要用到 I2C 芯片可另外用2个IO 端口扩展,至于各种功能 通过硬件 及 软件 完全可以完成 参考技术B 要看你们用的是什么型号的51单片机
如果没有硬件I2C,那么你的命题不成立追问

我们用AT89c51之类的,我们要外接I2c的。

追答

如果是AT89c51之类的你就别想啦
如果只会51单片机,又想用I2C,推荐使用C8051F系列,当然,飞利浦的也行。
至于有朋友说用SPI,呵呵,显然没经过思考
不是说SPI不能用
当你需要通信的外设较多时,你就会发现,SPI能累死你,O(∩_∩)O哈哈~
还有朋友说用串口,呵呵,显然更没经过思考
串口是一对一的,非要用,也得采用485方式,并增加部分硬件
话说现在使用CAN总线通信比较时髦
不过I2C也还行吧
如果会AVR单片机,那就方便多了
因为AVR单片机自带TWI
其实就是I2C
近来AVR单片机降价不少,性价比还行。
我的看法,嗯,还有很多,懒得打字。

参考技术C 必须是IIC吗。两个单片机通信通过串口通信要好点吧。个人观点。

两个单片机使用esp8266间如何直接通信

参考技术A 两片单片机使用串口与ESP8266通讯,设置8266均为UDP模式即可通讯。

以上是关于两个51单片机如何通过i2c通讯?的主要内容,如果未能解决你的问题,请参考以下文章

51单片机做串口通信接收缓存区没反应

51单片机基于I2C总线的秒表模拟应用

51单片机对I2C总线上挂接多个AT24C02的读写操作+Proteus仿真

手机APP连接ESP8266和单片机uart透明通讯

51单片机串口通讯,数据在发送后,上位机没有接收到数据。

51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真