51单片机C语言实验及实践教程_8.按键识别方法之一.docVIP

51单片机C语言实验及实践教程_8.按键识别方法之一.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51单片机C语言实验及实践教程_8.按键识别方法之一

51单片机C语言实验及实践教程_8.按键识别方法之一 发布: 2009-4-04 12:57?|??作者: 孙青安?|?? 查看: 88次 1. 实验任务 I/O并行口直接驱动LED显示 SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。电子园51单片机学习网-KCq?$dZf 2. 电路原理图 -DjG+R0[8`G4A41921 4.8.1 电子园51单片机学习网-J3hpP1\3D 3. 系统板上硬件连线 +o se*d_k41921 ?????? 把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上; *C2kNX NV7N6P41921 (2.?????? 把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。 4. 程序设计方法 电子园51单片机学习网u(wY%Ztv5H*C ?????? 其实,作为一个按键从没有按下到按下以及释放是一个完整的过程,也就是说,当我们按下一个按键时,总希望某个命令只执行一次,而在按键按下的 过程中,不要有干扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。因此在按键按下的时候,         图4.8.2电子园51单片机学习网m.j,g(EF)v sQ 从图中可以看出,我们在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域,我们再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平,若这时检测到的是高电平,证明刚才是由于干扰信号引起的误触发,CPU就认为是误触发信号而舍弃这次的按键识别过程。从而提高了系统的可靠性。电子园51单片机学习网:rU]#e,R:x:L 1D tzK vq41921 (1.?????? 对于按键识别的指令,我们依然选择如下指令JB BIT,REL指令是用来检测BIT是否为高电平,若BIT=1,则程序转向REL处执行程序,否则就继续向下执行程序。或者是 JNB BIT,REL指令是用来检测BIT是否为低电平,若BIT=0,则程序转向REL处执行程序,否则就继续向下执行程序。 (2.?????? 但对程序设计过程中按键识别过程的框图如右图所示:                  5. 程序框图 2I3| f |b)^[41921 ? 电子园51单片机学习网)z+k7n)^_g0s-eC ? 电子园51单片机学习网Lm?2FW ] m-^ ? 1_5Ger;mE,s J41921 ? |;bE h_,}1Z41921 ? 电子园51单片机学习网MeL$a-XB ? 电子园51单片机学习网I2Lv2LlfY;B6RM7d ?电子园51单片机学习网GKO2V+\]*[ ?电子园51单片机学习网;`$Q#L*LujE 汇编源程序 ORG 00H电子园51单片机学习网qJvgbSt7?m START: MOV R1,#00H ;初始化R7为0,表示从0开始计数 电子园51单片机学习网$n M0d/f V]#y MOV A,R1 ; 电子园51单片机学习网i Os:[R%n1`^ X CPL A ;取反指令 电子园51单片机学习网5H v3b/dY MOV P1,A ;送出P1端口由发光二极管显示 [ xF{i#Eo41921 REL: JNB P3.7,REL ;判断SP1是否按下 LCALL DELAY10MS ;若按下,则延时10ms左右 JNB P3.7,REL ;再判断SP1是否真得按下 INC R7 ;若真得按下,则进行按键处理,使 电子园51单片机学习网,_ Rf7kO MOV A,R7 ;计数内容加1,并送出P1端口由 电子园51单片机学习网*lt9Z!V1\ n j1E CPL A ;发光二极管显示 电子园51单片机学习网 X @*xo]*|S i-] MOV P1,A ; 电子园51单片机学习网$Ui?L{3H/t JNB P3.7,$ ;等待SP1释放 SJMP REL ;继续对K1按键扫描 DELAY10MS: MOV R6,#20 ;延时10ms子程序 L1:

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档