新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > I2C总线数据传输的C语言实现及其应用

I2C总线数据传输的C语言实现及其应用

作者:时间:2014-03-04来源:网络收藏

  #include<reg51.h>

  /*全局符号定义*/

  #define HIGH1

  #define LOW 0

  #define FALSE0

  #define TRUE1

  #define time 1

  #define uchar unsigned char

  #define uint unsigned int

  sbit SCL=P1^6;

  sbie SDA=P1^7;

  1)函数原型:void delay(uchar nu m)

  功  能:用for()循环提供延时。在实际应用中可依具体情况改变传入参数,但必须满足时序中对SCL高、低电平周期的要求,本应用中取1,调用形式为delay(time)。

  2)函数原型:void start(void)

  功  能:提供工作时序中的起始位,在SCL=HIGH期间,SDA出现由高到底的转变,返回前将SCL拉低,允许数据变化,准备传输。其中调用函数1。

  3)函数原型:void stop(void)

  功  能:函数提供工作时序中的起始位,在SCL=HIGH期间,SDA出现由低到高的转变。其中调用函数1。

  4)函数原型:void sendbyte(uchar b,uchar*error)

  功  能:在时钟作用下,将入口参数b中8位数据由高至低通过SDA线发送,并读回应答信号,存于指针变量*error中。其中调用函数1、2、3。

  5)函数原型:void readbyte(uchar*b,bit Ack)

  功  能:函数在时钟作用下接收8位数据,存于*b中,先接收的为高位,并发送应答信号(Ack=0),当接收到最后一字节时发送非应答(Ack=1)。其中调用函数1、2、3。

  6)函数原型:void send-n-byte(uchar*info,uint n,uchar address,uchar*fault)  功  能:向I2C器件连续发送n个数据字节,数据存于数组info[]中,address为器件受控地址,末位为0(写),n个数据的地址可作为数据字节发送,或设置地址自动加减功能。*fault存收到的应答位。其中调用函数1-4。

  7)函数原型:void receive_n_byte(uchar*info,uint n,uchar address,uchar*fault)

  功  能:从I2 C器件连续接收n个字节的数据,存于数组info[]中,address为器件地址,本函数保证器件地址末位是1(读),n个数据的器件内地址可作为数据字节发送,或设置地址自动加减功能。收最后一字节时发非应答信号1。*fault存收到的应答位。其中调用函数1-5。

  以下仅以sendbyte()函数原型为例说明C51如何具体实现I2C总线的发送:

  void sendbyte(uchar b,uchar*error)

  {int count;

  bit data_bit;

  *error=0;

  for(count=7;count>=0;count--)

  {data_bit=(bit)(b&0x80);

  b=b<<1;

  /*送数据位,产生时钟脉冲*/

  SDA=data_bit;

  SCL=LOW;delay(time);

  SCL=HIGH;delay(time);

  SCL=LOW;delay(time);

  }

  /*释放数据线,产生时钟脉冲,读回应答*/

  SDA=HIGH;

  SCL=LOW;delay(time);

  SCL=HIGH;delay(time);

  *error=(uchar)SDA;

  /*释放数据线,时钟置低*/

  SDA=HIGH;

  SCL=LOW;delay(time);}

4 I2C总线用于HDTV数字地面接收机

  数字高清晰度电视HDTV(High Definition Televi-sion)是继黑白电视和彩色电视之后的第三代电视系统,与目前市场上的电视相比,其水平和垂直两个方向的图像质量(分辨率)提高一倍以上,在使用大屏幕显示器或近距离观看时其图像细腻逼真,无闪烁感和粗糙感,质量与35mm电影相当,再配以数字环绕音响,使收视效果大幅度提高。HDTV 节目全部采用数字方式制作、发送和接收,使图像质量接近演播室。同时,数字电视系统还能够提供多种业务,实现交互、数据广播和计算机联网等功能。美国于 1998年11月率先正式开播数字HDTV信号。我国从1996年启动国家重大产业工程项目HDTV功能样机系统研究开发工程,已成功在50周年国庆时进行了数字电视试播。



评论


相关推荐

技术专区

关闭