1 第第第 第第第第 I/O 第第第第第第第
Jan 03, 2016
1
第十章 单片机与 I/O 外部设备的接口
2
LED 结构 LED 的工作原理 LED 显示器的接口方式 LED 显示器的显示方式
§10.1 LED 数码管显示
3
单片机应用系统常用的显示器件有: 发光二极管显示器,简称 LED( Light Emitting Diode ) 液晶显示器,简称 LCD
( Liquid Crystal Display )
4
LED 显示器 内部由发光二极管组成段显示。数码管结构分为共阳极型和共阴极型
LCD 液晶显示器常用的 LCD 可为字符型和点阵型两类 字符型可用来显示字符和数字 点阵型可用来显示汉字及图形
5
a) 共阴极结构 b) 共阳极结构 c) 外引脚图
图 3-8
一、 LED结构
6
二、 LED 的工作原理 共阴极结构中:所有发光二极管的阴极接
在一起形成公共端 COM ,使用时 COM端接低电平,当某段发光二极管的阳极接高电平时,则该段二极管发光显示字符。
共阳极结构中:所有发光二极管的阳极接在一起形成公共端 COM ,使用时 COM端接高电平,当某段发光二极管的阴极接低电平时,则该段二极管发光显示字符。
7
为了要显示某个字形,则应使此字形的相应段点亮,也即送一个不同的电平组合代表的数据来控制 LED 的显示字形,此数据称为字符的段码。数据字位数与 LED 段码的关系如表所示:
数据字位数与 LED 段码的关系
abcdefgDp
D7 D6 D5 D4 D3 D2 D1 D0
数据位数LED 段码
8
a
b
c
d
e
fg
abcdefgDp
D7 D6 D5 D4 D3 D2 D1 D0
Dp
图 3-9
9
a
b
c
d
e
fg
abcdefgDp
D7 D6 D5 D4 D3 D2 D1 D0
LED 显示“ 0” 示意图
Dp
图 3-9
10
显示字符 共阴段码 共阳段码 显示字符 共阴段码 共阳段码0 3FH C0H A 77H 88H
1 06H F9H b 7CH 83H
2 5BH A4H C 39H C6H
3 4FH B0H d 5EH A1H
4 66H 99H E 79H 86H
5 6DH 92H F 71H 8EH
6 7DH 82H P 73H 8CH
7 07H F8H — 40H BFH
8 7FH 80H 全灭 00H FFH
9 6FH 90H ● 80H 7FH
常用字符显示编码表 3-1
11
三、 LED 显示器的接口方式 所谓 LED 接口方式是指 LED 七段
数码显示器与单片机的连接方式。 按照显示代码获得形式的不同,可
分为两种:硬件译码方式软件译码方式
12
(1) 硬件译码方式 ( 以硬件为主的接口方法 ) 采用 BCD 码译码器 / 驱动器通过译码把一
位 BCD 码翻译为相应的字形代码,然后由驱动器提供足够的功率去驱动发光二极管。
硬件译码电路
d
g
a
b
c
dp
f
e
+5vMCS-51 BCD 译码器
D
C
B
A
P1.0
P1.1
P1.2
P1.3
d
g
a
b
c
dp
f
e
COM
图 3-10
13
(2) 软件译码方式 ( 以软件为主的接口方法 ) 由软件完成硬件译码器的功能。
d
g
abc
dp
fe
8R×´
驱动器
P1.0
P1.2
P1.7P1.6P1.5P1.4P1.3
P1.1
MCS-51
COM
软件译码电路图 3-11
14
比较: 硬件译码器一般都具有直接驱动 LED 的能
力,且占用单片机系统接口资源少(字形口只需 4 个口线),编程简单。缺点是显示字形有限,通常只能显示 0~9 十个字符。
软件译码方式显示字形较多,可由用户自己编码决定。其缺点是占用单片机系统接口资源较多(字形口需 8 个口线),且一般要配置驱动器(如 7406 、 7407 、 8718 )编程相对复杂。
15
四、 LED 显示器的显示方式 在单片机应用系统中,一般要同时使用
N 片七段 LED 构成 N 位 LED 显示器。 LED 的公共端 COM 叫显示器的位选
线, a ~ g 称为段选线,这样 N 位LED 显示器有 N 根位选线, N8 根段选线 ( 包括小数点位 ) 。位选线控制LED 的每一位是否显示,段选线控制每一位的显示字符。
16
根据位选线与段选线的接法, LED有两种显示方式 :
静态显示方式 动态显示方式
17
(1) 静态显示方式 所有的位选线 COM 连接到一起接低
电平 ( 共阴极 ) 或接高电平 ( 共阳极 );
每一位 LED 的段选线连接到一个 8 位显示输出口上,这样 N 位显示器共需要 8N 根显示输出线,显示时位与位之间是相互独立的。
182 位共阳极 LED 与单片机静态显示接口方式图 3-12
19
N 位 LED 静态显示原理图 图 3-13
20
静态显示方式特点:
优点 : 具有显示亮度高,显示稳定,
控制方便等。 缺点 : 显示的位数较多时,占用的 I/O 口线较多。
21
(2) 动态显示方式 动态显示的硬件接法是将所有 LED
显示器的段选线并在一起,接到一个 8 位的 I/O 口上,形成段选线的多路复用 ;
位选线则分开接到各自的控制 I/O线上,形成各位的分时选通。
22
5 位 LED 动态显示电路
反相位驱动器
图 3-14
23
N 位动态 LED 显示原理图图 3-15
24
动态显示方式原理: LED 在每一个时间段内只有一位 LED 显
示,而其他 LED 不显示 ;
通过程序或硬件电路控制,各 LED 在一个显示周期内分别显示一段时间,当一个显示周期足够短时,由于人眼的视觉暂留特性,使人感觉每个 LED 总在亮。
25
例 10-1:LED 的动态显示电路由 MCS-51单片机的 P1 口和 P2 口分别驱动 LED 的段和位,试问 : 如要显示 1 、 2 、 3 、 4 、 5 ,P1.0~P1.7 分别对应 a~dp ,则段驱动与位驱动及显示状态如何? ( 设 LED 采用共阳极显示器 )
反相位驱动器
26
段选码、位选码及显示状态表
段选码(字型)
位选码P2.4~P2.0
显示器显示状态
F9H 11110 1
A4H 11101 2
B0H 11011 3
99H 10111 4
92H 01111 5
27
动态显示方式特点:
优点:动态显示与静态显示相比 需要 I/O 口线少。 缺点:控制程序较复杂, 显示亮度低。
28
小结比较:4 位静态显示
4 位动态显示
29
一、键盘基础知识 二、MCS-51对非编码键盘的接口 三、键盘的工作方式
§10.2 键盘接口原理
30
一 键盘基础知识
键盘是一组按键的组合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机对话。
1、什么是键盘?
31
2 、按键的分类 按键按照结构原理可分为两类:触点式开关按键:如机械式开关等。无触点式开关按键:如磁感应按键。 前者造价低,后者寿命长。 目前,微机系统中最常见的是: 触点式开关按键
32
键盘按其结构形式可分为两种: 编码键盘:由硬件逻辑自动提供与键对
应的编码。使用方便,但电路复杂,价格较贵,在单片机应用系统中较少采用。
非编码键盘:由软件来实现键盘的定义与识别。结构简单、成本低廉,在单片机应用系统中被普遍采用。
33
3、按键去抖动处理 由于通常的按键所用的开关是机械开关,
当开关闭合、断开时并不是马上稳定地接通和断开,而是在闭合与断开瞬间均伴随有一连串的抖动。
当扫描表明有键被按下之后,紧接着应进行去抖动处理。抖动时间长、短与键的机械特性有关,一般为 5 ~ l0ms 。
34
如图所示:
前沿抖动 后沿抖动
键按下
闭合稳定 键释放
按键抖动波形示意图 图 3-1
35
★请思考什么是键抖动? 为什么键盘要考虑去抖动? 一般常用去抖动的方法有哪些?
36
什么是键抖动? 由于通常的按键所用的开关是机械开
关,被按下时,由于机械触点的弹性及电压突跳等原因,触点闭合或断开的瞬间会出现电压抖动。
为什么键盘要考虑去抖动? 键抖动可能导致计算机将人工按一次
键操作识别为多次,为了消除干扰,保证在按键闭合稳定状态下读取键值,需要对键盘进行消抖处理。
37
一般常用去抖动的方法有几种? 常用的消抖措施有硬件消抖和软件消抖。 硬件方法就是在键盘中附加去抖动电路,从根本上消除抖动产生的可能性;
软件方法则是采用时间延迟以躲过抖动( 大约延时 10 ~ 30ms 即可 ) ,待行线上状态稳定之后,再进行状态输入。
38
就是在第一次检测到有键按下时先不动作,延时一段时间 ( 一般为 10ms) ,再次检测按键的状态,如果仍保持闭合状态,则确认真正有键按下。
当检测到按键释放后,也要给5ms~10ms 的延时,待后沿抖动消失后才能转入按键的处理程序。
◆软件消抖
39
对于两个或多个按键同时按下的重键问题,可以采用“先入有效”或“后留有效”的原则加以处理。
“先入有效”:指当多个按键同时按下时,只有第一个按下的键有效,其它键无效。
“ 后留有效”:指当多个按键同时按下时,只有最后松开的按键有效,其它键均无效。
40
4、键盘接口的操作功能 从按一个键到键的功能被执行主要包括两项工作:第一项:键的识别,即在键盘中找出被按的
是哪个键。第二项:键功能的实现。 第一项工作使用接口电路实现,第二项工作是通过执行查询 / 中断服务程序来完成。我们先讨论第一项,即键盘接口问题。
41
键盘接口的操作功能:① 键盘扫描,以判定是否有键被按下(称之为“闭合键”)。② 键识别,以确定闭合键的行列位置。③ 产生闭合键的键码。④ 排除多键、窜键(复按)及去抖动。
42
二 MCS-51 对非编码键盘的接口非编码键盘有两种形式: 独立式键盘接口:单片机系统中,如只需要几个功能键,此时,可采用独立式按键结构。矩阵式(行列式)键盘接口:单片机系统中,若使用按键较多时,通常采用矩阵式键盘。
43
1、独立式键盘接口
独立式按键是直接用 I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根 I/O 口线,每个按键的工作不会影响其它 I/O 口线的状态。
独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O 口线,因此,在按键较多时, I/O 口线浪费较大,不宜采用。
①按键硬件结构
44
8031
+5V
I/OP1
R 8╳
MCS-51 对独立式非编码键盘的接口
此种接口适于键数较少或操作速度较高的场合。图 3-3
45
图 (a) 为中断方式的独立式键盘工作电路
图 (b) 为查询方式的独立式键盘工作电路
②工作原理: 当任何一个键被按下时,与其相连的输入线被置成 “ 0” ,平时该线为“ 1” 。工作方式:
46
图 3-4
47
③独立式按键的软件结构 常采用查询式结构: 先逐位查询每根 I/O 口线的输入状态,如某一根 I/O 口线输入为低电平,则可确认该 I/O 口线所对应的按键已按下 ; 然后,再转向该键的功能处理程序。
48
延时等待 10ms
仍有按键信号?Y
有按键信号?N
Y
N
键盘处理
按键释放? N
Y
独立式键盘处理程序流程
图 3-5
49
2 、矩阵式 ( 行列式 ) 键盘接口
用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。 行列式键盘与独立式键盘相比,要节省很多的 I/O 口线。
①按键硬件结构
50
51
②矩阵式键盘工作原理• 无键按下,该输入 ( 行 ) 线为高电平,当有键按下时,输入 ( 行 ) 线电平由输出( 列 ) 线的电平来决定。• 由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。
52
③矩阵式按键的识别方法 a. 扫描法
b. 线反转法
53
第 1 步:识别键盘有无键按下。
第 2 步:如有键被按下,识别出具体的按键。
把所有列线置 0 ,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。
先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。
a. 扫描法
54
过程: 1.先判断有无键按下
列线输出 0000 ,然后输入行线状态: 若没有键按下,则行线状态为全1(1111); 若有任一键按下,则行线状态不为全 1 。
55图 3-7
输
入
口
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0
0 1 2 3
1
2
3
£«5 V
1
1
0
1
输 出 口
0 0 0 0
P1.7
P1.6
P1.4
P1.5
P1.3 P1.2 P1.0P1.1
56
过程: 2. 再确认哪个键被按下 列线逐行输出 0 ,然后输入行线状态: 若没有键按下,则行线状态为全1(1111); 若有任一键按下,则行线状态不为全 1 。
57
输
入
口
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0
0 1 2 3
1
2
3
£«5 V
1
1
1
1
输 出 口 0 1 1 1
扫描法识别出具体按键的过程:
图 3-7
P1.7
P1.6
P1.4
P1.5
P1.3 P1.2 P1.0P1.1
58
输
入
口
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0
0 1 2 3
1
2
3
£«5 V
1
1
1
1
输 出 口 1 0 1 1
P1.7
P1.6
P1.4
P1.5
P1.3 P1.2 P1.0P1.1
59
输
入
口
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0
0 1 2 3
1
2
3
£«5 V
1
1
0
1
输 出 口 1 1 0 1
P1.7
P1.6
P1.4
P1.5
P1.3 P1.2 P1.0P1.1
60
第 1 步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。
第 2 步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。
b. 线反转法
只需两步便能获得此按键所在的行列值。
61图 3-7
输
入
口
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0
0 1 2 3
1
2
3
£«5 V
1
1
0
1
输 出 口
0 0 0 0
P1.7
P1.6
P1.4
P1.5
P1.3 P1.2 P1.0P1.1
62图 3-7
输
出
口
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
0
0 1 2 3
1
2
3
£«5 V
0
0
0
0
输 入 口
1 1 0 1
P1.7
P1.6
P1.4
P1.5
P1.3 P1.2 P1.0P1.1
63
比较说明:扫描法对键的识别采用逐列扫描的方法
获得键的位置,当被按下的键在最后一列时需要扫描 N 次( N 为列数),当N 比较大时键盘工作速度较慢 ;
而线反转法则不论键盘有多少行和多少列只需经过两步即可获得键的位置。
64
正逻辑表示 --行列线数据求反组合,上例中的各键值分别为:88H 、 84H 、 82H 、 81H 、48H 、 44H 、 42H 、 41H 、
28H 、 24H 、 22H 、 21H 、18H 、 14H 、 12H 、 11H
④确定每个键的键值负逻辑表示 --行列线数据直接组合,上例中的各键值分别为: 77H 、 7BH 、 7DH 、 7EH 、B7H 、 BBH 、 BDH 、 BEH 、
D7H 、 DBH 、 DDH 、 DEH 、E7H 、 EBH 、 EDH 、 EEH
65
三 键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾
键盘的输入,取决于键盘的工作方式。 原则:即要保证能及时响应按键操作,又
不要过多占用 CPU 的工作时间。 通常,键盘工作方式有 3 种:
编程扫描、定时扫描、中断扫描
66
1. 编程扫描方式工作过程:
( 1 )在键盘扫描子程序中,先判断 有无键按下。( 2 )用软件来消除按键抖动的影响。
如有键按下,则进行下一步。( 3 )求按下键的键号。( 4 )等待按键释放后,再进行按键 功能的处理操作。
只有当单片机空闲时,才调用键盘扫描子程序扫描键盘。
67
2. 定时扫描工作方式利用单片机内的定时器,产生 10ms
的定时中断,对键盘进行扫描。
只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。
3. 中断工作方式
68
小结:键盘所做的工作分为三个层次:
69
第 1 层:单片机如何来监视键盘的输入。 三种工作方式: ①编程扫描②定时扫描③中断扫描第 2 层:确定具体按键的键号。 体现在按键的识别方法上就是: ①扫描法;②线反转法。第 3 层:执行键处理程序。
70
10.2节要点: 键盘的抖动与消抖。非编码键盘的两种形式,各自的特点。矩阵式键盘的两种识别方法。 键盘的三种工作方式。