第十章 人机交互接口 本章学习目标 掌握键盘接口技术...

159

Click here to load reader

Upload: sachi

Post on 02-Feb-2016

158 views

Category:

Documents


4 download

DESCRIPTION

第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片. 人机交互接口是指人与计算机之间建立联系、交换信息的输入 / 输出设备的接口,这些设备包括键盘、显示器、打印机、鼠标器等。 本章主要介绍键盘输入接口设计、显示原理及接口技术。. §10.1 键盘接口技术. 非编码键盘和编码键盘 非编码键盘 :直接利用口线连接按键开关或开关型传感器来实现,通过程序判断口线的电平就能够确定输入的键值。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 1/159

第十章 人机交互接口

本章学习目标掌握键盘接口技术掌握数码、液晶显示技术了解数码管显示驱动和键盘扫描控制专用芯片

Page 2: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 2/159

人机交互接口是指人与计算机之间建立联系、交换信息的输入 / 输出设备的接口,这些设备包括键盘、显示器、打印机、鼠标器等。

本章主要介绍键盘输入接口设计、显示原理及接口技术。

Page 3: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 3/159

非编码键盘和编码键盘

非编码键盘:直接利用口线连接按键开关或开关型传感器来实现,通过程序判断口线的电平就能够确定输入的键值。优缺点:设计简单,使用方便,且因为具有共用端,容易直接同开关电路或开关型传感器连接。但是这种方式的口线利用率较低,受单片机口线数量的限制,其键盘规模无法做大。

§10.1 键盘接口技术

Page 4: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 4/159

编码键盘:将口线与按键开关连接成矩阵电路,通过软件扫描、识别 I/O 口上的编码,按编码规则识别输入键值。优点:口线利用率高,键盘规模可以做得较大。

具体采用哪一种形式的键盘可以根据控制系统的规模及用途决定。

Page 5: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 5/159

一、简易键盘接口的实现简易键盘接口采用非编码形式,典型应用电路如图所示。 +5V

CD4068

1

R0 R1 R2 R3 R4 R5 R6 R7

S0 S1 S2 S3 S4 S5 S6 S7

INT0

2

3

4

5910

1112

P2.0

P2.1

P2.2

P2.3P2.4P2.5P2.6

P2.7

STC12C5A60S2

图 10-1 简易键盘接口电路

Page 6: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 6/159

键盘在使用中考虑到人员操作或机械特性在接触时产生的抖动问题,即按键开关在接通或断开瞬间并非完全可靠接触,而是存在一个抖动期,在此期间的电平变化波形如图所示。

tH tHtLtW1 tW2

图 10-2 按键闭合时的电平变化波形

Page 7: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 7/159

抖动期一般不超过 10 ms 。在口线电平抖动期间,单片机无法准确检测出口线电平的正确值,必须采取一定的措施进行鉴别。常用的方法是延时消抖法,例如遇到由高向低的电平转换后先不急于读取口线键值,而是在中断服务程序的开始执行一段 10 ~ 20 ms 的延时程序。若延时程序后再次判断口线仍为低电平则进入口线的键值读取程序,否则放弃键值读取操作。

Page 8: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 8/159

示例代码如下:ORG 0000HLJMP MAINORG 0003HLJMP   KRDORG 0100H

MAIN :MOV SP,#70H

… ; 其他初始化代码MAINLOOP: ; 主循环 …LJMP MAINLOOP

Page 9: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 9/159

KRD : LCALL   DEL20 ; 调 20 ms 延时子程序 MOV A , P2 ; 读 P2 口键值 JNB ACC.0 , KPR0 ; 判断 P2.0 ~ P2.7 是否有键按

下 JNB ACC.1 , KPR1 JNB ACC.2 , KPR2 JNB ACC.3 , KPR3 JNB ACC.4 , KPR4 JNB ACC.5 , KPR5 JNB ACC.6 , KPR6 JNB ACC.7 , KPR7 RETI

Page 10: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 10/159

KPR0 :         ;P2.0 口线按键处理程序MOV A , P2 ; 读 P2 口键值JNB ACC.0 , KPR0 ; 判断 P2.0 口线电平是否变高

KP01 : CALL DELAY20 ; 调 20 ms 延时子程序MOV A , P2 ; 读 P2 口键值JNB ACC.0 , KP01 ;证实 P2.0 口线一直保持低电平… ; 按键处理程序。由低电平变为高电平认为按键按下

RETIKPR1 : … ;P2.1 口线按键处理程序 RETIKPR7 : … ;P2.7 口线按键处理程序 RETIDEL20 :… ;20 ms 延时子程序 RETEND

Page 11: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 11/159

二、矩阵键盘接口的实现

简易键盘电路中每一个按键占用一根 I/O 口线,口线利用率较低。如果将口线按照行、列排成矩阵形式,则可在相同口线数量的条件下增大键盘的规模。

Page 12: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 12/159

例如,可以将 P2 口的 8 根 I/O 线排列成 4 × 4矩阵形式,连接 16只按键。如图所示。

R4 R5 R6 R7

R0

R1

R2

R3

+5V

2

3

4

5

1

INT0

P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.6

P2.7

STC12C5A60S2

CD4082

图 10-3 4 × 4 矩阵式键盘电路

Page 13: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 13/159

1 、电路结构及设计思路矩阵式键盘将 P2 口的 8 根 I/O 口线分成行、列线连接,图中 P2.0 ~ P2.3 为行线, P2.4 ~P2.7 为列线。 16只按键分别跨接在对应的行、列线节点上。如果单片机在行线对应的 I/O 口线上有数据输出,当有键按下时,行、列线短路,单片机在列线对应的 I/O 口线上的输入数据将由行线上的电平决定。

Page 14: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 14/159

行线特定的 4位数据输出和列线对应的 4位数据输入可以组成一个 8位的特征字,该特征字即为键值,代表了按下的键所在的位置。

Page 15: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 15/159

2 、键值产生的原理1)扫描法产生键值

以行线作为扫描输出,以列线作为接收输入,依次将各个行线置为低电平,并在列线上逐次接收数据。扫描完成后,如果发现接收到的某一列线有低电平,则表示该列线与行线连接的按键已经闭合。在接收到低电平的那次扫描中,行线数据与列线数据的组合便是所期望的键值,由该键值可确定闭合键在矩阵连接中的连接位置。

Page 16: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 16/159

2)线反转识别法产生键值先将行线全部置为低电平,列线全部置为高电平,从列线对应的 I/O 口线接收数据,如果发现有口线变低,则证明该列线与闭合的按键连接。将列线全部置为低电平,行线全部置为高电平,从行线对应的 I/O 口线接收数据,如果发现有口线变低,则证明该行线与闭合的按键连接。对上述两次操作的结果所获得的两个 8位数据进行综合分析,便可确定闭合的按键所在位置。

Page 17: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 17/159

3 、键盘识别原理在进行键盘扫描产生键值之前,为避免无键按下的空扫描,浪费 CPU 执行时间,应该首先进行一次键盘识别,具体方法有两种。

Page 18: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 18/159

1)硬件中断识别法将矩阵式键盘电路的所有列线连接至“与”门电路的输入端,“与”门电路的输出端与单片机外部中断连接。把全部行线置为低电平,全部列线置为高电平,当有键按下时列线上出现低电平,对应“与”门的输出电平出现由高向低的跳变,经引脚进入单片机产生中断,在中断服务程序中开始扫描键盘。

Page 19: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 19/159

2)软件查询识别法将全部行线置为低电平,全部列线置为高电平,定时从列线对应的 I/O 口线输入数据,如果判定接收的数据中有低电平存在,则说明有按键按下,开始执行键盘扫描程序。这种方法无需在矩阵键盘中连接“与”门电路,硬件电路简洁。

上述两种识别方法中,采用硬件中断识别方式可以随时响应键盘动作,具有较强的实时性,而采用软件查询方式则可以简化电路。具体实施应根据实际要求设计。

Page 20: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 20/159

4 、按键操作的抖动处理与简易键盘电路相同,矩阵键盘同样要考虑按键触点闭合或断开时存在的抖动期,一般在取回键值后进行 5 ~ 10 ms 的延时,判断原键值是否存在,以决定是否存在按键的误动作。

Page 21: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 21/159

5 、矩阵键盘处理程序下面设计可供调用的键盘扫描子程序。程序可以读入 4 × 4 键盘状态,然后将键值送往内部数据存储器的 RAM 30H ~ 33H 单元。具体方法是,利用单片机 P2 口的 P2.0 ~ P2.3口线轮流向行扫描线送低电平,将每次扫描中由 P2.4 ~ P2.7返回的数据与当时行扫描送出的数据组合后作为键值送内部 RAM 的 30H ~33H 单元,键值内容为 8位,低 4位中的“ 0”对应于行扫描输出线,高 4位中的“ 0”对应于闭合按键连接的列线。

Page 22: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 22/159

键盘扫描程序清单如下:

KEY-SCAN:MOVR0,#30H; 设置键值存储单元地址指针MOV A , #0FEH ;设置行扫描初始状态

SCAN :MOV P2 , A;输出至行扫描线MOV R1 , A ;保存行扫描线状态MOV A , P2 ;读回列线数据AND A , #0F0H ;保留读回数据的高 4位ORL A , R1 ;组合键值MOV @R0 , A ;键值送存储单元RET

Page 23: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 23/159

§10.2 显示技术一、数码 LED 显示技术1 、显示元件概述

主要显示元件: LED(发光二极管显示器)或 LCD(液晶显示器)。显示形式:笔画式和点阵式。笔画式显示元件大多为 LED 数码管,用于显示数字或简单字母信息,适合于规模较小的单片机系统。如果考虑到单片机系统功耗因素,也有笔画式LCD 数码管可供选用,但在控制和连接上要稍微复杂一些。

Page 24: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 24/159

显示大信息量或图形时,一般使用点阵式 LCD显示器。这种显示器结构比较复杂,需要考虑灰度调节、高压背光的配合,电路连接及程序操作都比较繁琐。使用点阵式 LCD 显示器最好采用内置控制器的模块形式,在这种情况下,单片机与点阵式 LCD 的接口实际上变成了单片机与单片机之间的数据通信。

本节内容主要介绍笔画式 LED 和点阵式LCD 的应用。

Page 25: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 25/159

2 、七段码 LED 显示器LED 数码管由 8只 LED发光二极管构成, 8只 LED发光二极管分别代表组成数码的笔画(称为段)和该位数码的小数点。由于显示的数字由 7 个显示段组合而成,所以也称为七段码。

Page 26: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 26/159

LED七段数码管显示器的结构如图所示。

在七段数码管显示器中为简化电路引出线,通常将 8只发光二极管的阴极或阳极连接在一起作为电路的公共端,由此便出现了共阴极或共阳极显示器的名称,实际使用时采用高电平或低电平驱动。

abcdefgdp

dp

g

a

b

c

d

e

f

abcdefgdp

(c)(b)(a)

图 10-4 LED 七段数码管显示器的结构

Page 27: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 27/159

注意 如图电路结构所示,对于七段数码管的驱动电流应加以限制,在保证不超过单片机或其他驱动芯片功耗的前提下维持正常的发光亮度。

Page 28: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 28/159

3 、七段码 LED 显示器的显示方式及接口七段码 LED 显示器可以采用静态显示和动态显示两种形式。静态显示是指在显示时段内对组成字型的发光二极管保持恒定的导通或截止;动态显示是指在显示时段内对组成字形的发光二极管实行间断或轮流(多字符显示)点亮。

其中前一种形式程序操作简单, CPU送出字形码后可以不再管理。而后一种显示形式则可最大限度地降低显示功耗,但是占用了 CPU 的执行程序时间。

Page 29: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 29/159

1)静态显示接口由单片机串行口与移位寄存器芯片 CD4094组成的共阴极七段码 LED静态显示接口电路如图所示。

Q1Q2Q3Q4Q5Q6Q7Q8END

CP STQS

CD4094

+5VQ1Q2Q3Q4Q5Q6Q7Q8

END

CP STQS

CD4094

+5VQ1Q2Q3Q4Q5Q6Q7Q8

END

CP STQS

CD4094

+5V

RXD

TXDP1.0

ST

C15F

2K

60

S2

图 10-5 LED 静态显示接口电路

Page 30: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 30/159

电路说明单片机工作在串口方式“ 0”状态,要显示的字形以七段码形式由单片机的 RXD 输出至 CD4094 的数据输入端 D ,每次输出 1 个字节,对应 1位显示数字。多位显示时需要输出多个字节的显示数据,同时也需要多个 CD4094级联,即前级 CD4094的数据输出端 QS 与后级 CD4094 的数据输入端 D 连接。

Page 31: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 31/159

单片机的 TXD 与每个 CD4094 的时钟输入端CP 连接,在串行数据输出过程中 TXD发出移位脉冲,驱动数据依次逐位在 CD4094 芯片中移动。当所有要显示的数据全部送出后,单片机可以将 P1.0 控制口线由低置高,通过 CD4094 的 ST引脚控制,使所有送入 CD4094 的数据由串行转为并行输出,在 LED 数码管上显示出对应位的数字内容。

Page 32: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 32/159

静态显示的主要特点:是占用 CPU处理时间少,显示稳定、亮度高,使用口线少。但在使用中应注意串口数据传送的格式及字符排位顺序。串行静态显示的位数主要由 TXD 、 P1.0 口线的带负载能力决定。

Page 33: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 33/159

实际使用中也可不用 P1.0 ,将 CD4094 的 ST端引脚始终接高电平,进入 CD4094 的串行数据会自动转为并行输出。这样做的缺点是在单片机送出显示数据的过程中 LED 数码管会显示乱码。但是数据传送过程很短,在不频繁更换显示数据的场合还是可以接受的。

Page 34: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 34/159

应用实践证明, CD4094 的输出与 LED 数码管之间可以不加限流电阻。当 CD4094 输出电流过大时会引起输出电压下降,从而自动限制了流过 LED 的电流。另外,如果 STC15F2K60S2 单片机的串行口 1在系统中另有用途,则可以其串口 2 输出数据。

Page 35: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 35/159

2)动态显示接口采用多位 LED 数码管显示时,可以逐位点亮数码管,虽然在显示过程中有些数码管有熄灭时间,但是利用人眼的视觉暂留效应和 LED发光二极管的余辉,只要点亮与熄灭时间分配适当,仍能够感觉到所有数码管始终处于显示状态。

Page 36: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 36/159

动态显示形式时 CPU需要经常执行相关程序进行显示刷新,这样可能占用较多的 CPU 执行时间,对需要快速运算或实时控制的用途会增加编程难度。但是,在实际编程中可以融入一些编程技巧减轻 CPU刷新显示的负担。例如,将逐位显示程序编入经常调用的延时子程序中,就可以在执行正常程序的过程中满足动态显示的需求。

Page 37: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 37/159

动态显示可以提高单片机显示口线的利用率,简化硬件电路的接线。 LED 动态显示接口的具体电路如图所示。

abcdefgdp

abcdefgdp

abcdefgdp

abcdefgdp

5.1kΩ 5.1kΩ 5.1kΩ 5.1kΩ

+5V

P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7

P2.0P2.1P2.2P2.3

1G 2G

74LS244

560Ω ×8

STC15F2K60S2

图 10-6 LED 动态显示接口电路

Page 38: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 38/159

设需要显示的 4位字形七段码存放在单片机内部 RAM 的 60H 开始的 4 个单元中,动态扫描显示子程序如下:

Page 39: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 39/159

SDIS : MOV R0 , #60H ;设显示数据存储区指针 MOV DPTR , # DSEG ;设置七段码表首地址 MOV R7 , #0FEH ;设置显示位指针,指向最右边一位 MOV A , R7 ;显示指针内容送累加器

LD0: MOV P2 , A   ;选通显示位RL    A   ;显示指向下一位MOV R7 , A  ;存显示指针内容MOV A , @ R0 ;取显示内容MOVC A , @A+DPTR ;查显示内容的字形码MOV P0 , A ;送出显示字形码CALL DEL1 ;调延时子程序INC R0 ;指向下一显示存储单元MOV A , R7 ;取显示指针内容

JB ACC.4 , LD0 ;未扫描完 4位循环RET

Page 40: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 40/159

; 下面是 0 ~ 9 , A ~ F 共阳极字形七段码DSEG : DB C0H , F9H , A4H , B0H , 99H , 92H, 82H , F8H80

H;DSEG2 : DB 90H , 88H , 83H, C6H , A1H , 86H , 8EH

请读者自行补充完整其中的延时子程序和对应

的 C语言程序。

Page 41: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 41/159

二、液晶显示技术液晶显示器件(简称 LCD 显示器)由于具有显示信息丰富、功耗低、体积小、无辐射等优点,得到了广泛的应用。LCD 显示器有笔画分段、分割显示、字符点阵显示和图形点阵 LCD 显示形式之分,对于比较丰富的显示内容通常采用图形点阵显示形式,但是这种显示形式的电路结构及控制方式比较复杂。

Page 42: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 42/159

为了便于使用, LCD 图形点阵显示器通常以LCM(液晶显示模块)形式出现,模块中封装了显示器、驱动电路、控制电路及背光调节电路等。本节以 128×64 点阵的汉字图形型液晶显示模块 OCMJ4X8C 为例介绍图形点阵 LCD 显示接口的应用。

Page 43: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 43/159

1 、 OCMJ4X8C 液晶显示模块概述OCMJ4X8C 的液晶显示屏为 128×64 点阵,可显示 4 行、每行 8 个汉字。 OCMJ4X8C 可实现汉字、 ASCII 码、点阵图形、自造字体的同屏显示。该模块具有 2MB 的中文字形 CGROM ,其中含有 8192 个 16×16 点阵中文字库;具有 16KB 的 16×8 点阵的 ASCII字符库;提供了一个 64×256 点阵的 GDRAM绘图区域;提供了 4组 16×16 点阵的造字空间。

Page 44: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 44/159

为了便于和多种微处理器、单片机接口,模块提供了 8位并行、 2 线串行、 3 线串行三种接口方式。OCMJ4X8C 的 2 线串行接口方式符合 SPI 时序标准,大大简化了液晶显示模块与单片机之间的接口设计。OCMJ4X8C 模块的工作电压为 4.5 ~ 5.5V ,具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。

Page 45: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 45/159

2 、模块引脚OCMJ4X8C 模块引脚及对应说明如表所示。

引脚 名称 方向 说明 引脚 名称 方向 说明1 VSS - GND( 0V) 11 DB4 I/O 数据 4

2 VDD - 逻辑电源 (+5v) 12 DB5 I/O 数据 5

3 VO - LCD 电源(悬空) 13 DB6 I/O 数据 6

4 RS(CS) H/L H: 数据 L: 指令码 14 DB7 I/O 数据 7

5 R/W(STD) H/L H: 读 L: 写15 PSB H/L

H: 并行模式L: 串行模式

6 E(SCLK) H,H/L 使能16 NC - 空脚

7 DB0 I/O 数据 0 17 /RST H/L 复位(低电平有效)8 DB1 I/O 数据 1 18 NC - 空脚

9 DB2 I/O 数据 2 19 LEDA -背光源正极( LED+5

V)

10 DB3 I/O 数据 3 20 LEDK -背光源负极( LED-O

V)

表 10-1 OCMJ4X8C 模块的引脚及对应的说明

Page 46: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 46/159

3 、信息传输与接口时序( 1)并行接口方式 当 PSB脚接高电位时,模块将进入并行传输模式,单片机与液晶模块通过 RS 、 RW 、 E 、D7~D0 完成信息传输。

Page 47: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 47/159

并行接口方式时,单片机写数据到模块的时序图如图所示。

( a )单片机写数据到模块时序图

Page 48: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 48/159

并行接口方式时,单片机从模块中读取数据的时序图如图所示。

( b )单片机从模块读取数据时序图

Page 49: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 49/159

( 2)串行接口方式当 PSB脚接低电位时,模块将进入串行模式。串行传输流程首先传输起始字节(五个连续的“ 1”),起始字节也称为同步字符串。在传输起始字节时,传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位( RW)及寄存器选择位( RS),最后第八的位则为“ 0” 。在接收到同步位及 RW 和 RS资料的起始字节后,每一个 8位的指令将被分为两个字节接收到:高 4位( D7~D4)的指令资料将会被放在第一个字节的 LSB部分,而低 4位( D3~D0)的指令资料则被放在第二个字节的 LSB部分,至于相关的另四位则都为 0 。

Page 50: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 50/159

串行接口方式时的时序图如图所示。

图 10-8 串行接口方式的时序图

Page 51: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 51/159

4 、编程指令集( 1)清除显示 ( 指令代码为 01H)

功能:将 DDRAM 填满“ 20H” (空格),把 DDRAM地址计数器调整为“ 00H” ,重新进入点设定将 I/D 设为“ 1” ,光标右移 AC加 1 。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 0 0 1

Page 52: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 52/159

( 2)地址归位 ( 指令代码为 02H)

功能:把 DDRAM地址计数器调整为“ 00H” ,光标回原点,该功能不影响显示 DDRAM 。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 0 1 X

Page 53: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 53/159

( 3)点设定 ( 指令代码为 07H/04H/05H/06H)

功能:设定光标移动方向并指定整体显示是否移动。

I/D=1光标右移, AC自动加 1; I/D=0光标左移, AC自动减 1 。SH=1 且 DDRAM 为写状态:整体显示移动,方向由 I/D 决定( I/D=1左移, I/D=0右移)。SH=0 或 DDRAM 为读状态:整体显示不移动。RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 1 I/D S

Page 54: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 54/159

( 4)显示状态 开 / 关 ( 指令代码为 08H/0C0H/0E0H/0F0H)

功能:D=1:整体显示 ON; D=0:整体显示 OFF 。C=1:光标显示 ON; C=0:光标显示 OFF 。B=1: 光标位置反白且闪烁; B=0:光标位置不反白闪烁。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 1 D C B

Page 55: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 55/159

( 5)光标或显示移位控制 ( 指令代码为 10H/14H/18H/1CH)

功能:10H/14H :光标左 /右移动, AC减 /加 1

18H/1CH :整体显示左 /右移动,光标跟随移动, AC 值不变。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 1 S/C R/L X X

Page 56: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 56/159

( 6)功能设定(指令代码为 36H/30H/34H)功能:

DL=1 : 8-BIT 控制接口;DL=0 : 4-BIT 控制接口。RE=1 :扩充指令集动作;RE=0 :基本指令集动作。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 1 DL X RE X X

Page 57: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 57/159

( 7)设定 CGRAM位址 ( 指令代码为 40H-7FH)

功能:设定 CGRAM 地址到地址计数器( AC),需确定扩充指令中 SR=0(卷动地址或RAM地址选择)。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0

Page 58: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 58/159

( 8)设定 DDRAM位址(指令代码为 80H-9FH) 功能:设定 DDRAM 地址到地址计数器( AC)

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0

Page 59: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 59/159

( 9)读取忙碌状态( BF)和地址功能:读取忙碌状态( BF)可以确认内部动作是否完成,同时可以读出地址计数器( AC)的值。

BF=1 时,表示内部忙碌中,此时不可写入指令 .

BF=0 才可写入新指令。RW RS D7 D6 D5 D4 D3 D2 D1 D0

1 0 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0

Page 60: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 60/159

( 10)写数据到 RAM

功能:写入数据到内部的 RAM( DDRAM/CGRAM/TRAM/GDRAM),每个 RAM 地址都要连续写入两个字节的数据。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 1 D7 D6 D5 D4 D3 D2 D1 D0

Page 61: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 61/159

( 11)读出 RAM 的值功能:从内部 RAM 读取数据( DDRAM/CGRAM/GDRAM),当设定地址指令后,若需读取数据时,需先执行一次空的读数据,才会读取到正确数据,第二次读取时则不需要,除非又使用设定地址指令。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

1 1 D7 D6 D5 D4 D3 D2 D1 D0

Page 62: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 62/159

( 12)待机模式 ( 指令代码为 01H)

功能:进入待命模式,执行其他命令都可终止待机模式。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 0 0 1

Page 63: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 63/159

( 13)卷动地址或 RAM 地址选择 ( 指令代码为 02H/03H)

功能:SR=1 :允许输入卷动地址;SR=0 :允许设定 CGRAM地址(基本指令)。 RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 0 H SR

Page 64: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 64/159

( 14)反白选择(指令代码为 04H-07H)功能:选择 4 行中的任一行作反白显示,并可决定反白与否。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 1 R1 R0

Page 65: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 65/159

( 15)睡眠模式(指令代码为 08H/0CH)功能:

SL=1 :脱离睡眠模式;SL=0 :进入睡眠模式。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 1 SL X X

Page 66: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 66/159

( 16)扩充功能设定(指令代码为 20H/24H/26H/30H/34H/36H)功能:

DL=1 : 8-BIT 控制接口; DL=0 : 4-BIT 控制接口。RE=1 :扩充指令集动作; RE=0 :基本指令集动作。G=1 :绘图显示 ON; G=0 :绘图显示 OFF 。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 1 DL X RE G L

Page 67: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 67/159

( 17 )设 定卷动地址(指令代 码 为 40H~7FH) 功能: SR=1 : AC5~AC0 为垂直卷动地址;SR=0 : AC3~AC0写 ICONRAM地址。RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0

Page 68: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 68/159

( 18)设定绘图 RAM位址(指令代码为 80H~FFH) 功能:设定 GDRAM地址到地址计数器( AC)。

RW RS D7 D6 D5 D4 D3 D2 D1 D0

0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0

Page 69: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 69/159

5 、显示步骤( 1)显示数据 RAM( DDRAM)

显示数据 RAM提供 64×2 个字节的空间,最多可以控制 4 行 16字( 64 个字)的中文字型显示。当写入显示数据 RAM 时,可以分别显示 CGROM 、 HCGROM 与 CGRAM 的字型。

Page 70: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 70/159

ST7920A 可以显示三种字型半宽的 HCGROM字型CGRAM字型中文 CGROM字型。

三种字型的选择,由在 DDRAM 中写入的编码选择,部

0000H~0006H 的编码中将选择 CGRAM 的自定字型02H ~ 7FH 的编码中将选择半宽英文数字的字型A1H 以上的编码将自动结合下一个字节,组成两个字节的中文字型编码: BIG5( A140H ~ D75FH)、 GB( A1A0H ~ F7FFH)

Page 71: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 71/159

1)显示半宽字型:将 8位二进制数据写入 DDRAM 中,范围为 02H~7FH 的编码。

2)显示 CGRAM字型:将 16位二进制数据写入 DDRAM 中,共有 0000H , 0002H , 0004H , 0006H四种编码。

3)显示中文字形:将 16位二进制数据写入 DDRAM 中 ,范围为 A140H ~ D75FH 的 编 码( BIG5 ), A1A0H ~ F7FFH 的编码( GB)。数据写入 DDRAM 时,连续写入两个字节,先写入高字节( D15 ~ D8),再写入低字节( D7 ~ D0)。

Page 72: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 72/159

( 2)绘图 RAM( GDRAM)绘图显示 RAM提供 64×32位的存储空间,最多可以控制 256×64 点的二维绘图缓冲空间在更改绘图 RAM内容时,由扩充指令设定绘图 GDRAM 地址,先设垂直地址,再设水平地址(连续写入两个字节的数据到绘图 RAM),地址计数器( AC)会自动加一。在写入绘图 RAM 期间,绘图显示必须关闭。

Page 73: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 73/159

写入绘图 RAM 的步骤如下:关闭绘图显示功能;先将垂直的坐标( Y)写入绘图 RAM地址;再将水平的坐标( X)写入绘图 RAM地址;将 D15~D8 写入 到 RAM 中(写入第一 个字节);将 D7~D0写入到 RAM 中(写入第二个字节);打开绘图显示功能。

Page 74: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 74/159

( 3)光标 /闪烁控制ST7920A提供硬件光标及闪烁控制电路,由地址计数器( address counter)的值来指定 DDRAM 中的光标或闪烁位置。汉字字符显示坐标在晶模块中的地址 80H ~ 9FH 。

Page 75: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 75/159

字符显示的 RAM地址与 32 个字符显示区域有着一一对应的关系,其对应关系如图所示。

X 坐标Line1 80H 81H 82H 83H 84H 85H 86H 87H Line2 90H 91H 92H 93H 94H 95H 96H 97H Line3 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH Line4 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH

图 10-9 字符显示的 RAM 地址与 32 个字符显示区域的对应关系

Page 76: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 76/159

使用 OCMJ4X8C 显示模块时应注意以下几点:①欲在某一个位置显示中文字符时,应先设定

显示字符位置,即先设定显示地址,再写入中文字符编码。

Page 77: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 77/159

②显示 ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加 1 指向下一个字符位置,否则,显示的字符中将会有一个空 ASCII字符位置。③当字符编码为 2字节时,应先写入高位字节,

再写入低位字节。

Page 78: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 78/159

④模块在接收指令前,处理器必须先确认模块内部处于非忙状态( BF=0),方可接受新的指令。如果在送出指令前不检查 BF 标志,则在送出本指令之前必须等待前一个指令执行完成。指令执行时间请参考指令表中的指令执行时间说明。“⑤ RE” 为基本指令集与扩充指令集的选择控制位。当改变“ RE” 后,以后的指令集将维持在最后的状态,除非再次改变“ RE”位,否则使用相同指令集时,无需每次均重设“ RE”位。

Page 79: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 79/159

【例 10-1】以 SPI 接口连接为例,说明 LCD 模块的使用方法。当液晶模块的 PSB引脚接低电平时,即进入串行接口模式。串行模式使用串行数据线 SID 和串行时钟线SCLK 来传送数据,即构成 2 线串行模式。OCMJ4X8C还允许同时接入多个液晶显示模块以完成多路信息显示功能。此时,要利用片选信号 CS(与 RS 共用引脚)构成 3 线串行接口方式。当 CS接高电平时,模块可正常接收并显示数据,否则,模块将被禁止。当系统仅使用一个液晶显示模块时, CS引脚可以接固定的高电平。

Page 80: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 80/159

电路连接如图所示。

1K

R1BLED Q18050 VSS

1

VDD2

RS(CS)4

SID5

SCLK6

PSB15

LEDA 19

LEDK20

OCMJ4X8C

SCLK

MOSI

VCC

图 10-10 OCMJ4X8C 液晶模块与单片机的连接电路图

Page 81: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 81/159

示例程序如下:#include"stc15.h"typedef unsigned char BYTE;//该声明以后就可以在程序中用 BYTE 代替 unsigned char 了sbit BLED=P2^2; //背光控制void spi_init(void); //SPI 初始化子程序void delay(unsigned int us10); // 延时子程序void sendspi(BYTE spidata, BYTE read, BYTE dat); // 显示数据发送子程序void lcd_init_usual(void); // 液晶初始化子程序void set_position(BYTE position); // 确定光标位置子程序void data_write(BYTE data1); // 显示单个字符子程序void chinese_series(BYTE *series); // 显示汉字字符串子程序

Page 82: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 82/159

void main (void) {

spi_init();lcd_init_usual();

BLED=0;set_position(0x82);chinese_series(" 单片机 ");data_write('0');data_write('1');while(1);

}

Page 83: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 83/159

void spi_init(void) //SPI 初始化子程序{

AUXR1=0x08; // 将 SPI 转移到 P4 口 SPI 初始化SPCTL=0xd3; //SPI 使能,主机模式, /SS 无关,先发高SPSTAT=0xC0; // 清传输完成标志和写冲突标志

}void delay(unsigned int us10) // 延时子程序{ while(us10--);}

Page 84: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 84/159

// 显示数据发送子程序void sendspi(BYTE spidata, BYTE read, BYTE dat){ BYTE cmd,dat1,dat2,spi1_status=0;

cmd=(0xf8|read|(dat<<1)); SPDAT=cmd;

while(spi1_status==0) // 等起始命令传输完毕{

spi1_status=SPSTAT;spi1_status=spi1_status&0x80;

} SPSTAT=0xC0; // 写 1 清 SPIF 标志位 spi1_status=0;

dat1=spidata&0xf0;SPDAT=dat1;

Page 85: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 85/159

while(spi1_status==0) // 等高 4位数据传输完毕{

spi1_status=SPSTAT;spi1_status=spi1_status&0x80;

} SPSTAT=0xC0; // 写 1 清 SPIF 标志位

spi1_status=0;dat2=(spidata<<4)&0xf0;SPDAT=dat2;while(spi1_status==0) // 等低 4位传输完毕{

spi1_status=SPSTAT;spi1_status=spi1_status&0x80;

} SPSTAT=0xC0; // 写 1 清 SPIF 标志位}

Page 86: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 86/159

void lcd_init_usual(void) // 液晶初始化子程序{

sendspi(0x30,0,0); //基本指令集sendspi(0x01,0,0); //清显示,地址复位delay(2000);

sendspi(0x0e,0,0); //整体显示,开游标,关位置sendspi(0x06,0,0); //游标方向及移位

}

Page 87: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 87/159

void set_position(BYTE position) // 确定光标位置子程序{

sendspi(position,0,0);}void data_write(BYTE data1) // 显示单个字符子程序{

sendspi(data1,0,1);} void chinese_series(BYTE *series) // 显示汉字字符串子程序{

for(series;*series!=0;series++)data_write(*series);

}

Page 88: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 88/159

三、数码管显示驱动和键盘扫描控制专用芯片在实际单片机应用系统开发过程中,为了节省宝贵的 I/O 口线资源,提高 CPU 的处理效率,在键盘和显示接口设计方面,常常使用专用的数码管显示驱动和键盘扫描专用芯片(简称键盘 / 显示扩展芯片)。常见的键盘 / 显示扩展芯片有 CH451 、 ZLG7289A 等。下面以 CH451 为例说明这类芯片的使用方法。

Page 89: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 89/159

1 、 CH451 简介CH451 是一个整合了数码管显示驱动、键盘扫描控制以及微处理器监控的多功能外围芯片。三个功能之间相互独立,单片机可以通过操作命令分别启用、关闭、设定 CH451 的任何一个功能。

Page 90: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 90/159

CH451内置 RC振荡电路,可以动态驱动 8位数码管或者 64只 LED发光管,具有 BCD译码、闪烁、移位等功能;还可以进行 64 键的键盘扫描;CH451 通过可以级联的串行接口与单片机等交换数据,其串行接口是由硬件实现的,单片机可以频繁地通过串行接口进行高速操作,而不会降低 CH451 的工作效率。

Page 91: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 91/159

2 、特点( 1)显示驱动

内置大电流驱动级,段电流不小于 25mA ,字电流不小于 150mA 。动态显示扫描控制,直接驱动 8 位数码管或者 64 只发光管 LED 。可选数码管的段与数据位相对应的不译码方式或者 BCD译码方式。数码管的字数据左移、右移、左循环、右循环。

Page 92: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 92/159

各数码管数字独立闪烁控制。任意段位寻址,独立控制各个 LED 或者各数码管的各个段的亮与灭。通过占空比设定提供 16级亮度控制。支持段电流上限调整,可以省去所有限流电阻。扫描极限控制,支持 1 到 8 个数码管,只为有效数码管分配扫描时间。

Page 93: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 93/159

( 2)键盘控制内置 64 键键盘控制器,基于 8×8 矩阵键盘扫描。内置按键状态输入的下拉电阻,内置去抖动电路。键盘中断,低电平有效输出。提供按键释放标志位,可供查询按键按下与释放。

Page 94: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 94/159

( 3)其它高速的 4 线串行接口,支持多片级联,时钟速度从 0 到10MHz 。串行接口中的 DIN 和 DCLK 信号线可以与其它接口电路共用,节约引脚。完全内置时钟振荡电路,不需要外接晶体或者阻容振荡。内置上电复位和看门狗Watch-Dog ,提供高电平有效和低电平有效复位输出。支持低功耗睡眠,节约电能,可以被按键唤醒或者被命令操作唤醒。支持 3V ~ 5V 电源电压。提供 SOP28 和 DIP24S两种无铅封装,兼容 RoHS 。

Page 95: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 95/159

3 、封装提供 SOP28 和 DIP24S 两种封装分别 如 图( a)和图( b)所示

CH451S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

28

27

26

25

24

23

22

21

20

1819

17

16

15

DI G7

DI G6

DI G5

DI G4

DI G3

DI G2

DI G0

CLK0

GND

GND

RST

RST#

ADJ SEG0

SEG1

SEG2

SEG3

SEG4

SEG5

SEG6

SEG7

VCC

DOUT

LOAD

DI N

DCLK

RSTI

CH451LDI G1

1

2

3

4

5

6

7

8

9

10

11

12

SEG7

VCC

DOUT

LOAD

DI N

DCLK

DI G7

DI G6

DI G5

DI G4

DI G3

DI G2 DI G1

DI G0

GND

RST

NC

SEG0

SEG1

SEG2

SEG3

SEG4

SEG5

SEG6

13

14

24

23

22

21

20

18

19

17

16

15

(a) (b)

图 10-11 CH451 的两种封装形式

Page 96: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 96/159

4 、引脚

SOP28 的引脚号 DIP24S 的引脚号 引脚名称 类型 引脚说明

23 2 VCC 电源 正电源端,持续电流不小于 200mA

9 15 GND 电源 公共接地端,持续电流不小于 200mA

25 4 LOAD 输入 串行接口的数据加载,内置上拉电阻

26 5 DIN 输入 串行接口的数据输入,内置上拉电阻

27 6 DCLK 输入 串行接口的数据时钟,内置上拉电阻同时用于看门狗的清除输入

24 3 DOUT 输出 串行接口的数据输出和键盘中断

22 ~ 15 1 、24 ~ 18

SEG7~ SEG0

三态输出及输入

数码管的段驱动,高电平有效,键盘扫描输入,高电平有效,内置下拉

1 ~ 8 7 ~ 14 DIG7 ~ DIG0 输出 数码管的字驱动,低电平有效,键盘扫描输出,高电平有效

12 16 RST 输出 上电复位和看门狗复位,高电平有效

13 不支持 RST# 输出 上电复位和看门狗复位,低电平有效

28 不支持 RST1 输入 外部手工复位输入,高电平有效,内置下拉电阻

14 不支持 ADJ 输入 段电流上限调整,内置强下拉电阻

11 不支持 CLKO 输出 内部系统时钟输出

10 不支持 GND 电源 建议接 GND

不支持 17 NC. 空脚 未使用,禁止连接

表 10-4 CH451两种封装形式的引脚及引脚说明

Page 97: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 97/159

5 、功能说明( 1)显示驱动

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

Page 98: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 98/159

CH451 内部具有大电流驱动级,可以直接驱动 0.5~2in 的共阴数码管,

段驱动引脚 SEG6 ~ SEG0分别对应数码管的段 G ~段 A

段驱动引脚 SEG7对应数码管的小数点字驱动引脚 DIG7 ~ DIG0分别连接 8 个数码管的阴极

Page 99: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 99/159

CH451也可以连接 8×8 矩阵的发光二级管 LED 阵列或者 64 个独立发光管;CH451 还可以通过外接反相驱动器支持共阳数码管,或者外接大功率管支持大尺寸的数码管。

Page 100: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 100/159

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

Page 101: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 101/159

CH451 将分配给每个数码管的显示驱动时间进一步细分为 16 等份,通过设定显示占空比支持 16级亮度控制。占空比的值从 1/16至 16/16 ,占空比越大,数码管的平均驱动电流越大,显示亮度也就越高,但占空比与显示亮度之间是非线性关系。

Page 102: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 102/159

CH451内部具有 8 个 8位的数据寄存器,用于保存 8 个字数据,分别对应于 CH451 所驱动的 8 个数码管或者 8组每组 8 个的发光二极管。CH451 支持数据寄存器中的字数据左移、右移、左循环、右循环,并且支持各数码管的独立闪烁控制,在字数据左右移动或者左右循环移动的过程中,闪烁控制的属性不会随数据移动。

Page 103: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 103/159

CH451默认情况下工作于不译码方式8 个数据寄存器中字数据的位 7 ~位 0分别对应8 个数码管的小数点和段 G ~段 A ,对于发光二极管阵列,则每个字数据的数据位唯一地对应一个发光二级管。当数据位为 1 时,对应的数码管的段或者发光管就会点亮;当数据位为 0 时,则对应的数码管的段或者发光管就会熄灭。例如,第三个数据寄存器的位 0 为1 ,所以对应的第三个数码管的段 A 点亮。

Page 104: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 104/159

通过设定, CH451 可以工作于 BCD译码方式该方式主要应用于数码管驱动,单片机只要给出二进制数 BCD 码,由 CH451 将其译码后直接驱动数码管显示对应的字符。BCD 译码方式是指对数据寄存器中字数据的位4 ~位 0 进行 BCD译码,控制段驱动引脚 SEG6 ~ SEG0 的输出,对应于数码管的段 G ~段 A ,同时用字数据的位 7 控制段驱动引脚 SEG7 的输出,对应于数码管的小数点,字数据的位 6 和位5 不影响 BCD译码。

Page 105: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 105/159

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

Page 106: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 106/159

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

Page 107: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 107/159

CH451 的段驱动引脚 SEG7 ~ SEG0 的内部电路简图如图所示。

SEGMENT-DATA

SEG

A

与非

按 键 编码

或非

50mA @ 2V25mA @ 3V. 1mA @ 4V

15mA

ADJ

BCD-DECODE

KEYB-SCAN

DISPLAY-ENABLE

100K

用电压控制电流

VCC

2×15mA

图 10-12 CH451 的段驱动引脚 SEG7 ~ SEG0 的内部电路简图

Page 108: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 108/159

CH451 的字驱动引脚 DIG7 ~ DIG0 的内部电路简图如图所示。

DIG

KEYB-SCAN

DISP-SCAN

DISP-ENABLE

INTENSITY

SPARKLING

VCC

5mA

8×20mA

图 10-13 CH451 的字驱动引脚 DIG7 ~ DIG0 的内部电路简图

Page 109: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 109/159

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

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

Page 110: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 110/159

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

在键盘扫描期间, DIG7 ~ DIG0引脚按照 DIG0至 DIG7 的顺序依次输出高电平,其余 7 个引脚输出低电平;SEG7 ~ SEG0引脚的输出被禁止,当没有键被按下时, SEG7 ~ SEG0都被下拉为低电平;当有键被按下时,例如连接 DIG3 与 SEG4 的键被按下,则当 DIG3 输出高电平时 SEG4 检测到高电平;

Page 111: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 111/159

为了防止因为按键抖动或者外界扰而产生误码,CH451 实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。如果 CH451 检测到有效的按键,则记录下该按键代码,并通过 DOUT引脚产生低电平有效的键盘中断,此时单片机可以通过串行接口读取按键代码;在没有检测到新的有效按键之前, CH451 不再产生任何键盘中断。 CH451 不支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下;如果多个键同时按下,那么按键代码较小的按键优先。

Page 112: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 112/159

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

Page 113: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 113/159

例如,连接 DIG3 与 SEG4 的键被按下,则按键代码是 1100011B 或者 63H ,键被释放后,按键代码通常是 0100011B 或者 23H ,其中,对应 DIG3 的列扫描码为 011B ,对应 SEG4的行扫描码为 100B 。单片机可以在任何时候读取按键代码,但一般在 CH451 检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的位 6总是 1 ,另外,如果需要了解按键何时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码的位 6 为 0 。

Page 114: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 114/159

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

按键代码 DIG7 DIG6 DIG5 DIG4 DIG3 DIG2 DIG1 DIG0

SEG0 47H 46H 45H 44H 43H 42H 41H 40H

SEG1 4FH 4EH 4DH 4CH 4BH 4AH 49H 48H

SEG2 57H 56H 55H 54H 53H 52H 51H 50H

SEG3 5FH 5EH 5DH 5CH 5BH 5AH 59H 58H

SEG4 67H 66H 65H 64H 63H 62H 61H 60H

SEG5 6FH 6EH 6DH 6CH 6BH 6AH 69H 68H

SEG6 77H 76H 75H 74H 73H 72H 71H 70H

SEG7 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H

表 10-6 按键与按键代码的对应关系

Page 115: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 115/159

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

按键代码 DIG7 DIG6 DIG5 DIG4 DIG3 DIG2 DIG1 DIG0

SEG0 47H 46H 45H 44H 43H 42H 41H 40H

SEG1 4FH 4EH 4DH 4CH 4BH 4AH 49H 48H

SEG2 57H 56H 55H 54H 53H 52H 51H 50H

SEG3 5FH 5EH 5DH 5CH 5BH 5AH 59H 58H

SEG4 67H 66H 65H 64H 63H 62H 61H 60H

SEG5 6FH 6EH 6DH 6CH 6BH 6AH 69H 68H

SEG6 77H 76H 75H 74H 73H 72H 71H 70H

SEG7 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H

表 10-6 按键与按键代码的对应关系

Page 116: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 116/159

( 3) μP监控CH451提供的 μP监控包括上电复位和看门狗Watch-Dog 。单片机或者微处理器的复位输入引脚可以根据需要直接连接到 CH451 的 RST引脚或者 RST#引脚,当 CH451 通电或者看门狗溢出时, RST引脚输出高电平有效的复位脉冲信号, RST#引脚输出低电平有效的复位脉冲信号。CH451 的上电复位脉冲信号同时作用于 CH451 芯片的内部电路,而看门狗复位脉冲信号不会对 CH451 芯片的内部电路起作用。

Page 117: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 117/159

CH451 的上电复位是指上电过程(从断电状态变为正常供电状态的过程)中产生的复位脉冲。为了减少 CH451 驱动大电流而产生的电源干扰,在设计印制电路板 PCB 时,应在紧靠 CH451 芯片的正负电源之间并联一组电源退耦电容,包括至少一个容量不小于 0.1uF 的独石或者瓷片电容和一个容量不小于 100uF 的电解电容。

Page 118: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 118/159

CH451 在启用看门狗功能后,只要清除输入引脚 DCLK 的电平没有变化,看门狗计时器就会计时,当计满溢出周期时,就会产生看门狗复位脉冲信号。为了避免计时溢出而产生复位信号,单片机应该定期变化 DCLK 的电平,及时清除看门狗的计时。

Page 119: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 119/159

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

上电复位RSTI引脚的手工复位DCLK从低变为高DCLK从高变为低等

启用看门狗功能后,当单片机程序失控而使DCLK 的电平长时间保持不变时, CH451 就会输出看门狗复位脉冲信号。

Page 120: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 120/159

( 4)串行接口CH451 具有硬件实现的高速 4 线串行接口,包括 4 个信号线:串行数据输入线 DIN

串行数据时钟线 DCLK

串行数据加载线 LOAD

串行数据输出线 DOUT

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

Page 121: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 121/159

CH451 的串行接口框图如图所示。

DCLK

DOUT

LOAD

CK

DINDCK

寄存器 Q

DCK

寄存器 Q

DCK

寄存器 Q

DCK

寄存器 Q

DCK

寄存器 Q

D10

D11

D9

D0

命令译码D11-D0Q

0

1S选择器 KEYB-DATA

KEYB-INTERKEYB-ENABLE图 10-14 CH451 的串行接口框图

Page 122: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 122/159

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

输出一位数据,即向 DIN 输出最低位数据 D0 ,并向 DCLK 输出低电平脉冲(从高电平变为低电平再恢复为高电平),其中包括一个上升沿使 CH451 输入位数据;以同样的方式,输出位数据 D1 ~ D11;向 LOAD 输出低电平脉冲,其中包括一个上升沿使 CH451加载串行数据。

Page 123: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 123/159

未启用键盘扫描功能时,单片机通过串行接口向 CH451发送 12位数据的波形示意图如图所示。

LOAD

DOUT

D0D1 D3D2 D4 D5 D6 D7

D1

D8 D10 D11

D0 D2 D3 D4 D5 D6 D7 D9 D10

D9

D8

DIN

DCLK

1 0 0 0 0 0 0 0 0 1 0 0

图 10-15 未启用键盘扫描功能时 CH451 发送 12 位数据的波形示意图

Page 124: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 124/159

单片机从 CH451获得按键代码的过程如图所示。 MCU 是指单片机的工作状态。

DIN

LOAD

DCLK

DOUT

MCU 中断 读取按键代码命令 输入按键代码

D8 D9 D10D11

1 1 1 0

K6 K5K4 K3 K2 K1 K0

H H L L L H HL

图 10-16 单片机从 CH451 获得按键代码的过程

Page 125: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 125/159

具体过程是:①输出一位数据,即向 DIN 输出读取按键代码命令的最低位数据 D0 ,并向 DCLK 输出低电平脉冲;②以同样的方式,输出读取按键代码命令的位

数据 D1 ~ D11;

Page 126: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 126/159

③向 LOAD 输出低电平脉冲,其中包括一个上升沿使 CH451加载串行数据, CH451分析出是读取按键代码命令,立即在 DOUT 输出按键代码的最高位数据 K6;④读取一位数据,即从 DOUT 输入按键代码的最高位数据 K6 ,并向 DCLK 输出低电平脉冲;⑤以同样的方式,输入按键代码的位数据 K5 ~

K0 。

Page 127: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 127/159

实际上, CH451 的读取按键代码命令只有位数据 D8 ~ D11 是有效的,所以单片机不必发出读取按键代码命令的 D0 ~ D7 。例如,按键代码是 63H ,则上述过程的简化描述是 1^1^1^0^↑H^H^L^L^L^H^H^ , 即先向 CH451发出读取按键代码命令 0111xxxxxxxxB ,然后从 DOUT 接收按键代码 1100011B 。

Page 128: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 128/159

( 5)操作命令CH451 的操作命令均为 12位, CH451 的各个操作命令所对应的 12位串行数据如表所示。

表 10-7 CH451 的各个操作命令所对应的 12 位串行数据

Page 129: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 129/159

1)空操作: 0000xxxxxxxxB

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

Page 130: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 130/159

例如,要将操作命令 001000000001B 发送给两级级联电路中的后级 CH451(后级 CH451 的 DIN 连接前级 CH451 的 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^↑ ,那么,该操作命令将经过前级 CH451 到达后级 CH451 ,而空操作命令留给了前级 CH451 。另外,为了在不影响 CH451 的前提下变化 DCLK 以清除看门狗计时,也可以发送空操作命令,在非级联的应用中,空操作命令可以只发送有效数据 D8 ~ D11 ,简化描述是 0^0^0^0^↑ 。

Page 131: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 131/159

2)段位寻址清 0 : 000110[BIT_ADDR]B

段位寻址清 0 命令用于将指定地址的发光管(或者数码管的指定段或者小数点)熄灭,该命令一次只能熄灭指定地址的一个发光管,并且完全不影响其它发光管的状态。

Page 132: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 132/159

段位寻址的编址顺序(矩阵编址表)如表所示。

例如,命令数据 000110111010B 表示将编址为 3AH 的发光管熄灭。

矩阵编址

DIG7 DIG6 DIG5 DIG4 DIG3 DIG2 DIG1 DIG0

SEG0 38H 30H 28H 20H 18H 10H 08H 00H

SEG1 39H 31H 29H 21H 19H 11H 09H 01H

SEG2 3AH 32H 2AH 22H 1AH 12H 0AH 02H

SEG3 3BH 33H 2BH 23H 1BH 13H 0BH 03H

SEG4 3CH 34H 2CH 24H 1CH 14H 0CH 04H

SEG5 3DH 35H 2DH 25H 1DH 15H 0DH 05H

SEG6 3EH 36H 2EH 26H 1EH 16H 0EH 06H

SEG7 3FH 37H 2FH 27H 1FH 17H 0FH 07H

表 10-8 矩阵编址表

Page 133: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 133/159

3)段位寻址置 1 : 000111[BIT_ADDR]B

段位寻址置 1 命令用于将指定地址的发光管(或者数码管的指定段或者小数点)点亮,该命令一次只能点亮指定地址的一个发光管,并且完全不影响其它发光管的状态。段位寻址的编址顺序请参考矩阵编址表。例如,命令数 000111000110B 表示将编址为 06H 的发光管点亮。

Page 134: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 134/159

4)芯片内部复位: 001000000001B

内部复位命令将 CH451 的各个寄存器和各种参数复位到默认的状态。芯片上电时, CH451总是被复位,此时各个寄存器均复位为 0 ,各种参数均恢复为默认值。

Page 135: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 135/159

5)进入睡眠状态: 001000000010B

进入睡眠状态命令使 CH451 暂停显示驱动和键盘扫描,并进入低功耗睡眠状态,从而可以节约电能。执行该命令之前,应该先用设定系统参数命令关闭 CH451 的显示驱动使能和按键扫描使能,并且执行该命令本身必须在 20uS 之内完成,发出命令后 DCLK 引脚必须保持不变。

Page 136: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 136/159

处于低功耗睡眠状态中的 CH451 可以被下述两种事件中的任何一种唤醒,第一种事件是检测到 SEG3 ~ SEG0 上的按键,有效按键代码是 40H 到 5FH;第二种事件是接收到单片机发出的操作命令(通常是空操作命令),或者检测到 DCLK 引脚的状态变化。

睡眠和唤醒操作本身不会影 CH451 的工作状态。

Page 137: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 137/159

6)字数据左移: 001100000000B

字数据左移命令将 CH451 的字数据左移一次,即从 DIG0 向 DIG7 移动一位,然后最右边的 DIG0补进数据 00H 。例如,在数码管 DIG7 ~ DIG0 显示“ 87654321” 时,执行字数据左移命令,显示变为“ 7654321 ” (不译码 方 式)或者“ 76543210”( BCD 译码方式)。

Page 138: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 138/159

7)字数据右移: 001100000010B

字数据右移命令将 CH451 的字数据右移一次,即从 DIG7 向 DIG0 移动一位,然后最左边的 DIG7补进数据 00H 。例如,在数码管 DIG7 ~ DIG0 显示“ 87654321” 时,执行字数据右移命令,显示变为“ 8765432”(不译码方式)或者“ 08765432”( BCD 译码方式)。

Page 139: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 139/159

8)字数据左循环: 001100000001B

字数据左循环命令将 CH451 的字数据左循环一次,即从 DIG0 向 DIG7 移动一位,然后最右边的 DIG0 补进原 DIG7 的数据。例如,在数码管 DIG7 ~ DIG0 显示“ 87654321” 时,执行字数据左循环命令,显示变为“ 76543218” 。

Page 140: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 140/159

9)字数据右循环: 001100000011B

字数据右循环命令将 CH451 的字数据右循环一次,即从 DIG7 向 DIG0 移动一位,然后最左边的 DIG7 补进原 DIG0 的数据。例如,在数码管 DIG7 ~ DIG0 显示“ 87654321” 时,执行字数据右循环命令,显示变为“ 18765432” 。

Page 141: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 141/159

10)自定义 BCD 码: 00111[SELF_BCD]B

自定义 BCD 码命令用于自行定义常规 BCD译码中未实现的特殊字符, CH451支持一个自定义 BCD 码,其 BCD 值为 1EH ,显示编码由该命令指定,编码共 7 位,分别对应于数码管的 7 个段,而小数点由 BCD 值的最高位单独控制。

Page 142: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 142/159

例如,命令数据 001110111110B 表示自定义BCD字符 U(对应的段显示数据为 3EH)在 BCD译码方式下当单片机要求显示 BCD 值 1EH 时, CH451会在对应的数码管中显示字符 U

当单片机要求显示 BCD 值 9EH 时, CH451 会在对应的数码管中显示字符 U.(含小数点)。

Page 143: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 143/159

11)设定系统参数: 0100000[CKHF]0[WDOG][KEYB][DISP]B设定系统参数命令用于设定 CH451 的系统级参数 : 输 出 高频时钟 CKHF (选择快速闪烁),看门狗使能 WDOG ,键盘扫描使能 KEYB ,显示驱动使能 DISP 。各个参数均通过1位数据控制,将相应的数据位置为 1 则启用该功能,否则关闭该功能(默认值)。例如,命令数据 010000000011B 表示选择低频时钟、关闭看门狗的功能、启用键盘扫描的功能、启用显示扫描驱动的功能。

Page 144: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 144/159

12)设定显示参数: 0101[MODE][LIMIT][INTENSITY]B

设定显示参数命令用于设定 CH451 的显示参数:译码方式 MODE ,扫描极限 LIMIT ,显示亮度 INTENSITY 。

Page 145: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 145/159

译码方式 MODE 通过 1 位数据控制,置 1 时选择 BCD 译码方式,置 0 时选择不译码方式(默认值)。扫描极限 LIMIT 通过 3 位数据控制,数据 001B ~ 111B 和 000B分别设定扫描极限为 1 ~7 和 8(默认值)。显示亮度 INTENSITY 通过 4位数据控制,数据 0001B ~ 1111B 和 0000B 分别设定显示驱动占空比为 1/16 ~ 15/16 和 16/16(默认值)。

Page 146: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 146/159

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

Page 147: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 147/159

13)设定闪烁控制: 0110[D7S][D6S][D5S][D4S][D3S][D2S][D1S][D0S]B

设定闪烁控制命令用于设定 CH451 的闪烁显示属性: D7S ~ D0S 分别对应于 8 个字驱动DIG7 ~ DIG0 。闪烁属性 D7S ~ D0S 分别通过 1 位数据控制,将相应的数据位置为 1 则使能闪烁显示,否则为正常显示,不闪烁(默认值)。

Page 148: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 148/159

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

Page 149: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 149/159

14)加载字数据: 1[DIG_ADDR][DIG_DATA]B

加载字数据命令用于将字数据 DIG_DATA 写入 DIG_ADDR 指定地址的数据寄存器中。 DIG_ADDR 通过 3 位数据指定数据寄存器的地址,数据 000B ~ 111B 分别指定地址 0 ~7 ,对应于 DIG0 ~ DIG7 引脚驱动的 8 个数码管。 DIG_DATA 是 8 位的字数据。

Page 150: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 150/159

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

Page 151: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 151/159

15)读取按键代码: 0111xxxxxxxxB

读取按键代码命令用于获得 CH451 最近检测到的有效按键的按键代码。该命令是唯一的具有数据返回的命令, CH451从 DOUT引脚输出按键代码,按键代码总是 7 位数据,最高位是状态码,位 5 ~位 0 是扫描码。读取按键代码命令的位数据 D0 ~ D7 可以是任意值,所以单片机可以将该操作命令缩短为 4 位数据 D8 ~ D11 。

Page 152: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 152/159

例如, CH451 检测到有效按键并中断,按键代码是 5EH ,简化描述 1^1^1^0^↑H^L^H^H^H^H^L^表示先向 CH451 发出读取按键代码命令 0111xxxxxxxxB ,然后从 DOUT 获得按键代码 5EH 。

Page 153: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 153/159

( 6)应用1)单片机与 CH451 的连接

CH451 通过串行接口与单片机相连接的电路。15

20

21

16

22

1

7

6

5

4

2

8

17

18

19

3

SEG1

SEG0

SEG7

SEG3

SEG2

SEG4

SEG5

SEG6

DIG0

DIG1

DIG2

DIG3

DIG4

DIG5

DIG6

DIG7

U2 R1

8

2

7

911

12

13

14

15

16

1

3

4

5

10

19

18

20

176

27

9

10

24

11

28

13

12

26

25

14

U1

STC15F2K60S2

VCC

C1

0.1u 0.1u

C3 CH451-28200R×8

SEG1

SEG0

SEG7

SEG3

SEG2

SEG4

SEG5

SEG6

DIG0

DIG1

DIG2

DIG3

DIG4

DIG5

DIG6

DIG7

VCC

GND

GND

RSTI

RST#

RST

CLK0

DCLK

LOAD

DOUT

ADJ

RXD

TXD

VCC

INT1

GND

T0

T1

P3.7

P10

P11

P12

P13

P14

RESET

X2

X1

P17

P16

P15

INT0

C2

470u

RESET

SCLK

DCLK

DIN

LOAD

KEY

DIN 动了

图 10-17 CH451 通过串行接口与单片机相连接的电路

Page 154: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 154/159

2 )驱 动 数 码管CH451

驱动数码管的电路如图所示。

SEG4 1 1

SEG0 7 7SEG1 6 6SEG2  4 4SEG3 2 2

SEG5 9 9

SEG6 1 0 10SEG7 5 5

BA

C

DEF

G

.

N1

SEG4 1 1

SEG0 7 7

SEG1 6 6SEG2 4 4

SEG3  2 2

SEG5 9 9

SEG6 1 0 10SEG7 5 5

BA

C

DEF

G

.

N2

SEG4 1 1

SEG0 7 7SEG1 6 6SEG2 4 4SEG3 2 2

SEG5 9 9

SEG6 1 0 10SEG7 5 5

BA

C

DEF

G

.

N3

SEG4 1 1

SEG0 7 7SEG1 6 6SEG2 4 4SEG3 2 2

SEG5 9 9

SEG6 1 0 10SEG7 5 5

BA

C

DEF

G

.

N4

DIG7

DIG6

DIG5

DIG4

m m m m

SEG4 1 1

SEG0 7 7SEG1 6 6SEG2 4 4SEG3 2 2

SEG5 9 9

SEG6 1 0 10SEG7 5 5

BA

C

DEF

G

.

N5

SEG4 1 1

SEG0 7 7

SEG1 6 6SEG2 4 4

SEG3 2 2

SEG5 9 9

SEG6 1 0 10SEG7 5 5

BA

C

DEF

G

.

N6

SEG4 1 1

SEG0 7 7SEG1 6 6SEG2 4 4SEG3 2 2

SEG5 9 9

SEG6 1 0 10SEG7 5 5

BA

C

DEF

G

.

N7

SEG4 1 1

SEG0 7 7SEG1 6 6SEG2 4 4SEG3 2 2

SEG5 9 9

SEG6 1 0 10SEG7 5 5

BA

C

DEF

G

.

N8

DIG3

DIG2

DIG1

DIG0

m m m m

图 10-18 CH451 驱动数码管的电路

Page 155: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 155/159

3) 8×8 键盘扫描CH451 连接 8×8 键盘的电路图如图所示。 CH451 具有 64 键的键盘扫描功能,如果应用中只需要很少的按键,则可以在 8×8 矩阵中任意去掉不用的按键。为了防止键被按下后在 SEG 信号线与 DIG 信号线之间形成短路,影响显示,一般应该在 CH451 的 DIG0 ~ DIG7 引脚与键盘矩阵之间串接限流电阻 R2 ,其阻值为 1KΩ 至 10KΩ 。

Page 156: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 156/159

K0 K1 K2 K3 K4 K5 K6 K7

K10 K11K9K8 K12 K13 K14 K15

K18 K19 K20 K21 K22 K23K16 K17

K26 K27 K28 K29 K30 K31K24 K25

K34 K35 K36 K37 K38 K39K32 K33

K42 K43 K44 K45 K46 K47K40 K41

K50 K51 K52 K53 K54 K55K48 K49

K58 K59 K60 K61 K62 K63K56 K57

SEG0

SEG1

SEG2

SEG3

SEG4

SEG5

SEG6

SEG7

DIG0DIG1

DIG2DIG3DIG4DIG5DIG6DIG7

R2

2K×8

图 10-19 CH451 连接 8×8键盘的电路图

Page 157: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 157/159

4)完整的应用电路单片机通过 CH451 驱动 8 个共阴数码管显示,并同时扫描 64 个按键的完整电路图如图所示。

Page 158: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 158/159

图 10-20 单片机通过 CH451 驱动 8 个共阴数码管显示,并同时扫描 64 个按键的完整电路图

SEG0SEG1SEG2SEG3SEG4SEG5SEG6SEG7

DIG0DIG1DIG2DIG3DIG4DIG5DIG6DIG7

VCC

LOADDINDCLK

DOUT

SEG0

SEG1

SEG2

SEG3

SEG4

SEG5

SEG6

SEG7

200Ω ×8U1 CH451SC1

0.1uF

C2220uF

U2 STC15F2K60S2

R12K

R22K

R32K

R42K

R52K

R62K

R72K

R82K

N1D1

N2D2

N3D3

N4D4

N5D5

N6D6

N7D7

N8D8

IN4001

K0K7

K63 K56

1615

17181920

2221

87

3456

25

24

14

12

2812

11

27

109

13

26

VCC

GNDGND

RSTI

RST#RST

CLKO

DCLKDINLOAD

DOUT

ADJ

23SEG0SEG1SEG2SEG3SEG4SEG5SEG6SEG7

DIG0DIG1DIG2DIG3DIG4DIG5DIG6DIG7

678

23

P0.5P0.6P0.7

INT0

Page 159: 第十章         人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片

22:02:56 159/159

由于某些数码管在较高工作电压时存在反向漏电现象,容易被 CH451误认为是某个按键一直按下,所以建议使用二级管 D1-D8 防止数码管反向漏电,并提高键盘扫描时 SEG0 ~ SEG7 输入信号的电平,确保键盘扫描更可靠。当电源电压较低时(例如 VCC=3.3V),这些二级管应该去掉以避免影响显示亮度。当数码管多于 8 个时,可以采用多个 CH451进行驱动。多个 CH451 与单片机的连接电路及使用方法请参阅 CH451手册,在此从略。