1. 51单片机如何模拟I2C总线中从机接收ID,发送数据的程序
希望能给你解答:
1、时钟信号都是主机产生的,从机只有一种情况下才能控制时钟线,即在忙的时候,主机还在发送数据,从机会主动把时钟拉低,表示我正在忙,不能收数据。
2、两个主机的话,在发送的时候一定会有一个从属关系,这个需要自己设置。
3、响应:i2c上每传输一个字节,都必须要有响应,方向是从机到主机。
2. 51单片机I2C通讯的地址是怎么回事
一个I2C总线上可以挂多个器件,为区分不同的器件,所以有器件地址的概念
有些器件的地址是固定的,有些器件的地址是可变的
3. 如何用51单片机模拟i2c协议
I2C 协议包含了起始条件,停止条件,串行移位;这里面包含了三段时序。
下面根据应用分析:
1,假如你要写一个ic的通信协议,而这个通信协议用的是I2C。
一般需要I2C通信的ic都会告诉你具体的时序图,你可以查看具体的IC技术手册,然后你根据时序图的高低电位和电平改变的先后顺序来写I2C协议就行了,注意速度。
2,你想做一个模拟 I2C 驱动协议。
你在网上搜索一下I2C时序图(有很多哦),然后你根据时序图上面的电平高低,电平改变顺序来写这个协议就行了。
4. 51单片机的I2C通讯问题.w
这个讲的是I2C协议的具体SDA与SCL高低电平时序,就假如你用51单片机两个I/O口 一个I/O模拟SDA 一个I/O模拟SCL时 你可以按照以上图片里面的时序来编辑两个I/O高低电平时序。假如你有I2C通讯硬件模块的话 你就不需要以上图片直接用模块就行。上面图片讲的东西 大部分在I/O口模拟I2C 传输数据时才会用到,比较底层。不知道我的回答你能理解么。
5. 用51单片机可以读取模块采用I2C传输回来的数据吗
普通线就行
I2C就是个读写协议,就是你看到的的那个数据传输在时钟的上升沿开始传输,下降沿结束......只有遵守这样的协议,才能通信
6. 51单片机通过I2C总线操作EEPROM
把Display();用大括号括住试一试
另外要确定从EEPROM读取的数值dat是否在0-16范围内,因表格内只有17个代码,超过此范围是显示不出来的
还有LSD=LEDDATA[DisplayData[i]];//发送段码
你获得的数据只有DisplayData[0],那么DisplayData[i]其它数据从何而来,是0吗?也许只是想先试一试能否点亮一个数码管
7. 51单片机串口通信,和I2C串口通信协议有什么区别和相同
串口通信准确的说叫RS232通信,串口通信和I2C都是串行通信,但串口通信是RS232协议,I2C通信是遵循I2C协议,举个简单例子,从A到B有条路,一个人走路过去,一个人坐车过去。串行通信就是相当于路,RS232和I2C协议相当于走路和坐车两种不同的方式
赞同
8. 51单片机i2c总线读写操作问题
带有 I2C 功能的设备之间通信很方便,51单片机没有 I2C 接口,只能在编程时遵守 I2C 协议,下面的资料很详细。
http://wenku..com/link?url=_J0cu6a-W8yDznvCJWE9_6axIlyNpbV-_R-x2s8R4x5o-qIJ9m-tfMjANr4St5GeZi
你必须懂硬件,会看时序图,才能用 51单片机完成 I2C 通信。在这里三言两语说不清楚的。
9. 两个51单片机如何通过i2c通讯
一般情况下,要进行I2C通讯,你最起码其中有一个芯片要本身就带有I2C通讯接口,用这个带有I2C接口的芯片来作从器件,这样就相对好处理一点。你要是两个都不带这个接口,来模拟的话,很有难度。除非你对I2C协议很清楚,不过从楼主的提问来看,估计就不怎么熟悉这种协议。
所以建议还是用别的通讯方式吧,比如用SPI,相对会好处理一点,用其中一个芯片的INTx来模拟CS接口,作为从器件在中断中来处理,另外一个就模拟主器件来控制从器件,这样或许会好弄点。如果楼主确实需要通讯,还是赶快换个思路吧,要是卡在一个地方动不了,会耽误你的进程的,祝你好运!