请教简单快速理解I2Cjsonp原理及简单实现

I2c 请教关于I2c总线问题
-电子产品世界论坛
,I2c 请教关于I2c总线问题
,I2c 请教关于I2c总线问题
书上介绍I2C总线时,提到:连接到总线的器件输出级必须是漏级开路或集电极开路,通过一电流源或上拉电阻接到电源电压,这样才能实现“线与”功能。
1、什么是漏级开路和集电极开路啊?
2、什么是线与,为什么要线与啊?
3、为什么要接上拉才可实现线与 ?
新手求教,谢谢。&&&
网上有很多相关资料,自己找
TTL门电路中输入端负载特性(输入端带电阻特殊情况的处理):
&&1、悬空时相当于输入端接高电平。因为这时可以看作是输入端接一个无穷大的电阻。
&&2、在门电路输入端串联10K电阻后再输入低电平,输入端出呈现的是高电平而不是低电平。因为由TTL门电路的输入端负载
特性可知,只有在输入端接的串联电阻小于910欧时,它输入来的低电平信号才能被门电路识别出来,串联电阻再大的话输入
端就一直呈现高电平。这个一定要注意。
COMS门电路就不用考虑这些了。
TTL电路有集电极开路OC门,MOS管也有和集电极对应的漏极开路的OD门,它的输出就叫做开漏输出。
&&&OC门在截止时有漏电流输出,那就是漏电流,为什么有漏电流呢?那是因为当三机管截止的时候,它的基极电流约等于
0,但是并不是真正的为0,经过三极管的集电极的电流也就不是真正的0,而是约0。而这个就是漏电流。
&&&开漏输出:OC门的输出就是开漏输出;OD门的输出也是开漏输出。它可以吸收很大的电流,但是不能向外输出的电流。所
以,为了能输入和输出电流,它使用的时候要跟电源和上拉电阻一齐用。
既然上拉你是知道了,那么有了上拉电阻,电阻的下面就相当于将两个开关接到地。其中,只要有一个接通,那么所得的电平就是低电平。因这两个开关是直接连到一起的,同时也因为效果上“其中,只要有一个接通,那么所得的电平就是低电平”,所以,称为线与。
实际上,这两个开关就是你所说的三极管(OC:开集输出)或场效应管(OD:开漏输出)。所谓开集,就是指三极管的B、E极正常接线,但C极什么也没接,也就是悬空。开漏同理,只不过用的是场效应管罢了。
好象比较器LM393就是开集输出的。
最显浅的例子是:NE555的第7脚就是开集或开漏(看它们的工艺)输出的(如果没有上拉电阻的话,怎么工作也没有可以正常利用的电压或电流可以输出,不能用作逻辑电平使用),而第3脚则是电平输出(根据工作情况,会有高或低的电平输出,也可以有电流输出---负载大小决定电流大小)。
匿名不能发帖!请先 [
Copyright (C) 《电子产品世界》杂志社 版权所有查看: 6400|回复: 11
请教1602 I2C问题
在淘宝上看到1602的I2C板子 觉得接线简单就买了&&他们送了相应的库&&
这个是我写的程序
#i nclude &Wire.h&
#i nclude &LiquidCrystal_I2C.h&
LiquidCrystal_I2C lcd(0*27,16,2);
void setup()
lcd.init();
lcd.backlight();
lcd.print(“1111”);
void loop()
编译没有问题&&下载后 1602没有显示&&只有下面的一行是
IMG_021.jpg (43.99 KB, 下载次数: 7)
16:41 上传
各位给帮忙看看
库不对,看看1602背后的控制芯片是不是PCF8574T?是的话用这个库。
17:04 上传
点击文件名下载附件
335.57 KB, 下载次数: 563
8547T LiquidCrystal库
库可以,显示正确&
库是淘宝卖家给的
不知道有没有问题&
是你对比度没调好吧
是后面那个可调电阻吗&
conectar un lcd qy-1602 a un arduino uno r3_bb.png (111.94 KB, 下载次数: 12)
18:44 上传
我买的是套件
直接引出4个针
#include&Wire.h&
#include&LiquidCrystal_I2C.h&
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{ lcd.init();
&&lcd.setCursor(0,0);
lcd.print(&&);
&&lcd.backlight();
}
void loop()
{
for(i=0;i&9;i++)
{
lcd.setCursor(0,1);
lcd.print(i)
delay(1000);
}
}复制代码
下一行显示0-9&
这个有显示了
一个位子在显示? 0 o _ o
hdxabout 发表于
试试这个代码
问下我的代码有什么问题呢&
hdxabout 发表于
试试这个代码
你的代码应该没有问题。如果还是只显示一行,试试看改个地址,比如0x20,地址不对的时候也是会那样显示的。
p857211 发表于
後面有一個可變電阻
要調調看嗎?
应该是线没接好吧
hdxabout 发表于
试试这个代码
你试一下在loop里加一点东西,记得设置光标的位置,你的setup函数里的那个显示1111的语句都没有设置光标的位置,你在那条语句加上设置光标语句试试看
Powered by增值税发票
无理由退货
我浏览过的
您现在的位置:&
让代码助你理解I2C总线
让代码助你理解I2C总线
  I2C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。
  SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发)
  SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成“线与”关系。
  为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形:
  如下图所示的写操作的时序图:
  读时序的理解同理。对于时序不理解的朋友请参考“I2C总线概述及时序总结”
  完整的程序如下:
  #include
  #define uchar unsigned char
  #define uint unsigned int
  #define write_ADD 0xa0
  #define read_ADD 0xa1
  sbit SDA=P2^0;
  sbit SCL=P2^1;
  void SomeNop(); //短延时
  void init(); //初始化
  void check_ACK(void);
  void I2CStart(void);
  void I2cStop(void);
  void write_byte(uchar dat);//写字节
  void delay(uint z);
  uchar read_byte(); //读字节
  void write(uchar addr,uchar dat); //指定地址写
  uchar read(uchar addr); //指定地址读
   //应答标志位
  void main()
  init();
  write_add(5,0xaa); //向地址5写入0xaa
  delay(10); //延时,否则被坑呀!!!
更多猛料!欢迎扫描下方二维码关注土猫网官方微信( tumaowang )
&#165&6.9元
&#165&28.2元
&#165&127元
节省25.4元
&#165&318元
节省63.6元
&#165&159元
节省31.8元
&#165&449元
节省89.8元
&#165&299元
节省59.8元
&#165&35.3元
节省15.7元
&#165&239元
节省47.8元
&#165&38元
&#165&10.9元
&#165&19元

我要回帖

更多关于 i2c总线工作原理 的文章

 

随机推荐