1 4位7段LED显示器
通常的4位LED显示器如图1所示,其内部由多只发光二极管构成,按连接方式不同可分为共阳极LED与共阴极LED。其电路特性基本一致:发光二极管导通压降为1.2V~1.8V、正向工作电流为2mA~15mA。在显示驱动方式中,采用动态扫描。当扫描到n1~n4公共端时,LED驱动器分别对应输出a~dp的显示段,LED就能正常显示。在自定制LED显示驱动器芯片中,LPC系列中的P87LPC762单片机芯片具有较好的端口设置与较强的内部功能,因此可以通过编程设置其引脚功能作为LED显示器的驱动芯片。
2 定制4位7段LED显示驱动器芯片
要实现4位7段LED的显示,只要使流过发光二极管每段的电流达到要求就可以了。在这里选用Philips公司LPC系列的P87LPC762单片机实现显示驱动电路。P87LPC762是一款增强型51系列的单片机,除具有一般单片机的功能外,还具有驱动LED的性能:
·I/O口具有上拉输出模式或开漏输出模式设置,可作为共阴极或共阳极LED的段输出与位输出。
·具有较大的端口拉电流或灌电流,内部有短路保护功能,可实现LED的电流驱动。
·当设计4位LED驱动器时,芯片其余引脚可作I2C总线地址设置、LED的极性选择。
·内部有2K的OPT,可作为程序存储器,用以实现接口与显示程序化。
·自带I2C硬件接口,便于接口编程与多芯片连接。
·内部看门狗与内部复位,可提高驱动显示的可靠性。
·内部设有RC振荡器,减少了外部元件。
P87LPC762芯片的引脚功能如图2所示。它有三个端口:Port0、Port1、Port2。当选择内部振荡和内部复位时,最大的I/O端口数目可达到18个。大多数端口均可以通过软件配置成准双向、上拉、输入、开漏输出四种类型之一。对于上拉输出模式,P87LPC762在标准的准双向口基础上增加了第三只三极管以提供强上拉功能,在高电平时可输出很大的拉电流;对于开漏输出模式,端口对外可提供很大的灌电流;对于输入模式,端口引脚电平由外部电压决定。
根据4位动态LED的显示特性,在此对P87LPC762的端口作定义,定义引脚如表1所示。P0.0~P0.7作为4位LED的段输出,根据LED极性不同,端口可设为上拉输出或开漏输出;P1.0、P1.1、P1.6、P1.7作为4位LED的位输出,根据LED极性不同,端口可设为开漏输出或上拉输出;P1.5作为LED的极性选择,设置为输入模式;P2.1、P2.0、P1.4作为I2C总线外部地址,便于多芯片连接时对I2C总线地址设定,设置为输入模式;P1.2、P1.3保持I2C总线接口功能不变。定义后的芯片引脚如图3所示。
要实现以上的芯片设置,P87LPC762的部分内部特殊功能寄存器及引脚设置如表2所示。PxMx为端口模式设置,配合LED极性进行选择。UCFG1为芯片系统配置字,在芯片编程时需写入,在程序运行后便不可以设置了。当配置字为FBH时,其意义为:启动看门狗、内部复位、复位后口线为高电平、欠压电压为2.5V、六个Clock时钟,内部RC振荡器。
3 定制6位"米"字段LED显示驱动器芯片
通常,1位"米"字段LED显示器外形图如图4所示,其内部由多只发光二极管构成。如要组成6位"米"字段LED显示器,需将相同的段、位分别连接起来,每位公共端引出以便进行动态扫描。根据发光二极管连接极性不同,可分为共阳极与共阴极两种方式。6位"米"字段LED显示器由于输出段、位较多,可选用LPC系列的P89LPC932芯片实现显示驱动电路,其引脚为28脚封装,最大的I/O端口数目可达到26个,功能引脚如图5所示。P89LPC932具有与P87LPC762相同的端口电气特性,并且具有较多的I/O端口,因此可以将它作为6位"米"字段LED显示器的驱动器芯片。新定制的驱动器芯片引脚如图6所示:a~n为驱动段输出,n1~n6为驱动位输出;A/K作为共阳极与共阴极的选择端;A0~A2作为I2C总线外部地址选择,最多可连接8只外部芯片;SDA、SCL保持I2C总线接口功能不变。
表1 修改后P87LPC762端口定义
引脚 | 原引脚功能 | 新定义 | 说明 | 引脚 | 原引脚功能 | 新定义 | 说明 |
1 | P0.0/CMP2 | a | LED段 | 12 | P1.0/TXD | n1 | LED段输出 |
20 | P0.1/CIN2B | b | 11 | P1.1/RXD | n2 | ||
19 | P0.2/CIN2A | c | 2 | P1.6 | n3 | ||
18 | P0.3/CIN1B | d | 3 | P1.7 | n4 | ||
17 | P0.4/CIN1A | e | 4 | P1.5/RST | A/K | 极性 | |
16 | P0.5/REF | f | 6 | P2.1/X1 | A2 | 芯片地址 | |
14 | P0.6/CMP1 | g | 7 | P2.0/X2 | A1 | ||
13 | P0.7/T1 | dp | 8 | P1.4/INT1 | A0 | ||
9 | P1.3/SDA | SDA | I2C | 15 | VDD | VDD | 电源 |
10 | P1.2/SCL | SCL | 5 | VSS | VSS |
表2 P87LPC762芯片设置
P1.5 | P0M1 | P0M2 | P1M1 | P1M2 | P2M1 | P2M2 | UCFG1 | |
共阳极LED | 接地 | FFH | FFH | 10H | C3H | 03H | 00H | FBH |
共阴极LED | 接电源 | 00H | FFH | D3H | C3H | 03H | 00H | FBH |
4 定制的LED显示驱动器芯片的应用
以定制的4位7段LED显示驱动器芯片为例,设计的LED显示驱动器的原理图如图7所示。它采用89C52单片机的通用I/O口P1.0、P1.1作为模拟I2C总线;LED显示器为4位共阴极LED,A/K引脚接电源;显示驱动芯片采用P87LPC762作定制,命名为LED-762。第一块芯片的I2C总线外部地址为000,用A0、A1、A2引脚接地来实现,其余芯片地址依次设置,最多可连接8只外部芯片(图中未画出)。从电路图来看,LED-762可以不加任何外部元件就可以作为LED的驱动器,由于采用I2C总线连接,占用系统资源最少,电路较简单。如在I2C总线上连接8只LED-762, LED扩展位数可达到32位。对于"米"字段LED显示驱动器芯片的应用,可采用同样的连接方式。在同样的I2C总线上,最多可扩展的"米"字段LED可达到48位,足可以满足一般使用要求。
为了提高I2C总线驱动能力,在实现多片连接时,SCL、SDA需接总线匹配上拉电阻。
5 定制的LED显示驱动器芯片的软件编程
由于LPC系列芯片内部带有支持I2C总线硬件接口,用户可以直接把它作为I2C总线的主控器或I2C总线的被控器。被控器通过I2C硬件中断处理可实现从总线上接收或发送数据;主控器操作I2C总线可实现起始时序、数据时序、应答时序、停止时序来检测I2C总线被控器,并实现相应的数据传送。I2C总线上的被控器是以I2C总线地址来区别的。I2C总线地址统一由I2C总线委员会实现分配,芯片地址共7位(它占据了D7~D1位),高4位(D7~D4)决定芯片种类,用户也可以自定义芯片种类,低3位(D3~D1)通过芯片A0、A1、A2引脚设置。
当使用带有I2C总线接口的LPC系列芯片定制LED显示驱动器芯片时,定制的LED显示驱动器芯片设置为被控器,而要发送显示数据的CPU设置为I2C总线主控器。定制的LED显示驱动芯片通过I2C中断接收数据的流程图如图8所示。当从I2C总线上接收第一个数据时,判断是否与本芯片地址相同,如相同并且为写显示数据,则发送应答时序接收4位显示数据,然后I2C接口恢复到空闲状态。要实现LED动态显示,可对LED显示驱动器编制显示程序,根据LED极性输入,分别送出要显示的段和位,LED就能正常显示。
根据I2C总线协议要求,对主控器发送来的数据有一定的响应时间要求。最短时间可由RC振荡器的倍频频率和中断响应时间来决定,最高速率可达到400kbs/s。最低速率可由LPC系列内部专用I2C定时器I来控制,为了适应非标准的低速率的I2C总线操作,可关闭定时器I。
6 芯片测试及主要性能指标
按照定制要求,将完整的LED显示驱动程序与芯片设置参数通过编程器固化后,要制作芯片测试连接图,如图7所示。这里采用89C52的P1.0与P1.1作为模拟I2C总线控制线,编写模拟I2C驱动程序。而且,89C52主机重新复位、I2C总线通讯断线等情况下均不能影响显示驱动器的下一次正常数据接收。如果关闭定制的LED驱动器中的定时器I,模拟I2C程序暂停、单步调试定制的LED驱动器也能正常驱动显示。由于Philips公司的LPC系列芯片端口输出电流能力较强,在驱动0.5英寸共阴极与共阳极LED时,LED亮度均达到要求。在长期全亮显示时,定制的LED驱动芯片温升正常,能够长期连续工作。在实际使用时,控制端口A/K及A0、A1、A2由于编程时设置成输入模式,故其悬空时输入电平为不确定状态,并随机变化,有可能造成不正常显示,应根据地址设定要求,强制接VCC或GND。
文章评论(0条评论)
登录后参与讨论