独立按键控制LED灯
独立按键控制LED灯

通常的按键所用的开关为机械弹性开关,当机械触点断开、闭合时,由 于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时
也不会一下子断开。如下图 所示,按键抖动时间一般为5ms〜10ms。
因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象 而作的措施就是按键消抖。
P仁Oxff; P2=0xff; while(1) {
if(Ke y仁=0) delay(10);
if(Ke y仁=0)
{
Display1();
} while(Key1==0); if(Key2==0) delay(10);
if(Key2==0)
{
Display2();
}
while(Key2==0);
按键消抖方式有硬件消抖和软件消抖。硬件消抖在按键数目较少时使用, 常用硬件消抖电路有RS触发器和并联电容,如下图所示。
如果按键较多,常用软件方法消抖。其方法是检测按键是否按下,如按
键按下,执行一个延时程序5ms- 10ms让前沿抖动消失后再一次检测按键状态, 如果仍保持按下,则确认为真正有按键按下。当检测到按键释放后,也执行一个5ms-10ms的延时,待后沿抖动消失后转入该按键的处理程序。这种按键消抖占 用CPU资源,采用定时器中断软件消抖效果要好些。
^£1
项目实施
1.绘制本项目电路图
2.准备焊接器材
骨口, 序号
电路组成
元件名称
规格或参数
数量
1
最
电阻
10K
2个
2
小
排阻
10K
1个
3
系
电解电容
10uF
1个
4
统
4独立按键控制led灯

2)设置四个按键K1—K4,按下K1跑马灯,K2流水灯,K3鸳鸯戏水,K4则循环三种控制方式。
3)跑马灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。
4)流水灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。5)鸳鸯溪水灯:共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。然后继续上次操作。
{
P1=yua[i];
delay(100);
}
}
if(j==4)
{
for(i=0;i<9;i++)
{
P1=pao[i];
delay(100);
}
for(i=0;i<9;i++)
{
while(key2==0)
{
}
j = 2;
}
}
if(key3==0)//如果检测到低电平,说明按键按下
{
delay(10);//延时去抖,一般10-20ms
if(key3==0) //再次确认按键是否按下,没有按下则退出
{
while(key3==0)
{
}
j = 3;
}
}
if(key4==0)//如果检测到低电平,说明按键按下
{
delay(10);//延时去抖,一般10-20ms
if(key4==0) //再次确认按键是否按下,没有按下则退出
单片机独立按键控制led灯实验原理

主题:单片机独立按键控制LED灯实验原理目录1. 概述2. 单片机独立按键控制LED灯实验原理3. 实验步骤4. 结语1. 概述单片机在现代电子设备中起着至关重要的作用,它可以通过编程实现各种功能。
其中,控制LED灯是单片机实验中常见的任务之一。
本文将介绍单片机独立按键控制LED灯的实验原理及实验步骤,希望对初学者有所帮助。
2. 单片机独立按键控制LED灯实验原理单片机独立按键控制LED灯的实验原理主要涉及到单片机的输入输出端口及按键和LED的连接方式。
在单片机实验中,按键与单片机的输入端口相连,LED与单片机的输出端口相连。
通过按键的按下和松开来改变单片机输出端口电平,从而控制LED的亮灭。
3. 实验步骤为了完成单片机独立按键控制LED灯的实验,需要按照以下步骤进行操作:步骤一:准备材料- 单片机板- 按键- LED灯- 连线- 电源步骤二:搭建电路- 将按键与单片机的输入端口相连- 将LED与单片机的输出端口相连- 连接电源步骤三:编写程序- 使用相应的单片机开发软件编写程序- 程序中需要包括按键状态检测和LED控制的部分步骤四:烧录程序- 将编写好的程序烧录到单片机中步骤五:运行实验- 按下按键,观察LED的亮灭情况- 确保按键可以正确控制LED的亮灭4. 结语通过上述实验步骤,我们可以实现单片机独立按键控制LED灯的功能。
这个实验不仅可以帮助学习者了解单片机的输入输出端口控制,还可以培养动手能力和程序设计能力。
希望本文对单片机实验初学者有所帮助,谢谢阅读!实验步骤在进行单片机独立按键控制LED灯实验时,需要按照一定的步骤进行操作,以确保实验能够顺利进行并取得预期的效果。
下面将详细介绍实验步骤,帮助读者更好地理解和掌握这一实验过程。
1. 准备材料在进行单片机独立按键控制LED灯实验前,首先需要准备相应的材料。
这些材料包括单片机板、按键、LED灯、连线和电源。
在选择单片机板时,需要根据具体的实验需求来确定,常见的有51单片机、Arduino等,不同的单片机板具有不同的特性和使用方法,因此需要根据实验要求来选择适合的单片机板。
独立按键及红外遥控led灯移动

电子工程学院课外学分设计报告题目:按键和遥控控制LED灯移动班级:电子A1032 姓名:陈仁州学号:15 专业:自动化实验室:开放实验室设计时间:2013 年3月19 日——2013 年6月 2 日审批意见:指导教师:李卫华目录1.专业综合设计任务 (3)2.基本原理与论证 (3)3. 硬软件设计 (3)4. 实现与测试 (3)5.分析与总结 (3)1. 专业综合设计任务完成一款用独立按键以及红外遥控器控制led灯的移动的设计,led灯的移动由四个(上下左右)键以及遥控器上的2567键控制。
2.基本原理与论证单片机最小系统以及9个led灯接在p2^0-p2^7和p3^0口,四个独立按键接在p1^4-p1^7口红外接收头1838接在p3^2口,其他为起振电路及复位电路。
电路原理图如下图所示3. 硬软件设计元器件排布,并进行焊接。
4. 实现与测试给电路供电,按上下左右键看led灯是否移动,使用红外遥控器按2(上)5(左)6(下)7(右)9(复位)键,看电路是否正常工作。
5.分析与总结对单片机的基本用法以及红外接收发射有了一点了解。
附录一程序#include<reg52.h> //52单片机头文件#include<stdio.h>#include<intrins.h>#define N 2//亮暗的速率#define T 700//PWM的周期#define TURE 1#define FALSE 0#define uint unsigned int#define uchar unsigned charsbit IR=P3^2;//红外接口标志sbit D1=P2^7;sbit D2=P2^6;sbit D3=P2^5;sbit D4=P2^4;sbit D5=P2^3;sbit D6=P2^2;sbit D7=P2^1;sbit D8=P2^0;sbit D9=P1^6;sbit key1=P1^0; //上sbit key2=P1^4; //下sbit key3=P1^2; //左sbit key4=P1^1; //右uchar irtime;//红外全局变量bit irpro_ok,irok;unsigned char IRcord[4];unsigned char irdata[33];/////////////////////////void delay(int x) //{char a,b;for(a=0;a<x;a++)for(b=500;b>0;b--);}void delay2() //延时0.5秒{uint a,b;for(a=300;a>0;a--)for(b=200;b>0;b--);}void delay1() //延时0.1秒{uint x,y;for(x=100;x>0;x--)for(y=100;y>0;y--);}void pwm(int x){while(x--);}void soft_reset(void)//复位{((void (code *) (void)) 0x0000) (); }void pwmled(){int t=0;uint res=1400;char f=0;//亮暗标志,0为亮while(res--){P2=0x00;D9=0;pwm(t);//Toff,亮的时间P2=0xff;D9=1;pwm(T-t);//Ton,暗的时间if(!f)t+=N+1;//亮速率较快,模拟呼吸else t-=N;//暗速率较慢if(t>T){f=1;t=T;}//超过最大值时,返回最大值,标志为暗if(t<0){f=0;t=0;}//超过最小值时,返回最小值,标志为亮}}//////////////////void zhuan(){D1=0;delay1();D2=0;delay1();D3=0;delay1();D6=0;D1=1;delay1();D9=0;D2=1;delay1();D8=0;D3=1;delay1();D7=0;D6=1;delay1();D4=0;D9=1;delay1();D5=0;D8=1;delay1();D7=1;delay1();D4=1;delay1();}//////////////////////////////void origin(){P2=0x55;D9=0;delay2();//红亮P2=0xaa;D9=1;delay2();//绿亮P2=0x6d;D9=1;delay2();//左到右再到左P2=0xb6;D9=1;delay2();//P2=0xdb;D9=0;delay2();//P2=0xb6;D9=1;delay2();//P2=0x6d;D9=1;delay2();//P2=0xd5;D9=1;delay2();//斜着P2=0xfc;D9=0;delay2();//下到上再到下P2=0xe3;D9=1;delay2();//P2=0x1f;D9=1;delay2();//P2=0xe3;D9=1;delay2();//P2=0xfc;D9=0;delay2();//P2=0xff;D9=1;delay2();//全暗P2=0x00;D9=0;delay2();//全亮P2=0xff;D9=1;delay2();//全暗//P2=0x00;D9=0;delay2();全亮P2=0x08;D9=0;delay2();//除5外亮P2=0xf7;D9=1;//5亮/* */}//////////////////void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数{irtime++;}///////////////////////////////////////////////////////////////////////void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数{static unsigned char i;static bit startflag;if(startflag){if(irtime<42&&irtime>=33)//引导码TC9012的头码i=0;irdata[i]=irtime;//一次存储32位电平宽度irtime=0;i++;if(i==33){irok=1;i=0;}}else{irtime=0;startflag=1;}}////////////////////////////////////////////////////////////////////void TIM0init(void)//定时器0初始化{TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值TH0=0x00;//reload valueTL0=0x00;//initial valueET0=1;//开中断TR0=1;}///////////////////////////////////////////////////////////////////void EX0init(void){IT0 = 1; // Configure interrupt 0 for falling edge on /INT0 (P3.2)EX0 = 1; // Enable EX0 InterruptEA = 1;}/******************************************************************/ void Ir_work(void)//红外键值散转程序{switch(IRcord[2])//判断第三个数码值{case 0:xie();break;//1 显示相应的按键值ledcrol()case 1:ledup();break;//2 上case 2:D3=0;break;//3case 3:pwmled();break;//4case 4:ledleft();break;//5case 5:leddown();break;//6 左case 6:ledright();break;//7 下case 7:origin();break;//8 右case 8:soft_reset();break;//9} irpro_ok=0;//处理完成标志}/*****************************************************************/ void Ircordpro(void)//红外码值处理函数{unsigned char i, j, k;unsigned char cord,value;k=1;for(i=0;i<4;i++)//处理4个字节{for(j=1;j<=8;j++) //处理1个字节8位{cord=irdata[k];if(cord>7)//大于某值为1{value=value|0x80;}else{value=value;}if(j<8){value=value>>1;}k++;}IRcord[i]=value;value=0;} irpro_ok=1;//处理完毕标志位置1 }///////上/////////ledup(){if(D4==0){D4=1;D1=0;}if(D5==0){D5=1;D2=0;}if(D6==0){D6=1;D3=0;}if(D7==0){D7=1;D4=0;return;}if(D8==0){D8=1;D5=0;return;}if(D9==0){D9=1;D6=0;return;}}/////////下///////leddown(){if(D1==0){D1=1;D4=0;return;}if(D2==0){D2=1;D5=0;return;}if(D3==0){D3=1;D6=0;return;}if(D4==0){D4=1;D7=0;}if(D5==0){D5=1;D8=0;}if(D6==0){D6=1;D9=0;}}/////////////左//////////////ledleft(){if(D2==0){D2=1;D1=0;}if(D5==0){D5=1;D4=0;}if(D8==0){D8=1;D7=0;}if(D3==0){D3=1;D2=0;return;}if(D6==0){D6=1;D5=0;return;}if(D9==0){D9=1;D8=0;return;}}/////////右////////ledright(){ if(D2==0){D2=1;D3=0;}if(D5==0){D5=1;D6=0;}if(D8==0){D8=1;D9=0;}if(D1==0){D1=1;D2=0;return;}if(D4==0){D4=1;D5=0;return;}if(D7==0){D7=1;D8=0;return;}}void main(){ P1=0xff; //按键高电平zhuan();EX0init(); // Enable Global Interrupt Flag TIM0init();//初始化定时器0while(1){ if(irok){Ircordpro();//码值处理irok=0;}if(irpro_ok)//step press key{Ir_work();//码值识别散转}if(key2==0) //下{ delay1();if(key2==0){leddown();} while(!key2);delay1();while(!key2);}if(key1==0) //上{ delay1();if(key1==0){ledup();} while(!key1);delay1();while(!key1);}if(key3==0) //左{ delay1();if(key3==0){ledleft();} while(!key3);delay1();while(!key3);}if(key4==0) //右{ delay1();if(key4==0){ledright();} while(!key4);delay1();while(!key4);}}}参考文献:[1]高吉数字电子技术(第二版)电子工业出版社,2004。
独立按键控制led课程设计

独立按键控制led课程设计一、课程目标知识目标:1. 学生能理解独立按键的工作原理,掌握其电路连接方式。
2. 学生能掌握LED的基本特性,了解其在电路中的应用。
3. 学生能理解独立按键控制LED的原理,掌握相关编程方法。
技能目标:1. 学生能独立完成独立按键与LED的电路连接,并进行功能测试。
2. 学生能编写简单的程序,实现独立按键控制LED的亮灭、闪烁等功能。
3. 学生能运用所学知识解决实际问题,具备一定的创新意识和动手能力。
情感态度价值观目标:1. 学生通过课程学习,培养对电子技术的兴趣,提高学习积极性。
2. 学生在团队合作中,学会沟通、协作,培养团队精神。
3. 学生在实践过程中,树立正确的价值观,认识到科技对生活的影响。
课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力、创新意识和实际应用能力。
学生特点:学生处于初中阶段,具有一定的物理知识和动手能力,对电子技术有一定的好奇心和兴趣。
教学要求:教师应注重理论与实践相结合,引导学生主动参与实践,鼓励学生创新思维,提高解决问题的能力。
同时,关注学生的情感态度价值观培养,使学生在掌握知识技能的同时,形成良好的综合素质。
通过分解课程目标为具体的学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 理论知识:- 介绍独立按键的原理、功能及其在电路中的应用。
- 讲解LED的基本结构、特性以及在电路中的作用。
- 分析独立按键控制LED的电路原理及编程方法。
2. 实践操作:- 指导学生进行独立按键与LED的电路连接,确保正确无误。
- 帮助学生编写程序,实现独立按键控制LED的亮灭、闪烁等功能。
- 引导学生进行功能测试,分析并解决可能出现的故障。
3. 教学大纲:- 第一课时:介绍独立按键和LED的基本概念、原理及应用。
- 第二课时:讲解独立按键控制LED的电路原理及编程方法。
- 第三课时:指导学生进行电路连接和程序编写,实现功能。
- 第四课时:进行功能测试,总结问题,提高实践能力。
使用按键手动控制LED灯亮灭—独立按键及C语言相关知识

表达式
关系运算符
表达式
二、选择语句
1.if 语句
基本形式
if(表达式) {语句;}
流程图
功能
如果表达式 的值为真, 则执行语句, 否则不执行。
做一做
当x=-1 时,执行下列语句, 其结果为?if(x>0) y=3;
单片机技术及应用
基本形式
流程图
if(表达式 1) {语句 1;}
else if(表达式 2) {语句 2;}
else if(表达式 3) {语句 3;} ……
else if(表达式 m) {语句 m;}
else {语句 n;}
功能
如果表达式的1的结 果为“真”,则执行 语句 1,并退出 if 语句; 否则去判断表达式 2, 如果表达式2为 “真”,则执行语句 2, 并退出 if 语句;否则 去判断表达式3.……最 后表达式 m 也不成立, 就去执行 else 后面的 语句 n。
单片机技术及应用
情境引入:
在我们的教室都装了一个开关来控制 电灯的亮灭,今天我们利用独立按键来控 制单片机LED灯的亮灭。
1 独立按键 2
:在哪些家用电器中会用到这种按键?
2
独立按键工作原理
一、硬件电路
二、按键工作原理
消抖的方法: 硬件消抖 软件消抖
2 C语言相关知识
一、关系运算符和关系表达式
2.if......else......语句
基本形式
流程图
if(表达式) {语句1;} else {语句2;}
功能
如果表达式 的值为真, 则执行语句 1,否则执 行语句 2。
做一做
当x=-1 时,执行下列语句,其 结果为?if(x>0)y=3;else y=x+1;
独立按键控制LED灯

项目五独立按键控制LED灯1.掌握独立按键消抖原理2.掌握独立按键接口电路设计3.掌握独立按键控制LED灯的程序编写1.设计独立按键控制LED的硬件电路2.编写程序分别实现按下按键1和按键2,LED灯闪烁方式不同3.下载程序到单片机中,运行程序观察结果并进行软硬件的联合调试键盘是常见的计算机输入设备,在单片机应用中,按键可以设置电子钟的时间;简易计算器中,按键可以输入数字;按键还可以实现单片机中两个不同功能程序切换。
本项目要求两个按键分别实现LDE灯的不同闪烁方式,按键1按下时,8个LED灯从右向左依次点亮,按键2按下时,8个LED灯从左向右依次点亮。
本项目只需2个按键实现LED灯闪烁方式控制,因此按键接口电路设计成独立按键。
独立按键即每个按键直接与单片机I/O端口连接,当按键按下和弹开时,单片机I/O端口呈现不同的电平。
独立按键接口电路可以设计成当按键按下时,单片机I/O端口为高电平或者低电平,读者可以根据自己的需求自行设计。
单片机应用中的独立按键多是机械弹性开关,在按键按下和弹开时,由于按键的机械特性,有抖动产生。
消除抖动有硬件方式和软件方式,软件方式就是编程读取I/O端口电平时,产生一个5ms~10ms延时后,再次读取I/O端口电平,以确认按键是否按下或弹开。
1.独立按键与矩阵按键键盘是实现人机交互的重要计算机输入设备,其中按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
按键按照接口原理可分为编码键盘和非编码键盘,编码键盘是用硬件来实现对键的识别,非编码键盘由软件来实现按键的识别。
非编码键盘按连接方式可分为独立按键和矩阵按键。
独立按键特点是每个按键占用一条I/O线,当按键数量较多时,I/O口利用率不高,但程序编制简单,适合所需按键较少的场合。
矩阵按键特点是电路连接复杂,软件编程较复杂,但I/O口利用率高,适合需要大量按键的场合。
按键控制LED灯

(2) 共阳极接法。把发光二极管的阳极连在一起构成公共阳极, 使用时公共阳极接高电平,每个发光二极管的阴极通过电阻与输 入端相连。如图 5-3(c)所示。当笔画(字段)接低电平时被点亮。
2、模拟开关灯
参考程序如下: ORG 0000H L1: JB P3.2,L2
转到L2 CLR P0.0
SJMP L1 L2: JB P3.3,L1
SETB P0.0
SJMP L1 END
;如果P3.2的状态为1(1号键未按),则跳 ;1号键按下,P0.0清0,输出低电平,LED
发光
;如果P3.3的状态为1(2号键未按),则跳 转到L1
;2号键按下,P0.0置1,输出高电平,LED 熄灭
按下1号键时,P3.2=0,程序从L1顺序执 行,P0.0被清0,输出低电平,LED发光, 1号键未按下,程序跳转到L2,检测2号 键,即P3.3的状态,如果P3.3的状态为1 (2号键未按),则跳转到L1,完成一个 循环;如果P3.3的状态为0(2号键被按 下),程序从L2顺序执行,P0.0置1,输 出高电平,LED熄灭。最后执行 SJMP L1,回到开始处继续执行。
分析该程序,我们发现,当按下P3口外接的按 键时,与之连接的引脚变成低电平,单片机执 行MOV A,P3指令时,该引脚的状态输入到A中。 在执行MOV P0,A时,输出到P0口,与之对应 的P0口引脚为低电平,点亮相应的LED灯。 P3.2、P3.3、P3.4、P3.5分别控制P0.2、P0.3、 P0.4、P0.5引脚连接的LED灯。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目五独立按键控制LED灯
1. 掌握独立按键消抖原理
2. 掌握独立按键接口电路设计
3. 掌握独立按键控制LED灯的程序编写
项目任务
1. 设计独立按键控制LED的硬件电路
2. 编写程序分别实现按下按键1和按键2,LED灯闪烁方式不同
3. 下载程序到单片机中,运行程序观察结果并进行软硬件的联合调试
键盘是常见的计算机输入设备,在单片机应用中,按键可以设置电子钟的时间;简易
计算器中,按键可以输入数字;按键还可以实现单片机中两个不同功能程序切换。
本项目要求两个按键分别实现LDE灯的不同闪烁方式,按键1按下时,8个LED灯从右向左依次点亮,按键2按下时,8个LED灯从左向右依次点亮。
本项目只需2个按键实现LED灯闪烁方式控制,因此按键接口电路设计成独立按键。
独立按键即每个按键直接与单片机I/O端口连接,当按键按下和弹开时,单片机I/O端口呈
现不同的电平。
独立按键接口电路可以设计成当按键按下时,单片机I/O端口为高电平或者
低电平,读者可以根据自己的需求自行设计。
单片机应用中的独立按键多是机械弹性开关,在按键按下和弹开时,由于按键的机械特性,有抖动产生。
消除抖动有硬件方式和软件方式,软件方式就是编程读取I/O端口电平时,产生一个5ms〜10ms延时后,再次读取I/O端口电平,以确认按键是否按下或弹开。
1. 独立按键与矩阵按键
键盘是实现人机交互的重要计算机输入设备,其中按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
按键按照接口原理可分为编码键盘和非编码键盘,编码键盘是用硬件来实现对键的识别,非编码键盘由软件来实现按键的识别。
非编码键盘按连接方式可分为独立按键和矩阵按键。
独立按键特点是每个按键占用一条I/O线,当按键数量较多时,I/O 口利用率不高,但程序编制简单,适合所需按键较少的场合。
矩阵按键特点是电路连接复杂,软件编程较复杂,但I/O 口利用率高,适合需要大量按键的场合。
下图为常见独立按键和矩阵按键接口电路。
图独立按键接口电路与矩阵按键接口电路
上图四个按键(常开触点开关)S1,S2, S3, S4分别与单片机的四个I/O 端口连接。
当按键没有按下时,四个I/O端口的电压为高电平;当按键按下
时,电源与电阻、按键构成闭合回路,四个I/O端口的电压拉为低电平。
四个电阻为外部上拉电路,它们的作用是拉升外部端口的电压,如果单片机的I/O端口有内部上拉电阻的话,此处可以忽略,但编程时需注意读I/O端口时,应先给端口赋高电平,避免误读端口。
矩阵按键接口电路在项目六中讲解。
2. 按键消抖
通常的按键所用的开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
如下图所示,按键抖动时间一般为5ms〜10ms。
因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。
按键消抖方式有硬件消抖和软件消抖。
硬件消抖在按键数目较少时使用, 常用硬件消抖电路有RS触发器和并联电容,如下图所示。
如果按键较多,常用软件方法消抖。
其方法是检测按键是否按下,如按
键按下,执行一个延时程序5ms- 10ms 让前沿抖动消失后再一次检测按键状态, 如果仍保持按下,则确认为真正有按键按下。
当检测到按键释放后,也执行一个 5ms - 10ms 的延时,待后沿抖动消失后转入该按键的处理程序。
这种按键消抖占 用CPU 资源,采用定时器中断软件消抖效果要好些。
项目实施
1.绘制本项目电路图
2.准备焊接器材
骨口, 序号
电路组成 元件名称 规格或参数 数量 1
最 电阻 10K 2个 2
小 排阻 10K 1个 3
系 电解电容 10uF 1个 4
统 瓷片电容 30pF 2个 5
晶振
12MHz
1个
vcc
P3 1
R ADI^I
fAM 昨
FI-* 個诃』
PL!
AD^-jPQA
Fl-T
VPD
g-jKl ~
FlCTlxD)
EAVP? PilOW)
ALzra^G 3E5T
FUKT 打
科和}
C'AH)K 甫
(ALSjKLJ
fA12^L4
K ■吾
陆1】阴J XTAL1 (AljffJKJ XTAU : (A#迟] GND
(AJ>P : 0
39 PO D "3! ->0)
PO -
POj
3! PM
55
P0 6
w
和
JET
.■U -Z.
ft®?
仍=F
Pi 售
壮
11
九:
D? 1
21
上拉电阻I 心
1尹 PU : j —t
1 _ 1 K :-
1 --- 1 p?3 5
L J
陀』•
5 1 _ 1 G °
1 --- 1 巩E ;
1 ■ i PC _
書
1 _ 1
项目五
MCU
3. 根据电路图进行焊接参考视频资料
4. 编写本项目程序
5. 程序下载并进行软硬件调
试参考视频资料。