第10章 键盘显示器接口

合集下载

第10章行列式(矩阵式)键盘接口

第10章行列式(矩阵式)键盘接口

AJMP
LKP
LTW0:JB MOV AJMP LTHR:JB MOV LKP: ADD PUSH LK3: ACALL
A.2,LTHR A,#10H LKP Acc.3,NEXT A,#18H A,R4 A DIR
;2行线为高,无键闭合,跳LTHR, ;转判3行 ;2行有键闭合,首键号10H→A ;跳LKP,计算键号 ;3行线为高,无键 ;闭合,跳NEXT,准备下一列扫描 ;3行有键闭合,首键号18H→A ;计算键号:首键号+列号=键号 ;键号进栈保护 ;调用显示子程序,延时6ms ;调用判有无键闭合子程序,延时 ;6ms ;判键释放否,未释放,则循环 ;键已释放,键号出栈→A
ACALL KS1 JNZ POP RET LK3 A
NEXT:INC
R4
;列计数器加1,为下一列扫描作准备
MOV JNB
RL MOV AJMP KND: AJMP KS1: MOV “0”→ MOV MOVX
A,R2 ;判是否已扫到最后一列(最右一列) Acc.7,KND ;键扫描已扫到最后一列,跳KND,
(2)按键的识别方法
a. 扫描法 图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的。
识别键盘有无键被按下的方法,分两步进行: 第1步:识别键盘有无键按下; 第2步:如有键被按下,识别出具体的按键。 把所有列线置0,检查各行线电平是否有变化,如 有变化,说明有键按下,如无变化,则无键按下。 上述方法称为扫描法,即先把某一列置低电平, 其余各列为高电平,检查各行线电平的变化,如果某 行线电平为低,可确定此行列交叉点处的按键被按 下。 b. 线反转法
原则:即要保证能及时响应按键操作,又不要过多占 用CPU的工作时间。 通常,键盘工作方式有3种,即编程扫描、定时扫 描和中断扫描。 1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序, 扫描键盘。 工作过程:

微机原理 第十章 基本人机交互设备接口

微机原理 第十章 基本人机交互设备接口

SEGPT C0H 0
DISMEM 01H


+1 F9H 1
+2 A4H 2 段 码 表

09H 09H 08H 10H
显 示 缓
01H 冲
+15 +16
8EH 7FH
F.
00H 区
10H


多位动态显示存储区数据安排
10.2.1 LED显示器及接口
◆ 程序流程图:
入口 指向显示缓冲区首址
取显示位指针
10.2.1 LED显示器及接口 10.2.2 CRT显示器及接口 10.2.3 LCD显示器及接口
10-19
10.2.1 LED显示器及接口
LED显示器及显示原理 一位LED显示器接口 多位LED显示器接口
10.2.1 LED显示器及接口
1. LED显示器与显示原理
+5V/地
R×8
10-20
OUT DX, AL
;输出段码至锁存器
INC DI
;指向下一个要显示字符的段码
CALL DELAY
;调显示延时子程序
LOOP DISP
;0~F未显示完,转DISP
HLT SEGTAB:DB 0C0H,0F9H,0A4H,0B0H, 99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
10-26
关显示
从缓冲区取显示字符 从段码表取段码
输出至段码寄存器 位指针送位寄存器
延时
修改缓冲区指针
修改显示位指针
N Y
到最右端位? 转出口
DISEN D
10.2.1 LED显示器及接口
◆ 显示驱动程序:

单片机第10章89C51与键盘显示器接口教材课程

单片机第10章89C51与键盘显示器接口教材课程
2020/8/6
2020/8/6
图10-7
图10-8为82C55扩展I/O口的独立式按键接口电路。
2020/8/6
图10-8
2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成,按键位于
行、列的交叉点上。如图10-9所示。
图10-9 按键数目较多的场合,行列式键盘与独立式键盘相比, 要节省很多的I/O口线。
2020/8/6
图10-11
89C51外扩一片8155H。RAM地址: 7E00H~7EFFH。 I/O口地址:7F00H~7F05H。
PA口为输出口,控制键盘列线的扫描,同时又是6位共阴极 显示器的位扫描口。
PB口作为显示器段码输出口,PC口作为键盘的行线状态的 输入口。
75452:反相驱动器,7407:同相驱动器。
利用单片机内的定时器,产生10ms的定时中断,对键盘进行 扫描。 3.中断工作方式
只有在键盘有键按下时,才执行键盘扫描程序,如无键按 下,单片机将不理睬键盘。
键盘所做的工作分为三个层次。
2020/8/6
第1层:单片机如何来监视键盘的输入。三种工作方式:①编 程扫描②定时扫描③中断扫描。
第2层:确定具体按键的键号。体现在按键的识别方法上就 是:①扫描法;②线反转法。
1.动态显示程序设计 内部RAM 6个显示缓冲单元:79H~7EH,存放要显示的6位数
据。 81C55的PB口输出相应位的段码,依次改变PA口输出为高的位使
某一位显示某一字符,其它位为暗。动态地显示出由缓冲区 中显示数据所确定的字符。
2020/8/6
参考程序:
DIR: MOV R0,#79H ;置缓冲器指针初值
方法:对键盘的列线进行逐列扫描,扫描口PA0~PA7依次输 出下列编码,即只有一列为低电平,其余各列为高电平:

第10章外扩设备

第10章外扩设备

键盘的工作方式
1. 编程扫描方式 2. 定时扫描工作方式
利用单片机内的定时器,产生10ms的定时中断,对
键盘进行扫描。 3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如 无键按下,单片机将不理睬键盘。
键盘所做的工作分为三个层次 第1层:单片机如何来监视键盘的输入。三种工作方式:①编
a. 扫描法 (1)把所有列线置0,检查各行线电平是否有变化,如有变化, 说明有键按下,如无变化,则无键按下。
(2)确定有按键按下后,先把某一列置低电平,其余各列为
高电平,检查各行线电平的变化,如果某行线电平为低,可确
定此行列交叉点处的按键被按下。 b. 线反转法 (1)列线输出为全低电平,则行线中电平由高变低的所 在行为按键所在行。 (2)行线输出为全低电平,则列线中电平由高变低所在 列为按键所在列。
MOVX A,@DPTR
AJMP LKP ;跳LKP,计算键号 LONE:JB Acc.1,LTW0 ;1行线为高,无键闭合,跳LTW0, ;转判2行 MOV A,#08H AJMP LKP ;1行有键闭合,首键号8→A
LTW0:JB A.2,LTHR MOV A,#10H AJMP LKP LTHR:JB Acc.3, NEXT MOV A,#18H LKP: ADD A,R4 PUSH A LK3: ACALL DIR ACALL KS1 JNZ POP RET LK3 A
程扫描②定时扫描③中断扫描。
第2层:确定具体按键的键号。体现在按键的识别方法上就 是:①扫描法;②线反转法。
第3层:执行键处理程序。
10.3 键盘/显示器接口设计实例
89C51外扩一片8155H
RAM地址: 7E00H~7EFFH I/O口地址:7F00H~7F05H PA口为输出口,控制键盘列线的扫描,同时又是6位共阴 极显示器的位扫描口。 PB口作为显示器段码输出口,PC口作为键盘的行线状态的 输入口。 75452:反相驱动器,7407:同相驱动器。

《键盘显示器接口》课件

《键盘显示器接口》课件

更新显示
将显示缓冲区中的内容传 输到显示器上,更新显示 内容。
数据传输协议
数据传输方式
确定键盘和显示器之间的数据传输方式,如并行或串 行传输。
数据格式
定义传输数据的格式,包括起始码、数据码、校验码 和结束码等。
数据传输控制
实现数据的发送和接收控制,确保数据正确无误地传 输。
04
键盘显示器接口的应用场景
05
键盘显示器接口的未来发展
技术创新与改进
新型显示技术
随着科技的发展,新型显示技术 如有机发光显示、柔性显示等将 逐渐应用于键盘显示器接口,提 供更丰富、更真实的视觉体验。
智能化交互
借助人工智能和机器学习技术, 键盘显示器接口将实现更智能的 交互方式,如语音识别、手势控 制等,提升用户的使用体验。
无线连接与云技术
无线连接和云技术的应用将使键 盘显示器接口实现远程控制和数 据同步,方便用户在不同设备间 无缝切换。
应用领域拓展
虚拟现实与增强现实
随着虚拟现实和增强现实技术的发展,键盘显示器接口将应用于 更多场景,如游戏、教育、医疗等,满足不同领域的需求。
智能家居与物联网
智能家居和物联网的普及将推动键盘显示器接口在家庭和办公环境 中的应用,实现设备间的互联互通和智能化管理。
办公自动化
01
文字处理
键盘是输入文字的主要工具,显示器则用于显示 文字和图像,实现文档编辑、排版等功能。
02
数据录入
在各种办公软件中,键盘用于输入数据,显示器 则实时显示数据录入结果,便于核对和修改。
游戏控制
键盘操作
游戏玩家通过键盘实现对角色的移动、攻击、技 能释放等操作,显示器则实时显示游戏画面。
移动设备与可穿戴设备

键盘显示器接口PPT课件

键盘显示器接口PPT课件

;调用延时子程序,软件去键抖动
MOV A,P1
;再一次读入8个按键的状态
CJNE A,R3,RETURN;两次键值比较,不同, ;是抖动引起,转RETURN
25
KEY0: MOV C,P1.0;有键按下,读P1.0的按键状态 JC KEY1 ;P1.0为高,该键未按下,跳KEY1, ;判下一个键 LJMP PKEY0 ;P1.0的键按下,跳PKEY0处理
① 扫描法。第1步,识别键盘有无键按下;第2步,如 有键被按下,识别出具体的键位。
下面以图10-9所示的键3被按下为例,说明识别过程。
30
第1步,识别键盘有无键按下。先把所有列线均置为高,说明有 键按下,否则无键被按下。
例如,当键3按下时,第1行线为低,还不能确定是键3 被按下,因为如果同一行的键2、1或0之一被按下,行线 也为低电平。只能得出第1行有键被按下的结论。
24
识别某一键是否按下的子程序:
KEYIN: MOV P1,0FFH;P1口写入1,设置P1口为输入状态
MOV A,P1
;读入8个按键的状态
CJNE A,#0FFH,QUDOU;有键按下,跳去抖动
LJMP RETURN
;无键按下,返回
QUDOU:MOV R3,A
;8个按键的状态送R3保存
LCALL DELAY10
第10章 AT89S51单片机与输入/输 出
外设的接口
1
第10章 目录 10.1 LED数码管的显示原理
10.1.1 LED数码管的结构 10.1.2 LED数码管工作原理 10.2 键盘接口原理 10.2.1 键盘输入应解决的问题 10.2.2 键盘的工作原理 10.2.3 键盘的工作方式 10.3 键盘/显示器接口设计实例 10.3.1 利用AT89S51单片机串行口实现的键盘/显示器接口

8. MCS51与键盘、显示器的接口设计详解

8. MCS51与键盘、显示器的接口设计详解

MOV A,P1
;再一次读入8个按键的状态
CJNE A,R3,RETURN;两次键值比较,不同,
;是抖动引起,转RETURN
16
KEY0: MOV C,P1.0;有键按下,读P1.0的按键状态 JC KEY1 ;P1.0为高,该键未按下,跳KEY1, ;判下一个键 LJMP PKEY0;P1.0的键按下,跳PKEY0处理
亮或暗。
N个LED显示块有N位位选线和8×N根段码线。
9
单片机原理与应用@by keane
❖ 静态显示和动态显示两种显示方式。
▪ 静态显示方式:各位的公共端连接在一起(接地或+5V )。每位的段码线(a~dp)分别与一个8位的锁存器 输出相连。显示字符一确定,相应锁存器的段码输出 将维持不变,直到送入另一个段码为止。显示的亮度 高。
18
❖ 行列式(矩阵式)键盘接口
▪ 用于按键数目较多的场合,由行线和列线组成,按键 位于行、列的交叉点上
按键数目较多的场合,行列式键盘与独立式键盘相比,
要节省很多的I/O口线。
19
单片机原理与应用@by keane
❖ 行列式键盘工作原理
▪ 无键按下,该行线为高电平,当有键按下时,行线电 平由列线的电平来决定。
子程序返回行列式矩阵式键盘接口用于按键数目较多的场合由行线和列线组成按键位于行列的交叉点上单片机原理与应用bykeane19按键数目较多的场合行列式键盘与独立式键盘相比要节省很多的io口线
第10章 MCS-51与键盘、显示器接口设计
Company
LOGO
❖ 输入外设:键盘、BCD码拨盘等; ❖ 输出外设:LED显示器、LCD显示器、打印机等。
29
6.专用键盘/显示器芯片CH451

LJY第10章 MCS-51与键盘、显示器76318 (2)

LJY第10章 MCS-51与键盘、显示器76318 (2)
当键松开时, ①行线变高,软件延时10ms后, ②行 线仍为高,说明按键已松开。
采取以上措施,躲开了两个抖动期t1和t3的影响1。2
10.2.2 键盘接口的工作原理
独立式按键接口和行列式键盘接口。
1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检
测输入线的电平状态可很容易判断那个键被按下。
行线电平由列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发
生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法
a. 扫描法
b. 线反转法
20
(2)按键的识别方法
a. 扫描法
图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的。 第1步:识别键盘有无键按下;
成各位的分时选通。
8
图10-4:4位8段LED动态显示电路。其中段码线占用一 个8位I/O口,而位选线占用一个4位I/O口。
9
图10-5为8位LED动态显示2003.10.10的过程。 图(a)是显示过程,某一时刻,只有一位LED被选通 显示,其余位则是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的同 时显示的字符。
测键的状态。仅有一键按下时才有效才处理。
KEYIN:MOV DPTR,#0BFFFH;键盘端口地址 MOVX A,@DPTR ;读键盘状态 ANL A,#1FH ;屏蔽高三位
MOV R3,A
;保存键盘状态值
LCALL DELAY10 ;延时10ms去键盘抖动
MOVX A,@DPTR ;再读键盘状态
ANL A,#1FH ;屏蔽高三位 CJNE A,R3,RETURN ;两次不同,抖动
RETURN

1与键盘、显示器的接口设计

1与键盘、显示器的接口设计

+5V V
MCS51
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
74LS07
1008 +5V
8155
共阴极 显示器
COM5 COM4 COM3 COM2 COM1 COM0
PC1
12 11 10 9 8 7
+5V
PC0
65
74LS06
43
2
1 4.7k2
PA5
PA4
PA3
X1
输入口,列线接单片机的输出口,X0405 16 2
7 3
则可在单片机的控制下,先使
Y0 Y1 Y2 Y3
44行列式未编码键盘结构图
列线Y0为低电平,其它列线为高电平,读行线状态, 如所有行线均为高电平,则表明Y0这一列没有键闭合;如读 出的行线状态不全为高电平,则为低电平的行线和Y0相交的 键闭合。依次类推可获得与其它列线相交的闭合键。
键按下 闭合稳定 键释放
释放稳定
前沿抖动
后沿抖动
图27 按键时的抖动
消除键抖动可用硬件和软
件两种方法
Vcc ( +5V )
A


B
Vcc(+5V) RS触发器消抖电路
一、独立式未编码键盘接口及处理程序
独立式键盘是各按 键相互独立地接通一条 输入数据线 。
MCS51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 独立式未编码键盘
+5V
START: MOV MOV
K0: K1:
K7:
MOV JNB JNB JNB JNB JNB JNB JNB JNB JMP LJMP LJMP … LJMP

10键盘及显示接口

10键盘及显示接口

AT89C51
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
a
b
c d
f
e
f g
e
dp
a gb
c d dp
公共端
15
二、LED显示器的扩展 1. LED显示方式 静态显示:
• 各数码管被持续点亮; • 适用于位数少的情况; • 亮度高、耗电。
PC0~PC7
第10章 键盘及显示接口
89C51
8255
PB0~PB7
PA0~PA7
. . . a b c d e f g dp a b c d e f g dp a b c d e f g dp
COM
3. 计算键码 用同样的方法判断其它按键,得到如下键码:
0
1
2
3
EE
DE
BE
7E
4
5
6
7
ED
DD
BD
7D
8
9
A
B
EB
DB
BB
7B
C
D
E
F
E7
D7
B7
77
11
第10章 键盘及显示接口
4. 等待按键释放 软件延时(20ms)避开抖动,根据键码转相应键处理程序。
12
第10章 键盘及显示接口
10.2 LED数码管显示接口
✓ 把按键直接与用I/O口线连接;
✓ 每个按键占用一根I/O口线,各按键相互独立;
✓ 按键识别采用查询方式。
89C51
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
+5V
6

键盘显示器接口

键盘显示器接口
图10-2 其他各种字型的LED显示器
4
10.1.2 LED数码管工作原理 图10-3所示为显示4位字符的LED数码管的结构原理
图。N位位选线和8 N条段码线。段码线控制显示字型, 而位选线控制着该显示位的LED数码管的亮或暗。
图10-3 4位LED数码管的结构原理图
5
LED数码管有静态显示和动态显示两种显示方式。 1.LED静态显示方式
另一种是采用专用的键盘/显示器接口芯片,这类芯片 中都有自动去抖动的硬件电路。
12
10.2.2 键盘的工作原理 键盘可分为两类:非编码键盘和编码键盘。 非编码键盘是利用按键直接与单片机相连接而成,这种 键盘通常使用在按键数量较少的场合。使用这种键盘,系 统功能通常比较简单,需要处理的任务较少,但是可以降 低成本、简化电路设计。按键的信息通过软件来获取。 1.非编码键盘 常见的为两种结构:独立式键盘和矩阵式键盘。 (1)独立式键盘 特点是:一键一线,各键相互独立,每个键各接一条 I/O口线,通过检测I/O输入线的电平状态,可容易地判断 哪个按键被按下,如图10-8所示。
KEY1: MOV C,P1.1;读P1.1的按键状态 JC KEY2 ;P1.1为高,该键未按下,跳KEY2, ;判下一个键 LJMP PKEY1 ;P1.1的键按下,跳PKEY1处理
17
KEY2: MOV C,P1.2 JC KEY3
LJMP PKEY2 KEY3: MOV C,P1.3
…… …… KEY7: MOV C,P1.7 JC RETURN
一种软件延时,本思想是:在检测到有键按下时,该键 所对应的行线为低电平,执行一段延时10ms的子程序后, 确认该行线电平是否仍为低电平,如果仍为低电平,则确 认该行确实有键按下。当按键松开时,行线的低电平变为 高电平,执行一段延时10ms的子程序后,检测该行线为 高电平,说明按键确实已经松开。采取本措施,可消除两 个抖动期t1和t3的影响。

《键盘显示器接口》课件

《键盘显示器接口》课件

2 接口技术不断发展
未来可期,我们可以期待更高清晰度、更快 数据传输速率的接口技术。
键盘显示器接口
介绍不同的计算机接口类型,包括PS/2,USB,VGA和HDMI。
概述
传统接口
使用串行、并行端口连接外部设备,速度慢、性能低。
网络通信
通过互联网连接设备,速度快、可远程操作。
键盘显示器接口
通过 PS/2、USB、VGA 和 HDMI 等接口连接外部设备,具有较高的数据传输速率。
PS/2接口
HDMI接口
优势
传输速度高、图像质量好,同时 支持音频和视频信号的传输。
传输方式
应用场景
HDMI 接口通过 19 根数字信号 传输信息,可以实现全数字传输。
如今的电视、电影、音响以及各 类数字娱乐设备都使用 HDMI 接 口进行连接。
总结
1 不同接口适用于不同场景
根据设备类型和使用场景选择合适的接机系统设 计,通过两根数据线控制外设。
信号传输方式
使用同轴协议进行通信,具有较 高的抗干扰能力。
应用场景
PS/2 接口被广泛应用于键盘等 外设连接。
USB接口
1
优势
速度快、易用性高、可连接多个设备。
传输方式
2
使用异步通信方式,位数可变。
3
应用场景
USB 接口适用于各类数字设备,如打印 机、扫描仪、鼠标、移动硬盘、数码相机 等。
VGA接口
原理
基于模拟信号传输,使用 RGB 三原色信号组合 成所显示的颜色。
应用场景
VGA 接口用于连接显示器和电脑,从而显示电 脑的图形界面和视频内容。
信号传输方式
VGA 接口通过 15 根模拟信号线和一根时钟线 传输图像信号。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图10-1 8段LED数码管结构及外形
4
按照上述格式,显示各种字符的8段LED数码管的段码如表
10-2所示。
5
表10-1只列出了部分段码,读者也可对某些显示的字符重
新定义,也可选择其他字型的LED数码管。 除了“8”字型的LED数码管外,市面上还有“±1”型、“ 米”字型和“点阵”型LED显示器,如图10-2所示。厂家也 可根据用户的需要定做特殊字型的数码管。
void main(void)
{ uchar key; while(1)
{key= keyscan( ); /*调用键盘扫描函数,返回的键值送变量key*/
delay( ); /*延时*/ /*延时函数*/
}
void delay(void); { } uchar i; for(i=0;i<200;i++){ }
reread_key=P1&0x07; if(key_value==reread_key)
/*延时10ms*/
/*再次读取P1口的状态*/
{
}
key_flag=1;
/*设置中断标志为1*/
/*中断允许*/
IE=0x81; }
32
2. 矩阵式键盘(自学)
矩阵式(也称行列式)键盘用于按键数目较多场合,由行线 和列线组成,一组为行线,另一组为列线,按键位于行、列的 交叉点上。如图10-10所示,一个44的行、列结构可以构成一 个16个按键的键盘。在按键数目较多的场合,与独立式键盘相
2014-10-16 第8章 接口技术基础 11
例2:在4个数码管上显示字符"1"、"2"、"3"、"4"
见文档
例3:设计一个2位10进制计数器,每秒加1,在 LED上显示
见文档
2014-10-16
第8章 接口技术基础
12
10.2 键盘的接口设计
键盘功能:向单片机输入数据、命令等,是人与单片机对 话的主要手段。下面介绍键盘工作原理和工作方式。 10.2.1 键盘接口应解决的问题 1.键盘的任务 任务有3项: (1)首先判别是否有键按下?若有,进入下一步。
2014-10-16
第8章 接口技术基础
18
2014-10-16
第8章 接口技术基础
19
10.2.2
键盘接口设计举例
键盘两类:非编码键盘和编码键盘。 非编码键盘按键直接与单片机相连,通常使用在按键数量 较少的场合。用这种键盘,系统功能通常比较简单,需处理 的任务较少,但可降低成本、简化电路设计。按下按键的键
图10-7(b)所示的t1和t3分别为键的闭合和断开过程中的 抖动期(呈现一串负脉冲),抖动时间长短与开关的机械特性 有关,一般为5~10ms,t2为稳定的闭合期,其时间由按键动 作确定,一般为十分之几秒到几秒,t0、t4为断开期。
14
8031
+5V
P1.0
键按下 键释放 释放稳定
闭合稳定
前沿抖动
}
31
void int0( ) { IE=ox80;
interrupt 0 /*屏蔽中断*/
uchar reread_key;
key_flag=0;
P1=0xff; key_value=P1;
/*设置中断标志*/
/* P1口锁存器置1*/ /*读入P1口的状态*/
delay_10ms(void);
(2)识别哪一个键被按下,并求出相应的键值。
(3)根据键值,找到相应键值的处理程序入口。
13
2. 键盘输入的特点
常见键盘:触摸式键盘、薄膜键盘和按键式键盘,最常用的 是按键式键盘。 键盘按键实质上是一个开关。如图10-7(a)所示,按键开 关的两端分别连接在行线和列线上,通过键盘开关机械触点的
断开、闭合,其行线电压输出波形如图10-7(b)所示。
比,要节省较多的I/O口线。
(1)查询式键盘,编写查询式的键 盘处理程序。
33
图10-10 矩阵式键盘接口
首先判键盘有无键按下,即把所有行线P1.0~P1.3均置为
低电平,然后检查各列线的状态,若列线不全为高电平,则 表示键盘中有键被按下;若所有列线列均为高电平,说明键 盘中无键按下。 在确认有键按下后,即可进入确定具体闭合键的过程。判
21
图10-8 独立式键盘的接口电路
按键检测程序入口 键闭合? Y 延时消抖 键闭合? Y S1按下否? „ N „
N
键码值置0
N Y
键码值置0
键码值置1 „
S4按下否?
N 返回键码
Y
键码值置4
23
【例10-3】键盘为图10-8所示的独立式键盘,采用查询方
式对键盘的键值读取。参考程序如下:
#include<reg51.h> void main(void) { unsigned char keyvalue; do { P1=0xff; keyvalue=P1; keyvalue=~keyvalue;
case 64: „„;
break; case 128: „„; default: break; } } while(1) }
/*处理6号键*/
/*处理7号键*/ /*无按下键处理*/
26
(2)中断扫描方式的独立式键盘程序
为进一步提高扫描键盘工作效率,可采用中断扫描方式, 如图10-9。键盘只有在键盘有按键按下时,才进行处理,所 以实时性强,效率高。 当键盘中有按键按下时,74LS30的输出经过74LS04反相
后向单片机的中断请求输入引脚INT0*发出中断请求信号,
单片机响应中断,执行键盘扫描程序中断服务子程序,识别 出按下按键的键号,并跳向该按键的处理程序。
27
图10-9 独立式键盘的接口电路
28
【例10-4】键盘接口见图10-9,编写中断方式的独立式键
盘处理程序。程序如下。
#include<reg51.h>
24
switch(keyvalue)
{ case 1: „„; break; /*处理0号键*/
case 2: „„;
break; case 4: „„;
/*处理1号键*/
/*处理2号键*/
break;
case 8: „„; break; case 16: „„; break; case 32: „„; break; /*处理5号键*/ /*处理4号键*/ /*处理3号键*/
30
case 16: „„;
break; case 32: „„; break; case 64: „„; break; case 128: „„; default: break; } key_flag=0; } while(TRUE); }
/*处理4号键*/
/*处理5号键*/ /*处理6号键*/ /*处理7号键*/ /*无效按键,如多个键同时按下*/
36
uchar keyscan(void)
{ uchar code_h; uchar code_l;
/*键盘扫描函数*/
/*行扫描值*/ /*列扫描值*/
P1=0xf0;
if((P1&f0)!=0xf0) { delay( );
/*P1.0~P1.3输出都为0,准备读列状态*/
/*如果P1.4~P1.7不全为1,可能有键按下*/ /*延时去抖动*/ /* P1.0置为0,开始行扫描*/
初始:S接A,A=0,所以Q=1,/Q=0 A—B:A不稳定, /Q=0, Q=1,维持 接B点:由于B=0, Q=1, 所以/Q=1, Q=0,翻转
(B--A):由于 /Q=1, A=1所以Q=0,维持 接A点:A=0, Q=1,翻转
17
2014-10-16
第8章 接口技术基础
2) 软件消抖(重点) 软件消抖不需要增加硬件电路,而是在第一次 检测到按键按下后,执行一段延时程序(如 10~20ms),然后再次检测,确认该按键是否仍保持 闭合状态,如果是则认为是真正有按键按下,否则 认为是干扰,不预理会。这样就可以避开抖动,以 免发生误操作。
8
段码线占用一个8位I/O口,而位选控制使用一个I/O口的4位口
线。动态显示就是通过段码线向显示器(所有的)输出所要显 示字符的段码。每一时刻,只有一位位选线有效,其他各位都 无效。 与静态显示比,动态显示优点节省I/O口,显示器越多,优
势越明显。
缺点显示亮度不如静态显示的高,要调整好“扫描”速率 ,如果“扫描”速率较低,会出现闪烁现象。
if((P1&f0)!=0xf0) /*重读P1.4~P1.7,若还是不全为1,定有键按下*/
code_h=0xfe; while((code_h&0x10)!=0xf0); /*判断是否为最后一行,若不是,继续扫 描*/ { P1= code_h; if((P1&f0)!=0xf0); /*P1口输出行扫描值*/ /*如果P1.4~P1.7不全为1,该行有键按下*/
#include<absacc.h>
#define uchar unsigned char #define TRUE 1
#define FALSE 0
bit key_flage; uchar key_value;
void delay_10ms(void);
/*延时10ms函数*/
29
void main(void) { IE=0x81; IP=0x01; key_flag=0; /*设置中断标志为0*/ do{ if(key_flag) /*如果按键有效*/ { switch(key_value) /*根据按键分支*/ { case 1: „„; /*处理.0号键*/ break; case 2: „„; /*处理1号键*/ break; case 4: „„; /*处理2号键*/ break; case 8: „„; /*处理3号键*/ break;
相关文档
最新文档