单片机键盘处理程序设计举例-设计应用_第1页
单片机键盘处理程序设计举例-设计应用_第2页
单片机键盘处理程序设计举例-设计应用_第3页
单片机键盘处理程序设计举例-设计应用_第4页
全文预览已结束

下载本文档

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

文档简介

精品文档-下载后可编辑单片机键盘处理程序设计举例-设计应用1、键盘与的连接

键盘连接

图3

单片机与键盘接口图

图4

2、通过1/0口连接。将每个按钮的一端接到单片机的I/O口,另一端接地,这是简单的办法,如图3所示是实验板上按钮的接法,四个按钮分别接到P3.2、P3.3、P3.4和P3.5。对于这种键各程序能采用持续查询的办法,功能就是:检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入对应的键处理。下面给出一个例程。其功能很简单,四个键定义如下:P3.2:开始,按此键则灯开始流动(由上而下)P3.3:停止,按此键则停止流动,所有灯为暗P3.4:上,按此键则灯由上向下流动P3.5:下,按此键则灯由下向上流动UpDownEQU00H;上下行标志StartEndEQU01H;起动及停止标志LAMPCODEEQU21H;存放流动的数据代码

以下程序功能很简单,但它演示了一个单片机程序的基本思路,程序本身很简单,也不很实用,实际工作中还会有好多要考虑的因素,比如主循环每次都调用灯的循环程序,会造成按钮反应“迟钝”,而如果一直按着键不放,则灯不会再流动,一直要到松开手为止,等等,大家能仔细考虑一下这些问题,再想想有什么好的解决办法。ORG0000HAJMPMAINORG30HMAIN:MOVSP,#5FHMOVP1,#0FFHCLRUpDown;启动时处于向上的状态CLRStartEnd;启动时处于停止状态MOVLAMPCODE,#0FEH;单灯流动的代码LOOP:ACALLKEY;调用键盘程序JNBF0,LNEXT;如果无键按下,则继续ACALLKEYPROC;不然调用键盘处理程序LNEXT:ACALLLAMP;调用灯显示程序AJMPLOOP;反复循环,主程序到此结束DELAY:MOVR7,#100D1:MOVR6,#100DJNZR6,$DJNZR7,D1RET;延时程序,键盘处理中调用

KEYPROC:MOVA,B;从B寄存器中获取键值JBACC.2,KeyStart;分析键的代码,某位被按下,则该位为1(因为在键盘程序中已取反)JBACC.3,KeyOverJBACC.4,KeyUpJBACC.5,KeyDownAJMPKEY_RETKeyStart:SETBStartEnd;个键按下后的处理AJMPKEY_RETKeyOver:CLRStartEnd;第二个键按下后的处理AJMPKEY_RETKeyUp:SETBUpDown;第三个键按下后的处理AJMPKEY_RETKeyDown:CLRUpDown;第四个键按下后的处理KEY_RET:RETKEY:CLRF0;清F0,表示无键按下。ORLP3,#00111100B;将P3口的接有键的四位置1MOVA,P3;取P3的值ORLA,#11000011B;将其余4位置1CPLA;取反JZK_RET;如果为0则一定无键按下ACALLDELAY;不然延时去键抖ORLP3,#00111100BMOVA,P3ORLA,#11000011BCPLAJZK_RETMOVB,A;确实有键按下,将键值存入B中SETBF0;设置有键按下的标志K_RET:ORLP3,#00111100B;此处循环等待键的释放MOVA,P3ORLA,#11000011BCPLAJZK_RET1;直到读取的数据取反后为0说明键释放了,才从键盘处理程序中返回AJMPK_RETK_RET1:RETD500MS:;流水灯的延迟时间PUSHPSWSETBRS0MOVR7,#200D51:MOVR6,#250D52:NOPNOPNOPNOPDJNZR6,D52DJNZR7,D51POPPSWRETLAMP:JBStartEnd,LampStart;如果StartEnd=1,则启动MOVP1,#0FFHAJMPLAMPRET;不然关闭所有显示,返回LampStart:JBUpDown,LAMPUP;如果UpDown=1,则向上流动MOVA,LAMPCODERLA;实际就是左移位而已MOVLAMPCODE,AMOVP1,ALCALLD500MSAJMPLAMPRETLAMPUP:MOVA,LAMPCODERRA;向下流动实际就是右移MOVLAMPCODE,AMOVP1,ALCALLD500MSLAMPRET:RETEND以上程序功能很简单,但它演示了一个单片机键盘处理程序的基本思路,程序本身很简单,也不很实用,实际工作中还

温馨提示

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

评论

0/150

提交评论