文旨在帮助工程师快速掌握MAX6954驱动16段单色LED显示器的使用方法。
MAX6954是一个通用显示驱动器,能够通过一个串口控制多个分立、7段、14段或16段LED显示器。本篇应用笔记介绍驱动8位单色、16段LED显示器的典型应用与配置。
有关MAX6954的详细信息请参考MAX6954的数据资料。
应用笔记"快速入门: 使用MAX6954驱动7段LED显示器" 和"快速入门: 使用MAX6954驱动14段LED显示器" 与本文类似,分别介绍了如何配置MAX6954驱动7段和14段显示器。
MAX6954的一个常见应用是驱动多达8位的16段单色LED。本篇应用笔记指导用户如何连接MAX6954与16段显示器,以及如何配置其内部寄存器控制显示内置字模中的104个字符。
MAX6954使用一种交替改变驱动器端口极性的复用技术来减少引脚数目。这与驱动器阴极和阳极引脚单独使用的标准LED复用连接方式不同。应用笔记"Charlieplexing - Reduced Pin-Count LED Display Multiplexing"对这一技术进行了讨论。表1为MAX6954与16段显示器的连线表,此表兼容于MAX6954的复用配置及其104个字符的内置字模。表1中的字母对应于图2中的段标识。图1为MAX6954驱动八位16段显示器的电路示意图。
放大显示
图1. MAX6954 16段显示应用电路
图2. 16段显示器的段标识
表1.与八位16段显示器连线表
完成MAX6954与16段显示器连线后,可利用显示测试模式检查连线正确性。显示测试模式不受控制和数据寄存器影响,点亮显示器所有的段,但不改变任何寄存器内容。向寄存器0x07写入0x01启动显示测试模式。测试模式下显示器如果有不亮的段则说明连线有误。向寄存器0x07写入0x00退出显示测试模式。
完成连线检查后,需要按驱动16段显示器的要求设置MAX6954寄存器值。表2包括MAX6954一些重要寄存器的上电初始值。MAX6954初次上电时处于关断模式,各位显示消隐,选择16段字模并将扫描位数设为最大,即八位。译码模式寄存器(0x01)和数字类型(0x0C)的默认值适用于16段显示器。
图3. 16段显示字模
表2. MAX6954上电后寄存器初始状态
REGISTER | POWER-UP CONDITION | ADDRESS (HEX) |
REGISTER DATA | |||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |||
Decode Mode | 16-segment font 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 16-segment 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 |
配置寄存器(0x04)用来设置进入和退出关断模式,控制闪烁功能,全局清除各位数据,以及选择对各位亮度进行全局还是单独控制。配置寄存器包含7位(见表3)。
S 位用来选择关断模式还是正常工作模式(读/写)。
B 位用来选择闪烁速率(读/写)。
E 位用来全局启动或禁止闪烁功能(读/写)。
T 位用来复位闪烁时序(此数据不被存储―瞬态位)。
R 位用来全局清除所有显示位对应的P0和P1两级寄存器(此数据不被存储―瞬态位)。
I 位用来选择对各位亮度进行全局还是单独控制(读/写)。
P 位用来返回当前闪烁时序相位(只读―向此位写入值将被忽略)。
表 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 active-low CS | ||
D4 | T | 0 | Blink timing counters are unaffected. |
1 | Blink timing counters are reset on the rising edge of active-low 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 |
通过向寄存器0x04写入0x01启动显示器驱动器,同时将工作方式设置为全局亮度控制、禁止闪烁。内部振荡器在MAX6954退出关断模式时启动,振荡器输出引脚为OSC_OUT。注意,数据控制寄存器0x60至0x67上电状态为0x20或没有段被点亮时,16段显示器保持显示消隐(见表2和图3)。
MAX6954内置了用于16段显示器的104个字符的ASCII字模图。字符为标准ASCII字模加和这些常用符号。用7位表示这104个字符,第8位用于选择是否点亮小数点(DP)(见表4)。数据寄存器有两级,P0和P1。每个显示位用存储器中的2字节表示,一个字节位于P0,另一个位于P1(见表7)。数据寄存器为映射地址方式,所以每位数据可在P0(寄存器0x20至0x27)中更新,也可在P1(寄存器0x40至0x47)中更新,还可以两级同时更新(寄存器0x60至0x67)。数据寄存器中的数据并不直接控制16段显示器中各段的显示。而是被用来寻址一个存储着16段字模数据的字符发生器(见图3)。寄存器数据低7位(D6至D0)用来从字模中选择字符。最高位(D7)控制小数点(DP)显示;置为1则显示DP,置为0则不显示DP。
表 4. 数字类型数据寄存器格式
MODE | ADDRESS CODE (HEX) | REGISTER DATA | ||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |||
16-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 | |||||||
16-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中的字模图得到每个字符对应的代码。
表 5. 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 | 文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
|