ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:23.44KB ,
资源ID:15164059      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15164059.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验一矩阵键盘检测Word格式.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验一矩阵键盘检测Word格式.docx

1、在单片机应用系统中,通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。此外,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能。因此,键信息输入是与软件构造密切相关的过程。对于一组键或一个键盘,通过接口电路与单片机相连。单片机可以采用查询或中断式了解有无按键输入并检查是哪一个按键按下,假设有键按下则跳至相应的键盘处理程序处去执行,假设无键按下则继续执行其他程序。 3、按键的特

2、点与去抖机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图1a所示,抖动时间的长短与开关的机械特性有关,一般为5 -10 ms。从图中可以看出,在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是屡次操作,这种情况是不允出现的。为了抑制按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两面予以考虑。一般来说,在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。本学习板采用软件去抖式。按键抖动状态图硬件电容去抖按键去抖流程图从按键的去抖流程图我们可以知道,检测到有键按

3、下时,应延时等待一段时间可调用一个5ms10ms的延迟子程序,然后再次判断按键是否被按下,假设此时判断按键仍被按下,则认为按键有效,假设此时判断按键没有被按下,说明为按键抖动或干扰,应返回重新判断。键盘真正被按下才可进展相应的处理程序,此时根本就算实现了按键输入,进一步的话可以判断按键是否释放。四、实验步骤上面的图的意思是P3.1P3.3 跟P3.4P3.7不一样的,他们是相互连接当按下键时,组成4*4=16个键的。如果给P3一个扫描初值的话:如0*0F ,则没有键按下时为:P3.1P3.3为1P3.4P3.7为0如果有键按下,则情况发生变化:高电平接入低电平:如P3.3与P3.7连接的键按下

4、,则P3.3与P3.7为0,即接地了。则P3此时为:0000 0111,这时如果用P3&0*0F,则高四位为0低四位保存,可以得到低四位的容了。通过去抖操作,即一个delay,可以得到低四位容。这里设为:h=P3&0*0F; 如果再得到高四位容,则可以组成一个数,来定位哪个键了。程序框图:P3=FFH,P3.0=0有键按下吗.延时10ms真得有键按下吗.根据当前状态识别按键P3=FFH,P3.1=0P3=FFH,P3.2=0P3=FFH,P3.3=0C语言源程序:*includesbit beep=P23;sbit dula=P26;sbit wela=P27; unsigned char i

5、=100;unsigned char j,k,temp,key;void delay(unsigned char i) for(j=i;j0;j-) for(k=125;kk-);Unsigned char code table=0*3f,0*06,0*5b,0*4f,0*66,0*6d,0*7d, 0*07,0*7f,0*6f,0*77,0*7c,0*39,0*5e,0*79,0*71;display(unsigned char num) P0=tablenum; dula=1; dula=0; P0=0*c0; wela=1; wela=0;void main() while(1) P3=

6、0*fe; temp=P3; temp=temp&0*f0; if(temp!=0*f0) delay(10); switch(temp) case 0*ee: key=0; break; case 0*de: key=1; case 0*be: key=2; case 0*7e: key=3; while(temp! beep=0; beep=1; display(key); P1=0*fe; P3=0*fd; case 0*ed: key=4; case 0*dd: key=5; case 0*bd: key=6; case 0*7d: key=7; P3=0*fb; case 0*eb:

7、 key=8; case 0*db: key=9; case 0*bb: key=10; case 0*7b: key=11; P3=0*f7; case 0*e7: key=12; case 0*d7: key=13; case 0*b7: key=14; case 0*77: key=15;汇编程序: dula bit P2.0;wela bit P2.1;KEYBUF EQU 30H ORG 00HSTART: MOV KEYBUF,*2WAIT: MOV P3,*0FFH CLR P3.4 MOV A,P3 ANL A,*0FH *RL A,*0FH JZ NOKEY1 LCALL D

8、ELY10MS CJNE A,*0EH,NK1 MOV KEYBUF,*0 mov p1,*11111110b LJMP DK1NK1: CJNE A,*0DH,NK2 MOV KEYBUF,*4 mov p1,*11111100bNK2: CJNE A,*0BH,NK3 MOV KEYBUF,*8 mov p1,*11111000bNK3: CJNE A,*07H,NK4 MOV KEYBUF,*12 mov p1,*11110000bNK4: NOPDK1: call displayDK1A: MOV A,P3 ;等待释放 JNZ DK1ANOKEY1: CLR P3.5 JZ NOKEY2 CJNE A,*0EH,NK5 MOV KEYBUF,*1 LJMP DK2NK5: CJNE A,*0DH,NK6 MOV KEYBUF,*5NK6: CJNE A,*0BH,NK7 MOV KEYBUF,*9NK7: CJNE A,*07H,NK8 MOV KEYBUF,*13NK8:DK2:DK2A:释放 JNZ DK2ANOKEY2: CLR P3.6 *RL A,*0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1