2024.01.10 15:56
「I2C项目」 如何退出I2C总线公共端 创维电视
文章来源:顺利加盟网
I2C项目: 如何退出I2C总线公共端 创维电视 I2C总线彩电是指在彩电控制电路中,以I2C总线技术对各单元电路或部分电路实施控制功能的彩电。 1、修理
I2C项目: 如何退出I2C总线公共端 创维电视
I2C总线彩电是指在彩电控制电路中,以I2C总线技术对各单元电路或部分电路实施控制功能的彩电。 1、修理机器前应熟悉全机图纸,只有熟悉全机图纸, 才能了解全机I2C总线的控制走向,I2C总线实际共挂接哪些芯片,即哪些功能电路是采用I2C总线控制的...展开全部I2C项目: I2C总线中是如何实现读一个字节的? 例如mcu要从某器件中读一个字...
sda 应该是 0x80 就是 用K和0x80 进行每一位的或运算其他答案:没有4位机制,有8位51单片机的汇编程序。还有一个c语言的,可以给你参考,这都是我项目中用到的程序。给你作个参考,在产品的实际工作中也很稳定。下面是汇编的:;;-----启动-----;; start1: lcall del5us setb sda1 lcall del5us setb scl1 lcall del5us clr sda1 lcall del5us clr scl1 lcall del5us ret;;-----结束-----;; stop1: lcall del5us setb scl1 lcall del5us setb sda1 lcall del5us ret;;-----应答检查-----;; cack1: setb sda1 lcall del5us setb scl1 lcall del5us mov c,sda1 jc cack1 clr scl1 clr sda1 lcall del1ms ret;;-----应答-----;; mack1: clr sda1 lcall del5us setb scl1 lcall del5us clr scl1 lcall del5us setb sda1 ret;;-----向从器件指定单元写n个字节数据-----;;;;入口:传递的地址在pointer,数据在wr_buf中,发送字节数在n中;;资源占用:acc、r0、r1、r3、c wr_nb1: clr ea setb sda1 setb scl1 lcall start1 mov a,#0a2h lcall wr8bit1 lcall cack1 mov a,pointer lcall wr8bit1 lcall cack1 mov r3,n mov r1,#wr_buf wrnb11: mov a,@r1 lcall wr8bit1 lcall cack1 inc r1 djnz r3,wrnb11 lcall stop1 lcall del10ms setb ea ret;;-----从从器件指定单元读n个字节数据-----;;;;入口:传递的地址在pointer,接收数据缓冲区rd_buf,接收字节数在n中;;资源占用:acc、r0、r1、r3、c rd_nb1: mov r3,n rdnb11: lcall start1 mov a,#0a2h lcall wr8bit1 lcall cack1 mov a,pointer lcall wr8bit1 lcall cack1 lcall start1 mov a,#0a3h;#0a1h lcall wr8bit1 lcall cack1 mov r1,#rd_buf rdb1: lcall rd8bit1 mov @r1,a djnz r3,sack1 lcall stop1 ret sack1:inc r1 lcall mack1 sjmp rdb1;;-----字节发送-----;;;;入口:要发送的数据在acc中;;每发送完一个字节,要调用一次cack,以判断是否有应答 wr8bit1: push acc mov r0,#08h wr_bit1: rlc a mov sda1,c lcall del5us setb scl1 lcall del5us clr scl1 djnz r0,wr_bit1 pop acc ret;;-----字节接收-----;;;;出口:接收到的数据在acc中;;每接收完一个字节,要调用一mcack/mnack rd8bit1: mov r0,#08h rd_bit1: setb sda1 lcall del5us setb scl1 lcall del5us mov c,sda1 rlc a lcall del5us clr scl1 djnz r0,rd_bit1 clr sda1 ret 以下的程序是c语言的程序,用于读24c01存贮器,稍加修改可以用于所有的i2c总线驱动。/******************************************************************** 名 称:readiic_24c01** 功 能:读24c01指定的地址的数据** 输 入: address 24c01的地址** 输 出: ddata 读出的数据** 全局变量: 无** 调用模块: write_8bit();delay();** 备注:******************************************************************/ uint8 readiic_24c01(uint8 data address) { uint8 data ddata=0; uint8 data i=8; _nop_(); _nop_(); _nop_(); ea=0; scl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //tsu:sta sda=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //thd:sta scl=0; //start write_8bit( (address ack_r(); while (i--) { sda=1; ddata scl=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl=1; if (sda) ddata|=0x01; } scl=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); sda=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); sda=1; //stop _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); ea=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); delay(50); _nop_(); _nop_(); _nop_(); return ddata; }/******************************************************************** 名 称:writeiic_24c01** 功 能:将数据写入24c01指定地址** 输 入: address 24c01的地址** ddata 待写入的数据 ** 输 出: 无** 全局变量: 无** 调用模块: write_8bit();delay();** 备注:******************************************************************/ void writeiic_24c01(uint8 data address,uint8 data ddata) { _nop_(); _nop_(); _nop_(); ea=0; scl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //tsu:sta sda=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //thd:sta scl=0; //start _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); write_8bit( (address ack_r(); write_8bit(ddata); //发送数据 ack_r(); sda=0; _nop_(); _nop_(); _nop_(); scl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); sda=1; //stop _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); ea=1; _nop_(); _nop_(); _nop_(); delay(50); _nop_(); _nop_(); _nop_(); }/******************************************************************** 名 称:write_8bit** 功 能:将一个字节数据写入24c01** 输 入: 无** 输 出: 无** 全局变量: 无** 调用模块: 无** 备注:******************************************************************/ void write...
I2C项目: I2C总线的都有什么形式的工作方式?每一个工作方式是根据芯片的型...
I2C是标准的通讯方式,所有支持通讯的芯片都是一样的。具体的工作状态需要根据实际情况,是主到从,还是从到主。其他答案:没有4位机制,有8位51单片机的汇编程序。还有一个c语言的,可以给你参考,这都是我项目中用到的程序。给你作个参考,在产品的实际工作中也很稳定。下面是汇编的:;;-----启动-----;;start1: lcall del5us setb sda1 lcall del5us setb scl1 lcall del5us clr sda1 lcall del5us clr scl1 lcall del5us ret;;-----结束-----;;stop1: lcall del5us setb scl1 lcall del5us setb sda1 lcall del5us ret;;-----应答检查-----;;cack1: setb sda1 lcall del5us setb scl1 lcall del5us mov c,sda1 jc cack1 clr scl1 clr sda1 lcall del1ms ret;;-----应答-----;;mack1: clr sda1 lcall del5us setb scl1 lcall del5us clr scl1 lcall del5us setb sda1 ret;;-----向从器件指定单元写n个字节数据-----;;;;入口:传递的地址在pointer,数据在wr_buf中,发送字节数在n中;;资源占用:acc、r0、r1、r3、cwr_nb1: clr ea setb sda1 setb scl1 lcall start1 mov a,#0a2h lcall wr8bit1 lcall cack1 mov a,pointer lcall wr8bit1 lcall cack1 mov r3,n mov r1,#wr_bufwrnb11: mov a,@r1 lcall wr8bit1 lcall cack1 inc r1 djnz r3,wrnb11 lcall stop1 lcall del10ms setb ea ret;;-----从从器件指定单元读n个字节数据-----;;;;入口:传递的地址在pointer,接收数据缓冲区rd_buf,接收字节数在n中;;资源占用:acc、r0、r1、r3、crd_nb1: mov r3,nrdnb11: lcall start1 mov a,#0a2h lcall wr8bit1 lcall cack1 mov a,pointer lcall wr8bit1 lcall cack1 lcall start1 mov a,#0a3h;#0a1h lcall wr8bit1 lcall cack1 mov r1,#rd_bufrdb1: lcall rd8bit1 mov @r1,a djnz r3,sack1 lcall stop1 retsack1:inc r1 lcall mack1 sjmp rdb1;;-----字节发送-----;;;;入口:要发送的数据在acc中;;每发送完一个字节,要调用一次cack,以判断是否有应答wr8bit1: push acc mov r0,#08hwr_bit1: rlc a mov sda1,c lcall del5us setb scl1 lcall del5us clr scl1 djnz r0,wr_bit1 pop acc ret;;-----字节接收-----;;;;出口:接收到的数据在acc中;;每接收完一个字节,要调用一mcack/mnackrd8bit1: mov r0,#08hrd_bit1: setb sda1 lcall del5us setb scl1 lcall del5us mov c,sda1 rlc a lcall del5us clr scl1 djnz r0,rd_bit1 clr sda1 ret以下的程序是c语言的程序,用于读24c01存贮器,稍加修改可以用于所有的i2c总线驱动。/******************************************************************** 名 称:readiic_24c01** 功 能:读24c01指定的地址的数据** 输 入: address 24c01的地址** 输 出: ddata 读出的数据** 全局变量: 无** 调用模块: write_8bit();delay();** 备注:******************************************************************/uint8 readiic_24c01(uint8 data address){uint8 data ddata=0;uint8 data i=8; _nop_(); _nop_(); _nop_(); ea=0; scl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //tsu:sta sda=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //thd:sta scl=0; //start write_8bit( (address 评论0 0 0
其他答案:制很多东西。
其他答案:制很多东西。
I2C项目: 大家帮忙看看怎么进入I2C调整
●CHT0406、CHT0410总线调整方法这两种CPU芯片生产的彩电由于个别彩电电视机上未设置AV功能键,导致这些芯片生产的彩电总线调整方法又有两种。第一种 电视机上设置有TV/AV转换键的电视机“总线调整”方法1. 总线调整进入用遥控器K12A、K12D,将音量...展开全部I2C项目:I2C设备是指什么?
编辑本段I2C总线定义
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
编辑本段I2C总线特点
I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
编辑本段I2C总线工作原理
总线的构成及信号类型
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口
I2C 总线是一种用于IC器件之间连接的双向二线制总线,所谓总线它上面可以挂多个器件,并且通过两根线连接,占用空间非常的小,总线的长度可长达25英尺,并且能够以10Kbps的最大传输速率支持4个组件。它的另一优点是多主控,只要能够进行接收和发送的设备都可以成为主控制器,当然多个主控不能同一时间 工作。
I2C总线有两根信号线,一根为SDA(数据线),一根为SCL(时钟线)。任何时候时钟信号都是由主控器件产生。
编辑本段I2C总线操作
I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。
控制字节
在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。
写操作
写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。
读操作
读操作有三种基本操作:当前地址读、随机读和顺序读。图4给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。
编辑本段I2C总线应用
目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。
I2C项目:什么是I2C,I2C有什么作用?
I2C是一种总线,简单的说可以进行数据传输,有很多传感器或者芯片都有I2C接口用于数据传输,比如AM2311温湿度传感器就是I2C总线接口的,利用纬图的GinkgoUSB-I2C适配器可以很容易的读取I2C芯片里面的数据。
I2C项目:i2c芯片有哪些?
资料详尽的I2C总线技术开发平台和越来越多的I2C功能部件的成熟应用,使得I2C软、硬件技术非常普及,可移植性、透明性的特点也全面提升到前所未有的水平。 NXP...
文章来源:顺利加盟网
风险提示及免责条款
[温馨提示] 文章来源于顺利加盟网,转载注明原文出处,此文观点与查生意无关,理性阅读,版权属于原作者若无意侵犯媒体或个人知识产权,请联系我们,本站将在第一时间删掉 ,查生意仅提供信息存储空间服务。


