新智能仪器讲义.docx

上传人:b****6 文档编号:6228248 上传时间:2023-01-04 格式:DOCX 页数:68 大小:884.75KB
下载 相关 举报
新智能仪器讲义.docx_第1页
第1页 / 共68页
新智能仪器讲义.docx_第2页
第2页 / 共68页
新智能仪器讲义.docx_第3页
第3页 / 共68页
新智能仪器讲义.docx_第4页
第4页 / 共68页
新智能仪器讲义.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

新智能仪器讲义.docx

《新智能仪器讲义.docx》由会员分享,可在线阅读,更多相关《新智能仪器讲义.docx(68页珍藏版)》请在冰豆网上搜索。

新智能仪器讲义.docx

新智能仪器讲义

第一章键盘和显示控制接口电路

单片机应用系统中为了控制系统的工作状态以及向系统中输入数据或者用户想知道当前的运行状态及某些过程值,常常设置键盘和显示器,以便实现简单的人——机对话,这就需要有键盘/显示器接口。

键盘/显示器接口电路可以由相应的控制电路实现,也可以由专用芯片来实现。

例如CH451就是一款基于串行总线的键盘显示控制芯片。

1.1CH451芯片简介

1.1.1CH451的引脚说明

CH451是一个整合了数码管显示驱动和键盘扫描控制以及μP监控的多功能外围芯片,通过3线或者可以级联的4线串行接口与单片机、DSP、微处理器等控制器交换数据。

CH451提供有28引脚的和24引脚的封装形式如图1.1,28脚与24脚在功能上稍有差别,它们的引脚定义见表1所列。

图1.1CH451管脚封装图

1.1.2CH451特点

(1)显示驱动

●内置大电流驱动级,段电流不小于30mA,字电流不小于160mA。

●动态显示扫描控制,直接驱动8位数码管或者64位发光管LED。

●可选数码管的段与数据位相对应的不译码方式或者BCD译码方式。

●字数据左移、右移、左循环、右循环。

●各数字独立闪烁控制。

●通过占空比设定提供16级亮度控制。

●支持段电流上限调整,可以省去所有限流电阻。

●扫描极限控制,支持1到8个数码管,只为有效数码管分配扫描时间。

(2)键盘控制

●内置64键键盘控制器,基于8×8矩阵键盘扫描。

●内置去抖动电路。

●键盘中断,低电平有效输出。

●提供按键释放标志位。

(3)外部接口

●可选高速的4线串行接口,支持芯片级联,时钟速度从0到10MHz。

●可选简洁的3线串行接口。

●内置RC阻容振荡电路,同时支持外接阻容振荡。

●内置上电复位,提供高电平有效复位输出和低电平有效复位输出。

●内置看门狗电路Watch-Dog。

表1.1CH451的引脚说明

1.2CH451显示驱动和键盘控制工作原理

CH451是一个多功能外围芯片,通过3线或者可以级联的4线串行接口与单片机交换数据。

它包含三个功能:

数码管显示驱动、键盘扫描控制、μP监控,三个功能之间相互独立,单片机可以通过操作命令分别启用、关闭、设定CH451的任何一个功能。

图1.2CH451外部接口方块图

1.2.1显示驱动

CH451对数码管和发光管采用动态扫描驱动,顺序为DIG0至DIG7,当其中一个引脚吸入电流时,其它引脚则不吸入电流。

CH451内部具有大电流驱动级,可以直接驱动0.5英寸至2英寸的共阴数码管,段驱动引脚SEG6~SEG0分别对应数码管的段G~段A,段驱动引脚SEG7对应数码管的小数点,字驱动引脚DIG7~DIG0分别连接8个数码管的阴极(见图1.5(b));CH451也可以连接8×8矩阵的发光二级管LED阵列或者64个独立发光管;CH451还可以通过外接反相驱动器支持共阳数码管,或者外接大功率管支持大尺寸的数码管。

CH451支持扫描极限控制,并且只为有效数码管分配扫描时间。

当扫描极限设定为1时,唯一的数码管DIG0将得到所有的动态驱动时间,从而等同于静态驱动;当扫描极限设定为8时,8个数码管DIG7~DIG0各得到1/8的动态驱动时间;当扫描极限设定为4时,4个数码管DIG3~DIG0各得到1/4的动态驱动时间,此时各数码管的平均驱动电流将比扫描极限为8时增加一倍,所以降低扫描极限可以提高数码管的显示亮度。

CH451将分配给每个数码管的显示驱动时间进一步细分为16等份,通过设定显示占空比支持16级亮度控制。

占空比的值从1/16至16/16,占空比越大,数码管的平均驱动电流越大,显示亮度也就越高,但占空比与显示亮度之间是非线性关系。

CH451内部具有8个8位的数据寄存器,用于保存8个字数据,分别对应于CH451所驱动的8个数码管或者8组每组8个的发光二极管。

CH451支持数据寄存器中的字数据左移、右移、左循环、右循环,并且支持各数码管的独立闪烁控制,在字数据左右移动或者左右循环移动的过程中,闪烁控制的属性不受影响。

例如,可以设定CH451的字驱动引脚DIG3和DIG6所对应的数码管闪烁,而其余数码管不闪烁,在字数据左移后,仍然是DIG3和DIG6所对应的数码管闪烁。

CH451默认情况下工作于不译码方式,此时8个数据寄存器中字数据的位7~位0分别对应8个数码管的小数点和段G~段A,对于发光二极管阵列,则每个字数据的数据位唯一地对应一个发光二级管。

当数据位为1时,对应的数据管的段或者发光管就会点亮;当数据位为0时,则对应的数据管的段或者发光管就会熄灭。

例如,第三个数据寄存器的位0为1,所以对应的第三个数码管的段A点亮;第五个数据寄存器的位7为0,所以对应的第五个数码管的小数点熄灭。

通过设定,CH451还可以工作于BCD译码方式,该方式主要应用于数码管驱动,单片机只要给出二进制数BCD码,由CH451将其译码后直接驱动数码管显示对应的字符,简化了单片机译码的工作。

表1.2CH451工作于译码方式下的字符显示

BCD译码方式是指对数据寄存器中字数据的位4~位0进行兼容BCD的译码,控制段驱动引脚SEG6~SEG0的输出,对应于数码管的段G~段A,同时用字数据的位7控制段驱动引脚SEG7的输出,对应于数码管的小数点,字数据的位6和位5不影响BCD译码的输出,可以是任意值。

数据寄存器中字数据的位4~位0进行BCD译码后,所对应的段G~段A以及数码管显示的字符见表1.2所列。

另外,在字数据的位4~位0为11010B时,即使字数据的位7是0,数码管仍然直接显示.小数点字符,其段G~段A输出0,而小数点输出1。

由表1.2可知,如果需要在数码管上显示字符0,只要置入数据0xx00000B或者00H;需要显示字符0.(0带小数点),只要置入数据1xx00000B或者80H;反之,数据1xx01000B或者88H对应于字符8.(8带小数点);数据0xx10011B或者13H对应于字符=;数据0xx11010B或者1AH对应于字符.(小数点);数据0xx10000B或者10H对应于字符(空格,数码管没有显示)。

1.2.2键盘扫描

CH451的键盘扫描功能支持8×8矩阵的64键键盘。

在键盘扫描期间,DIG7~DIG0引脚用于列扫描输出,SEG7~SEG0引脚都带有内部下拉,用于行扫描输入(见图1.5(c));当启用键盘扫描功能后,DOUT引脚的功能由串行接口的数据输出变为键盘中断以及数据输出(见图1.5(a))。

CH451定期在显示驱动扫描过程中插入键盘扫描。

在键盘扫描期间,DIG7~DIG0引脚按照DIG0至DIG7的顺序依次输出高电平,其余7个引脚输出低电平;SEG7~SEG0引脚的输出被禁止,当没有键被按下时,SEG7~SEG0都被下拉为低电平;当有键被按下时,例如连接DIG3与SEG4的键被按下,则当DIG3输出高电平时SEG4检测到高电平;为了防止因为按键抖动或者外界干扰而产生误码,CH451实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。

如果CH451检测到有效的按键,则记录下该按键代码,并通过DOUT引脚产生低电平有效的键盘中断,此时单片机可以通过串行接口读取按键代码;在没有检测到新的有效按键之前,CH451不再产生任何键盘中断。

CH451不支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下。

CH451所提供的按键代码为7位,位2~位0是列扫描码,位5~位3是行扫描码,位6是状态码(键按下为1,键释放为0)。

例如,连接DIG3与SEG4的键被按下,则按键代码是1100011B或者63H,键被释放后,按键代码是0100011B或者23H,其中,对应DIG3的列扫描码为011B,对应SEG4的行扫描码为100B。

单片机可以在任何时候读取按键代码,但一般在CH451检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的位6总是1,另外,如果需要了解按键何时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码的位6为0。

表1.3是连接在DIG7~DIG0与SEG7~SEG0之间的键被按下时,CH451所提供的按键代码。

这些按键代码具有一定的规律,如果需要键被释放时的按键代码,则将表中的按键代码的位6置0,或者将表中的按键代码减去40H。

表1.3CH451的键盘编码表

1.2.3μP监控

CH451提供的μP监控包括上电复位和看门狗Watch-Dog。

单片机、DSP、微处理器等控制器的复位输入引脚可以根据需要直接连接到CH451的RST引脚或者RST#引脚,当CH451通电或者看门狗溢出时,RST引脚输出高电平有效的复位脉冲信号,RST#引脚输出低电平有效的复位脉冲信号。

CH451的上电复位脉冲信号同时作用于CH451芯片的内部电路,而看门狗复位脉冲信号不会对CH451芯片的内部电路起作用。

CH451的上电复位是指上电过程(从断电状态变为正常供电状态的过程)中产生的复位脉冲。

CH451的上电复位支持短至数微秒的快速上电过程和长达数秒的慢速上电过程,以及正常供电状态下电压偶尔降低到复位门限以下的情况,但对于正常供电状态下电源电压的小幅度波动以及各种短于数微秒的尖锋干扰,CH451不会产生复位信号。

为了减少CH451驱动大电流而产生的电源干扰,在设计印制电路板PCB时,应该紧靠CH451芯片,在正负电源之间并联一组电源退耦电容,包括至少一个容量不小于0.1uF的独石或者瓷片电容和一个容量不小于100uF的电解电容。

CH451在启用看门狗功能后,只要清除输入引脚DCLK的电平没有变化,看门狗计时器就会计时,当计满溢出周期时,就会产生看门狗复位脉冲信号。

为了避免计时溢出而产生复位信号,控制器应该定期变化DCLK的电平,及时清除看门狗的计时。

CH451的看门狗计时可以被下述的任何一个操作清除:

上电复位、RSTI引脚的手工复位、DCLK从低电平变为高电平、DCLK从高电平变为低电平、DCLK从高电平变为低电平再立即恢复为高电平等。

启用看门狗功能后,当控制器的程序失控而使DCLK的电平长时间保持不变时,CH451就会输出看门狗复位脉冲信号,从而使控制器复位并重新进入正常工作状态。

1.3CH451串行接口工作原理

CH451的串行接口是由硬件实现的,控制器可以频繁地通过串行接口进行高速操作,而绝对不会降低CH451的工作效率。

1.3.1串行接口与工作时序

CH451具有硬件实现的高速4线串行接口,包括4根信号线:

串行数据输入线DIN、串行数据时钟线DCLK、串行数据加载线LOAD、串行数据输出线DOUT。

其中,DIN、DCLK、LOAD是带上拉的输入信号线,默认是高电平;DOUT在未启用键盘扫描功能时作为串行数据输出线,在启用键盘扫描功能后作为键盘中断和数据输出线,默认是高电平。

DIN用于提供串行数据,高电平表示位数据1,低电平表示位数据0,串行数据输入的顺序是低位在前,高位在后。

单片机可以在DCLK高电平期间变化DIN的电平,如果必要也可以在DCLK低电平期间变化DIN的电平。

另外,在上电复位后,CH451默认选择3线串行接口,所以单片机必须在DCLK输出串行时钟之前,先在DIN上输出一个低电平脉冲(由高电平变为低电平再恢复为高电平),通知CH451选择四线串行接口。

DCLK用于提供串行时钟,CH451在其上升沿从DIN输入数据,在其下降沿从DOUT输出数据。

CH451内部具有12位移位寄存器,在DCLK的上升沿,DIN上的位数据被移入位移寄存器的最高位寄存器,依次类推,原次低位数据移入最低位寄存器,在该上升沿后的第一个下降沿,原次低位数据从DOUT输出。

CH451允许DCLK引脚的串行时钟频率大于10MHz,从而可以实现高速串行输入输出。

LOAD用于加载串行数据,CH451在其上升沿加载位移寄存器中的12位数据,作为操作命令分析并处理。

也就是说,LOAD的上升沿是串行数据帧的帧完成标志,此时无论位移寄存器的12位数据是否有效,CH451都会将其当作操作命令。

单片机向CH451输出串行数据的过程是(不是唯一的过程,可以有很多变化):

(1)输出一位数据,即向DIN输出最低位数据BO,并向DCLK输出低电平脉冲(从高电平变为低电平再恢复为高电平),其中包括一个上升沿使CH451输入位数据;

(2)以同样的方式,输出位数据B1-B11;

(3)向LOAD输出低电平脉冲,其中包括一个上升沿使CH451加载串行数据。

在未启用键盘扫描功能时,DOUT用于输出串行数据,位移寄存器中的最低位数据总是在DCLK的下降沿出现在DOUT引脚。

图1.3表示在未启用键盘扫描功能时,单片机通过串行接口向CH451发送12位数据001000000001B的时序图,LOAD的低电平脉冲可以更宽,图中以虚线表示。

图1.3CH451输入数据时序图

当启用键盘扫描功能后,DOUT用于键盘中断和数据输出,默认是高电平。

当CH451检测到有效按键时,DOUT输出低电平有效的键盘中断:

单片机被中断后,发出读取按键代码命令,CH451在LOAD的上升沿后从DOUT输出7位按键代码的最高位;单片机继续输出串行时钟,在DCLK的每个下降沿,CH451依次从DOUT输出7位按键代码的剩余6位,顺序是高位在前,低位在后;7位按键代码输出完毕后,无论DCLK如何变化,CH451都将DOU恢复为默认的高电平。

单片机从CH451获取按键代码的过程是:

(1)输出一位数据,即向DIN输出读取按键代码命令的最低位数据B0,并向DCLK输出低电平脉冲;

(2)以同样的方式,输出读取按键代码命令的位数据B1-B11;

(3)向LOAD输出低电平脉冲,其中包括一个上升沿使CH451加载串行数据,CH451分析出是读取按键命令,立即在DOUT输出按键代码的最高位数K7;

(4)读取一位数据,即从DOUT输入按键代码的最高位数据K7,并向DCLK输出低电平脉冲;

(5)以同样的方式,输入按键代码的位数据K6~K0。

实际上,单片机读取按键代码命令只有位数据B8-B11是有效的,所以为了节约时间,单片机发出的读取按键代码命令只需要4位数据,而不必发送B0-B7。

例如,按键代码是63H,则上述过程可以简化为,先向CH451发出读取按键代码命令0111xxxxxxxxB,然后从DOUT接收按键代码1100011B。

图1.4是单片机向CH451发出命令并接收按键代码的时序图,MCU是指单片机的工作状态。

图中H`H`L`L`L`H`H`表示单片机接收了一组7位按键代码数据1100011B。

图1.4CH451输出按键代码的时序图

1.3.2CH451的操作命令

CH451的操作命令均为12位,表1.4中列出了CH451各个操作命令所对应的12位串行数据,其中高4位为标识码,低8位为参数,标注为X的位表示该位为任意值,标有名称的位表示该位在CH451芯片内部具有相应的寄存器,其数据根据操作命令的不同而变化。

表1.4CH451的各种操作命令

各操作命令如下:

●空操作:

0000xxxxxxxxB(x可为任意值,下同)

空操作命令对CH451不产生任何影响。

该命令可以在多个CH451级联的应用中透过前级CH451向后级CH451发送操作命令而不影响前级CH451的状态。

例如,要将操作命令001000000001B发送给两级级联电路中的后级CH451(后级CH451的DIN引脚连接到前级CH451的DOT引脚),只要在该操作命令后添加空操作命令000000000000B再发送,那么,该操作命令将经过前级CH451到达后级CH451,而空操作命令留给了前级CH451。

另外,为了在不影响CH451的前提下变化DCLK以清除看门狗计时器,也可以发送空操作命令。

在非级联的应用中,空操作命令可只发送高4位。

●芯片内部复位:

001000000001B

内部复位命令可将CH451的各个寄存器和各种参数复位到默认的状态。

芯片上电时,CH451均被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。

●字数据移位:

0011000000[D1][D0]B

字数据移位命令共有4个:

开环左移、右移,闭环左移(左循环)、右移(右循环)。

D0为0时为开环,为1时为闭环,D1为0时左移,为1时为右移。

开环左移时,DIG0引脚对应的单元补00H,此时不译码方式显示为空格,BCD译码方式时显示为0;开环右移时,DIG7引脚对应的单元补00H;而在闭环时DIG0与DIG7头尾相接,闭环移位。

例如:

在数码管DIG7~DIG0显示“87654321”时,执行字数据左移命令,显示变为“7654321”(不译码方式)或者“76543210”(BCD译码方式);执行字数据循环左移命令,显示变为“76543218”。

执行字数据右移命令,显示变为“8765432”(不译码方式)或者“08765432”(BCD译码方式);执行字数据循环右移命令,显示变为“18765432”。

●设定系统参数:

010000000[WDOG][KEYB][DISP]B

该命令用于设定CH451的系统级参数:

看门狗使能WDOG、键盘扫描使能KEYB、显示驱动使能DISP。

各个参数均可通过1位数据来进行控制,将相应的数据位置为1可启用该功能,否则关闭该功能(默认值)。

例如,命令数据010000000101B表示启用看门狗功能、关闭键盘扫描功能、启用显示扫描驱动的功能。

●设定显示参数:

0101[MODE][LIMIT][INTENSITY]B

此命令用于设定CH451的显示参数,如译码方式MODE(1位)、扫描极限LIMIT(3位)、显示亮度INTENSITY(4位)等。

译码方式MODET通过1位数据控制,置1时选择BCD译码方式,置0时选择不译码方式,CH451默认工作于不译码方式。

扫描极限LIMIT通过3位数据控制,数据001B~111B和000B(默认值)可分别设定扫描极限1~7和8。

显示亮度INTENSITY通过4位数据控制,控制位的0001B~1111B和0000B(默认值)则用于分别设定显示驱动占空比1/16~15/16和16/16,以实现16级显示亮度控制。

例如,命令数据010101110000B表示选择不译码方式、扫描极限为7、显示驱动占空比为16/16;命令数据010110001010B表示选择BCD译码方式、扫描极限为8、显示驱动占空比为10/16。

●设定闪烁控制:

0110[D7S][D6S][D5S][D4S][D3S][D2S][D1S][D0S]B

设定闪烁控制命令用于设定CH451的闪烁显示属性,其中D7S~D0S分别对应于8个字驱动DIG7~DIG0。

闪烁属性D7S~D0S分别通过1位数据控制,将相应的数据位置为1可使能闪烁显示,否则为正常显示,不闪烁(默认值)。

例如,命令数据011000100001B表示设定数码管DIG5和DIG0闪烁显示,其余数码管正常显示,不闪烁。

●加载字数据:

1[DIG_ADDR][DIG_DATA]B

加载字数据命令用于将字节数据DIG_DATA(8位)写入DIG_ADDR(3位)指定的数据寄存器中。

DIG_ADDR的000B~111B分别用于指定数据寄存器的地址0~7,并分别对应于DIG0~DIG7引脚驱动的8个数码管。

DIG_DATA为待写入的字节数据。

例如,命令数据100001111001B表示将字数据79H写入第1个数据寄存器,如果是不译码方式,则DIG0引脚驱动的数码管将显示E;命令数据110010001000B表示将字数据88H写入第5个数据寄存器,如果是BCD译码方式,则DIG4引脚驱动的数码管将显示8.。

●读取按键代码:

0111xxxxxxxxB

读取按键代码命令用于获得CH451最近检测到的有效按键的按键代码。

该命令是唯一的具有数据返回的命令,CH451通常从DOUT引脚输出按键代码,按键代码总是7位数据,最高位是状态码,位5~位0是扫描码。

读取按键代码命令的位数据B7~B0可以是任意值,所以控制器可以将该操作命令缩短为4位数据B11~B8。

例如,CH451检测到有效按键并中断时,如按键代码是5EH,则先向CH451发出读取按键代码命令0111B,然后再从DOUT获得按键代码5EH。

 

1.4CH451串行接口的应用

1.4.1CH451与单片机的接口电路

CH451通过串行接口与MCS-51单片机的连接如图1.5(a)所示。

(a)CH451与MCS-51单片机的接口电路

(b)CH451与数码管的接口电路

(c)CH451与键盘的接口电路

图1.5CH451的外部接线图

其中CH451向单片机提供复位信号REST和系统时钟信号SCLK,如果要求精确,单片机也可以用晶振获得系统时钟信号。

电容C2和C3布置于电源引脚附近,用于电源退耦,减少驱动大电流产生的干扰。

当不需要键盘功能时,可以省去KEY信号线,只使用DCLK、DIN、LOAD三根信号线。

当使用键盘功能时,CH451的DOUT引脚最好连接到单片机的中断输入引脚,这样可用中断方式响应按键。

如果连接到非中断输入引脚,则应该使用查询方式确定CH451是否检测到有效按键。

将P1.6与DIN连接可用于输入串行数据,串行数据输入的顺序是低位在前,高位在后。

另外,在上电复位后,CH451默认选择1线串行接口,如需选择4线串行接口,则应在DCLK输出串行时钟之前,先在DIN上输出一个低电平脉冲,以通知CH451为4线串行接口。

将P1.7与DCLK连接可提供串行时钟,以使CH451在其上升沿从DIN输入数据,并在其下降沿从DOUT输出数据。

LOAD用于加载串行数据,CH451一般在其上升沿加载移位寄存器中的12位数据作为操作命令进行分析并处理。

CH451的段驱动引脚串接的电阻R1(200Ω)用于限制和均衡段驱动电流。

在5V电源电压下,串接200Ω电阻通常对应13mA段电流。

CH451可以动态驱动8个共阴极数码管,所有数码管的相同段引脚(段A~段G以及小数点)并联后通过串接的限流电阻R1连接到CH451的段驱动引脚SEG0~SEG7,各数码管的阴极分别由CH451的DIG0~DIG7引脚进行驱动。

串接限流电阻R1的阻值越大则段驱动电流越小,数码管的显示亮度越低,R1的阻值一般在60Ω至400Ω之间。

在其他条件相同的情况下,应该优先选择较大的阻值。

CH451具有64键的键盘扫描功能,如果应用中只需要很少的按键,可以在8X8矩阵中任意去掉不用的按键。

为了防止键被按下后在SEG信号线与DIG信号线之间形成短路而影响数码管显示,一般应在CH451的DIG0~DIG7引脚与键盘矩阵之间串接限流电阻R2,其阻值可以从1KΩ至10KΩ。

1.4.2单片机接口程序

;****************************************************************

;需要主程序定义的参数

CH451_LOADBITP1.5;串行命令加载,上升沿激活

CH451_DINBITP1.6;串行数据输出,接CH451的数据输入

CH451_DCLKBITP1.7;串行数据时钟,上升沿激活

CH451_DOUTBITP3.2;INT0,键盘中断和键值数据输入,接CH451的数据输出

CH451_KEYEQU7FH;存放键盘中断中读取的键值

;*******************************************************************

CH451_INIT:

;初始化子

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1