单片机键盘接口技术----独立按键-
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Part
03
简单独立按键实例
03
任务显示电路图如下,用第一个数码管 将独立按键接于单片机P3.0引脚
独立按键接于单片机P3.0,
当每按下一次按键数码管的值加1,
初始值为0,加到9后归零。
03
程序代码
#include<reg52.h> #define uchar unsigned char #define uint unsigned int
单片机原理及应用在线开放课程
键盘接口技术:独立按键
C
目录
ONTENTS
01
键盘简介
敬 业 乐 群
道 艺 兼 修
02
独立按键工作原理 独立按键应用实例
03
Part
01
键盘简介
01
键盘简介
键盘是电子系统中人机对话的重要组成部分,是人向机器发出指令、
输入信息的必须设备,也是在单片机应用系统中使用最广泛的一种
谢谢收看!
GND
330
P1.6 P1.7
02
多个独立按键的单片机接口电路
8031 R×8 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 0号 键 1号 键 2号 键 3号 键 4号 键 5号 键 6号 键 7号 键 +5V
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
数据输入设备。
键盘是由多个按键组成的。
Part
02
独立按键
02
独立按键
按键通常是一种常开型开关,常态下按键的两个触 点处于断开状态,按下按键时它们才闭合。
按键1
按键2
02
Hale Waihona Puke Baidu
独立按键与单片机的接口原理
按键不按下时,P1.7通过一个电阻接
VCC
到VCC上,P1.7为高电平状态,
按键按下时 P1.7接到了GND上,P1.7被拉低为 低电平 按键抬起时,又接到VCC上, P1.7再次回到高电平状态。
1 0 1 1 1 1 1 0 1 1
P1 1111 1101 1111 , , 1111 1111 1110
图2-20 独立式连接的非编码键盘
02
实际按键的抖动问题
实际按键的按下与释放是通过机械触点的闭合与断开来实现的, 因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动的过 程,抖动必须清除。
无键按下,从而消除了抖动的影响。
同理,在检测到按键释放后,也同样要延迟一段时间, 以消除后沿抖动,然后转入对该按键的处理
02
软件消抖流程图
按键 N 有键闭合? Y 延时20mS 去抖动 N N 有键闭合? Y 保存键码 N 按键释放? Y 延时20mS 去抖动
按键释放?
Y
执行按键 功能
返回 独立按键处理流程
sbit wei = P2^7; //数码管位选
sbit duan = P2^6; uchar code leddata[]={ //数码管段选 sbit key_s2 = P3^0;//S2按键位定义
0x3F, 0x06, 0x5B, 0x4F, 0x66,
0x6D, 0x7D, 0x07, 0x7F, 0x6F, void delay(uint z) { uint x,y; for(x = z; x > 0; x--) for(y = 114; y > 0 ; y--); } };//0-9显示码
void main() { uchar num; we = 1; P0 = 0xfe; //选通第一个数码管 wei = 0; while(1) { duan = 1; P0 = leddata[num]; //显示S2按下次数 duan = 0; if(key_s2 == 0)//判断S2是否按键 {delay(20);//软件延时 if(key_s2 == 0) {num++; //计数加1 } while(!key_s2); //松手检测 } if(num == 10) //当数值为超过9时归零 {num = 0; } } }
02
常用消抖方法
1.硬件方法 硬件方法是设计一个滤波延时电路或单稳态电路、RS触发器等硬件电 路来避开按键的抖动时间。每个按键一套电路。
02
常用消抖方法
2.软件方法
软件方法是指编制一段时间大于 20ms 的延时程 序,在第一次检测到有键按下时,执行延时子程序, 使键的前沿抖动消失后再检测该键状态,如果该键仍 保持闭合状态电平,则确认为该键已稳定按下,否则