按平台模式设计的虚拟I2C总线软件包VIIC
五、VIIC1.0应用示例
在本文参考文献2中给出了一些基于VIIC软件包的外围串行扩展应用实例。现就带I2C总线接口LED显示驱动器SAA1064扩展8位LED显示电路来示范VIIC1.0的应用。
1.硬件电路与寻址字节
用2片SAA1064扩展的8位LED显示电路如图2(b)所示,图2(a)为SAA的引脚排列图。设80C51用P1.1/P1.0来虚拟SDA/SCL口线。两片SAA1064的ADR引脚分别接地和VCC。SAA1064(1)、(2)的器件地址为0111,引脚地址为000和111,因此它们的寻址字节SLAW/SLAR分别为70H/71H和76H/77H。
2.显示原理与数据操作格式
在I2C总线外围器件的数据手册中,都给出了实现器件功能的数据操作格式,以及实现功能的控制命令与寄存器的管理模式。
(1) SAA1064的数据操作格式 80C51只须对SAA1064进行写操作,便实现了LED的显示驱动控制。SAA1064的写数据操作格式如下:
S SLAW A SUBADR A COM A data1 A data2 A data3 A data A P只须对SAA1064中首地址为SUBADR的5个寄存器单元中依次写入控制命令COM和4个LED共阴极段码datal~data4,SAA1064的SUBADR=00H。
控制命令COM格式及位功能规定如下:
D7 D0
—— C6 C5 C4 C3 C2 C1 C0C0 静、动态显示选择。C0=1,动态显示。
C1 显示位1,3暗亮选择。C1=1,选择亮。
C2 显示位2,4暗亮选择。C2=1,选择亮。
C3 测试位。C3=1,所有段点亮。
C4,C5,C6 驱动电流控制位。C4,C5,C6为 “1”时,驱动电流分别为3mA,6mA,12mA;皆为1时输出驱动电流最大,达21mA。
3.应用程序设计
按下列步骤完成图2(b)的8位LED显示程序设计。
(1) 将VIIC1.0装入程序存储器中。
(2) 根据硬件电路及资源分配,将VIIC1.0中的符号单元赋值如下:
VSDA EQU P1.1 ;用
《按平台模式设计的虚拟I2C总线软件包VIIC(第5页)》