单片机实例之按键原理专题培训课件
单片机按键电路的原理

单片机按键电路的原理
单片机按键电路的原理是基于按键的开关原理实现的,通过按下按键来控制电路的开关状态。
按键电路主要由按键和电路两部分组成。
按键是一种机械开关,当按下按键时,按键上的金属触点会接通电路,从而改变电路的状态。
电路包括输入端、输出端和电源。
在按键电路中,输入端通过一个外部上拉或下拉电阻与电源相连,起到稳定电压的作用。
当按下按键时,金属触点会接通电路,将电源的电压传递到输入端,产生一个高电平状态。
否则,按键未按下时,输入端会通过上拉电阻连接到地,形成一个低电平状态。
单片机通过输入端检测电路的状态来判断按键是否按下。
当电路为低电平时,判定为按键未按下;而电路为高电平时,就会识别为按键按下。
为了减少按键电路带来的抖动和干扰,可以在按键和单片机之间添加电容器进行滤波处理。
电容器会对输入端的电压进行平滑滤波,使其稳定在一个较低的值上,从而减少按键可能带来的干扰。
此外,还可以在按键电路中使用独立按键编码芯片,将按键的信号编码成数字信号,然后通过数码管、液晶屏等方式显示出来。
总结来说,单片机按键电路的原理是通过机械开关将电源电压传递到输入端,通过单片机检测输入端的电平状态来判断按键是否按下,从而实现对电路的控制。
单片机之键盘工作原理

利用循环变量i控制比对过程,两者相等时的i就是闭合键的键值。
for(i=0;i<16;i++) { if(key_val[i]==P3) return i; }
③判别闭合键的键值 其方法为:对键盘的行线进行扫描,P3口依次循环输 出0xfe、0xfd、0xfb和0xf7,相应地读P3口,若高4位 P3.7~P3.4全为“1”,则说明该行上没有键闭合;否则, 这一行上有键闭合,而且就是行线为0,列线为0的交叉键。 高4位和低四位合并即得到键模。
键模——按键压下时形成的电平编码值 键值——按键的人为定义值
当按键未按下压时,Px.n端口为高电平;按压按键后为 低电平。
按键在闭合和断开时,触点会存在抖动现象:
+5V
无抖动
理想波形 A 实际波形
按下抖动
B 稳定闭合
释放抖动
+5V
有抖动
图为键闭合时列线电压波形。键闭合和断开过程中存在抖 动期(呈现一串负脉冲),抖动时间长短与开关的机械特性有关, 一般为5~10 ms之间;稳定闭合期由操作员的按键动作所确定, 一般为数百毫秒到几秒。为了保证CPU对键的闭合做一次处理, 必须去除抖动,在键的稳定闭合或断开时,读键的状态。
①判断是否有键压下 写P3端口0xf0(行线电平=0,列线电平=1) 读P3端口:若P3 = 0xf0→无按键压下,不必后续判断; 若P3 ≠0xf0 →有键压下
②去除键的机械抖动 其方法为:当判别到键盘上有键闭合后,延时一段时 间再判别键盘的状态,若仍有键闭合,则认为键盘上有一 个键处于稳定的闭合状态,否则认为键抖动。
单片机教程续键盘的使用(详细分析:键盘)共6张PPT

❖ 非编码键盘有分为:独立式非编码键盘和行 列式非编码键盘。
按键在闭合和断开时,触点会存在抖动现象:
+5V
4
5
6
7
无抖动
C 8
理想波形
D 9
E A
F B
在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。
0
1
2
3
4 ee
5 de
6 be
7 7e
A
eb
db
bb
7b
eb
db
bb
键盘分编码键盘和非编码键盘。
51单片机及其应用 第四章续
键盘的应用
❖ 1、键盘的分类
❖ 键盘分编码键盘和非编码键盘。键盘上闭 合键的识别由专用的硬件编码器实现,并产 生键编码号或键值的称为编码键盘,如BCD 码键盘、ASCLL码键盘等;而靠软件来识别 的称为非编码键盘;
❖ 在单片机组成的测控系统及智能化仪器中, 用的最多的是非编码键盘。
实际波形 ee
de
4
5
be 6
7b
7e
B
7
ed
dd
bd
7d
非编码键盘有分为:独立式非编码键盘和行列式非编码键盘。
而靠软件来识别的称为非编码键盘;
0 按下抖动 1 稳定闭合 释2放抖动
3
+5V
有抖动
0
1
2
3
ee
de
be
7e
键盘分编码键盘和非编码键盘。
非编码键盘;
在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。
而靠软件来识别的称为非编码键盘;
eb
db
bb
7b
单片机按键剖析课件

按键的基本原理是利用触点的闭 合或断开,产生电信号,传递给
单片机进行处理。
按键的分类
按形状分类
可分为圆形按键、方形按键、长 条形按键等。
按功能分类
可分为独立按键和矩阵按键。独 立按键每个键独立占用一根线, 而矩阵按键则是多个键共享若干 根线,通过行和列的扫描来确定
被按下的键。
按行程分类
可分为行程按键和薄膜按键。行 程按键的触点有一定的行程,而
薄膜按键的触点则没有行程。
按键的应用场景
家电控制
如空调、电视、洗衣机 等家电的遥控器上的按
键。
工业控制
在工业自动化设备中, 按键常用于控制设备的 启动、停止、模式选择
等功能。
医疗设备
在医疗设备中,按键用 于输入指令、选择功能
或设置参数等操作。
金融设备
如ATM机、POS机等金 融设备上的数字按键和 确认、取消等操作按键
薄膜按键
多层薄膜叠加,通过按压 实现开/关功能,常见于手 机和计算器。
硅胶按键
柔软的硅胶材料,通过按 压改变内部导电性能实现 开/关功能。
按键的参数指标
01
02
03
Байду номын сангаас04
行程
按键从开始按下到完全按下的 距离。
力度
按键需要的最小按压力度,以 确保可靠触发。
寿命
按键能够承受的最大按压次数 。
防水等级
衡量按键防潮、防水的性能指 标,常见等级有IP65、IP67
按键寿命短
原因分析
按键机械结构疲劳或材料质量不佳,导致按键寿命较短。
解决方案
选择质量可靠的品牌和型号,定期检查按键机械结构是否正 常,如有异常,及时更换按键。
单片机与基础应用项目3按键控制

(2)源程序代码 void main(void) { while(1)∥无限循环 { speaker=1;∥高电平停止发声 delay1ms (50);∥延时50 ms speaker=0;∥低电平发出声音 delay1ms (50);∥延时50 ms } }
37
4.程序调试 #include<at89x52.h>∥头文件 sbit P35=P3^5;∥位定义 void main(void)∥主函数 { while(1)∥无限循环 { if(P35==0)∥判断是否按下按键S2 P1=0x00;∥点亮8个LED else∥若没有按下 P1=0xff;∥熄灭8个LED } }
59
(2)源程序代码 } } P1=0x7f;∥检测第四行,赋值为0111 1111 temp=P1; temp=temp&0x0f; while(temp!=0x0f) { delay(10); temp=P1; temp=temp&0x0f; while(temp!=0x0f) {
60
(2)源程序代码
14
4.程序调试 (1)下载程序 (2)调试程序
图3.8 独立按键调试效果图
15
任务2 多个按键控制 一、任务引入
图3.12 多个按键分别控制LED点亮和熄灭
16
二、任务要求 (1)理解两个按键控制LED原理图。 (2)能正确安装S3~S9按键。 (3)学会编写两个按键控制一个LED的程序
。
17
25
4.程序调试 (1)下载程序 (2)调试程序
图3.18 两个按键调试效果图
26
任务3 蜂鸣器的使用 一、任务引入
图3.21 蜂鸣器外形
27
二、任务要求 (1)掌握蜂鸣器硬件电路原理。 (2)根据原理图正确安装个电器元件。 (3)学会编写程序控制蜂鸣器发声。
单片机独立式按键、矩形按键的应用-PPT精品文档

8
8.1.3.独立按键流程图与软件实现
开始 否
ORG LJMP ORG MAIN: MOV MOV CJNE LJMP L_PRESS:
0000H MAIN 0030H P1,#0FFH A,P1 A,#0FFH,L_PRESS MAIN DELAY20MS ;消抖 P1,#0FFH A,P1 A,#0FFH,L_TUREPRESS MAIN A,#11111110B KEY0 L_EXIT A,#11111101B KEY1 L_EXIT A,#11111110B KEY7 MAIN
计算行: 计算列:
行全部输出高电平,列全部输出低电平,读回数据,如果P1.0P1.3某行变为低电平就知道该行上面有按键。代码如左下: 行全部输出低电平,列全部输出高电平,然后读回来判断。如果 P1.4-P1.7某列变为低电平就知道该列上面有按键。代码如右下:
第八章
常规按键的应用
硅谷芯微 技术贡献 网址:threeway
键盘的分类
键盘分编码键盘和非编码键盘。键盘上闭合键的 识别由专用硬件编码器实现,并产生键编码号或 键值的称为编码键盘,如BCD码键盘、ASCLL码 键盘等;而靠软件来识别的称为非编码键盘;在 单片机组成的测控系统及智能化仪器中,用的最 多的是非编码键盘。 非编码键盘有分为:独立式非编码键盘和行列式 非编码键盘(矩阵键盘)。无论是何种按键,其 功能实现都是分为三个步骤:
有按键? 是 消抖
有按键? 是 按键1? 是 处理按键1
否
否
按键n? 是 按键n服务程序
否
LCALL MOV MOV CJNE LJMP L_TUREPRESS: CJNE LCALL LJMP CJNE LCALL LJMP ……….. CJNE LCALL L_EXIT: LJMP
单片机实例之按键原理30页PPT

56、极端的法规,就是极端的不公。 ——西 塞罗 57、法律一旦成为人们的需要,人们 就不再 配享受 自由了 。—— 毕达哥 拉斯 58、法律规定的惩罚不是为了私人的 利益, 而是为 了公共 的利益 ;一部 分靠有 害的强 制,一 部分靠 榜样的 效力。 ——格 老秀斯 59、假如没有法律他们会更快乐的话 ,那么 法律作 为一件 无用之 物自己 就会消 灭。— —洛克
60、人民的幸福是至高无个的法。— —西塞 罗
1、最灵繁的人也看不见自己的背脊。——非洲 2、最困难的事情就是认识自己。——希腊 3、有勇气承担命运这才是英雄好汉。——黑塞 4、与肝胆人共事,无字句处读书。——周恩来 5、阅读使人充实,会谈使人敏捷,写作使人精确。——培根
单片机按键原理

单片机按键原理单片机按键是单片机系统中常见的一种输入设备,它可以实现对系统的控制和操作。
在实际应用中,按键通常用于系统的开关、功能选择、参数设置等操作。
本文将介绍单片机按键的原理及其在实际应用中的一些注意事项。
首先,我们来了解一下单片机按键的原理。
单片机按键通常由按键开关和上拉电阻组成。
按键开关是一个常开触点,当按下按键时,触点闭合,使得按键两端的电压变化,单片机可以通过检测这一电压变化来判断按键是否按下。
而上拉电阻则起到了稳定电压的作用,保证了按键在未按下时的高电平状态。
在单片机系统中,按键的原理是通过检测按键两端的电压变化来实现的。
当按键未按下时,由于上拉电阻的作用,按键两端的电压为高电平;而当按键按下时,触点闭合,使得按键两端的电压变为低电平。
单片机通过检测这一电压的变化,可以实现对按键状态的判断。
在实际应用中,单片机按键需要注意一些问题。
首先是消除按键的抖动。
由于按键机械结构的特性,按键在按下或松开时会产生抖动,这会导致系统误判按键状态。
因此,需要在软件上对按键信号进行滤波处理,以消除按键的抖动。
其次是按键的防误触措施。
在实际应用中,按键可能会因为外部干扰或误操作而产生误触发,因此需要在软件上对按键信号进行一定的判断和处理,以防止误触发对系统造成影响。
另外,还需要注意按键的电气特性。
在设计单片机系统时,需要根据按键的电气特性选择合适的上拉电阻和按键开关,以保证按键的稳定性和可靠性。
总的来说,单片机按键是单片机系统中常见的一种输入设备,它通过检测按键两端的电压变化来实现对按键状态的判断。
在实际应用中,需要注意消除按键的抖动、防止误触发,并根据按键的电气特性选择合适的上拉电阻和按键开关。
通过合理设计和处理,可以确保单片机按键在系统中的稳定可靠运行。
通过本文的介绍,相信读者对单片机按键的原理及在实际应用中的注意事项有了更深入的了解。
希望本文能够对单片机按键的设计和应用提供一定的帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“1”
“0”
抖动时间 <10ms
< 10ms
开关动作时间 >100ms
图6-5 按键的波形
K5 K6 K7
P3.0 P3.1 P3.2 P3.3P2.7 P2.6
P2.5 P2.4 P2.3
P2.2 P2.1
P2.0
a
com
b c
d e
f g
dp
+5V
89S51
共阳极
任务二 获取矩阵键盘的键值
本任务目标是用矩阵键盘控制LED实现 一个矩阵键盘的按键值。
有按键信号? N Y
延时等待10ms
仍有按键信号? N Y
按键释放?
N
Y
按键处理
图6-7 软件消抖的流程图
1、C语言程序:
#include <reg51.H> sbit P0_0=P0^0; unsigned char count; unsigned char code table[]={0x3f,0x06,0x5b,0x4f,
即获取是哪个键按下,得到按键的行号,和列号;有时还需计算键码 (每个按键编号,对于4*4的矩阵按键,键码共16个为[0,15])。
键结束
即检查按键是否抬起,这样使得一次按键只做一次处理。
键处理
根据键码执行不同按键处理程序段。
键输入
检查键盘是否有键被按下,并消除按键抖动。
代码 flag=0; P1=0x0F; //高四位是列线输出0,低四位是行线读入前写1 if(P1&0x0F != 0x0F){
if(P0_0==0) { count++;
if(count==10) count=0; while(P0_0==0); P1=table[count]; } } } }
练习: 编写程序使得K0按下时显示1,K7按下时显示8,无键
按下时显示0,有多键按下时显示P。
100Ω
K0
K1 K2 K3 K4
二、 硬件消抖
图中两个“与非”门构成 一个RS触发器。当按键未按 下时,输出为1;当键按下时,输 出为0。此时即使因按键的机 械性能,使按键因弹性抖动而 产生瞬时断开(抖动跳开B), 中要按键不返回原始状态A, 双稳态电路的状态不改变,输 出保持为0,不会产生抖动的波 形。
也就是说,即使B点的电压 波形是抖动的,但经双稳态电 路之后,其输出为正规的矩形 波。
0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay10ms() { unsigned char i,j;
for(i=250;i>0;i--) for(j=248;j>0;j--);
}
void main(void) { while(1) {
if(P0_0==0) { delay10ms();
为了实现用按键控制LED的显示,首先要使 单片机读入按键的状态,再根据键盘的状态去控 制LED的亮灭。对LED的控制,在前面的课题中 已经讲了,这里不再作重点讲解,仅仅作为一个 键盘控制对象的例子。
根据图6-2所示的硬件电路,每当按下按键时, 单片机引脚P0.0将为低电平,程序运行时,需要 检测P0.0引脚是否为低电平,若P0.0引脚为低电 平,表示按键已按下。
delay(); if(P1&0x0F != 0x0F)
flag=1; }
键译码
扫描键盘 行列式键盘的具体识别方法有扫描法和反转法。
扫描法
即用列线输出,行线输入(可交换行线和列线的输入、输出关 系)。其中,列线逐列输出0,某行有键按下,行线有0输入,若 无按键,行线输入全部为1。当有键按下时,根据行线和列线可最 终确定哪个按键被按下。
反转法
行线和列线交换输入、输出,分两步获取按键的键号,但是在多 键同时按下时不能准确判断。
键译码——反转法
代码 获取行号
temp = 0;
P1=0x0F;
//低四位输入 输入前写1
//列为高四位 低电平输出
temp=P1;
//读P1口
temp=(~temp&0x0F); //屏蔽高四位
当每次按下按键时,则使P1口输出的数据变 化一次,输出不同数据,对应的程序设计框图如 图6-4所示。
初始化
否 是否按下键
是 计数器+1
送显
图6-4 键控计数显示流程图
键盘电路原理
一、按键的特性
作为机械按钮,键按下或者放开 时,都存在着接通或断开的不稳定现 象,从而使信号电平具有抖动现象, 这种现象称为抖动。
编写程序使得P0显示按键的行号,P2口显示按键的列号。
+5V
C3 C2 C1 C0
5.1K×4 3 2 1 0
L0
7654
L1
BA 9 8
L2
F E DC
L3
键号
E
行首号
89S51 P0.0
P0.1
P0.2
P1.0 P0.3
P1.1
P0.4 P0.5
P1.2 P0.6 P0.7
P1.3
P1.4 P1.5 P1.6 P1.7
硬件消抖动一般用于按键较少的情况。
三、软件消抖
思考:为什么要等键释放? 若不等会出现什么情况?
如果按键较多,常用软件 方法去抖,即检测出键闭合 后执行一个延时程序,产生 5ms~10ms的延时,让前 沿抖动消失后再一次检测 键的状态,如果仍保持闭合 状态电平,则确认为真正有 键按下。
当检测到按键释放后,也 要给5ms~10ms的延时, 待后沿抖动消失后才能转 入该键的处理程序。
P2.7 P2.6
P2.5 P2.4 P2.3
P2.2 P2.1
P2.0
a
com
+5V
b c
d e
f g
dp
a
com
b
c
100Ω×2
d
e
f g
dp
共阳极
一、键盘处理
在单片机程序中,对多个键的处理应包括以下三项内容: 键输入
检查键盘是否有键被按下,并消除按键抖动。
键译码(扫描法或反转法)
单片机实例之 按键原理
任务一 独立式按键控制的数码管显示
本任务是利用独立按键实现对数码进行控 制,记录按键的次数,每当按下一次键时, 计数器加1,将计数器的值送数码管显示,当 计数器加到10时,则归零重新计数 。 设P0口连接按键,对Key1进行计数 P1口连接数码管
图6-2 键盘控制原理图
程序设计分析