概述:CH451是 南京沁恒电子有限公司生产的芯片,它为双列直插DIP28与SOP28封装以及DIP24S封装。内置RC振荡电路,可以直接动态驱动8位数码管或者64位LED,具有BCD译码或不译码功能,可实现数据的左移、右移、左循环、右循环、各数字独立闪烁等控制功能。CH45l内置大电流驱动级,段电流不小于30 m A,字电流不小于160mA,并有16级亮度控制功能。该器件内置64键键盘控制器,可实现8×8矩阵键盘扫描,并内置去抖动电路,可提供按键中断与按键释放标志位等功能。CH451可选择简洁的l线串行接口或高速4线串行接口,且内置上电复位,可提供高电平有效复位和低电平有效复位两种输出,同时内置看门狗电路。

一、CH451引脚功能解释

二、CH451的操作命令
 CH451共有11条操作命令,每条操作命令均为12位,其中高4位为标识码,低8位为参数,x可为任意值(下同)。
   
    空操作(0000xxxxxxxxB)空操作命令对CH451不产生任何影响,该命令可以在多个CH451级联的应用中透过前级CH451向后级cH451发送操作命令,而不影响前级cH451的状态。例如,要将操作命令001000000001B发送给两级级联电路中的后级CH45l(后级CH451的DIN引脚连接到前级CH451的DOUT引脚),只要在该操作命令后添加空操作命令000000000000B再发送,那么,该操作命令将经过前级cH451到达后级cH451,而空操作命令留给了前级CH451。另外,为了在不影响CH45l的前提下变化DCLK以清除看门狗计时器,也可以发送空操作命令。在非级联的应用中,空操作命令可只发送高4位。
   
    芯片内部复位(001000000001B)内部复位命令可将CH451的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH45l均被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。
   
    字数据左移(001100000000B)字数据左移命令将CH45l的字数据左移一次,即从DIGO向DIG7移动一位,然后最右边的DIG0补进数据00H。例如,在数码管DIG7~I)IGO显示“87654321”时,执行字数据左移命令,显示变为“765432l”(不译码方式)或者“76543210”(BCD译码方式)。
   
    字数据右移(001100000010B)字数据右移命令将cH45l的字数据右移一次,即从DIG7向DIGO移动一位,然后最左边的DIG7补进数据00H。例如,在数码管DIG7~DIGO显示“8”7654321”时,执行字数据右移命令,显示变为“8765432”(不译码方式)或者“08765432”(BCD译码方式)。
   
    字数据左循环(001100000001B)字数据左循环命令将CH451的字数据左循环一次,即从DIGO向DIG7移动一位,然后最右边的DIGO补进原DIG7的数据。例如,在数码管DIG7-DIGO显示“8”765432l”时,执行字数据左循环命令,显示变为“76543218”。
   
    字数据右循环(001100000011B)字数据右循环命令将CH451的字数据右循环一次,即从DIG7向DIGO移动一位,然后最左边的DIG7补进原DIG0的数据。例如,在数码管DIG7-DIGO显示“8765432l”时,执行字数据右循环命令,显示变为“18765432"。
   
    设定系统参数(010000000WDOG][KEYB][DIsP]B)该命令用于设定cH451的系统级参数,如看门狗使能wDOG,键盘扫描使能KEYB,显示驱动使能DISP。各个参数均可通过1位数据来进行控制,将相应的数据位置为1可启用该功能,否则关闭该功能(默认值)。
   
    设定显示参数(0101[MoDE][LIMIT][INTENSITY]B)此命令用于设定CH45l的显示参数,如译码方式MODE(1位)、扫描极限LIMIT(3位)、显示亮度INTENSITY(4位)等。译码方式MODE为1时选择BcD译码方式,为0时选择不译码方式。CH451默认工作于不译码方式,此时8个数据寄存器中字节数据的位7-位0分别对应8个数码管的小数点和段G~段A,当数据位为1时,对应的数据段(或发光管)点亮;数据位为O时熄灭。cH451工作于BcD译码方式主要应用于数码管驱动,单片机只要给出二进制数的BcD码,便可由CH451将其译码,并直接驱动数码管以显示对应的字符。BcD译码方式是对数据寄存器中字节数据的位4~位0进行兼容BcD的译码,可用于控制段驱动引脚SEG6~SEGO的输出,它们对应于数码管的段G-段A,同时可用字节数据的位7控制段来驱动引脚SEG7的输出以对应数码管的小数点,字节数据的位6和位5不影响BcD译码的输出,它们可以是任意值。将位4~位0进行BCD译码可显示以下28个字符,其中00000B-0ll11B分别对应于“0~F”,10000B-11010B分别对应于“”空格、“+”、+或加号、“一”或减号、“=”等于号、“左方括号”、“右方括号”、“一”下划线、“H”、“L”、“P”、“.”小数点、其余值为空格。
   
    扫描极限uMIT控制位00lB~1l1B和000B(默认值)可分别设定扫描极限1~7和8。显示亮度INTENSITY控制位的0001B~1111B和0000B(默认值)则用于分别设定显示驱动占空比1/16~15/16和16/16,以实现16级显示亮度控制。
   
    设定闪烁控制(0110[D7s1][D6S][D5s][D4S][D3S][D2S][D1S][D0S]B)设定闪烁控制命令用于设定CH451的闪烁显示属性,其中D7s-130S分别对应于8个字驱动DIG7~DIGO。闪烁属性D7s-DOS分别通过l位数据控制,将相应的数据位置为1可使能闪烁显示,否则为正常显示,不闪烁(默认值)。
   
    加载字数据(1[DIG-ADDR]DIG—DATAlB)加载字数据命令用于将字节数据DIG_DATA(8位)写入DIG_ADDR(3位)指定的数据寄存器中。DIG_ADDR的000B-111B分别用于指定数据寄存器的地址O~7,并分别对应于DIGO-DIG7引脚驱动的8个数码管。DIG_DATA为待写入的字节数据。
   
    读取按键代码(0111xxxxxxxxB)读取按键代码命令用于获得cH451最近检测到的有效按键的按键代码。该命令是唯一的具有数据返回的命令,CH451通常从DOUT引脚输出按键代码,按键代码总是7位数据,最高位是状态码,位5~位O是扫描码。读取按键代码命令的位数据B7-B0可以是任意值,所以控制器可以将该操作命令缩短为4位数据Bl1~B8。例如,CH451检测到有效按键并中断时,如按键代码是5EH,则先向CH451发出读取按键代码命令011lB,然后再从DOUT获得按键代码5EH。

   
    CH451所提供的按键代码为7位,位2一位O是列扫描码,位5~位3是行扫描码,位6是状态码(键按下为1,键释放为O)。例如,连接DIG3与SEG4的键被按下时,按键代码为63H,键被释放后,按键代码是23H。单片机可以在任何时候读取按键代码,但一般在CH451检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的位6总是1。另外,如果需要了解按键何时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码的位6为0。表2是连接在DIG7-DIGO与SEG7-SEGO之间的键被按下时,CH451所提供的按键代码。这些按键代码具有一定的规律,如果需要键被释放时的按键代码,可将表2中的按键代码的位6置0,也可将表中的按键代码减去40H。应注意的是CH451不支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下。