独立按键与矩阵键盘_第1页
独立按键与矩阵键盘_第2页
独立按键与矩阵键盘_第3页
独立按键与矩阵键盘_第4页
独立按键与矩阵键盘_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 非编码键盘非编码键盘按组成结构又可分为按组成结构又可分为独立式键盘独立式键盘和和矩阵式键盘矩阵式键盘。独立式键盘的工作过程与矩阵式键盘独立式键盘的工作过程与矩阵式键盘类似,无论是硬件结构还是软件设计都比较简单,。类似,无论是硬件结构还是软件设计都比较简单,。 通常,键盘有通常,键盘有编码编码和和非编码非编码两种。编码键盘通两种。编码键盘通过硬件电路产生被按按键的键码和一个选通脉冲。过硬件电路产生被按按键的键码和一个选通脉冲。选通脉冲可作为选通脉冲可作为CPU的中断请求信号。这种键盘使的中断请求信号。这种键盘使用方便,所需程序简单,但硬件电路复杂,常不被用方便,所需程序简单,但硬件电路复杂,常

2、不被单片机采用。单片机采用。 S1 S1S4S4S3S3S2S2 P1.4 P1.4 P1.5 P1.5 P1.6 P1.6 P1.7 P1.7 89S52 89S52+5V+5V图图8.1 独立式键盘接口独立式键盘接口特点:特点:每个按键占用一条每个按键占用一条I/OI/O线,当按键数量较多时,线,当按键数量较多时,I/OI/O口利用率不高,但程序编制简口利用率不高,但程序编制简单。适用于所需按键较少的场单。适用于所需按键较少的场合。合。特点:特点:电路连接复杂,但提电路连接复杂,但提高了高了I/OI/O口利用率,软件编程口利用率,软件编程较复杂。适用于需使用大量较复杂。适用于需使用大量按键

3、的场合。按键的场合。 89s5289s52P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4P1.4P1.5P1.5P1.6P1.6P1.7P1.7+5V+5V图图8.2 矩阵式键盘接口矩阵式键盘接口K99K10AK15FP10P11P12P13P14P15P16P17EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P26

4、27P2728PSEN29ALE/P30TXD11RXD10VCC40GND20U189S52P10P11P12P13P14P15P16P17K00K11K22K33K55K66K77K88K44K11BK12CK13DK14E 89s5289s52P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4P1.4P1.5P1.5P1.6P1.6P1.7P1.7+5V+5V图图8.2 矩阵式键盘接口矩阵式键盘接口 键盘接口的消抖键盘接口的消抖 1消除键抖动消除键抖动键稳定键按下前沿抖动前沿抖动图5.2 键合断时的电压抖动if语句语句if语句是语句是C51中的一个基本条件选择语句,

5、它通常中的一个基本条件选择语句,它通常有三种格式:有三种格式:(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【例】【例】 if语句的用法。语句的用法。(1)if (x!=y) printf(“x=%d,y=%dn”,x,y);执行上面语句时,如果执行上面语句时,如果x不等于不

6、等于y,则输出,则输出x的值和的值和y的值。的值。(2)if (xy) max=x;else max=y; 执行上面语句时,如执行上面语句时,如x大于大于y成立,则把成立,则把x送给最大值变送给最大值变量量max,如,如x大于大于y不成立,则把不成立,则把y送给最大值变量送给最大值变量max。使。使max变量得到变量得到x、y中的大数。中的大数。(3)if (score=90) printf(“Your result is an An”);else if (score=80) printf(“Your result is an Bn”);else if (score=70) printf(“Y

7、our result is an Cn”);else if (score=60) printf(“Your result is an Dn”);else printf(“Your result is an En”); 执行上面语句后,能够根据分数执行上面语句后,能够根据分数score分别打出分别打出A、B、C、D、E五个等级。五个等级。switch/case语句语句 if语句通过嵌套可以实现多分支结构,但结构复杂。语句通过嵌套可以实现多分支结构,但结构复杂。switch是是C51中提供的专门处理多分支结构的多分支中提供的专门处理多分支结构的多分支选择语句。它的格式如下:选择语句。它的格式如下:

8、switch (表达式)(表达式)case 常量表达式常量表达式1:语句语句1;break;case 常量表达式常量表达式2:语句语句2;break;case 常量表达式常量表达式n:语句语句n;break;default:语句语句n+1;说明如下:说明如下:(1)switch后面括号内的表达式,可以是整型或字符型表后面括号内的表达式,可以是整型或字符型表达式。达式。(2)当该表达式的值与某一当该表达式的值与某一“case”后面的常量表达式的值后面的常量表达式的值相等时,就执行该相等时,就执行该“case”后面的语句,然后遇到后面的语句,然后遇到break语句语句退出退出switch语句。若表

9、达式的值与所有语句。若表达式的值与所有case后的常量表达式后的常量表达式的值都不相同,则执行的值都不相同,则执行default后面的语句,然后退出后面的语句,然后退出switch结构。结构。(3)每一个每一个case常量表达式的值必须不同否则会出现自相常量表达式的值必须不同否则会出现自相矛盾的现象。矛盾的现象。(4)case语句和语句和default语句的出现次序对执行过程没有影语句的出现次序对执行过程没有影响。响。(5)每个每个case语句后面可以有语句后面可以有“break”,也可以没有。有,也可以没有。有break语句,执行到语句,执行到break则退出则退出switch结构,若没有,

10、则会结构,若没有,则会顺次执行后面的语句,直到遇到顺次执行后面的语句,直到遇到break或结束。或结束。【例】【例】 switch/case语句的用法。语句的用法。 对学生成绩划分为对学生成绩划分为AD,对应不同的百分制,对应不同的百分制分数,要求根据不同的等级打印出它的对应百分数。分数,要求根据不同的等级打印出它的对应百分数。可以通过下面的可以通过下面的switch/case语句实现。语句实现。switch(grade)case A;printf(”90100n”););break;case B;printf(”8090n”););break;case C;printf(”7080n”);)

11、;break;case D;printf(”6070n”););break;case E;printf(”y) max=x;else max=y; 执行上面语句时,如执行上面语句时,如x大于大于y成立,则把成立,则把x送给最大值变送给最大值变量量max,如,如x大于大于y不成立,则把不成立,则把y送给最大值变量送给最大值变量max。使。使max变量得到变量得到x、y中的大数。中的大数。(3)if (score=90) printf(“Your result is an An”);else if (score=80) printf(“Your result is an Bn”);else if

12、(score=70) printf(“Your result is an Cn”);else if (score=60) printf(“Your result is an Dn”);else printf(“Your result is an En”); 执行上面语句后,能够根据分数执行上面语句后,能够根据分数score分别打出分别打出A、B、C、D、E五个等级。五个等级。switch/case语句语句 if语句通过嵌套可以实现多分支结构,但结构复杂。语句通过嵌套可以实现多分支结构,但结构复杂。switch是是C51中提供的专门处理多分支结构的多分支中提供的专门处理多分支结构的多分支选择语句

13、。它的格式如下:选择语句。它的格式如下:switch (表达式)(表达式)case 常量表达式常量表达式1:语句语句1;break;case 常量表达式常量表达式2:语句语句2;break;case 常量表达式常量表达式n:语句语句n;break;default:语句语句n+1;说明如下:说明如下:(1)switch后面括号内的表达式,可以是整型或字符型表后面括号内的表达式,可以是整型或字符型表达式。达式。(2)当该表达式的值与某一当该表达式的值与某一“case”后面的常量表达式的值后面的常量表达式的值相等时,就执行该相等时,就执行该“case”后面的语句,然后遇到后面的语句,然后遇到brea

14、k语句语句退出退出switch语句。若表达式的值与所有语句。若表达式的值与所有case后的常量表达式后的常量表达式的值都不相同,则执行的值都不相同,则执行default后面的语句,然后退出后面的语句,然后退出switch结构。结构。(3)每一个每一个case常量表达式的值必须不同否则会出现自相常量表达式的值必须不同否则会出现自相矛盾的现象。矛盾的现象。(4)case语句和语句和default语句的出现次序对执行过程没有影语句的出现次序对执行过程没有影响。响。(5)每个每个case语句后面可以有语句后面可以有“break”,也可以没有。有,也可以没有。有break语句,执行到语句,执行到brea

15、k则退出则退出switch结构,若没有,则会结构,若没有,则会顺次执行后面的语句,直到遇到顺次执行后面的语句,直到遇到break或结束。或结束。(6)每一个每一个case语句后面可以带一个语句,也可以带多个语句后面可以带一个语句,也可以带多个语句,还可以不带。语句可以用花括号括起,也可以不括。语句,还可以不带。语句可以用花括号括起,也可以不括。(7)多个多个case可以共用一组执行语句。可以共用一组执行语句。【例】【例】 switch/case语句的用法。语句的用法。 对学生成绩划分为对学生成绩划分为AD,对应不同的百分制,对应不同的百分制分数,要求根据不同的等级打印出它的对应百分数。分数,要求根据不同的等级打印出它的对应百分数。可以通过下面的可以通过下面的switch/case语句实现。语句实现。switch(grade)case A;printf(”90100n”););break;case B;print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论