矩阵键盘.ppt_第1页
矩阵键盘.ppt_第2页
矩阵键盘.ppt_第3页
矩阵键盘.ppt_第4页
矩阵键盘.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、键盘接口、键盘是单片机应用系统中使用最广泛的数据输入设备。 键盘是一系列按键的组合。 键通常是常开型的按钮开关,常开键的2个接点处于打开状态,按键时闭合(短路)。 未编码的键盘根据配置结构分为独立键盘和矩阵键盘。 独立键盘与矩阵键盘相似,硬件配置和软件设置修订都很简单。 键盘通常有两种类型:编码和非编码。 编码键盘生成经由硬件电路按下键的键码和门脉冲。 选通脉冲可作为CPU的中断请求信号使用。 此键盘易于使用,所需程序简单,但硬件电路复杂,往往不适用于单片机。 特点:每个按钮占用一条I/O线,按钮数多时,I/O端口利用率不高,但程序编制简单。 适用于需要的按钮少的情况。 特点:电路连接复杂,但

2、I/O端口利用率提高,软件编程复杂。 适用于需要大量按钮的情况。扫描法和线反转法、0123 ee debe7e 4567 eddd BD7d 89 abeb dbb7bcdefe7d7b 777、键盘接口抖动1消除抖动。 if语句if语句是C51的基本条件选择语句,通常有三种格式。 (1) (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)国际货币基金组织!=y) print

3、f(“x=%d,y=%dn”,x,y ) :执行上述语句时,如果x不等于y,则输出x的值和y的值。 (2)最大频率=最大频率=y; 执行上述语句时,如果x大于y,则将x发送给最大值变量max,如果x大于y,则将y发送给最大值变量max。 在max变量中求出x、y的数量。 (3) if (比例=90 )打印机(“有效性”)。 else if打印机(比例=80 )。 else if (比例=70 )打印机(有效性)。 else if (比例=60 )打印机(有效)。 else printf(“Your result is an En”) :执行上述语句,可以根据得分score分别打开a、b、c、d

4、、e五个类。 switch/case和if语句可以通过嵌套实现多分支结构,但结构很复杂。 switch是专门处理C51提供的多分支结构的多分支选择语句。 switch (式) case常数式1 :句子1 break; case常数式2 :句子2 break; case常数式n :句子n; 中断; 默认:语句n 1; 中的组合图层性质变更选项。 (1)switch后括号内的表达式可以是整数类型或字符类型的表达式。 (2)如果该等式的值等于在某个“case”之后的常数等式的值,则执行在该“case”之后的语句,遇到break语句,并结束switch语句。 如果表达式的值与所有case后面的常量表达

5、式的值不同,则执行default后面的语句以退出交换机结构。 (3)各个case常数式的值必须不同。 不那样做会产生矛盾的现象。 (4)case语句和default语句的出现顺序不影响执行过程。 (5)各case语句后面可以有“break”,也可以没有“break”。 如果有break语句,执行到break将退出switch结构,否则将按顺序执行下一个语句,直到找到break或退出。 【例】switch/case语句的使用方法。 把学生的成绩分成AD,对应不同的百分制分数,要求根据不同的等级打印其对应的百分比。 可以使用以下switch/case语句实现: 交换机(接地)壳体a; printf

6、(”90100n”); 中断; 情况b; printf(”8090n”); 中断; 情况c; printf(”7080n”); 中断; 情况d; printf(”6070n”); 中断; 情况e; printf(”60n”); 中断; 默认值; printf(”error”n )、键盘控制流程、单片机的矩阵键盘接口处理的一般过程如图8.3所示。、键扫描、消除手抖,求出键码,等待释放,按键处理,图8.3键盘处理流程图,1 .键扫描、键扫描判断有无按下键,在有按下键之前进行扫描后进行下面的处理,否则按键独立键盘扫描只能读取IO端口的状态,而矩阵键盘扫描通常有逐行扫描法和行反转法两种实现方法。 (1

7、)顺序扫描法。 从最初到最后的行线开始依次输出低电平的信号,如果连接有该行线的键没有被按下,则连接有列线的端口全部得到“1”的信号,如果按下键,则非全部得到“1”的信号。011、111、101、110、110、111、1110、1111、以及第二行和第四列的键按压、行输出、列输入、0111、111,和一种识别闭合键的普通方法首先,将行线作为输出线,将列线作为输入线,行线全部输出“0”的信号,如果读取列线的值,则具有闭合键的列线的值必定为0。 然后从列线全部输出“0”信号,如果读取行线的输入值,则有闭合键的行线的值必定为0。 因此,若按下一个键,则必定能够读出一对唯一的矩阵值。 进而可以根据这一

8、对矩阵值求出有关键字的位置。0000、1110、0000、101、第2行第4列键按下、列值: 1110、行值: 1011,通过键按下时的机械动作,在键按下或释放的瞬间,其输出电压发生变动,2 .消除抖动,获得单片键抖动方法有硬件抖动和软件延迟2种。 图8.5键开关时的抖动,(1)硬件抖动法:在键盘上附加抖动电路,从根本上消除抖动发生的可能性。 右图所示的电路实际上是由R-S触发器构成的单脉冲电路。 当按下按钮开关时,q端子输出低电平,当开关被释放时,q端子变为高电平,即通过输出负脉冲来消除抖动。 图8.6硬件数字电路,(2)软件数字法:按键时间关系到操作者的按键动作,约为10分钟数到数秒。 另

9、一方面,密钥的抖动时间与密钥的机械特性有关,一般为510ms。 软件抖动方法是采用延迟(一般延迟为1020ms )以避免密钥抖动的方法,其在密钥稳定地关闭或打开时才读出该状态。 图8.7软件抖动方法的延迟区间示意图,3 .用于校正密钥代码的密钥代码是各密钥的识别。 键确定后,下一个工作是修正关闭键的键码,然后根据键码进行对应的操作。 为了便于编程,键码通常按键的排列顺序排列,从左到右、从上到下的顺序排列。 键码可以根据行号列号在查找表中求出,也可以通过修正运算求出。 结合实例进行介绍。 4 .等待释放,等待释放只处理一次,以确保一次关闭密钥。 求出键码后,继续键扫描,如果有键按下则继续扫描,否

10、则视为释放键。 5 .按键处理根据系统功能的要求,在单片机控制下完成特定操作。8.1.2键盘接口的控制方式、单片机在运行中,何时进行键盘扫描和处理,有以下三种情况:1.查询方式:单片机调用键盘扫描子程序2 .定时扫描方式:每隔一定时间执行键盘扫描子程序。 3 .中断方式:每次关闭键时向CPU发出中断请求,每次中断服务时进行键盘扫描和处理。5.1.2键盘接口和键盘输入软件需要解决的一些问题1消除键抖动。 if语句if语句是C51的基本条件选择语句,通常是(1)if (式)语句(2)if (表达式)语句1 else语句2; (3)if (表达式1 )句子1 else if (表达式2 ) (句子2

11、; else if (表达式3 ) (句子3; else if (表达式n-1 ) (句子n-1; else语句n,【例】if语句的使用方法。 (1)国际货币基金组织!=y) printf(“x=%d,y=%dn”,x,y ) :执行上述语句时,如果x不等于y,则输出x的值和y的值。 (2)最大频率=最大频率=y; 执行上述语句时,如果x大于y,则将x发送给最大值变量max,如果x大于y,则将y发送给最大值变量max。 在max变量中求出x、y的数量。 (3) if (比例=90 )打印机(“有效性”)。 else if打印机(比例=80 )。 else if (比例=70 )打印机(有效性)

12、。 else if (比例=60 )打印机(有效)。 else printf(“Your result is an En”) :执行上述语句,可以根据得分score分别打开a、b、c、d、e五个类。 switch/case和if语句可以通过嵌套实现多分支结构,但结构很复杂。 switch是专门处理C51提供的多分支结构的多分支选择语句。 switch (式) case常数式1 :句子1 break; case常数式2 :句子2 break; case常数式n :句子n; 中断; 默认:语句n 1; 中的组合图层性质变更选项。 (1)switch后括号内的表达式可以是整数类型或字符类型的表达式。

13、 (2)如果该等式的值等于在某个“case”之后的常数等式的值,则执行在该“case”之后的语句,遇到break语句,并结束switch语句。 如果表达式的值与所有case后面的常量表达式的值不同,则执行default后面的语句以退出交换机结构。 (3)各个case常数式的值必须不同。 不那样做会产生矛盾的现象。 (4)case语句和default语句的出现顺序不影响执行过程。 (5)各case语句后面可以有“break”,也可以没有“break”。 如果有break语句,执行到break将退出switch结构,否则将按顺序执行下一个语句,直到找到break或退出。 (6)各case句后可以有一个句子,也可以有多个句子,也可以不有。 语句可以用大括号括起来,也可以不括起来。 (7)多个case可以共享一组执行语句。 【例】switch/case语句的使用方法。 把学生的成绩分成AD,对

温馨提示

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

评论

0/150

提交评论