P87LPC764单片机的I2C总线显示电路
> SSLAWASUBADRACOMAdata1Adata2Adata3Adata4AP
SLAW为SAA1064的地址。
SUBADR为SAA1064片内地址单元首址。
COM为SAA1064的控制命令。
data1~data4为动态显示方式的4个LED显示器的共阴极段选码。
(2)子地址单元
SAA1064片内有5个地址单元,占用了3位地址位(SC、SB、SA),分别用于装入控制字节和4个显示段码,具体地址分配如表1所列。由于SAA1064写操作具有地址自动加1功能,故在数据操作格式的写入顺序中,SUBADR应为00H。
0000SASBSC单元地址功能000000000H控制寄存器00101H数字位101002H数字位201103H数字位310004H数字位410105H保留不用11006H保留不用11107H保留不用
(3)控制命令COM格式
SAA1064具有较强的控制功能,能实现亮度控制,显示器测试,动、静态及位亮、暗显示。这些控制命令集中设置在控制寄存器中。控制命令(COM)格式如下:
-C6C5C4C3C2C1C0
C0动态、静态显示选择,C0=1动态显示。
C1数码管1、3亮灭选择,C1=1选择亮。
C2数码管2、4亮灭选择,C2=1选择亮。
C3测试位,C3=1时所有段点亮,正常工作时该位为0。
C4、C5、C6输出电流控制位,为1时分别对应3mA、6mA、12mA。皆为1时输出电流最大为21mA。
三、显示电路实例
图2是P87LPC764与SAA1064的接口电路实例。P87LPC764单片机采用6MHz的内部RC振荡器,访问4片SAA1064,驱动16只数码管显示,每片SAA1064的接线如图2所示。
该应用电路是一个单主的I2C总线系统,不会出现总线竞争问题,而且数据传送操作只有主发送方式,因此,在编程过程中没有检测总线错误。在数据发送过程中,每发送1个字节,都检测应答信号,如无应答信号,建立标志位F0,程序重新开始发送数据。
以下是该I2C总线显示电路的程序清单,显示缓冲区为30H到3FH单元。
START:MOVR0,#30H;显示缓冲区首地址
MOVR1,#17H;SAA1064控制码
MOVR2,#70H;SAA1064(1)的地址
MOVR3,#04H;4片SAA1064
LOOP:ACALLDISP
JBF0,START;无应答信号重新开始
INCR2;
INCR2;
DJNZR3,LOOP;
┆
以下是显示子程序
DISP:CLRF0;清除无应答标志
MOVI2CFG,#30H;请求成为I2C总线主机
JNBMASTER,$;等待成为I2C总线主机
MOVI2CON,#1CH;清除起动条件
《P87LPC764单片机的I2C总线显示电路(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/169840.html
SLAW为SAA1064的地址。
SUBADR为SAA1064片内地址单元首址。
COM为SAA1064的控制命令。
data1~data4为动态显示方式的4个LED显示器的共阴极段选码。
(2)子地址单元
SAA1064片内有5个地址单元,占用了3位地址位(SC、SB、SA),分别用于装入控制字节和4个显示段码,具体地址分配如表1所列。由于SAA1064写操作具有地址自动加1功能,故在数据操作格式的写入顺序中,SUBADR应为00H。
0000SASBSC单元地址功能000000000H控制寄存器00101H数字位101002H数字位201103H数字位310004H数字位410105H保留不用11006H保留不用11107H保留不用
(3)控制命令COM格式
SAA1064具有较强的控制功能,能实现亮度控制,显示器测试,动、静态及位亮、暗显示。这些控制命令集中设置在控制寄存器中。控制命令(COM)格式如下:
-C6C5C4C3C2C1C0
C0动态、静态显示选择,C0=1动态显示。
C1数码管1、3亮灭选择,C1=1选择亮。
C2数码管2、4亮灭选择,C2=1选择亮。
C3测试位,C3=1时所有段点亮,正常工作时该位为0。
C4、C5、C6输出电流控制位,为1时分别对应3mA、6mA、12mA。皆为1时输出电流最大为21mA。
三、显示电路实例
图2是P87LPC764与SAA1064的接口电路实例。P87LPC764单片机采用6MHz的内部RC振荡器,访问4片SAA1064,驱动16只数码管显示,每片SAA1064的接线如图2所示。
该应用电路是一个单主的I2C总线系统,不会出现总线竞争问题,而且数据传送操作只有主发送方式,因此,在编程过程中没有检测总线错误。在数据发送过程中,每发送1个字节,都检测应答信号,如无应答信号,建立标志位F0,程序重新开始发送数据。
以下是该I2C总线显示电路的程序清单,显示缓冲区为30H到3FH单元。
START:MOVR0,#30H;显示缓冲区首地址
MOVR1,#17H;SAA1064控制码
MOVR2,#70H;SAA1064(1)的地址
MOVR3,#04H;4片SAA1064
LOOP:ACALLDISP
JBF0,START;无应答信号重新开始
INCR2;
INCR2;
DJNZR3,LOOP;
┆
以下是显示子程序
DISP:CLRF0;清除无应答标志
MOVI2CFG,#30H;请求成为I2C总线主机
JNBMASTER,$;等待成为I2C总线主机
MOVI2CON,#1CH;清除起动条件
《P87LPC764单片机的I2C总线显示电路(第2页)》