数码管显示驱动和键盘扫描控制器CH451及其应用
摘要:介绍一种新型的键盘显示驱动芯片CH451的性能特点和工作原理,给出了CH451键盘显示驱动芯片与MCS-51单片机的接口方法与相应的软件驱动程序。
关键词:键盘显示控制;单片机;CH451
单片机在开发过程中,常常会因为资源不足而不得不大量扩展接口芯片以满足应用系统的需要,其中原因之一是人机界面中的键盘显示占用了系统太多资源,从而造成系统庞大,同时降低了系统的可靠性。在单片机应用系统中,键盘显示通常可采用以下几种方式:
(1)采用并行接口的键盘显示专用芯片8279。但8279所需外围元件多(显示驱动、译码等)、占用电路板面积大、综合成本高,在中小系统中常常大材小用;
(2)采用通用并行I/O芯片扩展(如用8155等),但此方案同样需要驱动显示,同时键盘显示扫描还需占用CPU大量时间;
(3)采用专用显示控制器,并用CPU的I/O引脚完成键盘输入(如MC14499、PS7219、MAX7219、ICM7218、TLC5921等,大多是串行接口并有显示驱动能力,I/O占用少)。这种接口方式省去了显示的扫描,而且电路大多也很简单,通常在系统需要的按键较少时比较适用;
(4)采用带I2C总线的键盘显示芯片(如显示用SAA1064,键盘用PCF8574),不过这种方式对于无I2C总线接口的CPU来说,编程显得有些不便;
(5)采用串行接口的键盘显示专用芯片,如BC7280/81、HD7279、CH451等。这类芯片占用CPU的资源少,传输速度较快,外围器件要求也较少,在中小系统中都可得到广泛的应用。BC7280/81与HD7279中已有介绍,本文着重介绍CH451的主要特性及接口应用方法。
1 CH451的功能与引脚介绍
CH451是一个整合了数码管显示驱动和键盘扫描控制以及μP监控的多功能外围芯片。CH451内置RC振荡电路,可以直接动态驱动8位数码管或者64位LED,具有BCD译码或不译码功能,可实现数据的左移、右移、左循环、右循环、各数字独立闪烁等控制功能。CH451内置大电流驱动级,段电流不小于30mA,字电流不小于160mA,并有16 级亮度控制功能;在键盘控制方面,该器件内置64键键盘控制器,可实现8×8矩阵键盘扫描,并内置去抖动电路,可提供按键中断与按键释放标志位等功能;在外部接口方面,CH451可选择简洁的1线串行接口或高速4线串行接口,且内置上电复位,可提供高电平有效复位和低电平有效复位两种输出,同时内置看门狗电路Watch-Dog。CH451提供有28引脚的DIP28与SOP28封装以及DIP24S封装形式,28脚与24脚在功能上稍有差别,它们的引脚定义见表1所列。
表1 CH451的引脚说明
28脚引脚号 | 24脚引脚号 | 引脚名称 | 类 型 | 引 脚 说 明 |
23 | 2 | VCC | 电源 | 正电源,持续电流不小于200mA |
9 | 15 | GND | 电源 | 接地,持续电流不小于200mA |
25 | 4 | LOAD | 输入 | 4线串行接口的数据加协,带上拉 |
26 | 5 | DIN | 输入 | 4线串行接口的数据输入,带上拉 |
27 | 6 | DCLK | 输入 | 串行接口听数据时钟,带上拉,可同时用于看门狗的清除输入 |
24 | 3 | DOUT | 输出 | 串行接口的数据输出键盘中断 |
22~15 | 1、24~18 | DIG7~SEG0 | 三态输出及输入 | 数码管的段驱动,高电平有效,键盘扫描输入,高电平有效,带下拉 |
1~8 | 7~14 | DIG7~DIG0 | 输出 | 数码管的字驱动,低电平有效,键盘扫描输入,高电平有效,带下拉 |
12 | 不支持 | RST | 输出 | 上电复位和看门狗复位,高电平有效 |
13 | 不支持 | RST | 输出 | 上电复位和看门狗复位,低电平有效 |
28 | 不支持 | RSTI | 输入 | 上电复位门限调整或手工复位输入 |
14 | 不支持 | ADJ | 输入 | 段电流上限调整,带强下拉 |
10 | 不支持 | CLK | 输入 | 外接阻容振荡 |
11 | 不支持 | CLKO | 输出 | CLK引脚时钟信号的二分频输出 |
17 | NC | 不连接,禁止使用 |
2 CH451的操作命令
CH451的操作命令均为12位,其中高4位为标识码,低8位为参数,各操作命令如下:
●空操作:0000xxxxxxxxB(x可为任意值,下同)
空操作命令对CH451不产生任何影响。该命令可以在多个CH451级联的应用中透过前级CH451向后级CH451发送操作命令而不影响前级CH451的状态。例如,要将操作命令001000000001B发送给两级级联电路中的后级CH451(后级CH451的DIN引脚连接到前级CH451的DOUT引脚),只要在该操作命令后添加空操作命令000000000000B再发送,那么,该操作命令将经过前级CH451到达后级CH451,而空操作命令留给了前级CH451。另外,为了在不影响CH451的前提下变化DCLK以清除看门狗计时器,也可以发送空操作命令。在非级联的应用中,空操作命令可只发送高4位。
● 芯片内部复位:001000000001B
内部复位命令可将CH451的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH451均被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。
● 字数据移位:0011000000[D1][D0]B
字数据移位命令共有4个:开环左移、右移,闭环左移、右移。D0为