为了读者能更方便地开发和使用I2C,在本刊的网站(W3NW.eleworld.eom)上给出了Mcs-5l模拟I2c接口的标准完整程序,并编写了一个配套的vB程序。通过RS232串口连接到MCS-5l串口,可以方便地在计算机上读写任何I2C器件。
以89C2051和24Cxx连接为例,如上图方式连接,P1.7为scL线,P1.6为sDA线。89C2051的串口通过MAX232与计算机RS232串口三线连接。将模拟I2c接口的I2c 51.asm文件编译后,烧录Mcs-51单片机的程序存储器,即可在计算机上读写接入的I2C器件。
下面介绍vB程序的使用方法。打开I2c读写器.EXE,主界面如上图所示。首先设置串口号、波特率、数据位数,默认的字节读先发送要读取单元的子地址:发出起始信号s→发送器件地址(末位为0,写操作)→发送子地址→发出终止信号P;再发送读取命令:发出起始信号S→发送器件地址(末位为1,读操作)→接收I2c器件设置为“COMl:4800,n,8,1”。
点击“设置串口号、波特率、数据位数”按钮,出现如上图所示的对话框。设置结束,可以点击“测试”按钮进行串行线通讯测试。连接和设置正确的话,测试信息框里将出现“通讯正常!”的提示。连接经测试无误,即可进行读写I2C器件的操作。
选择要读取的I2C器件,如果列表框中没有该器件,还可以点击“添加器件”按钮自助添加。点击“读取”按钮,出现如上图所示的“输入读取范围”对话框。输入欲读取的单元块的起始地址和结束地址,点击“确定”,相应单元块的数据内容即会显示在主窗体的文本框中。起始地址和结束地址有十六进制和十进制两种表示方法,使用任一种进制输入,程序将自动转化,方便用户使用。
同样,在主窗体的文本框中输入如“01 F5 7D”的十六进制数据,点击“写入”按钮即可将数据写入I2c器件的指定单元中。不同的是,写入时的结束地址是由起始地址和写人数据个数自动生成的,用户仅需输入起始地址即可。写入数据将被分成八字节以内的小块,逐批发送到51单片机串口并有延时,以保证正确写入I2c器件。
点击“保存”按钮,可以将显示在文本框里的数据内容保存为Hex或Bin文件格式。
点击“发送文件”按钮可以将Hex或Bin文件格式的数据内容写入I2c器件的指定单元块中。
4.结束语
本文对I2c器件的硬件结构、接口协议进行了详细分析,并以此为基础给出了没有Izc接口的Mcs-51单片机模拟I2c操作的程序实例。同时,还提供了一个在计算机上读写I2c器件的实现方案,希望对想利用I2c器件进行开发的读者有一些帮助和启示。
本文关键字:电子 综合-其它,单片机-工控设备 - 综合-其它