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

下载本文档

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

文档简介

1、键盘接口,键盘是单片机应用系统中使用最广泛的数据输入设备之一。键盘是按键的组合。钥匙通常是一个常开按钮开关。通常,按键的两个触点是打开的,当按键被按下时,它们是闭合的(短路)。非编码键盘根据其组成结构可分为独立键盘和矩阵键盘。独立键盘的工作过程与矩阵键盘相似,其硬件结构和软件设计相对简单。通常有两种键盘:编码键盘和非编码键盘。编码键盘通过硬件电路产生按键的键码和选通脉冲。该选通脉冲可用作中央处理器的中断请求信号。这种键盘使用方便,所需程序简单,但硬件电路复杂,所以单片机往往不使用。特点:每个键占用一条输入输出线。当密钥数量较大时,输入输出端口的利用率不高,但编程简单。它适用于按键较少的场合。特

2、点:电路连接复杂,但提高了输入输出端口的利用率,软件编程复杂。它适用于需要使用大量按键的场合。扫描法和行反转法,0123 eedebe 7 e 4567 eddbd 7d 89 abedbb 7 bcdefe 7 b 7b 777,通过键盘接口去抖1消除键抖动,if语句是C51中的基本条件选择语句,通常有三种格式:(1)if语句;(2)if (expression)语句1;Else语句2。(3)如果(表达式1)语句1;否则,如果(表达式2)(语句2;否则,如果(表达式3)(语句3;否则if(表达式n-1)(语句n-1;Else语句nnif语句的用法。(1)如果(x!=y)printf(“x=%

3、 d,y=%dn”,x,y);当执行上述语句时,如果x不等于y,则输出x和y的值。(2)如果(xy)最大值=x;否则max=y;当执行上述语句时,如果x大于y,则将x发送到max如果x大于y,将y发送到max。使最大变量在x和Y方向得到大数值.(3)如果(得分=90)打印f(“您的结果是一个安”);否则,如果(得分=80)打印f(“您的结果是Bn”);否则,如果(得分=70)打印f(“您的结果是Cn”);否则,如果(得分=60)打印f(“您的结果是Dn”);否则打印(“你的结果是一个恩”);执行上述语句后,您可以根据得分给a、b、c、d和e打分。switch/case语句,if语句可以通过嵌套

4、实现多分支结构,但结构复杂。开关是C51中提供的多分支选择语句,用于处理多分支结构。其格式如下:switch (expression) case常量表达式1:语句1;休息;Case常量表达式2:语句2;休息;Case常量表达式n:语句n;休息;默认值:语句n 1。描述如下:(1)1)开关后括号中的表达式可以是整数或字符表达式。(2)当表达式的值等于某个“case”后的常量表达式的值时,执行“case”后的语句,遇到break语句时退出switch语句。如果表达式的值不同于case之后所有常量表达式的值,则在默认后执行语句,然后退出开关结构。(3)每个事例常量表达式的值必须不同,否则会有自相矛盾

5、。(4)案件陈述和缺席陈述的发生顺序对执行过程没有影响。(5)每个案例陈述后面可以跟或不跟“break”。如果有一个break语句,当开关结构被执行中断时,它将退出。如果没有break语句,以下语句将按顺序执行,直到遇到break或结束。switch/case语句的用法。学生的成绩被分为平均成绩,这对应于不同的百分位分数。要求根据不同等级打印出相应的百分比。它可以通过以下开关/案例语句来实现。开关(等级)箱甲;printf(“90100n”);休息;案例二;printf(“8090n”);休息;案例三;printf(“7080n”);休息;案例D;printf(“6070n”);休息;案例E;

6、printf(“60n”);休息;违约;图8.3显示了Printf(“错误”n)、键盘控制流程以及单片机处理矩阵键盘接口的一般过程。,按键扫描,去抖,按键编码,等待释放,按键处理,图8.3键盘处理流程图,1。键扫描,键扫描是判断一个键是否被按下,然后当一个键被按下时进行下一步,否则退出键盘处理程序。独立键盘扫描只需要读取输入输出端口状态,而矩阵键盘跟踪通常有两种方法:逐行扫描法和行反转法。(1)渐进扫描法。从第一行到最后一行依次发出低电平信号。如果连接到行线的键没有被按下,连接到列线的端口得到所有“1”信号,如果键被按下,它得到不完整的“1”信号。0.111,1.111,1.011,1.110

7、,1.101,1.111,1.110,1.111,按下第二行第四列的键,行行输出,列行输入,0.111,1.111,1.110,1.101,1.111,1.111,1.11。线反转法也是识别闭合键的常用方法,它比线扫描更快,但在硬件中,线和列线需要外部上拉电阻。首先,以行线为输出线,以列线为输入线,从行线输出所有的“0”信号,读入列线的值,那么结束键所在的列线上的值必须为0;然后从列线输出所有“0”信号,然后读取行线的输入值,并且关闭键所在的行线的值必须为0。这样,当按下一个键时,必须读取一对唯一的行和列值。然后,可以从一对行和列值中获得结束键的位置。0 0 0 0 0,1 1 1 0,0 0

8、 0 0,1 0 1 1,按下第2行和第4列的键,列值为1110,行值为1011。由于按键时的机械动作,输出电压会在按键被按下或释放的瞬间波动,这称为按键抖动。2。去抖动,为了保证每次按键时单片机只处理一次,使键盘能够可靠工作,必须消除按键抖动。去抖动有两种方法:硬件去抖动和软件延迟。图8.5按键关闭和打开时的抖动。(1)硬件抖动消除方法:在键盘上增加抖动消除电路,从根本上消除抖动的可能性。右图所示的电路实际上是由R-S触发器组成的单脉冲电路。当按下按钮开关时,Q端输出低电平,当开关松开时,Q端返回高电平,即输出负脉冲,以消除抖动。图8.6硬件去抖动电路,(2)软件去抖动方法:按键时间与操作者

9、的按键动作有关,范围从十分之几到几秒。而按键振动时间与按键的机械特性有关,一般在510毫秒之间。软件防抖方法是利用延时(一般延时1020毫秒)来避免按键抖动,即在按键稳定闭合或断开时读出按键状态。图8.7软件防抖方法3延时间隔示意图。计算密钥代码,它是每个密钥的标识。键确定后,下一个任务是计算闭合键的键码,然后根据键码进行相应的操作。为了编程方便,键码通常按键的顺序排列,从左到右,从上到下。通过根据行号和列号查找表,或者通过计算,可以获得键码。我们将用例子来介绍它。4。等待释放,等待释放是为了确保钥匙只关闭一次。获取钥匙代码后,持续扫描钥匙。如果按键,继续扫描;否则,考虑释放密钥。5。按键处理

10、,根据系统功能要求,利用单片机控制完成具体操作。8.1.2键盘接口的控制方式,在单片机运行过程中扫描和处理键盘时,可有以下三种情况:1 .查询方式:单片机调用键盘扫描子程序查询按键是否被按下。2.定时扫描模式:定期执行键盘扫描子程序。3.中断模式:每当一个键被关闭,一个中断请求被发送到中央处理器,当服务被中断时,键盘扫描和处理被执行。5.1.2键盘接口和按键输入软件需要解决的几个问题1。消除键抖动,if语句if语句是C51中的一个基本条件选择语句,通常有三种格式:(1)if语句;(2)if (expression)语句1;Else语句2;(3)if(表达式1)语句1;否则,如果(表达式2)(语

11、句2;否则,如果(表达式3)(语句3;否则if(表达式n-1)(语句n-1;Else语句nnif语句的用法。(1)如果(x!=y)printf(“x=% d,y=%dn”,x,y);当执行上述语句时,如果x不等于y,则输出x和y的值。(2)如果(xy)最大值=x;否则max=y。当执行上述语句时,如果x大于y,则将x发送到max如果x大于y,将y发送到max。使最大变量在x和Y方向得到大数值.(3)如果(得分=90)打印f(“您的结果是一个安”);否则,如果(得分=80)打印f(“您的结果是Bn”);否则,如果(得分=70)打印f(“您的结果是Cn”);否则,如果(得分=60)打印f(“您的结

12、果是Dn”);否则打印(“你的结果是一个恩”);执行上述语句后,您可以根据得分给a、b、c、d和e打分。switch/case语句,if语句可以通过嵌套实现多分支结构,但结构复杂。开关是C51中提供的多分支选择语句,用于处理多分支结构。其格式如下:switch (expression) case常量表达式1:语句1;休息;Case常量表达式2:语句2;休息;Case常量表达式n:语句n;休息;默认:语句n1;描述如下:(1)1)开关后括号中的表达式可以是整数或字符表达式。(2)当表达式的值等于某个“case”后的常量表达式的值时,执行“case”后的语句,遇到break语句时退出switch语句。如果表达式的值不同于case之后所有常量表达式的值,则在默认后执行语句,然后退出开关结构。(3)每个事例常量表达式的值必须不同,否则会有自相矛盾。(4)案件陈述和缺席陈述的发生顺序对执行过程没有影响。(5)每个案例陈述后面可以跟或不跟“break”。如果有一个break语句,当开关结构被执行中断时,它将退出。如果没有break语句,以下语句将按顺序执行,直到遇到break或结束。(6)每个案例陈述后面可以有一个陈述、多个陈述或没有陈述。语句可以用花括号括起来,也可以不用花括号括起来。(7)多个案例可以共享一组执行语句。switch/case语

温馨提示

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

评论

0/150

提交评论