快速入门:使用MAX6954驱动14段LED显示器

Abstract

本文旨在帮助工程师快速掌握MAX6954驱动14段单色LED显示器的使用方法。

MAX6954是一个通用显示驱动器,能够通过一个串口控制多个分立、7段、14段或16段LED显示器。本篇应用笔记介绍驱动8位单色、14段LED显示器的典型应用与配置。

有关MAX6954的详细信息请参考MAX6954的数据资料。

应用笔记"快速入门:使用MAX6954驱动7段LED显示器""快速入门:使用MAX6954驱动16段LED显示器"与本文类似,分别介绍了如何配置MAX6954驱动7段和16段显示器。

图1. MAX6954驱动14段显示器电路

图1. MAX6954驱动14段显示器电路

表1. 与八位14段显示器连线表
DIGIT O0 O1 O2 O3 O4 O5 O6 O7 O8 O9 O10 O11 O12 O13 O14 O15 O16 O17 O18
0 CCO -- a -- b c d -- e f g1 g2 h i j k l m dp
1 -- CC1 a -- b c d -- e f g1 g2 h i j k l m dp
2 a -- CC2 -- b c d -- e f g1 g2 h i j k l m dp
3 a -- -- CC3 b c d -- e f g1 g2 h i j k l m dp
4 a -- b c CC4 -- d -- e f g1 g2 h i j k l m dp
5 a -- b c -- CC5 d -- e f g1 g2 h i j k l m dp
6 a -- b c d -- CC6 -- e f g1 g2 h i j k l m dp
7 a -- b c d -- -- CC7 e f g1 g2 h i j k l m dp

图2. 14段显示器的段标识

图2. 14段显示器的段标识

图3. 14段显示字模

图3. 14段显示字模

MAX6954的一个常见应用是驱动多达8位的14段单色LED。本篇应用笔记指导用户如何连接MAX6954与14段显示器,以及如何配置其内部寄存器控制显示内置字模中的104个字符。

MAX6954使用一种交替改变驱动器端口极性的复用技术来减少引脚数目。这与驱动器阴极和阳极引脚单独使用的标准LED复用连接方式不同。应用笔记1880对这一技术进行了讨论。表1为MAX6954与14段显示器的连线表,此表兼容于MAX6954的复用配置及其104个字符的内置字模。表1中的字母对应于图2中的段标识。图1为MAX6954驱动八位14段显示器的电路示意图。

完成MAX6954与14段显示器连线后,可利用显示测试模式检查连线正确性。显示测试模式不受控制和数据寄存器影响,点亮显示器所有的段,但不改变任何寄存器内容。向寄存器0x07写入0x01启动显示测试模式。测试模式下显示器如果有不亮的段则说明连线有误。向寄存器0x07写入0x00退出显示测试模式。

完成连线检查后,需要按驱动14段显示器的要求设置MAX6954寄存器值。表2包括MAX6954一些重要寄存器的上电初始值。MAX6954初次上电时处于关断模式,各位显示消隐,扫描位数被设为最大,即八位。通过向寄存器0x0C写入0xFF可将MAX6954设置成驱动14段显示器的模式。译码模式寄存器(0x01)的默认值适用于14段显示器。

表2. MAX6954寄存器上电初始状态
REGISTER POWER-UP
CONDITION
ADDRESS
(HEX)
REGISTER DATA
D7 D6 D5 D4 D3 D2 D1 D0
Decode Mode Font map enabled 0x01 1 1 1 1 1 1 1 1
Global Intensity 1/16 (minimum intensity) 0x02 X X X X 0 0 0 0
Scan Limit Display eight digits: 0, 1, 2, 3, 4, 5, 6, 7 0x03 X X X X X 1 1 1
Control Register Shutdown enabled, blink disabled, blink
speed is slow
0x04 0 0 X X 0 0 0 0
Display Test Normal operation (display test disabled) 0x07 X X X X X X X 0
Digit Type Digits 0 through 7 are 16 segment digits 0x0C 0 0 0 0 0 0 0 0
Intensity10 1/16 (min on), digits 1 and 0 0x10 0 0 0 0 0 0 0 0
Intensity32 1/16 (min on), digits 3 and 2 0x11 0 0 0 0 0 0 0 0
Intensity54 1/16 (min on), digits 5 and 4 0x12 0 0 0 0 0 0 0 0
Intensity76 1/16 (min on), digits 7 and 6 0x13 0 0 0 0 0 0 0 0
Digit 0 Blank digit, both planes 0x60 0 0 1 0 0 0 0 0
Digit 1 Blank digit, both planes 0x61 0 0 1 0 0 0 0 0
Digit 2 Blank digit, both planes 0x62 0 0 1 0 0 0 0 0
Digit 3 Blank digit, both planes 0x63 0 0 1 0 0 0 0 0
Digit 4 Blank digit, both planes 0x64 0 0 1 0 0 0 0 0
Digit 5 Blank digit, both planes 0x65 0 0 1 0 0 0 0 0
Digit 6 Blank digit, both planes 0x66 0 0 1 0 0 0 0 0
Digit 7 Blank digit, both planes 0x67 0 0 1 0 0 0 0 0

配置寄存器(0x01)用来设置进入和退出关断模式,控制闪烁功能,全局清除各位数据,以及选择对各位亮度进行全局还是单独控制。配置寄存器包含7位(见表3)。

  • S位用来选择关断模式还是正常工作模式(读/写)。
  • B位用来选择闪烁速率(读/写)。
  • E位用来全局启动或禁止闪烁功能(读/写)。
  • T位用来复位闪烁时序(此数据不被存储—瞬态位)。
  • R位用来全局清除所有显示位对应的P0和P1两级寄存器(此数据不被存储—瞬态位)。
  • I位用来选择对各位亮度进行全局还是单独控制(读/写)。
  • P位用来返回当前闪烁时序相位(只读—向此位写入值将被忽略)。

通过向寄存器0x04写入0x01启动显示器驱动器,同时将工作方式设置为全局亮度控制、禁止闪烁。内部振荡器在MAX6954退出关断模式时启动,振荡器输出引脚为OSC_OUT。注意,数据控制寄存器0x60至0x67上电状态为0x20或没有段被点亮时,14段显示器保持显示消隐(见表2和图3)。

表3. 配置寄存器格式
CONFIGURATION
REGISTER
DATA BIT
DATA BIT LABEL STATE FUNCTION
D7 P 0 P1 Blink Phase
1 P0 Blink Phase
D6 I 0 Intensity for all digits is controlled by one setting in the Global
Intensity Register
1 Intensity for digits is controlled by the individual settings in the
Intensity10 through Intensity76 registers.
D5 R 0 Digit data for both planes P0 and P1 are unaffected
1 Digit data for both planes P0 and P1 are cleared on the rising edge
of /CS\
D4 T 0 Blink timing counters are unaffected.
1 Blink timing counters are reset on the rising edge of /CS\.
D3 E 0 Blink function disabled
1 Blink function enabled
D2 B 0 Slow Blinking. Segments blink on for 1s, off for 1s with fOSC = 4MHz.
1 Fast Blinking. Segments blink on for 0.5s, off for 0.5s with fOSC = 4MHz.
D1 X X Don't care
D0 S 0 Shutdown
1 Normal Operation
表4. 显示数据组合配置实例
DIGIT TYPE REGISTER SETTING ADDRESS
CODE (HEX)
REGISTER DATA
D7 D6 D5 D4 D3 D2 D1 D0
Digits 7-0 are 14-segment digits 0x0C 1 1 1 1 1 1 1 1

MAX6954内置了用于14段显示器的104个字符的ASCII字模图。字符为标准ASCII字模加£, €, ¥, °, µ, ±, 这些常用符号。用7位表示这104个字符,第8位用于选择是否点亮小数点(DP) (见表5)。数据寄存器有两级,P0和P1。每个显示位用存储器中的2字节表示,一个字节位于P0,另一个位于P1 (见表8)。数据寄存器为映射地址方式,所以每位数据可在P0 (寄存器0x20至0x27)中更新,也可在P1 (寄存器0x40至0x47)中更新,还可以两级同时更新(寄存器0x60至0x67)。数据寄存器中的数据并不直接控制14 (原文误为16)段显示器中各段的显示。而是被用来寻址一个存储着14段字模数据的字符发生器(见图3)。寄存器数据低7位(D6至D0)用来从字模中选择字符。最高位(D7)控制小数点(DP)显示;置为1则显示DP,置为0则不显示DP。

表5. 数据寄存器格式
MODE ADDRESS
CODE
(HEX)
REGISTER DATA
D7 D6 D5 D4 D3 D2 D1 D0
14-segment mode, writing digit data to use font map data
with decimal place unlit
0x20 to 0x27
0x40 to 0x47
0x60 to 0x67
0 Bits D6 to D0 select font character 0 to
127
14-segment mode, writing digit data to use font map data
with decimal place lit
0x20 to 0x27
0x40 to 0x47
0x60 to 0x67
1 Bits D6 to D0 select font character 0 to
127

如果闪烁功能被配置寄存器闪烁使能位E (见表3)禁止,则P0中数据寄存器的数据被用作显示器复用。而P1中数据寄存器的数据不被使用。如果闪烁功能被启用,则交替使用P0和P1中的数据复用显示器。P0和P1中的数据分别应用于闪烁时钟交替变化的不同相位,从而复用LED显示器实现闪烁功能。

下面是一个利用MAX6954驱动显示八个字符,“MAXIM-IC”,的实例。设置配置寄存器禁止闪烁功能,这样就可以通过向寄存器0x20至0x27写入数据来分别控制数据位0至7。使用图3中的字模图得到每个字符对应的代码。

表6. MAXIM-IC的实例
REGISTER
ADDRESS (HEX)
DIGIT CHARACTER FONT MAP EQUIVALENT CODE
DECIMAL HEX
0x20 0 M 0100 1101 0x4D
0x21 1 A 0100 0001 0x41
0x22 2 X 0101 1000 0x58
0x23 3 I 0100 1001 0x49
0x24 4 M 0100 1101 0x4D
0x25 5 - 0010 1101 0x2D
0x26 6 I 0100 1001 0x49
0x27 7 C 0100 0011 0x43

通过向寄存器0x02 (全局亮度控制寄存器)写入数据来调节显示亮度,亮度可在0x00 (最小亮度,1/16的电流)和0xFF (最大亮度,15/16的电流)之间调节。也可以对每一位的亮度进行单独控制。关于显示亮度调节和其它先进特性(如GPIO和按键扫描)的详细信息,请参考MAX6954的数据资料。

表7. 快速入门实例的命令总结
REGISTER (HEX) COMMAND (HEX) FUNCTION
0x07 0x01 Enter display test mode
0x07 0x00 Exit display test mode
0x0C 0xFF Set all eight digits to use the 14-segment font map
0x04 0x01 Exit shutdown mode, disable blinking and select global
intensity control
0x20 0x4D Write "M" to digit 0
0x21 0x41 Write "A" to digit 1
0x22 0x58 Write "X" to digit 2
0x23 0x49 Write "I" to digit 3
0x24 0x4D Write "M" to digit 4
0x25 0x2D Write "-" to digit 5
0x26 0x49 Write "I" to digit 6
0x27 0x43 Write "C" to digit 7
0x02 0xFF Set global intensity to full-scale
表8. MAX6954/MAX6955的部分寄存器地址图
REGISTER ADDRESS
(COMMAND BYTE)
ADDRESS (HEX
CODE)
D15 D14 D13 D12 D11 D10 D9 D8
Decode Mode R//W\ 0 0 0 0 0 0 1 0x01
Global Intensity R//W\ 0 0 0 0 0 1 0 0x02
Scan Limit R//W\ 0 0 0 0 0 1 1 0x03
Configuration R//W\ 0 0 0 0 1 0 0 0x04
Display Test R//W\ 0 0 0 0 1 1 1 0x07
Digit Type R//W\ 0 0 0 1 1 0 0 0x0C
Intensity 10 R//W\ 0 0 1 0 0 0 0 0x10
Intensity 32 R//W\ 0 0 1 0 0 0 1 0x11
Intensity 54 R//W\ 0 0 1 0 0 1 0 0x12
Intensity 76 R//W\ 0 0 1 0 0 1 1 0x13
Digit 0 Plane P0 R//W\ 0 1 0 0 0 0 0 0x20
Digit 1 Plane P0 R//W\ 0 1 0 0 0 0 1 0x21
Digit 2 Plane P0 R//W\ 0 1 0 0 0 1 0 0x22
Digit 3 Plane P0 R//W\ 0 1 0 0 0 1 1 0x23
Digit 4 Plane P0 R//W\ 0 1 0 0 1 0 0 0x24
Digit 5 Plane P0 R//W\ 0 1 0 0 1 0 1 0x25
Digit 6 Plane P0 R//W\ 0 1 0 0 1 1 0 0x26
Digit 7 Plane P0 R//W\ 0 1 0 0 1 1 1 0x27
Digit 0 Plane P1 R//W\ 1 0 0 0 0 0 0 0x40
Digit 1 Plane P1 R//W\ 1 0 0 0 0 0 1 0x41
Digit 2 Plane P1 R//W\ 1 0 0 0 0 1 0 0x42
Digit 3 Plane P1 R//W\ 1 0 0 0 0 1 1 0x43
Digit 4 Plane P1 R//W\ 1 0 0 0 1 0 0 0x44
Digit 5 Plane P1 R//W\ 1 0 0 0 1 0 1 0x45
Digit 6 Plane P1 R//W\ 1 0 0 0 1 1 0 0x46
Digit 7 Plane P1 R//W\ 1 0 0 0 1 1 1 0x47