摘要:本文旨在帮助工程师快速掌握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. 与八位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段显示器的段标识
图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
外媒:马斯克正式丢掉全球首富头衔
一入AI深似海:中小企业向往又恐惧?
电机的四大类型 ocdc和fpa电机对比
关于手机信号放大器的五个选购指南
英特尔采取行动应对苹果、亚马逊等威胁
使用MAX6954驱动14段LED显示器
2020年国产射频PA的不同市场现状及发展趋势
东芝的新型高性能ESD保护二极管 适用于移动设备的高速接口
关于鱼眼相机标定的畸变与矫正的分享
法国5G频谱拍卖起拍价正式公布为21.7亿欧元
网站安全检测对于安全系统的重要性
工信部与恩智浦携手举办“车联网时代的电子前沿技术”主题培训
基于AT89S52单片机的温度检测与保护电路设计
玩转Xilinx嵌入式视觉开发者专区 让视觉系统开发更加简单
华为助力雅砻江柯拉光伏项目荣膺新京报“2023年度十大绿色发展案例”奖项
《河南省“十四五”新型基础设施建设规划》出炉:明确推广应用多功能智慧灯杆!
村田ESD保护装置的小型化解决方案
半导体国产化是趋势:你可以越来越相信国产
WLAN技术—“无线”发展无限量
传感网的定义以及工作流程解析