School of Mechanical & Power Engineering 上上上上上上上上上上上上上上上 控控控控控控 (II) 第第第第 第第第第第 控控控控控控 控控控控控控 (II) (II) 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 第第第第第 第第第 第第 : 第第第第第 第第第 第第 : 第第第第第 第第第第第 第第 第第第 第第 : 第第 第第第 第第 : 2007 2007
Jan 03, 2016
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
控制理论基础控制理论基础 (II)(II)
交交通通大大学学精精品品课课程程系系列列
课程负责人:杨汝清 教授 课程负责人:杨汝清 教授
曹其新教授曹其新教授
顾问: 王显正 教授顾问: 王显正 教授
20072007
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
一 键 盘
15.1 单片机的人机接口15.2 按键开关的抖动问题15.3 键盘(独立按键)与单片机的连接方式15.4 键盘(矩阵式)与单片机的连接方式15.5 键输入程序设计方法
二 显示器与单片机的接口15.6 LED 的结构原理15.7 LED 显示器的显示方式15.8 举例
15.0 键盘控制的小例子
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
15.0 键盘控制的小例子
指令发射机
指令接受机
人机接口
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
一 键 盘• 键盘是一组按键的组合 , 它是最常用的单片机输入设
备 , 操作人员可以通过它实现简单的人机通信 .
• 键盘可以分为 : 编码键盘和非编码键盘 .• 编码键盘 : 键盘上闭合键的识别由专用的硬件译码器
实现,产生键编号或键值的键盘称为编码键盘 , 如BCD 键盘 , ASII 码键盘等 .
• 非编码键盘 : 靠软件识别的键盘 .• 在单片机组成的测控系统和机电一体化产品中 , 用的
最多的是非编码键盘 .
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示15.1 单片机的人机接口
拨码盘与单片机的接口
• BCD 拨码盘的结构及工作原理
1248
A
由 4 根数据线和一根输入控制线,如把接通定义为 1 ,不通的定义为 0 ,则拨码盘的数据线的状态与 BCD 码表示的十进制数一致。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
•单个拨码盘与单片机的连接
G1G2
+5V
244
+
RD
P2.7
单片机 P0 口
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示•多个拨码盘与单片机的连接
与非门+5V
P1.0
P1.4~P1.7+5V +5V
+5V
个十百千
12
8
4
P1.1
P1.2
P1.3
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
电路说明:•四个拨码盘的控制线连接在 P1.4~P1.7 用来选择 4 片拨码盘中的任意一个,与非门的输出取决于控制线为低电平的拨码盘的数据线的状态(控制线为 0 即选中);•当某个拨码盘的控制线为高,则不论其处于什么位置, 4 根数据线总是为高电平;•当控制线为低电平时,与控制线接通的数据线为低电平,而与控制线不接通的数据线为高电平。若将数据线的状态取反,则得到拨码盘位置的 BCD 码。•P1.0~P1.3 用来接收某个拨码盘的输入数据。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
程序说明• 拨码盘的数据存放在 8031 片内 RAM 的 30
H ~ 33H 单元中,某个单元的高 4 位为 0 ,低 4 位为 BCD 码。
• R0 为存放数据的地址指针;• R2 为 P1 输出的控制字;• R3 为 BCD 拨码盘的个数
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示MOV R0,#30H;MOV R2,#7FH;MOV R3,#04H;
MOV A, R2;MOV P1, A;MOV A, P1;ANL A,#0FH; 屏蔽高 4 位 MOV @R0, A;INC R0;MOV A, R2;RR A ; 累加器循环右移动 1 位MOV R2, A;DJNZ R3, LOOP;RET
拨码盘的用户程序READ:
LOOP:
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示按钮与单片机的接口
•键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令、地址和数据。
•一般单片机系统中采用非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
15.2 按键开关的抖动问题 组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。在下图中,当开关 S 未被按下时, P1.0输入为高电平, S 闭合后, P1.0 输入为低电平。
P1.0
S
VCC
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 由于按键是机械触点,当机械触点断开、闭合时,会有抖动, P1.0 输入端的波形如下图所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 为使 CPU能正确地读出 P1 口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。单片机中常用软件法。
• 对于硬件方法有双稳态方法等,同学请参考教材。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 软件法其实很简单,就是在单片机获得P1.0 口为低的信息后,不是立即认定 S1已被按下,而是延时 10毫秒或更长一些时间后再次检测 P1.0 口,如果仍为低,说明 S1 的确按下了,这实际上是避开了按键按下时的抖动时间。
• 而在检测到按键释放后( P1.0 为高)再延时 5-10 个毫秒,消除后沿的抖动,然后再对键值处理。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示15.3 键盘(独立按键)与单片机的连接方式
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
通过 8255扩展的独立式键盘
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
通过三态缓冲器搭接的独立式键盘
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示Keyin: MOV DPTR, #7FFFH; 键盘地址
MOVX A,@DPTR; 读键盘状态
ANL A,#1FH; 屏蔽高三位
MOV R3,A; 保存
LCALL D_10MS; 去抖
MOVX A,@DPTR; 读键盘状态
ANL A, #1FH;
CJNE A, R3, PASS; 两次结果不同 , 说明由抖动引起 , 转PASS
CJNE A, #1EH, TO_2; KEY1 键未按下,转 TO_2
LJMP KEY1; 是 KEY1 键按下,转键 1 处理程序
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
15.4 键盘(矩阵式)与单片机的连接方式矩阵式键盘的结构 : 每一水平线(行线)与每一垂直线(列
线)的交叉处不相通,而当某一键按下,则该键对应的行线和列线被短路,即行线电平状态由与此行线相连的列线电平确定。利用 N 个行线和 M 个列线即可组成 N×M 个键的键盘。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示单片机对非编码键盘扫描的控制方式
• 扫描方式有三种 :• 1. 程序控制扫描方式 , 即查询方式• 2. 定时扫描方式 , 利用单片机内部定时器产生中断 , C
PU响应中断对键盘进行一次扫描 , 定时扫描方式的硬件电路与查询扫描方式相同 .
• 3. 中断扫描方式 ,引起外部中断后 , CPU响应中断对键盘进行扫描 .
• 采用哪种方式是根据应用系统的 CPU 的“忙” ,“闲”以及键数目的多少来确定 .
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
矩阵式键盘的工作原理1 )识别是否有键按下:扫描2 )去抖: 延时3)闭合键的键值确定:根据行线和列线的状态求得。4)键的闭合与否:可通过高低电平状态的检测来确认
5 )扫描方法:把全部列线置为低电平,然后将行线的电平状态读入 A中,如有键按下,则至少有一根行线为低电平,从而使行输入不全为 1 。
键盘中哪一个键被按下是逐列置低电平后,检查行输入状态来判断的,所按下的键必在与 0 电平行线相交的那个键。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
键值:键盘上的每个键都有一个键值,以代表键按下的特征信号。 键值赋值的最直接办法是将行线数据和列线数据按二进制顺序排列组合成键值。
8155/8156 组成的 4*8 矩阵式键盘 ( 与单片机的连接与单片机的连接方法方法 )
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示15.5 键输入程序设计方法
8031外接一片 8155• 8155 的 RAM 地址 7E00~7EFFH ( P2.7=0 、 P2.0=0);• I/O 口的地址 :7F00H~7F05H(P2.7=0 、 P2.0=1);• PA 口为输出口(即键盘扫描口)、 PC 口为输入口(即 PC0~PC3 为键输
入口)。键输入程序应具有以下三个功能:判断是否有键按下:
MOV DPTR, #7F01H; 指向 PA 口MOV A, #00H; 全扫描字送入 PA 口MOVX @DPTR, A;INC DPTR;INC DPTR; 指向 PC 口MOVX A, @DPTR; 读入 PC 口的状态CPL A; 变正逻辑,以高电平表示有键按下ANL A, #0FH; 屏蔽高 4 位RET
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示消除键的抖动(软件消抖)
抖动时间的长短与开关的机械特性有关,一般为 5 ~ 10ms ,故可利用延时 12ms 子程序消抖。 Fosc=12MHz Tcy=1us
TM12S: MOV R7, #18H; 一个机器周期
TM : MOV R6, #0FFH
TM1: DJNZ R6, TM1; 2×256us
DJNZ R7, TM; 2×256×24= 12.288ms
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示判别闭合键并计算其键值
• 对键盘的列线进行扫描,扫描口 PA0~PA7依次输出 (见表 1 ),同时按顺序读入 PC 口的可能状态,对每一个扫描字, PC0~PC3 有四种可能状态(见表 2 ) , 32 个键共有 64 种组合(见表3 ):
• 表 1 表 2
FEH PA0
FDH PA1
FBH PA2
F7H PA3
EFH PA4
DFH PA5
BFH PA6
7FH PA7
PC7 PC6
PC5
PC4 PC3 PC2 PC1 PC0 状态
× × × × 1 1 1 0 ×E
× × × × 1 1 0 1 ×D
× × × × 1 0 1 1 ×B
× × × × 0 1 1 1 ×7
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
FE×E FD×E FB×E F7×E EF×E DF×E BF×E 7F×E
FE×D FD×D FB×D F7×D EF×D DF×D BF×D 7F×D
FE×B FD×B FB×B F7×B EF×B DF×B BF×B 7F×B
FE×7 FD×7 FB×7 F7×7 EF×7 DF×7 BF×7 7F×7
闭合键值=行首键号+列号。 如 PA= 11111101 时, PC0~PC3= 1101 ,则 1行 1 列相交的键处于闭合状态。第一行的首键号为 8 ,列号为 1 ,闭合键值= 8+ 1= 9 。CPU 对键的一次闭合仅作一次处理,采用的方法是等待键释放后,再将键值送入累加器 A 中。
表 3
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示与单片机连接的几种典型电路
8255A扩展 I/O 口组成的 4*8 矩阵式键盘
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 继续
74LS373 组成的 2*8 矩阵键盘
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
74LS138 组成的 2*8 矩阵键盘
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示双功能键盘原理图
1 硬件 : 上下档位开关对应键盘的两种状态
2 软件 : 根据某个按键的次数 ,转到相应的子程序
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
判别键是否按下的一种简单方法: 线反转法具体的步骤:• 1 将行线作为输入线,列线作为输出线,并使输出线全为 0 ,
则 由高电平变为低电平的行即为按键所在的行;• 2 将列线作为输入线,行线作为输出线,并使输出线全为 0 ,
则由高电平变为低电平的列即为按键所在的列;• 综合 1 、 2 即可得到按键
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
二 显示器与单片机的接口
• 键盘是单片机应用系统中常用的输入器件 , 显示器则是普遍使用的输出器件 .
• 显示器有发光二极管 LED 和数码管 ,前者多用于信号指示 , 后者用于数据输出 .它们有足够亮度 ,耗电和发热都很少 , 可在单一 +5v 电源下工作 .
• LCD …
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
15.6 LED 的结构原理a
bfg
ce
d
g f e d c b a DP
阳极
阴极
• 接法 :• 1 共阴极法 ;• 2 共阳极法
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
D7 D6 D5 D4 D3 D2 D1 D0
DP g f e d c b a
例子 : 当数字量为 00111111 时 , g 和 DP 不发光 , 显示的字符为 0, 这种数字量称为段选码
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
15.7 LED 显示器的显示方式
• 一般情况下 ,都同时用几个 8段的 LED显示器 ,几位 LED 连接有两种显示方式 :
• 静态显示• 动态显示
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 静态显示 :• 每一位都有各自的 8 位输出口控制 ,
在显示某个字符时 ,相应的段恒定的发光或不发光 .
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 动态显示方式 : 将多个 8段 LED 显示器的段选端并连在一起 , 由一个 8 位输出口控制 ,段选码同时加到各个显示器上 , 而共阴( 或共阳 ) 端分别由相应的 I/O 线控制 ,实现各位的分时选通 , 即每一瞬时只使某一位显示字符 .
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 下图为 8155扩展 I/O 控制的 6 位共阴极 LED 动态显示接口电路 . 图中 ,PB口输出段选码 ,PA 口输出位选码 .
• 75452( 或 7406) 是反向驱动器 (30V高电压 ,OC 门 ), 这是因为 8155PA 口正逻辑输出的位控制与阴极 LED 要求的低电平正好相反 .
15.8 举例
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 7407 是同相 OC 门 , 作段选码驱动器 .
• 逐位轮流点亮各个 LED,每位停留1ms, 在 10~20ms之内再一次点亮 ,重复不止 .
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
LEDLED 动态显示接口动态显示接口
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
动态扫描显示接口——补充• 动态扫描显示接口是单片机中应用最为广泛的一种
显示方式之一。• 其接口电路是把所有显示器的 8 个笔划段 a-h同名
端连在一起,而每一个显示器的公共极 COM 是各自独立地受 I/O 线控制。 CPU 向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于 COM 端,而这一端是由 I/O 控制的,所以我们可以自行决定何时显示哪一位。
• 所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的 COM 端,使各个显示器轮流点亮。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约 1ms ),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
• 动态扫描显示必须由 CPU 不断地调用显示程序,才能保证持续不断的显示。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
改进型• 上面的方法可以实现数字的显示,但不太实
用,为什么呢?这里仅是显示数字,并没有做其他的工作,因此,两个数码管轮流显示 1毫秒,没有问题,实际的工作中,不可能只显示数字,还要做其他的事情的,这样在二次调用显示程序之间的时间间隔就不一定了,如果时间间隔比较长,就会使显示不连续。而实际工作中是很难保证所有工作都能在很短时间内完成的。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
• 我们可以借助于定时器,定时时间一到,产生中断,点亮一个数码管,然后马上返回,这个数码管就会一直亮到下一次定时时间到,而不用调用延时程序了,这段时间可以留给主程序干其他的事。到下一次定时时间到则显示下一个数码管。
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
习题:1 键盘去抖怎么解决?2 显示分为哪几种方式?
School of Mechanical & Power Engineering 上海交通大学机械与动力工程学院
控制理论基础 (II) 第十五章 键盘与显示
This is End of Chapter 16This is End of Chapter 16