1 CH452 中文手册(一) 数码管驱动及键盘控制芯片 CH452 中文手册 版本: 1 http://wch.cn 1、概述 CH452 是数码管显示驱动和键盘扫描控制芯片。CH452 内置时钟振荡电路,可以动态驱动 8 位数 码管或者 64 位 LED,具有 BCD 译码、闪烁、移位、段位寻址、光柱译码等功能;同时还可以进行 64 键的键盘扫描;CH452 通过可以级联的 4 线串行接口或者 2 线串行接口与单片机等交换数据;并且可 以对单片机提供上电复位信号。 DCLK SEG7~SEG0 DIN LOAD 单片机 MCU 等 DOUT RST CH452 芯片 4 线接口 8×8 矩阵 64 键键盘 (虚线可选) RST# DIG7~DIG0 SCL SEG7~SEG0 SDA ADDR 单片机 MCU 等 INT# RST RST# 8位 数码管 或 64 个 发光管 或 64 级 光柱 CH452 芯片 2 线接口 8×8 矩阵 64 键键盘 (虚线可选) 8位 数码管 或 64 个 发光管 或 64 级 光柱 DIG7~DIG0 2、特点 2.1. 显示驱动 ● ● ● ● ● ● ● ● ● ● 内置电流驱动级,段电流不小于 15mA,字电流不小于 80mA。 动态显示扫描控制,直接驱动 8 位数码管、64 位发光管 LED 或者 64 级光柱。 可选数码管的段与数据位相对应的不译码方式或者 BCD 译码方式。 BCD 译码支持一个自定义的 BCD 码,用于显示一个特殊字符。 数码管的字数据左移、右移、左循环、右循环。 各数码管的数字独立闪烁控制,可选快慢两种闪烁速度。 任意段位寻址,独立控制各个 LED 或者各数码管的各个段的亮与灭。 64 级光柱译码,通过 64 个 LED 组成的光柱显示光柱值。 扫描极限控制,支持 1 到 8 个数码管,只为有效数码管分配扫描时间。 可以选择字驱动输出极性,便于外部扩展驱动电压和电流。 2 CH452 中文手册(一) 2.2. 键盘控制 ● ● ● ● ● 内置 64 键键盘控制器,基于 8×8 矩阵键盘扫描。 内置按键状态输入的下拉电阻,内置去抖动电路。 键盘中断,可以选择低电平有效输出或者低电平脉冲输出。 提供按键释放标志位,可供查询按键按下与释放。 支持按键唤醒,处于低功耗节电状态中的 CH452 可以被部分按键唤醒。 2.3. 外部接口 ● ● ● ● ● ● 同一芯片,可选高速的 4 线串行接口或者经济的 2 线串行接口。 4 线串行接口:支持多个芯片级联,时钟速度从 0 到 2MHz,兼容 CH451 芯片。 4 线串行接口:DIN 和 DCLK 信号线可以与其它接口电路共用,节约引脚。 2 线串行接口:支持两个 CH452 芯片并联(由 ADDR 引脚电平设定各自地址) 。 2 2 线串行接口:时钟速度从 500Hz 到 200KHz,兼容两线 I C 总线,节约引脚。 内置上电复位,可以为单片机提供高电平有效和低电平有效复位输出。 2.4. 其它杂项 ● ● ● ● 内置时钟振荡电路,不需要外部提供时钟或者外接振荡元器件,更抗干扰。 支持低功耗睡眠,节约电能,可以被按键唤醒或者被命令操作唤醒。 可选两种封装:SOP28、DIP24S,引脚与 CH451 芯片兼容。 经过授权采用了 1 项专利技术,低成本,简便易用。 3、封装 4 线串行接口 2 线串行接口 封装形式 SOP28 DIP24S 宽度 7.62mm 7.62mm 300mil 300mil 引脚间距 1.27mm 50mil 2.54mm 100mil 封装说明 标准的 28 脚贴片 窄 24 脚双列直插 订货型号 CH452S/A CH452L 3 CH452 中文手册(一) 4、引脚 4.1. 标准的公共引脚 28 脚封装 的引脚号 23 9、10 22~15 24 脚封装 的引脚号 2 15 1、 24~18 引脚名称 类型 引脚说明 VCC GND SEG7 ~SEG0 DIG7 ~DIG0 电源 电源 三态输出 及输入 正电源,持续电流不小于 120mA 公共接地,持续电流不小于 120mA 数码管的段驱动,高电平有效, 键盘扫描输入,高电平有效,内置下拉 数码管的字驱动,低电平有效, 键盘扫描输出,高电平有效 串行接口方式选择,内置上拉电阻, 高电平选 4 线接口,低电平选 2 线接口 上电复位输出,高电平有效 上电复位输出,低电平有效 手工复位输入,高电平有效,内置下拉 不连接,禁止使用 输出 1~8 7~14 14 17 H3L2 输入 12 13 28 11 16 不支持 不支持 不支持 RST RST# RSTI NC. 输出 输出 输入 引脚名称 类型 引脚说明 LOAD DIN DCLK 输入 输入 输入 内置上拉 开漏输出 4 线串行接口的数据加载,内置上拉电阻 4 线串行接口的数据输入,内置上拉电阻 4 线串行接口的数据时钟,内置上拉电阻 4 线串行接口的数据输出, 键盘中断输出,低电平有效 引脚名称 类型 引脚说明 ADDR 输入 内置上拉 开漏输出 及输入 输入 内置上拉 开漏输出 2 线串行接口的地址选择,内置上拉电阻 4.2. 4 线接口引脚 28 脚封装 的引脚号 25 26 27 24 脚封装 的引脚号 4 5 6 24 3 DOUT 4.3. 2 线接口引脚 28 脚封装 的引脚号 25 24 脚封装 的引脚号 4 26 5 SDA 27 6 SCL 24 3 INT# 2 线串行接口的数据输入和输出 2 线串行接口的数据时钟,内置上拉电阻 2 线串行接口的中断输出, 键盘中断输出,低电平有效 5、功能说明 5.1. 一般说明 本手册中的数据,以 B 结尾的为二进制数,以 H 结尾的为十六进制数,否则为十进制数,标注 为 x 的位表示该位可以是任意值。 CH452 中文手册(一) 4 单片机(也可以是 DSP、微处理器等控制器)通过 4 线串行接口或者 2 线串行接口控制 CH452 芯 片,CH452 的数码管显示驱动与键盘扫描控制之间相互独立,单片机可以通过操作命令分别启用、关 闭、设定这两个功能。CH452 的 4 线串行接口是由硬件实现的,单片机可以频繁地通过串行接口进行 高速操作,而绝对不会降低 CH452 的工作效率;但是 2 线串行接口是由软件与硬件共同实现的,所以 不适合不间断地频繁操作。 5.2. 显示驱动 CH452 对数码管和发光管采用动态扫描驱动,顺序为 DIG0 至 DIG7,当其中一个引脚吸入电流时, 其它引脚则不吸入电流。CH452 内部具有电流驱动级,可以直接驱动 0.5 英寸至 1 英寸的共阴数码管, 段驱动引脚 SEG6~SEG0 分别对应数码管的段 G~段 A,段驱动引脚 SEG7 对应数码管的小数点,字驱 动引脚 DIG7~DIG0 分别连接 8 个数码管的阴极;CH452 也可以连接 8×8 矩阵的发光二级管 LED 阵列 或者 64 个独立发光管或者 64 级光柱;CH452 可以改变字驱动输出极性以便直接驱动共阳数码管(不 译码方式) ,或者通过外接反相驱动器支持共阳数码管,或者外接大功率管支持大尺寸的数码管。 CH452 支持扫描极限控制,并且只为有效数码管分配扫描时间。当扫描极限设定为 1 时,唯一的 数码管 DIG0 将得到所有的动态驱动时间,从而等同于静态驱动;当扫描极限设定为 8 时,8 个数码 管 DIG7~DIG0 各得到 1/8 的动态驱动时间;当扫描极限设定为 4 时,4 个数码管 DIG3~DIG0 各得到 1/4 的动态驱动时间,此时各数码管的平均驱动电流将比扫描极限为 8 时增加一倍,所以降低扫描极 限可以提高数码管的显示亮度。 CH452 内部具有 8 个 8 位的数据寄存器,用于保存 8 个字数据,分别对应于 CH452 所驱动的 8 个 数码管或者 8 组每组 8 个的发光二极管。CH452 支持数据寄存器中的字数据左移、右移、左循环、右 循环,并且支持各数码管的独立闪烁控制,在字数据左右移动或者左右循环移动的过程中,闪烁控制 的属性不会随数据移动。 CH452 支持任意段位寻址,可以用于独立控制 64 个发光管 LED 中的任意一个或者数码管中的特 定段(例如小数点) ,段位编址顺序与键盘编址一致,编址从 00H 到 3FH。当用“段位寻址置 1”命令 将某个地址的段位置 1 后,该地址对应的发光管 LED 或者数码管的段会点亮,该操作不影响任何其它 LED 或者数码管其它段的状态。 CH452 支持 64 级的光柱译码,用 64 个发光管或者 64 级光柱表示 65 种状态,加载新的光柱值后, 编址小于指定光柱值的发光管会点亮,而大于或者等于指定光柱值的发光管会熄灭。 CH452 默认情况下工作于不译码方式,此时 8 个数据寄存器中字数据的位 7~位 0 分别对应 8 个 数码管的小数点和段 G~段 A,对于发光二极管阵列,则每个字数据的数据位唯一地对应一个发光二 级管。当数据位为 1 时,对应的数据管的段或者发光管就会点亮;当数据位为 0 时,则对应的数据管 的段或者发光管就会熄灭。例如,第三个数据寄存器的位 0 为 1,所以对应的第三个数码管的段 A 点 亮。通过设定,CH452 还可以工作于 BCD 译码方式,该方式主要应用于数码管驱动,单片机只要给出 二进制数 BCD 码,由 CH452 将其译码后直接驱动数码管显示对应的字符。BCD 译码方式是指对数据寄 存器中字数据的位 4~位 0 进行 BCD 译码, 控制段驱动引脚 SEG6~SEG0 的输出, 对应于数码管的段 G~ 段 A,同时用字数据的位 7 控制段驱动引脚 SEG7 的输出,对应于数码管的小数点,字数据的位 6 和 位 5 不影响 BCD 译码。下表为数据寄存器中字数据的位 4~位 0 进行 BCD 译码后,所对应的段 G~段 A 以及数码管显示的字符。参考下表,如果需要在数码管上显示字符 0,只要置入数据 0xx00000B 或 者 00H;需要显示字符 0.(0 带小数点) ,只要置入数据 1xx00000B 或者 80H;类似地,数据 1xx01000B 或者 88H 对应于字符 8.(8 带小数点) ;数据 0xx10011B 或者 13H 对应于字符=;数据 0xx11010B 或者 1AH 对应于字符.(小数点) ;数据 0xx10000B 或者 10H 对应于字符 (空格,数码管没有显示) ;数据 0xx11110B 或者 1EH 对应于自定义的特殊字符,由“自定义 BCD 码”命令定义。 下图是数码管的段名称 5 CH452 中文手册(一) 下表是 BCD 译码表 位 4~位 0 段 G~段 A 显示的字符 位 4~位 0 段 G~段 A 显示的字符 00000B 00001B 00010B 00011B 00100B 00101B 00110B 00111B 01000B 01001B 01010B 01011B 01100B 01101B 01110B 01111B 0111111B 0000110B 1011011B 1001111B 1100110B 1101101B 1111101B 0000111B 1111111B 1101111B 1110111B 1111100B 1011000B 1011110B 1111001B 1110001B 0 1 2 3 4 5 6 7 8 9 A b c d E F 10000B 10001B 10010B 10011B 10100B 10101B 10110B 10111B 11000B 11001B 11010B 11110B 其余值 0000000B 1000110B 1000000B 1000001B 0111001B 0001111B 0001000B 1110110B 0111000B 1110011B 0000000B SELF_BCD 0000000B 空格 -| -1 或加号 - 负号减号 = 等于号 [ 左方括号 ] 右方括号 _ 下划线 H 字母 H L 字母 L P 字母 P . 小数点 自定义字符 空格 SELF_BCD 是由“自定义 BCD 码”命令 定义的新字符,复位后默认值为空格 下图是 CH452 的段驱动引脚 SEG7~SEG0 的内部电路简图。 下图是 CH452 的字驱动引脚 DIG7~DIG0 的内部电路简图。 6 CH452 中文手册(一) 5.3. 键盘扫描 CH452 的键盘扫描功能支持 8×8 矩阵的 64 键键盘。在键盘扫描期间,DIG7~DIG0 引脚用于列 扫描输出,SEG7~SEG0 引脚都带有内部下拉电阻,用于行扫描输入。当启用键盘扫描功能后,4 线串 行接口中的 DOUT 引脚的功能由串行接口的数据输出变为键盘中断输出以及按键数据输出。 CH452 定期在显示驱动扫描过程中插入键盘扫描。在键盘扫描期间,DIG7~DIG0 引脚按照 DIG0 至 DIG7 的顺序依次输出高电平,其余 7 个引脚输出低电平;SEG7~SEG0 引脚的输出被禁止,当没有 键被按下时,SEG7~SEG0 都被下拉为低电平;当有键被按下时,例如连接 DIG3 与 SEG4 的键被按下, 则当 DIG3 输出高电平时 SEG4 检测到高电平;为了防止因为按键抖动或者外界干扰而产生误码,CH452 实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。如果 CH452 检测到有效的 按键,则记录下该按键代码,并通过 4 线串行接口中的 DOUT 引脚或者 2 线串行接口中的 INT#引脚产 生低电平有效的键盘中断(当 INTM 为 1 时输出低电平脉冲中断,参考 5.5 节和 5.6 节中的说明),此 时单片机可以通过串行接口读取按键代码;在没有检测到新的有效按键之前,CH452 不再产生任何键 盘中断。CH452 不支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下;如果多个键 同时按下,那么按键代码较小的按键优先。 CH452 所提供的按键代码为 7 位,位 2~位 0 是列扫描码,位 5~位 3 是行扫描码,位 6 是状态 码(键按下为 1,键释放为 0) 。例如,连接 DIG3 与 SEG4 的键被按下,则按键代码是 1100011B 或者 63H,键被释放后,按键代码通常是 0100011B 或者 23H(也可能是其它值,但是肯定小于 40H) ,其中, 对应 DIG3 的列扫描码为 011B,对应 SEG4 的行扫描码为 100B。单片机可以在任何时候读取按键代码, 但一般在 CH452 检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的位 6 总是 1,另外, 如果需要了解按键何时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码的位 6 为 0。 下表是在 DIG7~DIG0 与 SEG7~SEG0 之间 8×8 矩阵的顺序编址,既是按键编址,也是数码管段 位、发光管 LED 阵列以及光柱的编址。由于按键代码是 7 位,键按下时位 6 总是 1,所以当键按下时, CH452 所提供的实际按键代码是表中的按键编址加上 40H,也就是说,此时的按键代码应该在 40H 到 7FH 之间。 编址 DIG7 DIG6 DIG5 DIG4 DIG3 DIG2 DIG1 DIG0 SEG0 SEG1 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 07H 0FH 17H 1FH 27H 2FH 37H 3FH 06H 0EH 16H 1EH 26H 2EH 36H 3EH 05H 0DH 15H 1DH 25H 2DH 35H 3DH 04H 0CH 14H 1CH 24H 2CH 34H 3CH 03H 0BH 13H 1BH 23H 2BH 33H 3BH 02H 0AH 12H 1AH 22H 2AH 32H 3AH 01H 09H 11H 19H 21H 29H 31H 39H 00H 08H 10H 18H 20H 28H 30H 38H 5.4. 附加功能 CH452 可以向单片机提供上电复位。单片机、DSP、微处理器的复位输入引脚可以根据需要直接 连接到 CH452 的 RST 引脚或者 RST#引脚,当 CH452 通电时,RST 引脚输出高电平有效的复位脉冲信号, RST#引脚输出低电平有效的复位脉冲信号。CH452 的上电复位脉冲信号同时作用于 CH452 芯片的内部 电路。 CH452 的上电复位是指上电过程(从断电状态变为正常供电状态的过程)中产生的复位脉冲。为 了减少 CH452 驱动大电流而产生的电源干扰,在设计印制电路板 PCB 时,应该紧靠 CH452 芯片,在正 负电源之间并联一组电源退耦电容,包括至少一个容量不小于 0.1uF 的独石或者瓷片电容和一个容量 不小于 100uF 的电解电容。 5.5. 4 线串行接口 CH452 中文手册(一) 7 下面是框图。 CH452 具有硬件实现的高速 4 线串行接口,包括 4 个信号线:串行数据输入线 DIN、串行数据时 钟线 DCLK、串行数据加载线 LOAD、串行数据输出线 DOUT。其中,DIN、DCLK、LOAD 是带上拉的输入 信号线,默认是高电平;DOUT 在未启用键盘扫描功能时作为串行数据输出线,在启用键盘扫描功能 后作为键盘中断和数据输出线,默认是高电平。 DIN 用于提供串行数据,高电平表示位数据 1,低电平表示位数据 0,串行数据输入的顺序是低 位在前,高位在后。 DCLK 用于提供串行时钟, CH452 在其上升沿从 DIN 输入数据, 在其下降沿从 DOUT 输出数据。 CH452 内部具有 12 位移位寄存器,在 DCLK 的上升沿,DIN 上的位数据被移入移位寄存器的最高位寄存器, 以此类推,原次低位数据移入最低位寄存器,在该上升沿后的第一个下降沿,原次低位数据从 DOUT 输出。CH452 允许 DCLK 引脚的串行时钟频率高达 10MHz,从而可以实现高速串行输入输出。 LOAD 用于加载串行数据,CH452 在其上升沿加载移位寄存器中的 12 位数据,作为操作命令分析 并处理。也就是说,LOAD 的上升沿是串行数据帧的帧完成标志,此时无论移位寄存器中的 12 位数据 是否有效,CH452 都会将其当作操作命令。 由于 CH452 只在 LOAD 的上升沿加载命令数据并处理,所以单片机不能将 LOAD 信号线用于其它 用途,但是 DIN 和 DCLK 可以用于其它用途。当单片机 I/O 引脚资源紧张时,CH452 只需要独占使用 LOAD 信号线,DIN 和 DCLK 信号线可以与其它接口电路共用。 单片机向 CH452 输出串行数据的过程是(不是唯一的过程,可以有很多变化) : ① 输出一位数据,即向 DIN 输出最低位数据 B0,并向 DCLK 输出低电平脉冲(从高电平变为低 电平再恢复为高电平) ,其中包括一个上升沿使 CH452 输入位数据; ② 以同样的方式,输出位数据 B1~B11; ③ 向 LOAD 输出低电平脉冲,其中包括一个上升沿使 CH452 加载串行数据。 在本说明书中,将以 B0^B1^B2^B3^B4^B5^B6^B7^B8^B9^B10^B11^↑作为上述过程的简化描述, 其中,^代表 DCLK 的上升沿,↑代表 LOAD 的上升沿,B0~B11 分别代表 1 位数据,如果是字符 0 或 1 则对应 DIN 输入的位数据,如果是字符 L 或 H 则对应 DOUT 输出的位数据 0 或 1。例如, CH452 中文手册(一) 8 1^0^0^0^0^0^0^0^0^1^0^0^↑表示向 CH452 发送了一组 12 位的串行数据 001000000001B;1^1^1^0^ ↑H^H^L^L^L^H^H^表示先向 CH452 发送了一组 4 位的串行数据 0111B,然后接收了一组 7 位的串行数 据 1100011B。 在未启用键盘扫描功能时,DOUT 用于输出串行数据,移位寄存器中的最低位数据总是在 DCLK 的 下降沿出现在 DOUT 引脚。CH452 支持无限制的级联,只要 3 根信号线就可以连接多个 CH452 芯片。 其中,所有 CH452 的 DCLK 并联后连接单片机的 DCLK 输出,所有 CH452 的 LOAD 并联后连接单片机的 LOAD 输出,后级 CH452 的 DIN 连接前级 CH452 的 DOUT 输出,最前级 CH452 的 DIN 连接单片机的 DIN 输出。级联电路中,单片机每次输出的串行数据必须是单个 CH452 的串行数据的位数乘以级联的级数。 例如,CH452 的串行数据是 12 位,如果 3 个 CH452 进行级联,则单片机每次输出的数据位数必须是 36 位,依次是后级 CH452 的命令数据、中级 CH452 的命令数据、前级 CH452 的命令数据。 上图是在未启用键盘扫描功能时,单片机通过 4 线串行接口向 CH452 发送 12 位数据的波形示意 图,数据是 001000000001B,LOAD 的低电平脉冲可以更宽,图中以虚线表示。 当启用键盘扫描功能后,DOUT 用于键盘中断和数据输出,默认是高电平。当 CH452 检测到有效 按键时,DOUT 输出低电平有效的键盘中断;单片机被中断后,发出读取按键代码命令,CH452 在 LOAD 的上升沿后从 DOUT 输出 7 位按键代码的最高位;单片机继续输出串行时钟,在 DCLK 的每个下降沿, CH452 依次从 DOUT 输出 7 位按键代码的剩余 6 位,顺序是高位在前,低位在后;7 位按键代码输出完 毕后,无论 DCLK 如何变化,CH452 都将 DOUT 恢复为默认的高电平。参考下图,单片机从 CH452 获得 按键代码的过程是: ① 输出一位数据,即向 DIN 输出读取按键代码命令的最低位数据 B0,并向 DCLK 输出低电平脉 冲; ② 以同样的方式,输出读取按键代码命令的位数据 B1~B11; ③ 向 LOAD 输出低电平脉冲,其中包括一个上升沿使 CH452 加载串行数据,CH452 分析出是读 取按键代码命令,立即在 DOUT 输出按键代码的最高位数据 K6; ④ 读取一位数据,即从 DOUT 输入按键代码的最高位数据 K6,并向 DCLK 输出低电平脉冲; ⑤ 以同样的方式,输入按键代码的位数据 K5~K0。 实际上,CH452 的读取按键代码命令只有位数据 B8~B11 是有效的,所以单片机不必发出读取按 键代码命令的 B0~B7。例如,按键代码是 63H,则上述过程的简化描述是 1^1^1^0^↑H^H^L^L^L^H^H^, 即先向 CH452 发出读取按键代码命令 0111xxxxxxxxB,然后从 DOUT 接收按键代码 1100011B。上图是 CH452 中文手册(一) 9 单片机向 CH452 发送命令并接收按键代码的波形示意图,MCU 是指单片机的工作状态。 如果在“设置系统参数”命令中设定 INTM 为 1,选择按键中断输出方式为低电平脉冲(边沿中 断) ,那么当 CH452 检测到有效按键时,DOUT 输出的键盘中断为几个微秒宽度的低电平脉冲。 5.6. 2 线串行接口 CH452 具有经济的 2 线串行接口,包含 2 个主要信号线:串行数据时钟输入线 SCL、串行数据输 入和输出线 SDA;以及 2 个辅助信号线:串行接口的地址选择线 ADDR、串行接口的中断输出线 INT#。 其中,SCL、ADDR 是带上拉的输入信号线,默认是高电平;SDA 是带上拉的准双向信号线,默认是高 电平;INT#是带上拉的开漏输出,在启用键盘扫描功能后作为键盘中断输出线,默认是高电平。 DOUT 在未启用键盘扫描功能时作为串行数据输出线,在启用键盘扫描功能后作为键盘中断和数 据输出线,默认是高电平。 SDA 用于串行数据输入和输出,高电平表示位数据 1,低电平表示位数据 0,串行数据输入的顺 序是高位在前,低位在后。 SCL 用于提供串行时钟,CH452 在其上升沿后的高电平期间从 SDA 输入数据,在其下降沿后的低 电平期间从 SDA 输出数据。 ADDR 用于静态选择 CH452 的设备地址。为了节约单片机的 I/O 引脚,可以将两个 CH452 芯片连 接到同一组 SCL 和 SDA 信号线,称为并联方式,为了区分两个 CH452,可以将其中一个 CH452 的 ADDR 引脚接低电平,另一个 CH452 的 ADDR 接高电平(或者悬空) ,使两者具有不同的设备地址。 在 SCL 为高电平期间发生的 SDA 下降沿定义为串行接口的启动信号,CH452 只在检测到启动信号 后才接收并分析命令。所以在单片机 I/O 引脚资源紧张时,不但 INT#引脚可以省掉而改用 SDA 引脚 的脉冲中断方式,而且在保持 SDA 引脚状态不变的情况下,SCL 引脚也可以与其它接口电路共用。 单片机向 CH452 输出串行数据的过程是(不是唯一的过程,可以有很多变化) : ① SDA 输出高电平,SCL 输出高电平,准备启动信号; ② SDA 输出低电平,产生启动信号; ③ SCL 输出低电平,启动完成; ④ 输出一位数据,即向 SDA 输出最高位数据 DA0(总是 0) ,并向 SCL 输出高电平脉冲(从低 电平变为高电平再恢复为低电平) ,其中包括一个上升沿及高电平使 CH452 输入位数据; ⑤ 以同样的方式,输出位数据 DA1(总是 1) 、ADDR(地址选择) 、B11~B8; ⑥ 以同样的方式,输出位数据 R/-W,低电平 0 代表写操作,也就是将要继续输出位数据; 2 ⑦ 以同样的方式,输出位数据 1,也就是不输出,以便 I C 设备回送应答位,注意,CH452 自 身不回送应答位,而且当 CH452 发现有其它设备回送应答那么 CH452 将放弃该命令; ⑧ 以同样的方式,输出位数据 B7~B0; ⑨ 直接结束,不过,建议将 SCL 恢复为高电平,建议将 SDA 恢复为高电平。 上图是单片机通过 2 线串行接口向 CH452 发送 12 位数据的波形示意图,数据是 001000000001B, ADDR 用于选择设备地址,图中以虚线表示。 INT#用于键盘中断输出,默认是高电平。当 CH452 检测到有效按键时,INT#输出低电平有效的 键盘中断;单片机被中断后,发出读取按键代码命令,CH452 将 INT#恢复为高电平,并从 SDA 输出按 键代码。参考下图,单片机从 CH452 获得按键代码的过程是: CH452 中文手册(一) 10 ① ② ③ ④ SDA 输出高电平,SCL 输出高电平,准备启动信号; SDA 输出低电平,产生启动信号; SCL 输出低电平,启动完成; 输出一位数据,即向 SDA 输出最高位数据 DA0(总是 0) ,并向 SCL 输出高电平脉冲(从低 电平变为高电平再恢复为低电平) ,其中包括一个上升沿及高电平使 CH452 输入位数据; ⑤ 以同样的方式,输出位数据 DA1(总是 1) 、ADDR(地址选择) 、B11~B8; ⑥ 以同样的方式,输出位数据 R/-W,高电平 1 代表读操作,也就是要求 CH452 输出位数据; 2 ⑦ 以同样的方式,输出位数据 1,也就是不输出,以便 I C 设备回送应答位,注意,CH452 自 身不回送应答位,而且当 CH452 发现有其它设备回送应答那么 CH452 将放弃该命令; ⑧ 在 SCL 为低电平期间,CH452 向 SDA 输出位数据 K7(总是 0) ,单片机向 SCL 输出高电平脉 冲,并在 SCL 为高电平期间从 SDA 读取位数据; ⑨ 以同样的方式,CH452 输出位数据 K6~K0,单片机输入位数据作为按键代码; ⑩ 直接结束,不过,建议将 SCL 恢复为高电平,建议将 SDA 恢复为高电平。 上图是单片机向 CH452 发送命令并接收按键代码的波形示意图,命令数据是 0111xxxxxxxxB,接 收的按键代码是 01100011B。 如果在“设置系统参数”命令中设定 INTM 为 1,选择按键中断输出方式为低电平脉冲(边沿中 断) ,那么当 CH452 检测到有效按键时,将等待直到 SCL 和 SDA 空闲(SCL 和 SDA 保持高电平 10 微秒 以上) ,然后从 SDA 输出几个微秒宽度的低电平脉冲作为键盘中断,之后仍然从 INT#输出低电平有效 的键盘中断。这种中断方式用于节约单片机的 I/O 引脚,只需要连接 SCL 和 SDA,而不必连接 INT#, 空闲时单片机使 SCL 和 SDA 保持高电平,CH452 通过 SDA 的低电平脉冲向单片机通知键盘中断。 6、操作命令 CH452 的操作命令均为 12 位,下表列出了 CH452 的各个操作命令所对应的 12 位串行数据。其中, 标注为 x 的位表示该位可以是任意值;标有名称的位表示该位在 CH452 芯片内部具有相应的寄存器, 其数据根据操作命令的不同而变化。 操作命令 空操作 加载光柱值 段位寻址清 0 段位寻址置 1 芯片内部复位 进入睡眠状态 字数据左移 字数据右移 字数据左循环 字数据右循环 自定义 BCD 码 设定系统参数 位 11 位 10 位 9 位 8 位 7 0 0 0 0 x 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 位6 x 0 1 0 0 0 0 0 0 0 位5 x 位4 x 位3 位2 位1 位0 x x x x LEVEL BIT_ADDR BIT_ADDR 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 SELF_BCD INTM SSPD DPLR 0 KEYB DISP 11 CH452 中文手册(一) 设定显示参数 设定闪烁控制 加载字数据 0 加载字数据 1 加载字数据 2 加载字数据 3 加载字数据 4 加载字数据 5 加载字数据 6 加载字数据 7 读取按键代码 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 MODE D7S x LIMIT 0 0 0 D6S D5S D4S D3S D2S D1S DIG_DATA, DIG0 对应的字数据 DIG_DATA, DIG1 对应的字数据 DIG_DATA, DIG2 对应的字数据 DIG_DATA, DIG3 对应的字数据 DIG_DATA, DIG4 对应的字数据 DIG_DATA, DIG5 对应的字数据 DIG_DATA, DIG6 对应的字数据 DIG_DATA, DIG7 对应的字数据 x x x x x x 0 D0S x 6.1. 空操作:0000xxxxxxxxB 空操作命令不对 CH452 产生任何影响。该命令可以在多个 CH452 级联的应用中,透过前级 CH452 向后级 CH452 发送操作命令而不影响前级的状态。例如,要将操作命令 001000000001B 发送给两级级 联电路中的后级 CH452(后级 CH452 的 DIN 连接前级 CH452 的 DOUT) ,只要在该命令后添加空操作命 令 000000000000B 再发送,简化描述是 1^0^0^0^0^0^0^0^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^↑, 那么,该操作命令将经过前级 CH452 到达后级 CH452,而空操作命令留给了前级 CH452。另外,在非 级联的应用中,空操作命令可以只发送有效数据 B8~B11,简化描述是 0^0^0^0^↑。空操作也可以用 于唤醒处于低功耗睡眠状态的 CH452,避免其它命令影响 CH452 的工作状态。 6.2. 芯片内部复位:001000000001B 内部复位命令将 CH452 的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH452 总是被 复位,此时各个寄存器均复位为 0,各种参数均恢复为默认值。该命令执行时间为 30 微秒,也就是 说,CH452 在收到复位命令之后的 20 微秒内不能接收其它命令。 6.3. 字数据左移:001100000000B 字数据左移命令将 CH452 的字数据左移一次,即从 DIG0 向 DIG7 移动一位,然后最右边的 DIG0 补进数据 00H。例如,在数码管 DIG7~DIG0 显示“87654321”时,执行字数据左移命令,显示变为 “7654321 ” (不译码方式)或者“76543210” (BCD 译码方式) 。该命令执行时间为 10 微秒。 6.4. 字数据右移:001100000010B 字数据右移命令将 CH452 的字数据右移一次,即从 DIG7 向 DIG0 移动一位,然后最左边的 DIG7 补进数据 00H。例如,在数码管 DIG7~DIG0 显示“87654321”时,执行字数据右移命令,显示变为 “ 8765432” (不译码方式)或者“08765432” (BCD 译码方式) 。该命令执行时间为 10 微秒。 6.5. 字数据左循环:001100000001B 字数据左循环命令将 CH452 的字数据左循环一次,即从 DIG0 向 DIG7 移动一位,然后最右边的 DIG0 补进原 DIG7 的数据。例如,在数码管 DIG7~DIG0 显示“87654321”时,执行字数据左循环命 令,显示变为“76543218” 。该命令执行时间为 10 微秒。 6.6. 字数据右循环:001100000011B 字数据右循环命令将 CH452 的字数据右循环一次,即从 DIG7 向 DIG0 移动一位,然后最左边的 DIG7 补进原 DIG0 的数据。例如,在数码管 DIG7~DIG0 显示“87654321”时,执行字数据右循环命 令,显示变为“18765432” 。该命令执行时间为 10 微秒。 6.7. 设定系统参数:010000[INTM][SSPD][DPLR]0[KEYB][DISP]B 设定系统参数命令用于设定 CH452 的系统级参数:显示驱动使能 DISP、键盘扫描使能 KEYB、字 驱动输出极性 DPLR、闪烁速度 SSPD、中断输出方式 INTM。各个参数均通过 1 位数据控制,详细说明 12 CH452 中文手册(一) 参考下表。例如,命令数据 010000000001B 表示关闭键盘扫描的功能、启用显示扫描驱动的功能。 位 参数说明 简写 位为 0(默认) 位为 1 0 1 3 4 显示驱动功能的使能 键盘扫描功能的使能 字驱动 DIG 输出极性 闪烁速度/频率 DISP KEYB DPLR SSPD 5 按键中断输出方式 INTM 关闭显示驱动 关闭键盘扫描 低电平有效 低速(约 1Hz) 低电平有效 (电平或边沿中断) 允许显示驱动 启用键盘扫描 高电平有效 快速(约 2Hz) 低电平脉冲 (边沿中断) 6.8. 设定显示参数:0101[MODE][LIMIT]0000B 设定显示参数命令用于设定 CH452 的显示参数:译码方式 MODE,扫描极限 LIMIT。译码方式 MODE 通过 1 位数据控制,置 1 时选择 BCD 译码方式,置 0 时选择不译码方式(默认值) 。扫描极限 LIMIT 通过 3 位数据控制,数据 001B~111B 和 000B 分别设定扫描极限为 1~7 和 8(默认值) 。例如,命令 数据 010101110000B 表示选择不译码方式、扫描极限为 7;命令数据 010110000000B 表示选择 BCD 译 码方式、扫描极限为 8。 6.9. 设定闪烁控制:0110[D7S][D6S][D5S][D4S][D3S][D2S][D1S][D0S]B 设定闪烁控制命令用于设定 CH452 的闪烁显示属性:D7S~D0S 分别对应于 8 个字驱动 DIG7~ DIG0。闪烁属性 D7S~D0S 分别通过 1 位数据控制,将相应的数据位置为 1 则使能闪烁显示,否则为 正常显示,不闪烁(默认值) 。例如,命令数据 011000100001B 表示设定数码管 DIG5 和 DIG0 闪烁显 示,其余数码管正常显示,不闪烁。 6.10. 加载字数据:1[DIG_ADDR][DIG_DATA]B 加载字数据命令用于将字数据 DIG_DATA 写入 DIG_ADDR 指定地址的数据寄存器中。DIG_ADDR 通 过 3 位数据指定数据寄存器的地址,数据 000B~111B 分别指定地址 0~7,对应于 DIG0~DIG7 引脚 驱动的 8 个数码管。DIG_DATA 是 8 位的字数据。例如,命令数据 100001111001B 表示将字数据 79H 写入第 1 个数据寄存器,如果是不译码方式,则 DIG0 引脚驱动的数码管将显示 E;命令数据 110010001000B 表示将字数据 88H 写入第 5 个数据寄存器,如果是 BCD 译码方式,则 DIG4 引脚驱动 的数码管将显示 8.。该命令执行时间为 5 微秒。 6.11. 读取按键代码:0111xxxxxxxxB 读取按键代码命令用于获得 CH452 最近检测到的有效按键的按键代码。该命令是唯一的具有数 据返回的命令,CH452 从 4 线接口的 DOUT 引脚或者 2 线接口的 SDA 引脚输出按键代码,按键代码的 有效数据是位 6~位 0,其中位 6 是状态码,位 5~位 0 是扫描码和按键编址。读取按键代码命令的 位数据 B0~B7 可以是任意值,所以单片机可以将该操作命令缩短为 4 位数据 B8~B11。例如,CH452 检测到有效按键并中断,那么单片机先向 CH452 发出读取按键代码命令 0111xxxxxxxxB,然后从 CH452 获得按键代码。对于 2 线接口,因为 SDA 同时用于输入和输出,所以位数据 B7~B0 必须为 1。 6.12. 加载光柱值:00010[LEVEL]B 加载光柱值命令用于指定新的光柱值 LEVEL,有效的光柱值是 00H 到 40H。该命令使编址小于光 柱值的发光管点亮,而大于或者等于光柱值的发光管熄灭。例如,命令数据 000100000000B 表示加载 光柱值 00H,那么所有 LED 灭;命令数据 000100010110B 表示加载光柱值 16H,那么编址为 00H 到 15H 的 LED 亮(共 16H 个 LED 亮) ,而编址 16H 到 3FH 的 LED 灭;命令数据 000101000000B 表示加载光柱 值 40H,那么所有 LED 亮。该命令执行时间为 20 微秒。 6.13. 段位寻址清 0:000110[BIT_ADDR]B 段位寻址清 0 命令用于将指定地址的发光管(或者数码管的指定段)熄灭,该命令一次只能熄 灭指定地址的一个发光管,并且完全不影响其它发光管的状态。段位寻址的编址顺序与按键代码一致, 可以用按键代码值减去 40H。例如,命令数据 000110111010B 表示将编址为 3AH 的发光管熄灭(也就 13 CH452 中文手册(一) 是 DIG2 数码管的小数点熄灭) 。该命令执行时间为 10 微秒。 6.14. 段位寻址置 1:000111[BIT_ADDR]B 段位寻址置 1 命令用于将指定地址的发光管(或者数码管的指定段)点亮,该命令一次只能点 亮指定地址的一个发光管,并且完全不影响其它发光管的状态。段位寻址的编址顺序与按键代码一致, 可以用按键代码值减去 40H。例如,命令数据 000111000110B 表示将编址为 06H 的发光管点亮(也就 是 DIG6 数码管的上横线 A 段点亮) 。该命令执行时间为 10 微秒。 6.15. 自定义 BCD 码:00111[SELF_BCD]B 自定义 BCD 码命令用于自行定义常规 BCD 译码中未实现的特殊字符,CH452 支持一个自定义 BCD 码,其 BCD 值为 1EH,显示编码由该命令指定,编码共 7 位,分别对应于数码管的 7 个段,而小数点 由 BCD 值的最高位单独控制。例如,命令数据 001110111110B 表示自定义 BCD 字符 U(对应的段显示 数据为 3EH),在 BCD 译码方式下,当单片机要求显示 BCD 值 1EH 时,CH452 会在对应的数码管中显示 字符 U,当单片机要求显示 BCD 值 9EH 时,CH452 会在对应的数码管中显示字符 U.(含小数点) 。 6.16. 进入睡眠状态:001000000010B 进入睡眠状态命令使 CH452 暂停显示驱动和键盘扫描,并进入低功耗睡眠状态,从而可以节约 电能。处于低功耗睡眠状态中的 CH452 可以被下述两种事件中的任何一种唤醒,第一种事件是检测到 SEG3~SEG0 上的按键,有效按键代码是 40H 到 5FH;第二种事件是接收到单片机发出的操作命令,通 常是空操作命令。睡眠和唤醒操作本身不会影响 CH452 的工作状态。 7、参数 7.1. 绝对最大值(临界或者超过绝对最大值将可能导致芯片工作不正常甚至损坏) 名称 参数说明 最小值 最大值 单位 TA TS VCC VIO IMdig IMseg IMall 工作时的环境温度 储存时的环境温度 电源电压(VCC 接电源,GND 接地) 输入或者输出引脚上的电压 单个 DIG 引脚的连续驱动电流 单个 SEG 引脚的连续驱动电流 所有 SEG 引脚的连续驱动电流的总和 -20 -55 -0.5 -0.5 0 0 0 70 125 6.5 VCC+0.5 120 25 120 ℃ ℃ V V mA mA mA 典型值 5 50 0.08 0.03 0.4 最大值 5.5 150 单位 V mA mA mA mA V V V V V V 7.2. 电气参数(测试条件:TA=25℃,VCC=5V) 名称 VCC ICC Islp5 Islp3 Islp2 VILseg VIHseg VIL VIH VOLdig VOHdig 参数说明 电源电压 电源电流 5V 低功耗睡眠电流(所有 I/O 悬空) 3.3V 低功耗睡眠电流(所有 I/O 悬空) CH452S 在 2 线接口时的低功耗睡眠电流 SEG 引脚低电平输入电压 SEG 引脚高电平输入电压 其余引脚低电平输入电压 其余引脚高电平输入电压 DIG 引脚低电平输出电压(-80mA) DIG 引脚高电平输出电压(10mA) 最小值 3 4 -0.5 1.8 -0.5 2.0 4.5 0.5 VCC+0.5 0.8 VCC+0.5 0.8 14 CH452 中文手册(一) VOLseg VOHseg VOL VOH IDN1 IDN0 IUP1 IUP2 IUP3 IUP0 VR SEG 引脚低电平输出电压(-15mA) SEG 引脚高电平输出电压(15mA) 其余引脚低电平输出电压(-4mA) 其余引脚高电平输出电压(4mA) SEG 引脚的输入下拉电流 RSTI 引脚的输入下拉电流 DCLK 或 LOAD 引脚的输入上拉电流 DIN 引脚的输入上拉电流 DOUT 引脚的输出上拉电流 H3L2 引脚的输入上拉电流 上电复位的默认电压门限 0.5 4.5 0.5 4.5 2.4 -50 -140 80 100 230 300 2.7 -90 -200 140 180 400 3 V V V V uA uA uA uA uA uA V 7.3. 内部时序参数(测试条件:TA=25℃,VCC=5V) (注:本表时序参数都是内置时钟周期的倍数,内置时钟的频率随着电源电压的降低而降低) 名称 TPR TWK TDP FSPS FSPF TKS 参数说明 电源上电检测产生的复位脉冲宽度 在睡眠中被唤醒到恢复工作的时间 显示扫描周期(TDW*扫描极限) 闪烁显示的频率(慢速/默认) 闪烁显示的频率(快速) 键盘扫描间隔,按键响应时间 最小值 20 2 典型值 30 3 2 1 2 32 最大值 60 6 单位 mS mS mS Hz Hz mS 7.4. 4 线接口时序参数(测试条件:TA=25℃,VCC=5V,参考附图) -9 (注:本表计量单位以纳秒即 10 秒为主,未注明最大值则理论值可以无穷大) 名称 TIS TIH TCL TCH TCF TCB TLL TLH 参数说明 DIN 数据输入的建立时间 DIN 数据输入的保持时间 DCLK 时钟信号的低电平宽度 DCLK 时钟信号的高电平宽度 LOAD 上升沿之前 DCLK 稳定时间 LOAD 上升沿之后 DCLK 稳定时间 LOAD 加载信号的低电平宽度 LOAD 加载信号的高电平宽度 最小值 25 10 50 50 25 25 50 50 典型值 最大值 单位 nS nS nS nS nS nS nS nS 15 CH452 中文手册(一) TLC TOL TOC TE TINT Rate LOAD 加载信号的周期(命令周期) LOAD 上升沿后 DOUT 输出延时 DCLK 下降沿后 DOUT 输出延时 DCLK、LOAD 上升或者下降时间 按键中断输出方式为低电平脉冲时 DOUT 输出的低电平脉冲的宽度 平均数据传输速率 6000 0 0 0 2000 4000 0 25 25 10 nS nS nS nS 8000 nS 2M bps 7.5. 2 线接口时序参数(测试条件:TA=25℃,VCC=5V,参考附图) -6 (注:本表计量单位以微秒即 10 秒为主,未注明最大值则理论值可以无穷大) 名称 参数说明 最小值 TSSTA THSTA TCLOW TCHIG TSDA THDA TAA TDH TBUF SDA 下降沿启动信号的建立时间 SDA 下降沿启动信号的保持时间 SCL 时钟信号的低电平宽度 SCL 时钟信号的高电平宽度 SDA 输入数据对 SCL 上升沿的建立时间 SDA 输入数据对 SCL 上升沿的保持时间 SDA 输出数据有效对 SCL 下降沿的延时 SDA 输出数据无效对 SCL 下降沿的延时 连续两个操作之间的缓冲时间 按键中断输出方式为低电平脉冲时 SDA 输出的低电平脉冲的宽度 平均数据传输速率 1 1 2 2 0 2.5 0.5 0.5 5 TINT Rate 2 500 典型值 最大值 200 200 200 2 2 4 单位 uS uS uS uS uS uS uS uS uS 8 uS 200K bps 8、应用 8.1. 4 线接口连接单片机(下图) U2(28 脚封装的 CH452)的 H3L2 引脚为高电平(或者悬空) ,CH452 通过 4 线串行接口与单片机 U1(MCS51 系列 89C2051)相连接。CH452 的段驱动引脚串接了电阻 R1(270Ω) ,用以限制和均衡段 驱动电流,在 5V 电源电压下,串接 270Ω电阻通常对应段电流 10mA。电容 C2 和 C3 布置于 U2 的电源 引脚附近,用于电源退耦,减少驱动大电流产生的干扰。当不需要键盘功能时,还可以省去 KEY 信号 线,只使用 DCLK、DIN、LOAD 三个信号线;当使用键盘功能时,CH452 的 DOUT 引脚的 KEY 信号线可 以连接到单片机的中断输入引脚,如果连接到普通 I/O 引脚,那么应该使用查询方式确定 CH452 是否 检测到有效按键。CH452 还可以向单片机提供上电复位信号 RESET。 由于标准 MCS51 单片机的部分 I/O 引脚是弱上拉的准双向口,所以在与 CH452 进行远距离连接 的电路中,建议对 DIN、DCLK、LOAD、DOUT 加上拉电阻以减少干扰,上拉电阻的阻值可以是 500Ω到 10KΩ,近距离无需上拉电阻,距离越远则阻值应该越小。 CH452 中文手册(一) 16 8.2. 2 线接口连接单片机(下图) U2(28 脚封装的 CH452)的 H3L2 引脚为低电平,CH452 通过 2 线串行接口与单片机 U1 相连接。 当不需要键盘功能时,还可以省去 KEY 信号线,只使用 SCL 和 SDA 两个信号线;当使用键盘功能时, CH452 的 INT#引脚的 KEY 信号线可以连接到单片机的中断输入引脚或者普通 I/O 引脚供查询,如果按 键中断输出方式选择“低电平脉冲” ,那么还可以用 SDA 代替 INT#向单片机提供键盘中断。 8.3. 驱动共阴数码管(下图) CH452 中文手册(一) 17 CH452 可以动态驱动 8 个共阴数码管,所有数码管的相同段引脚(段 A~段 G 以及小数点)并联 后通过串接的限流电阻 R1(或 R12)连接 CH452 的段驱动引脚 SEG0~SEG7,各数码管的阴极分别由 CH452 的 DIG0~DIG7 引脚进行驱动。串接限流电阻的阻值越大则段驱动电流越小,数码管的显示亮 度越低,R1(或 R12)的阻值一般在 100Ω至 1KΩ之间,在其它条件相同的情况下,应该优先选择较 大的阻值,以降低 CH452 芯片本身的功耗。 在数码管的面板布局上,建议数码管从左到右的顺序是 N1 靠左边,N8 靠右边,以便匹配字左右 移动命令和字左右循环移动命令。如果数码管不足 8 个,那么可以优先去掉左边的 N1、N2、N3 等数 码管,并设置相应的扫描极限以获得更大的动态驱动电流提高显示亮度。 8.4. 驱动共阳数码管(下图) 如果将段驱动信号 SEG0~SEG7 和字驱动信号 DIG0~DIG7 分别反相,那么可以驱动共阳数码管。 下图中,段信号 SEG0~SEG7 由 U22 达林顿管阵列反相驱动,也可以用 8 个基极串了限流电阻的 NPN 三级管代替,字信号 DIG0~DIG7 由 8 个 PNP 三级管 T1 等反相驱动,如果 U22 本身不支持恒流驱动, 那么使用电阻 R13 限制和均衡段电流。该电路的驱动电流比 CH452 直接驱动共阴数码管大几倍,图中 电阻 R13 和 R14 应该根据实际的驱动电流大小选择相应的阻值。 对于用多个 LED 串联构成的大尺寸数码管,由于其电压降较大,5V 电源电压不能直接驱动,通 常需要外接高电压驱动电路。下图中,设置 CH452 的字驱动 DIG 输出极性为“高电平有效” ,再经 NPN 三级管 T2 和 PNP 三级管 T3 两次反相后输出 24V 驱动电压,配合上图中的段反相驱动电路 U22,可以 驱动高电压的大尺寸共阳数码管。图中电阻 R16 应该根据实际的驱动电流大小选择相应的阻值。 8.5. 8×8 键盘扫描(下图) CH452 具有 64 键的键盘扫描功能,如果应用中只需要很少的按键,那么可以在 8×8 矩阵中任意 去掉不用的按键。为了防止键被按下后在 SEG 信号线与 DIG 信号线之间形成短路而影响显示,一般应 该在 CH452 的 DIG0~DIG7 引脚与键盘矩阵之间串接限流电阻 R2,其阻值可以从 1KΩ至 10KΩ。如果 单片机使 CH452 进入低功耗睡眠状态,那么处于睡眠状态的 CH452 可以被按键 K0~K31 唤醒,如果之 前单片机还启用了 CH452 的键盘扫描功能,那么唤醒后的 CH452 将会向单片机提供按键中断。 CH452 中文手册(一) 18 8.6. 完整的应用例子(下图) 图中,单片机 U2 通过 CH452 驱动 8 个共阴数码管显示,并同时扫描 64 个按键。由于某些数码管 在较高工作电压时存在反向漏电现象,容易被 CH452 误认为是某个按键一直按下,所以强烈建议使用 CH452 中文手册(一) 19 二级管 D1-D8 防止数码管反向漏电,并提高键盘扫描时 SEG0~SEG7 输入信号的电平,确保键盘扫描 更可靠。当电源电压较低时(例如 VCC=3.3V) ,这些二级管应该去掉以避免影响显示亮度。 如果 CH452S 芯片在 5V 电源下同时使用键盘扫描和数码管显示功能,那么必须加二级管。 8.7. 多片级联扩展 当数码管多于 8 个或者按键多于 64 个时,可以采用多个 CH452 进行驱动。 多个 CH452 以 4 线接口与单片机的连接方式有两种方案:一是并联,单片机为每个 CH452 提供一 根独立的 LOAD 信号线,但 DIN 和 DCLK 信号线同时提供给所有的 CH452,也就是说,各个 LOAD 信号 线相当于各个 CH452 的片选线;二是串联,单片机将 DCLK 和 LOAD 信号线同时提供给所有的 CH452, 单片机只提供 DIN 给最前级的 CH452,而后级 CH452 的 DIN 连接到前级 CH452 的 DOUT 引脚。 多个 CH452 以 2 线接口与单片机的连接方式有两种方案:一是独立并联,单片机为每个 CH452 提 供一根独立的 SCL 或者 SDA 信号线,而独立或者共享另外一个信号线;二是直接并联,两个 CH452 使 用 ADDR 选择不同的设备地址,两个 CH452 完全共享 SCL 和 SDA 信号线与单片机连接。 8.7.1. 4 线接口并联应用(下图) 图中以 4 线接口并行级联方式驱动 24 只数码管,U8(MCS51 系列单片机)向所有的 CH452 提供 一组共用的 DIN 和 DCLK 信号,并且向各个 CH452 分别提供一根 LOAD 信号线。需要对 U9 进行操作时, 单片机可以通过 DIN 和 DCLK 输出串行数据,然后通过 LD1 向 U9 输出加载信号使其执行操作,而 U10 CH452 中文手册(一) 20 和 U11 没有收到 LOAD 信号,所以不操作。并联方式下,每一个 CH452 都可以启用键盘功能,并且操 作过程比串联方式简单。 8.7.2. 4 线接口串联应用(下图) 图中以 4 线接口串行级联方式驱动发光二极管 LED 点阵,单片机 U3 通过 DIN1、DCLK 和 LOAD 三 根信号线控制所有的 CH452。参考 16×16 布局图,4 个 8×8 发光管阵列 L1~L4 组成 16×16 的点阵 模块,如果要显示一个汉字,只要将 32 字节的点阵数据通过 8 次 48 位的加载字数据命令送给 CH452 就可以了。因为是 4 个 CH452 级联,所以每个操作命令都必须是 48 位数据,依次是 U7、U6、U5 和 CH452 中文手册(一) 21 U4 的命令数据,最后由 LOAD 信号线输出上升沿通知所有的 CH452 加载各自的命令数据。串联方式下, CH452 的级联数量没有限制,并且只占用 3 个 I/O 引脚,其中 DIN 和 DCLK 还可以与其它接口电路共 用,缺点是只有最后一级的 CH452 可以启用键盘功能,操作过程比并联方式复杂。 8.7.3. 2 线接口直接并联应用(下图) 图中以 2 线接口直接并联方式驱动 16 只数码管,两个 CH452 可以分别启用键盘功能。单片机 U12 2 向两个 CH452 以及兼容 I C 总线时序的其它设备提供一组共用的 SCL 和 SDA 信号,两个 CH452 的 ADDR 引脚连接不同,从而选择不同的设备地址便于单片机区分。 8.8. 抗干扰与手工复位 由于 CH452 驱动数码管或者 LED 的电流较大,会在电源上产生较大的毛刺电压,所以如果电源线 或者地线的 PCB 布线不合理,将有可能影响单片机或者 CH452 的稳定性,建议使用较粗的电源线和地 线,并靠近 CH452 在正负电源之间并联电源退耦电容。另外,如果由标准 MCS-51 单片机的 I/O 引脚 对 CH452 进行较远距离的驱动,通常要加强 MCS-51 单片机的 I/O 的上拉能力,以便在远距离传输时 保持较好的数字信号波形。另外,可以将 H3L2 及 ADDR 等输入引脚接到固定电平而不是悬空。 CH452 内置了上电复位功能,可以通过 RST 和 RST#引脚向单片机提供上电复位信号。在 CH452 正常工作期间,RSTI 引脚可以用于手工复位输入,当 RSTI 输入高电平时,CH452 芯片被复位,同时 RST 和 RST#也向外部电路输出复位信号。RSTI 引脚对噪声比较敏感,如果是将 RSTI 连接到仪器面板 作为手工复位输入,为了减少外界干扰,建议在 RSTI 引脚与地 GND 之间跨接一个电容,容量在 1000pF 至 5000pF 之间。如果没有用到 RSTI 引脚,可以将其接到 GND 保持固定的低电平。 8.9. 单片机接口程序 网站上提供了常用单片机的 C 语言和 ASM 汇编接口程序。