- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
扫描键盘(第九章)
第九章 MCS-51单片机与键盘、显示器(LED)的接口
9.1 MCS-51单片机与键盘的接口
9.1.1 键盘的工作原理及消抖方法
按纽在按下和松开的瞬间(10ms内),都会产生电平的快速波动(抖动)。见P212的图9-1。
1. 硬件消抖:添加电路。
①采用双稳态的RS触发器(见P213的图9-2),但需使用三个接点的按键。
②采用RC积分电路(见P213的图9-3)。
2. 软件消抖:
当检测到有电平变化时,延时一段时间(10ms),跳过电平的抖动,再进行识别处理。
在单片机的应用中都是使用软件消抖的方法,不添加电路。
扳键式开关
9.1.2 扳键开关、拨盘开关与单片机的接口
扳键开关和拨盘开关一般用在不太需变换状态的输入位识别中,最终变为另一稳定状态,一般不需消抖。
常见的接口电路有:
1. 直接P口输入
①单个扳键开关
例:针对下图电路编程实现:
当K闭合,LED持续闪动(每200ms一次);当K断开则关闭LED。
设:Delay300为延时300ms的子程序。
K EQU P1.1
Main: SETB K ;P口作为输入的位,在测试前必须先置为“1”。
JB K,LB ;测试开关的电平,为“1”则转移到LB。
LA: SETB P1.0 ;输出高电平,闪亮 LED
LCALL Delay200 ;延时200ms P1.0
CLR P1.0 ;输出低电平,闪灭 +5V
LCALL Delay200 ; 延时200ms 8051
LJMP Main ;循环测试开关 R
LB: CLR P1.0 ;输出低电平,熄灭 K
SJMP Main ;循环测试开关 P1.1
②多个拨盘开关(排键) +5V
多个拨盘开关一般用于静态
的状态位输入,在程序的初始 8051
段中识别。 P1.0
对应的控制程序: P1.1
MOV P1,#0FFH P1.2
MOV A,P1 P1.3
P1.4
P1.5
P1.6
P1.7
2. 扩展I/O口输入 +5V
P0.0 1Y1 1A1
P0.1 1Y2 1A2
P0.2 1Y3 1A3
P0.3 1Y4 1A4
P0.4 2Y1 2A1
P0.5 2Y2 2A2
P0.6 2Y3 2A3
P0.7 2Y4 2A4
ALE 1EN
P2.7 2EN
RD
OR 74LS244
对应的控制程序:
MOV DPTR,#7FFFH
MOVX A,@DPTR
按纽式按键
按钮式按键在按下和松开的瞬间会产生电位的抖动,识别的软件需加以处理,运行的结果才不会异常。
9.1.3 独立式键盘接口设计
+5V
8051
文档评论(0)