邢矫健
在MCS-51单片机已经被广泛使用的时候,还没有I2C协议标准。但今天,I2C已经作为IC之间的标准数据交换协议被广泛采用。没有I2C接口的MCS-51单片机也常会涉及和标准I2C器件交换数据,所以MCS-51模拟I2C接口的文章也常见诸报端。最近,笔者为了设计一个基于I2C时钟的电子打铃器的方案,先进行了一次MCS-51模拟I2C接口操作的实战编程。原以为凭着手头的各种资料,可以轻松完成,没想到颇费了一番周折,所以特将自己获得的经验作个小结。
1. I2C器件的硬件结构
I2C总线由SDA和SCL两条信号线组成,其中SDA为数据线,SCL为时钟信号线。I2C总线上可以挂接SRAM、E2PROM、ADC/DAC、RTC、I/O口、DTMF、时钟芯片、温度芯片等有标准I2C接口的芯片,形成一个完备的数字化处理系统。上电时,SDA和SCL都由各自线上接的上拉电阻拉到高电平状态。