独立键盘和矩阵键盘 文档资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘接口
键盘是单片机应用系统中使用最广泛的一种 数据输入设备。键盘是一组按键的组合。键通常 是一种常开型按钮开关,常态下键的两个触点处 于断开状态,按下键时它们才闭合(短路)。
通常,键盘有 编码和非编码两种。编码键盘通 过硬件电路产生被按按键的键码和一个选通脉冲。 选通脉冲可作为 CPU的中断请求信号。这种键盘使 用方便,所需程序简单,但硬件电路复杂,常不被 单片机采用。
(3)if (score>=90) printf(“Your result is an A \n”); else if (score>=80) printf(“Your result is an B \n”); else if (score>=70) printf(“Your result is an C \n”); else if (score>=60) printf(“Your result is an D \n”); else printf(“Your result is an E \n”);
【例】 if语句的用法。 (1)if (x!=y) printf(“x=%d,y=%d \n”,x,y); 执行上面语句时,如果x不等于y,则输出x的值和y的值。 (2)if (x>y) max=x;
else max=y; 执行上面语句时,如x大于y成立,则把x送给最大值变
量max ,如x大于y不成立,则把y送给最大值变量max 。使 max 变量得到x、y中的大数。
P16
3 7 B F
P17
? 扫描法 和线反转法
+5V
89s52
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
图8.2 矩阵式键盘接口
?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
键盘接口的消抖
执行上面语句后,能够根据分数score 分别打出A、B、 C、D、E五个等级。
switch/case 语句
if 语句通过嵌套可以实现多分支结构,但结构复杂。 switch 是C51中提供的专门处理多分支结构的多分支 选择语句。它的格式如下:
switch (表达式) {case 常量表达式1:{语句1;}break ; case 常量表达式2:{语句2;}break ; …… case 常量表达式n:{语句n;}break ; default :{语句n+1;}
P27
21 22
23 24 25 26 27 28
X1 X2
RESET
RD WR
VCC GND RXD TXD ALE/P
PSEN
40 20 10 11 30
29
K0
P10
K4
P11
P12K8
P13K12
0 K1 4 K5 8 K9 C K13
P14
1 K2 5 K6 9 K10 D K14
P15
2 K3 6 K7 A K11 E K15
说明如下: (1)switch 后面括号内的表达式,可以是整型或字符型表 达式。 (2)当该表达式的值与某一“ case”后面的常量表达式的 值相等时,就执行该“case”后面的语句,然后遇到break 语 句退出switch 语句。若表达式的值与所有case 后的常量表达 式的值都不相同,则执行default 后面的语句,然后退出
+5V
图8.1 独立式键盘接口
特点:每个按键占用一条I/O 线,当按键数量较多时,I/O 口利用率不高,但程序编制简 单。适用于所需按键较少的场 合。
图8.2 矩阵式键盘接口
特点:电路连接复杂,但提 高了I/O 口利用率,软件编程 较复杂。适用于需使用大量 按键的场合。
U1
P10 1 P11 2 P12 3 P13 4 P14 5
P15 6 P16 7 P17 8
P10 P11 P12 P13
P14 P15
P16 P17
P00 P01 P02 P03
P04 P05
P06 P07
39 38 37 36 35
34 33 32
13 12
15 14
31
19 18
9
17 16
INT1 INT0
TT0189S52
EA/VP
P20
P21 P22 P23 P24 P25 P26
switch 结构。 (3)每一个case 常量表达式的值必须不同否则会出现自相
矛盾的现象。 (4)case 语句和default 语句的出现次序对执行过程没有影
响。 (5)每个case 语句后面可以有“break”,也可以没有。有
break 语句,执行到break 则退出switch 结构,若没有,则会 顺次执行后面的语句,直到遇到break 或结束。
1.消除键抖动
键按下
键稳定
前沿抖动
前沿抖动
图5.2 键合断时的电压抖动
if 语句 if 语句是C51中的一个基本条件选择语句,它通常 有三种格式: (1)if (表达式) {语句;} (2)if (表达式) {语句1;} else { 语句2;} (3)if (表达式1) {语句1;} else if (表达式2) (语句2;) else if (表达式3) (语句3;) …… else if (表达式n-1) (语句n-1;) else { 语句n}
【例】 switch/case 语句的用法。 对学生成绩划分为A~D,对应不同的百分制
分数,要求根据不同的等级打印出它的对应百分数。 可以通过下面的switch/case 语句实现。
…… switch (grade )
{ case ‘A;' printf (”90~100\n”);break ; case ‘B;' printf (”80~90\n”);break ; case ‘C;' printf (”70~80\n”);break ; case ‘D;' printf (”60~70\n”);break ; case ‘E;' printf (”<60\n”);break ; default ;printf (”error”\n)
非编码键盘按组成结构又可分为 独立式键盘 和 矩阵式键盘 。独立式键盘的工作过程与矩阵式键盘 类似,无论是硬件结构还是软件设计都比较简单,。
P1.4 P1.5 P1.6 P1.7
89S52
+5V
S1 S2 S3 S4
89s52
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
键盘是单片机应用系统中使用最广泛的一种 数据输入设备。键盘是一组按键的组合。键通常 是一种常开型按钮开关,常态下键的两个触点处 于断开状态,按下键时它们才闭合(短路)。
通常,键盘有 编码和非编码两种。编码键盘通 过硬件电路产生被按按键的键码和一个选通脉冲。 选通脉冲可作为 CPU的中断请求信号。这种键盘使 用方便,所需程序简单,但硬件电路复杂,常不被 单片机采用。
(3)if (score>=90) printf(“Your result is an A \n”); else if (score>=80) printf(“Your result is an B \n”); else if (score>=70) printf(“Your result is an C \n”); else if (score>=60) printf(“Your result is an D \n”); else printf(“Your result is an E \n”);
【例】 if语句的用法。 (1)if (x!=y) printf(“x=%d,y=%d \n”,x,y); 执行上面语句时,如果x不等于y,则输出x的值和y的值。 (2)if (x>y) max=x;
else max=y; 执行上面语句时,如x大于y成立,则把x送给最大值变
量max ,如x大于y不成立,则把y送给最大值变量max 。使 max 变量得到x、y中的大数。
P16
3 7 B F
P17
? 扫描法 和线反转法
+5V
89s52
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
图8.2 矩阵式键盘接口
?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
键盘接口的消抖
执行上面语句后,能够根据分数score 分别打出A、B、 C、D、E五个等级。
switch/case 语句
if 语句通过嵌套可以实现多分支结构,但结构复杂。 switch 是C51中提供的专门处理多分支结构的多分支 选择语句。它的格式如下:
switch (表达式) {case 常量表达式1:{语句1;}break ; case 常量表达式2:{语句2;}break ; …… case 常量表达式n:{语句n;}break ; default :{语句n+1;}
P27
21 22
23 24 25 26 27 28
X1 X2
RESET
RD WR
VCC GND RXD TXD ALE/P
PSEN
40 20 10 11 30
29
K0
P10
K4
P11
P12K8
P13K12
0 K1 4 K5 8 K9 C K13
P14
1 K2 5 K6 9 K10 D K14
P15
2 K3 6 K7 A K11 E K15
说明如下: (1)switch 后面括号内的表达式,可以是整型或字符型表 达式。 (2)当该表达式的值与某一“ case”后面的常量表达式的 值相等时,就执行该“case”后面的语句,然后遇到break 语 句退出switch 语句。若表达式的值与所有case 后的常量表达 式的值都不相同,则执行default 后面的语句,然后退出
+5V
图8.1 独立式键盘接口
特点:每个按键占用一条I/O 线,当按键数量较多时,I/O 口利用率不高,但程序编制简 单。适用于所需按键较少的场 合。
图8.2 矩阵式键盘接口
特点:电路连接复杂,但提 高了I/O 口利用率,软件编程 较复杂。适用于需使用大量 按键的场合。
U1
P10 1 P11 2 P12 3 P13 4 P14 5
P15 6 P16 7 P17 8
P10 P11 P12 P13
P14 P15
P16 P17
P00 P01 P02 P03
P04 P05
P06 P07
39 38 37 36 35
34 33 32
13 12
15 14
31
19 18
9
17 16
INT1 INT0
TT0189S52
EA/VP
P20
P21 P22 P23 P24 P25 P26
switch 结构。 (3)每一个case 常量表达式的值必须不同否则会出现自相
矛盾的现象。 (4)case 语句和default 语句的出现次序对执行过程没有影
响。 (5)每个case 语句后面可以有“break”,也可以没有。有
break 语句,执行到break 则退出switch 结构,若没有,则会 顺次执行后面的语句,直到遇到break 或结束。
1.消除键抖动
键按下
键稳定
前沿抖动
前沿抖动
图5.2 键合断时的电压抖动
if 语句 if 语句是C51中的一个基本条件选择语句,它通常 有三种格式: (1)if (表达式) {语句;} (2)if (表达式) {语句1;} else { 语句2;} (3)if (表达式1) {语句1;} else if (表达式2) (语句2;) else if (表达式3) (语句3;) …… else if (表达式n-1) (语句n-1;) else { 语句n}
【例】 switch/case 语句的用法。 对学生成绩划分为A~D,对应不同的百分制
分数,要求根据不同的等级打印出它的对应百分数。 可以通过下面的switch/case 语句实现。
…… switch (grade )
{ case ‘A;' printf (”90~100\n”);break ; case ‘B;' printf (”80~90\n”);break ; case ‘C;' printf (”70~80\n”);break ; case ‘D;' printf (”60~70\n”);break ; case ‘E;' printf (”<60\n”);break ; default ;printf (”error”\n)
非编码键盘按组成结构又可分为 独立式键盘 和 矩阵式键盘 。独立式键盘的工作过程与矩阵式键盘 类似,无论是硬件结构还是软件设计都比较简单,。
P1.4 P1.5 P1.6 P1.7
89S52
+5V
S1 S2 S3 S4
89s52
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7