CH454
手册
1
16
段数码管驱动及键盘控制芯片
CH454
手册
版本:1C
http://wch.cn
1、概述
CH454
是数码管显示驱动和键盘扫描控制芯片。CH454 内½时钟振荡电路,可以动态驱动
8
只
16
段的数码管或者
128
只
LED,支持 11
段、14 段、16 段×8 以及
17
段×7 等;同时还可以进行
64
键
的键盘扫描;CH454 通过
2
线串行接口与单片机等交换数据。
XSG7½XSG0
SCL
SDA
单片机
MCU
等
CH454
芯片
(虚线可选)
INT#
DIG7½DIG0
8×8
矩阵
64
键键盘
SEG7½SEG0
8
½
数码管
16
段*8
或
128
个
发光管
2、特点
2.1.
显示驱动
●
●
●
●
●
●
●
内½电流驱动级,段电流不小于
20mA,字电流不小于 150mA。
动态显示扫描控制,直接驱动
8
½
16
段的数码管或者
128
只发光管
LED。
各数码管的数字独立闪烁控制,可选快慢两种闪烁速度。
通过占空比设定提供
16
级亮度控制。
部分段½寻址,独立控制前
64
个
LED
或者各数码管的前
8
个段的亮与灭。
扫描极限控制,支持
1
到
8
个数码管,只为有效数码管分配扫描时间。
可以选择字驱动输出极性,便于外部扩展驱动电压和电流。
2.2.
键盘控制
●
●
●
●
●
内½
64
键键盘控制器,基于
8×8
矩阵键盘扫描。
内½按键状态输入的下拉电阻,内½去抖动电路。
键盘中断输出,½电平有效。
提供按键释放标志½,可供查询按键按下与释放。
支持按键唤醒,处于½功耗节电状态中的
CH454
可以被部分按键唤醒。
2.3.
其它杂项
●
●
●
●
两线串行接口,兼容
I C
总线,节约引脚。
内½时钟振荡电路,不需要外部提供时钟或者外接振荡元器件,更抗干扰。
支持½功耗睡眠,节约电½,可以被按键唤醒或者被½令操½唤醒。
提供
SOP28
和
SDIP32
两种无铅封装,兼容
RoHS。
2
CH454
手册
2
3、封装
推荐用贴片封装
封装½式
SOP28
SDIP32
½度
7.62mm
10.16mm
300mil
400mil
引脚间距
1.27mm
50mil
1.78mm
70mil
封装说明
标准的
28
脚贴片
窄距
32
脚双列直插
订货型号
CH454S
CH454A
4、引脚
SOP28
的引脚号
24
9
16½23
10½13、
25、26、
14、15
8½1
27
28
无
无
无
SDIP32
的引脚号
27
10
19½26
11½14、
29、30、
15、18
9½2
31
32
28
1
16、17
引脚名
称
VCC
GND
SEG0
½SEG7
XSG0
½XSG7
DIG0
½DIG7
SDA
SCL
INT#
RSTI
NC
类型
电源
电源
三态输出
及输入
三态输出
及输入
输出
开漏输出
及输入
输入
开漏输出
输入
空脚
引脚说明
正电源,持续电流不小于
150mA
公共接地,持续电流不小于
150mA
数码管的段驱动,高电平有效,
键盘扫描输入,高电平有效,内½下拉
数码管的扩展段驱动,高电平有效,
通用
I/O
输入输出,内½弱上拉
数码管的字驱动,½电平有效,
键盘扫描输出,高电平有效,
其中
DIG7
兼做数码管的第
17
段驱动
2
线串行接口的数据输入和输出,
内½上拉电阻
2
线串行接口的数据时钟,内½上拉电阻
键盘中断输出,内½上拉电阻,½电平有效
外部手工复½输入,高电平有效,内½下拉
保留引脚,禁止连接
5、功½说明
5.1.
一般说明
本手册中的数据,以
B
结尾的为二进制数,以
H
结尾的为十六进制数,否则为十进制数,标注
为
x
的½表示该½可以是任意值。
5.2.
显示驱动
CH454
手册
3
CH454
对数码管和发光管采用动态扫描驱动,
顺序为
DIG0
至
DIG7,
½其中一个引脚吸入电流时,
其它引脚则不吸入电流。
CH454
内部具有电流驱动级,
可以直接驱动
0.5
英寸至
1
英寸的共阴数码管。
对于
7
段或者
8
段数码管,段驱动引脚
SEG6½SEG0
分别对应数码管的段
G½段 A,段驱动引脚 SEG7
对应数码管的第
8
段小数点;对于
16
段数码管,应该½用
SEG7½SEG0
和
XSG7½XSG0
驱动各段;对
于
17
段数码管,还需要½用
DIG7
驱动第
17
段小数点并且扫描极限必须小于
8;对于 11
段或者
14
段数码管,可以在
SEG7½SEG0
和
XSG7½XSG0
中任意悬空不需要的引脚。对于
17
段数码管,字驱动
引脚
DIG6½DIG0
分别连接
7
个数码管的阴极;对于少于
17
段的数码管,字驱动引脚
DIG7½DIG0
分
别连接
8
个数码管的阴极。CH454
也可以连接
16×8
矩阵的发光二级管
LED
阵列或者
128
个独立发光
管。CH454 可以改变字驱动输出极性以便直接驱动共阳数码管,或者通过外接反相驱动器支持共阳数
码管,或者外接大功率管支持大尺寸的数码管。
CH454
支持扫描极限控制,并且只为有效数码管分配扫描时间。½扫描极限设定为
1
时,唯一的
数码管
DIG0
将得到所有的动态驱动时间,从而等同于静态驱动;½扫描极限设定为
8
时,8
个数码
管
DIG7½DIG0
各得到
1/8
的动态驱动时间;½扫描极限设定为
4
时,4
个数码管
DIG3½DIG0
各得到
1/4
的动态驱动时间,此时各数码管的平均驱动电流将比扫描极限为
8
时增加一倍,所以降½扫描极
限可以提高数码管的显示亮度。驱动
17
段数码管时,扫描极限必须小于或者等于
7。
CH454
内部具有
8
个
16
½的数据寄存器,用于保存
8
个字数据,分别对应于
CH454
所驱动的
8
个数码管或者
8
组每组
16
个的发光二极管。½数据½为
1
时,对应的数码管的段或者发光管就会点
亮;½数据½为
0
时,则对应的数码管的段或者发光管就会熄灭。
CH454
支持部分段½寻址,可以用于独立控制
64
个发光管
LED
中的任意一个或者数码管中的特
定段(例如小数点)
,段½编址顺序与键盘编址一致,编址从
00H
到
3FH。½用“段½寻址½ 1”½令
将某个地址的段½½
1
后,该地址对应的发光管
LED
或者数码管的段会点亮,该操½不½响任½其它
LED
或者数码管其它段的状态。CH454 的段½寻址只支持由
SEG7½SEG0
引脚驱动的
8×8
矩阵,而由
XSG7½XSG0
引脚驱动的
LED
或者数码管的段不支持段½寻址。
下图是
7
段和
8
段数码管的段名称
下图是
16
段和
17
段数码管的段名称
5.3.
键盘扫描
CH454
的键盘扫描功½支持
8×8
矩阵的
64
键键盘。在键盘扫描期间,DIG7½DIG0
引脚用于列
扫描输出,SEG7½SEG0
引脚½带有内部下拉电阻,用于行扫描输入。
CH454
定期在显示驱动扫描过程中插入键盘扫描。在键盘扫描期间,DIG7½DIG0
引脚按照
DIG0
至
DIG7
的顺序依次输出高电平,其½
7
个引脚输出½电平;SEG7½SEG0 引脚的输出被禁止,½没有
键被按下时,SEG7½SEG0
½被下拉为½电平;½有键被按下时,例如连接
DIG3
与
SEG4
的键被按下,
则½
DIG3
输出高电平时
SEG4
检测到高电平;
为了防止因为按键抖动或者外界干扰而产生误码,
CH454
实行两次扫描,只有½两次键盘扫描的结果相同时,按键才会被确认有效。如果
CH454
检测到有效的
按键,则记½下该按键代码,并通过
INT#引脚产生½电平有效的键盘中断,此时单片机可以通过串
行接口读取按键代码;在没有检测到新的有效按键之前,CH454 不再产生任½键盘中断。CH454 不支
持组合键,也就是说,同一时刻,不½有两个或者更多的键被按下;如果多个键同时按下,那么按键
代码较小的按键优先,时间有先后的情况下,先按的有效。
CH454
所提供的按键代码为
8
½,½
2½½ 0
是列扫描码,½
5½½ 3
是行扫描码,½
6
是状态
CH454
手册
4
码
(键按下为
1,
键释放为
0)
½
7
为
0。
,
例如,
连接
DIG3
与
SEG4
的键被按下,
则按键代码是
01100011B
或者
63H,键被释放后,按键代码通常是 00100011B
或者
23H(也可½是其它值,½是肯定小于 40H)
,
其中,对应
DIG3
的列扫描码为
011B,对应 SEG4
的行扫描码为
100B。单片机可以在任½时候读取按
键代码,½一般在
CH454
检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的½
6
总是
1,另外,如果需要了解按键½时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码
的½
6
为
0。
下表是在
DIG7½DIG0
与
SEG7½SEG0
之间
8×8
矩阵的顺序编址,既是按键编址,也是数码管段
½和发光管
LED
阵列编址。由于按键代码是
8
½,键按下时½
6
总是
1,所以½键按下时,CH454
所
提供的实际按键代码是表中的按键编址加上
40H,
也就是说,
此时的按键代码应该在
40H
到
7FH
之间。
编址
SEG0
SEG1
SEG2
SEG3
SEG4
SEG5
SEG6
SEG7
DIG7
07H
0FH
17H
1FH
27H
2FH
37H
3FH
DIG6
06H
0EH
16H
1EH
26H
2EH
36H
3EH
DIG5
05H
0DH
15H
1DH
25H
2DH
35H
3DH
DIG4
04H
0CH
14H
1CH
24H
2CH
34H
3CH
DIG3
03H
0BH
13H
1BH
23H
2BH
33H
3BH
DIG2
02H
0AH
12H
1AH
22H
2AH
32H
3AH
DIG1
01H
09H
11H
19H
21H
29H
31H
39H
DIG0
00H
08H
10H
18H
20H
28H
30H
38H
5.4.
串行接口
CH454
的
2
线串行接口包含
3
个信号线:串行数据时钟输入线
SCL、串行数据输入和输出线 SDA、
以及可选的中断输出线
INT#。其中,SCL
是带上拉的输入信号线,默认是高电平;SDA 是带上拉的准
双向信号线,默认是高电平;INT#是带上拉的开漏输出信号线,默认是高电平。
SDA
用于串行数据输入和输出,高电平表示½数据
1,½电平表示½数据 0,串行数据输入的顺
序是高½在前,½½在后。
SCL
用于提供串行时钟,CH454
在其上升沿后的高电平期间从
SDA
输入数据,在其下降沿后的½
电平期间从
SDA
输出数据。
INT#用于键盘中断输出。½ CH454
检测到有效按键时,INT#输出½电平有效的键盘中断;单片
机被中断后,发出读取按键代码½令,CH454
将
INT#恢复为高电平,并从 SDA
输出按键代码,单片机
从
SDA
获得一个字节的数据,即是按键代码。
在
SCL
为高电平期间发生的
SDA
下降沿定义为串行接口的启动信号,在
SCL
为高电平期间发生
的
SDA
上升沿定义为串行接口的停止信号。CH454
只在检测到启动信号后才接收并分析½令。所以在
单片机
I/O
引脚资源紧张时,只要保持
SDA
引脚状态不变,SCL 引脚就可以与其它接口电路共用。
单片机与
CH454
的通讯过程总是分为
6
个步骤,按单片机的操½方向分成两种类型,一种是写
操½,用于输出数据,一种是读操½,用于输入数据。具½过程可以参考例子程序中的说明。
写操½包括以下
6
个步骤:输出启动信号、输出字节
1、应答 1、输出字节 2、应答 2、输出停
止信号。其中,启动信号和停止信号如上所述,应答
1
和应答
2
通常为
0,输出字节 1
和输出字节
2
各自包含
8
个数据½,即一个字节数据。
读操½包括以下
6
个步骤:输出启动信号、输出字节
1、应答 1、输入字节 2、应答 2、输出停
止信号。其中,启动信号和停止信号如上所述,应答
1
和应答
2
通常为
0,输出字节 1
和输入字节
2
各自包含
8
个数据½,即一个字节数据。
下图是一个写操½的实例,字节
1
为
01001000B,即 48H;字节 2
为
00000001B,即 01H。
6、操½½令
CH454
手册
5
CH454
各个操½½令的启动信号、停止信号、应答½相同,区别在于输出字节
1
和字节
2
的数据
不同以及字节
2
的传输方向不同。字节
1
的½
15
和½
14
固定为
0
和
1,½ 8
为读写方向½
R/-W,为
0
时执行写入操½,将字节
2
写入
CH454,为 1
时执行读取操½,从
CH454
读取字节
2。
下表列出了
CH454
的各个操½½令所对应的串行数据。其中标有名称的½表示该½在
CH454
芯
片内部具有相应的寄存器,其数据根据操½½令的不同而变化;标为灰色的数据是读取操½的返回。
操½½令
段½寻址清
0
段½寻址½
1
芯片内部复½
进入睡眠状态
设定辅助参数
自定义
BCD
码
设定系统参数
设定显示参数
设定闪烁控制
加½½字数据
0L
加½½字数据
1L
加½½字数据
2L
加½½字数据
3L
加½½字数据
4L
加½½字数据
5L
加½½字数据
6L
加½½字数据
7L
加½½字数据
0H
加½½字数据
1H
加½½字数据
2H
加½½字数据
3H
加½½字数据
4H
加½½字数据
5H
加½½字数据
6H
加½½字数据
7H
读取
SEG
引脚
读取
XSG
引脚
读自定义
BCD
码
回读系统参数
回读显示参数
回读闪烁控制
读取按键代码
回读字数据
0L
回读字数据
1L
回读字数据
2L
回读字数据
3L
回读字数据
4L
回读字数据
5L
回读字数据
6L
回读字数据
7L
字节
1,½ 15=0,½ 14=1
½
13
½
12
½
11
½
10
½
9
½
8
½
7
½
6
½
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
字节
2
½
4
½
3
½
2
½
1
½
0
1
0
BIT_ADDR
1
1
BIT_ADDR
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
LMTC
1
SELF_BCD
XGPO XSOE 0
SSPD DPLR 0 KEYB DISP
MODE
LIMIT
INTENSITY
D7S D6S D5S D4S D3S D2S D1S D0S
DIG_DATA0_LO, DIG0
对应的字数据½
8
½
DIG_DATA1_LO, DIG1
对应的字数据½
8
½
DIG_DATA2_LO, DIG2
对应的字数据½
8
½
DIG_DATA3_LO, DIG3
对应的字数据½
8
½
DIG_DATA4_LO, DIG4
对应的字数据½
8
½
DIG_DATA5_LO, DIG5
对应的字数据½
8
½
DIG_DATA6_LO, DIG6
对应的字数据½
8
½
DIG_DATA7_LO, DIG7
对应的字数据½
8
½
DIG_DATA0_HI, DIG0
对应的字数据高
8
½
DIG_DATA1_HI, DIG1
对应的字数据高
8
½
DIG_DATA2_HI, DIG2
对应的字数据高
8
½
DIG_DATA3_HI, DIG3
对应的字数据高
8
½
DIG_DATA4_HI, DIG4
对应的字数据高
8
½
DIG_DATA5_HI, DIG5
对应的字数据高
8
½
DIG_DATA6_HI, DIG6
对应的字数据高
8
½
DIG_DATA7_HI, DIG7
对应的字数据高
8
½
SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0
XSG7 XSG6 XSG5 XSG4 XSG3 XSG2 XSG1 XSG0
0
SELF_BCD
XGPO XSOE 0
SSPD DPLR 0 KEYB DISP
MODE
LIMIT
INTENSITY
D7S D6S D5S D4S D3S D2S D1S D0S
KEY7 KEY6 KEY5 KEY4 KEY3 KEY2 KEY1 KEY0
DIG_DATA0_LO, DIG0
对应的字数据½
8
½
DIG_DATA1_LO, DIG1
对应的字数据½
8
½
DIG_DATA2_LO, DIG2
对应的字数据½
8
½
DIG_DATA3_LO, DIG3
对应的字数据½
8
½
DIG_DATA4_LO, DIG4
对应的字数据½
8
½
DIG_DATA5_LO, DIG5
对应的字数据½
8
½
DIG_DATA6_LO, DIG6
对应的字数据½
8
½
DIG_DATA7_LO, DIG7
对应的字数据½
8
½