项目三矩阵式键盘的设计与调试ppt课件_第1页
项目三矩阵式键盘的设计与调试ppt课件_第2页
项目三矩阵式键盘的设计与调试ppt课件_第3页
项目三矩阵式键盘的设计与调试ppt课件_第4页
项目三矩阵式键盘的设计与调试ppt课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用,项目一 矩阵式键盘设计与调试,任务一 矩阵式键盘设计与调试,思维导图,任务一,学会矩阵键盘的电路设计及程序编写、调试,掌握抖动干扰的滤除方法,情境导入,在生活中,一些产品按键数量较多,比如电话、计算器、密码锁等,由于使用独立按键会占用较多的I/O口,因此一般使用矩阵式键盘。,任务描述,1.使用4*4矩阵键盘,然后将按键的键码显示在静态数码管显示的最低位上,显示的内容编码为“0-F”,2.掌握抖动干扰的滤除方法,知识准备,按键的相关知识,1. 按键的分类,一般来说,按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键(如本学习板上所采用按键),按键按照接口原理又可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的识别。,全编码键盘由专门的芯片实现识键及输出相应的编码,一般还具有去抖动和多键、窜键等保护电路,这种键盘使用方便,硬件开销大,一般的小型嵌入式应用系统较少采用。非编码键盘按连接方式可分为独立式和矩阵式两种,其它工作都主要由软件完成。由于其经济实用,较多地应用于单片机系统中(本学习板也采用非编码键盘)。,知识准备,2. 按键的输入原理,在单片机应用系统中,通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。此外,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能。因此,键信息输入是与软件结构密切相关的过程。 对于一组键或一个键盘,通过接口电路与单片机相连。单片机可以采用查询或中断方式了解有无按键输入并检查是哪一个按键按下,若有键按下则跳至相应的键盘处理程序处去执行,若无键按下则继续执行其他程序。,知识准备,3. 按键的特点与去抖,机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图(a) 所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms。从图中可以看出,在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。一般来说,在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。( 本学习板采用软件去抖方式)。 软件去抖的流程图如图(b) 所示。,知识准备,检测到有键按下时,应延时等待一段时间(可调用一个5ms10ms的延迟子程序),然后再次判断按键是否被按下,若此时判断按键仍被按下,则认为按键有效,若此时判断按键没有被按下,说明为按键抖动或干扰,应返回重新判断。键盘真正被按下才可进行相应的处理程序,此时基本就算实现了按键输入,进一步的话可以判断按键是否释放。,知识准备,电路原理图,任务处理,单片机最小应用系统1的P0口接段码口ah,P1口接位码口S1S6, 矩阵键盘接P3口,1.单片机P0输出段码,P1口输出位控码。,2.打开Keil uVision2仿真软件,首先建立本实验的项目文件,根据项目要求编写项目源程序,进行编译,直到编译无误。,3.进行软件设置,生成HEX文件。,4.利用下载器将程序下载到单片机中, 并上电观察程序结果是否正确,任务处理,参考程序: /*/ /* 数码管显示按键键值*/ /*/ #include #define uchar unsigned char #define key P3 unsigned char code dm=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /段码0-F,uchar keynum,/* 延时程序*/ void delay(uchar ms) 略 void scankey() /按键子程序 uchar temp; /定义缓存变量 key=0xf0; if(key!=0xf0) /判断是否有键按下 delay(10); /延时10ms,消抖 if(key!=0xf0) /再判断一次,任务处理, temp=key,任务处理,default :break; /消除干扰 while(key!=0x0f); /等待按键松开 /*主程序*/ void main() keynum=0; while(1) scankey(); /调用按键子程序 P0=dmkeynum%10; /传送数码管段码 P1=0x01; /传送数码管位码 ,同步训练,用三位数码管显示数据,初始值为000,在此

温馨提示

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

评论

0/150

提交评论