单片机按键程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编程序对比-:按键按下一次将30H中内容+1
KEY: MOV 30H,#0 JB P3.2,$ INC 30H JNB P3.2,$ SJMP KEY ;将30H中内容清0 ;如果p3.2为1,原地等待 ;30H+1(P3.2为0) ;如果p3.2为0 原地等待 ; 跳转到KEY标号处
没有延时去抖的汇编程序。
按键按下以前
按键按下以后
按键电路图
百度文库
实验录像
按键未去抖动
按键去抖动后
高电平
分界
低电平 T1 T2 T3 T5
T4
T1为不按按键时刻,T2为按键按下瞬间的抖动,T3为按键按下稳定时刻, T4为按键放开时刻瞬间,T5为按键放开时刻。
IO引脚电位变化
从图中可以了解到,按键按下的瞬间由于震动不是按键内
辽宁机电职业技术学院
单片机的按键
贾函龙
QQ 710739894
按键抖动现象
按键按下都会发出一声响,随然有的按键声音很轻 微,但这都是金属导体碰撞产生的震动,这种现象称为键 盘抖动如果不对键盘的抖动进行处理,按键会对系统电路 或程序产生意外的干扰。为了观察按键的抖动现象,我们 先做一个小实验,分析一下一个微触按键产生抖动对系统 的影响。
KEY: MOV 30H,#0 JB P3.2,$ LCALL DELAY10MS JB P3.2,KEY INC 30H JNB P3.2,$ SJMP KEY ;将30H中内容清0 ;如果p3.2为1,原地等待 ; 延时10毫秒 ;如果p3.2等于1 跳转到KEY标号 ;30H+1(P3.2为0) ;如果p3.2为0 原地等待 ; 跳转到KEY标号处
部的导体稳定接触,而是在导通和不导通之间来回弹跳,
虽然时间只有一瞬间,但由于单片机运行速度过快,会造 成多次的误判。 按键抖动时间的长短由按键的机械特性决定,一般为 5ms~10ms。
在数字电路中,常利用触发器消除键盘抖动,但在单
片机系统中,按键可以直接接在单片机的I/O口上,常利用
键盘程序来消除键盘的抖动现象。
有延时去抖的汇编程序。
C语言程序对比-:按键按下一次将变量num中内容+1
#include "reg51.h" //头文件 sbit key=P3^2; // 定义按键的IO口 char num; //定义num变量 main() // 主程序开始 { while(1){ if(key==0){ // 如果key端口为0 num++; // num变量+1 while(key==0); //如果key端 口为0原地 等待 } } } #include "reg51.h" sbit key=P3^2; char num; main() { while(1){ if(key==1)continue; delay_ms(10); if(key==0){num++; while(key==0); } } }
练习
1、按键计数器。 2、数字密码锁。 3、数字钟程序设计(加入按键设置时间)