下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、从单片机初学者迈向单片机工程师KEY篇第一章按键程序编写的基础从这一章开始.我们步入按键程序设计的殿堂。在基丁单片机为核心构成的应用系统中用户输入是必不可少的i部分。输入可以分很篡种情况.辔如仃的系统支持PS2键盘的接口.有的系统输入足基于編码器仃的系统输入冬基于串口或者USB或者其它输入通道等等.各种输入途径中.更常见的足基单个按键或者由单个键盘按照一定卅列构成的矩阵键盘(行列犍盘)。我们这一篇总主耍讨论的对彖就是基丁单个按键的程序设计.以及矩阵犍盘的程序編写。按键检测的原理常见的砂立按键的外观如下.相信大家并不陌生各种常见的开发板学习板上髓处可以看到他们的身彫。总共有四个引脚.-般情况下.
2、处丁同一边的卿个引脚内部是连接在一起的.如何分辨淅个引曲是否处在同一边呢?可以将按键翻转过來.处丁同一边的两个引脚.有一条突起的线将他们连接一起.以标示它们俩足相连的。如果无法观察得到.用数字万用表的二极管挡位检测一下即可。搞清姥这点卄常亟耍对丁我们刑iPCB的时候的封装很有益.它们和我们的单片机系统的I/O口连接一般如下:U1VCC123456781312P10P11P12P13P14P15P16P17INT1INTO对丁单片机I/O内部有上拉电阳的微控制器而言,还可以省掉外部的那个上拉电阻。简单分析一下按键检测的廉理当按键没有按下的时候.单片机I/O通过上拉电阻R接到VCC.我们在程序中读
3、取该I/O的电平的时候,其值为1(高电平);当按键S按下的时候,该I/O被短接到GND.在程序中读取该I/O的电平的时候.英值为0(低电半)。这样.按键的按下与否.就和与该按键相连的I/O的电平的变化相对应起来结论:我们在程序中通过检测到議0口电平的变化与否,即町以知道按傩是否被按下,从而做出郴应的响強。一切看起來很美好.是这样的吗?现实并非理想在我们通过上面的按键检测原理得岀上述的结论的时候其实忽略了一个廉婴的何题.那就足现实中按键按下时候的电平变化状态.我们的结论足基于理想的情况得出来的,就如同下面这幅按键按下时候对应电平变化的波形图一样:而实际中山按键的弹片接他的时候并不是一接触就紧紧的
4、闭合.它还存在一定的抖动尽管这个时间仆:常的短餌.但是对我们执行时何以g为计笄单位的微控制器來说.它太漫长了因而实际的波形图应该如下面这帽示总图一样。这样便在这样一个问題.假设我们的系统有这样功能需求:在检测到按键按下的时攸.将某个I/O的状态取反。由丁这种1动的在便得我们的微控制器谋以为是多次按键的按下.从而将葉个I/O的状态不断取反这并不是我们惣耍的效果假如该I0控制右系统中某个敢耍的执行的部件那结蝌更不是我们所期待的。丁是乎冇人便捉出了软件消除抖动的思想.道理很简单:抖动的时间长度是一定的.只耍我们避开这段抖动时期.检测稳运的时候的电平不久可以了吗?听起來确实不错.而且实际应用起來效果也
5、还可以.r是.冬种备样的h韬中.在捉到按键检测的时攸总也不忘说道软件消抖。就像f面的伪代码所描述的一样。(假设按键按下时候低电平有效)If(O=io.KeyEnter)/M有键按下了Delaym3(20):/先延时20砂避开抖动时期If(0=io_KeyEnter)/然后再检顶如果还足检测到冇键按下returnKeyValue:/是真的按下了,返回键值elsereturnKEY.NULL足押动.赵回空的键值while(0=io_KeyEnter):等待按键禅仮乍看上去,确实挺不错,实际中呢?在实际的系统中.一般足不允许这么样做的.为什么呢?首先,这里的DelayaS(20),让微控制器在这里白
6、白等待了20ms的时何啥也没干.&虑我在C学会释放CPU章中所提及的几点.这足不可取的。其Awhile(0=io.KeyEnter):更序设计中的刃忌(极少的待殊情况例外几任何II:极端悄诜卜祁不要便用这样语句来堵塞微控制器的执行进也原本i按键释放.结果CPU就谊死死的盯住该It它爭恰都不管了那英它爭恰不干了吗?你同童别人可不会同意所以介现的分配好微控制的处理时间.是編吗按键用序的肚础。消除抖动有必耍吗?抖动也会在I/O上出现.我会立刻把这个微控制器锤了,永远不用这样一款微控制器所以抖动的出现所以只要我们检测到按犍按下,即可以返回键值,何題的关键足在你执行完其它任务的时候,再次便有可能造成重复
7、检测。所以.如何在返回犍值后避免鱼复检测.或,世按下就执行功如何避免再次执行功能函数,就成为我们要考虑的何題了.这足一个仁者见仁.智者见智的何題.就的确.软件上的消扌斗确实可以保证按键的冇效检测。但足.这种消抖确实有必翌吗?有人捉出了这样的融问抖动是按键按下的过程中产生的.如果按键没有按下.抖动会产生吗?如果没有按键按下.即意味若按键已经按下尽管这个电平还没有稳定.执行我们的按键任务的时候.抖动过程还没有结束.能函数.肖功能鬲数的执行时间小丁抖动时何时候留给大家去思考吧。所以消除抖动的II的足:防止按键次按卜I多次响应。本主题由杨中科T2010-5-1212:47为梢华收诫分哄C语言也能写图形
8、的俄罗斯方块?!Q发茨J:2010-5-1216:59|只看该作者确实是个问题。值得考虑用中断打描时间太短。等待大虾回答,顶下TOP3楼C语言学完以后学什么?Q发表于2010-5-1217:48|只看该作者耍不硕件上消下抖,加个电容?为什么某个10状态翻转呢?为什么不像电脑一样,Ylkbhit这样的判断存在,我们可以在有键按下时锁住所按键的扫描码吧.当然视你要完成的功能而定这样的话.由于所按的键己锁存,后面的中断判断的就是有无按键了调节好其判断条件如时间什么的,就像电脑设置了按键响应速度一样这样可以解决吧。讨论下吧!C语言也能写图形的俄罗斯方块?!TOPQ发茨于2010-5-1223:58|只
9、看该作者4楼硕件上可以用电容消抖,并接一个104即可,如果还想要更好的效果,可以用74HC14对波形整形。我见过的按键除了上述的破件处理之外,软件上面同样要消抖.因为是用在工业环境里,什么情况都有可能岀现。“我们可以在付键按下时锁住所按键的扫描码吧,当然视你要完成的功能而定这样的话.由于所按的键已锁存.后而的中断判断的就是何无按键了,调节好其判断条件如时间什么的,就像电脑设置了按键响应速度一样,这样可以解决吧。”呵呵.想法太简单。按键处理也要分情况,对于很重要的一般接中断,剩下的应用级的,在主循环中循环检测即可。比较好的做好是,开辟一个环形缓冲。确定按键按下丢到缓冲区.任务根据当前状态取键值,
10、作处理。C语言也能写图形的俄罗斯方块?!TOPQ发茨J:2010-7-1013:09|只看该作者我倒觉得有软件去抖就够了,不过在丁业控制产品中更经常采用什么方法來解决我就不淸雉了C语言也能写图形的俄罗斯方块?!TOPQ发茨丁2010-7-2612:42|只看该作者6楼这听耐人寻味的,电子技术课程里头提到过这些,在这里电子技术和01代码见面了C语訐学完以后学什么?TOPQ发茨J:2010-7-2621:33|只看该作者检测电平的上升沿就可以了,没何必要便用硬件消除抖动。CTOPQ发茨丁2010-7-3015:36|只看该作者8楼在你执行完其它任务的时候,再次执行我们的按键任务的时候.抖动过程还没
11、有结束,这样便有可能造成重复检测。所以,如何在返回键值后,避免重复检测,或者在按键一按下就执行功能函数,当功能国数的执行时间小于抖动时间时候如何避免再次执行功能函数.就成为我们要考虑的问题了。这是一个仁者见仁,智者见智的问题,就留给大家去思考吧。所以消除抖动的目的是:防止按键一次按下,多次响应.这段感觉我老是理解不來?能再淸楚点不?我比较笨。C语言也能写图形的俄罗斯方块?!TOPQ发茨丁2010-8-419:30|只看该作者9楼单片机程序是一个死循环,你循着时间一步步推导程序的执行流程就清楚“你执行完其它任务的时候,再次执行我们的按键任务的时候.抖动过程还没有结束,这样便何可能造成重复检测”这句话的意思了。史匕最牛免费Net视频教程杨老师亲自授课TOPQ发茨J:2010-8-800:12|只看该作者10楼老大我到哪下单片机的视频啊C语訐学完以后学什么?TOP发茨J:2010-8-2420:29|只看该作者用中断或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育收费规范化管理体系建设
- 单位参观流程标准化实施大纲
- 定制展厅设计案例分析
- 26年胰腺癌基因检测与靶向用药关联
- 安溪教育发展概况
- 26年靶向疗效适老化服务
- 班队礼仪教育体系构建
- 老人健康教育课件
- 企业活动可视化实施纲要
- 2025年城市规划中数字孪生平台接口开发
- 警务实战执法用语课件
- 新能源材料与器件制备技术 课件 第5章 锂离子电池正极材料
- 2025年湖南省高考化学真题卷含答案解析
- 2023-2025年高考物理试题分类汇编:电磁感应解析版
- 外科手术病历书写规范与要点
- 中国网络消费的现状剖析与未来趋势洞察:基于数字经济视角
- 摩托车培训科目一
- 毕业设计(论文)-六自由度机械手设计及运动仿真
- 毕业设计(论文)-USB插头接口的级进模具设计冲压模
- 防水工三级安全教育试题
- 新都区石板滩镇污水处理厂改扩建工程环评报告
评论
0/150
提交评论