我们学习怎么用一个按键K1控制1个LED灯的亮和灭两种状态。按一次K1灯亮,再按一次K1灯灭。再按一次又亮,再按一次又灭。
我们学习一下用一个bit变量来做一个标记,然后在按键的控制下,这个标记会变化,再根据这个标记的值,LED也输出不同的状态。
因为按键按下时可能会有抖动的情况,每次按下时,可能会发生了人难以觉察到的多次抖动,相当于一下子按下了很多次。这会导致程序无法识别出您真正的按键意图。
但是抖动一般都是发生在刚按下键和松开键的时候,所以,我们只要避开这一段时间,等键稳定按下或者松开时,再去读它的值,一般就可以正确读取了。
所以,当读到第一次按键的值时,要延时等待一会,再处理。在松开后,也延时一会,免得检测到松开的抖动以为又有按键。(注,更复杂的应用,需要在按下延时之后重新验证按键,为了简化和方便理解,这个例程里没有这样做。)
另外,因为程序是循环运行的,当一次按键处理后,又会再循环回来继续检测,如果您的按键这时还没有松开,又会被读到一次新的按键,并做处理。所以我们还要做一个特殊的处理,识别到一个按键并处理完成之后,还要等待这个按键松开后,再继续循环运行。
看程序:
请根据例程里的注释理解程序。
请编译,进入仿真,全速运行,看结果。
全速后,由于light变量初始化时默认为0,所以灯是亮的。按下K1,松开后,灯灭了;再按一次K1,松开后,灯灭了。
这个例子里,我们只用一个按键就控制了灯的亮灭,这种方法可以节省了硬件资源,也就是节省了硬件成本。在实际项目设计中,有成本优势,产品就更具竞争力。所以我们应该多学习类似的可以节省资源的方法。
作业:
改为4个按键,分别控制4个LED的亮和灭。相当应用到多个房间的单键开关灯共用一个cpu处理。
关键字:标记 按键控制 LED灯 按键去抖
引用地址:
标记的用法,用一个按键控制1个LED灯的亮灭,按键去抖
推荐阅读最新更新时间:2024-03-16 14:37
消费者四招瓦解LED灯具商欺骗阴谋
无论是搞电子的还是做建筑装饰的,好像大家都知道, LED 灯具正在逐渐要慢慢普及,普通的老百姓好像也在觉醒,白炽灯要逐渐淘汰,LED灯,慢慢要逐渐发展起来。 我们印象中的LED灯具,主要是高效率、环保节能、寿命长、体积精巧等技术特点,已经在成为新一代照明市场的主力产品,并且在国家大力扶植下,有力地拉动环保节能产业的迅猛发展。LED灯具的照明普及率会进一步提升,这让掘金绿色照明革命的中国数千家LED灯具厂商欢欣鼓舞。 LED是一种寿命极长的电光源,理论上使用寿命可以达到10万小时,一般的荧光灯的寿命一般应用不会超过1万小时。LED的另一个特点是光效高,实用化的大功率LED的光效已经超过T8荧光灯管。实际的LED灯的实际寿命并
[电源管理]
新技术:多晶纯抛物面微棱纹无眩光技术LED灯具
一般的照明设计是假定窗户无昼光进入的夜间状态下对空间进行照度计算,从而决定照明设备的配置。良好的照明环境不仅要有充足的照度来源,分配均匀的照度, 还要尽可能地避免眩光。 图一:光源的眩光效应 眩光是由于亮度分布或亮度范围的不适宜,或存在极端的亮度对比,以致引起不舒适感觉或降低观察细部或目标能力的视觉现象。目前存在市场上的LED的眩光比较严重,如果人眼长期接触到眩光,就会感到眼、头晕、不舒适之类的现象。在这种条件下工作,会产生厌烦、急躁不安和疲劳,对人们的生产和生活造成很大的影响,无眩光灯为解决以上问题而发明的。 灯具眩光通常有有两种:即直接眩光和反射眩光。而LED灯的眩光通常是指反射眩光。作为LED灯具制造企
[电源管理]
在校生发明LED灯发光的自行车踏板,赚二百万元发明专利权金
亚洲大学大四学生刘怡君,发明利用LED灯发光的自行车踏板,近日被台湾中青辅实业公司以二百万元新台币买下其发明专利权。 2010年,该学生发明“自行车之踏板结构”,该项发明结合发电机、LED灯等装置,只要用脚踩踏板,发电机就会将动能转为电能,让LED灯发光,且有储电功能,夜间骑车可发挥警示作用,增加安全。
[电源管理]
基于DSP的高速激光标记控制系统设计
0 引言 振镜扫描式激光标记技术就是通过控制两片高速振镜的偏转角, 改变激光的传播方向, 经过F-Theata透镜在工件表面的聚焦, 在工件表面作标记。与传统的标记技术相比, 它具有适用面广(对不同材料、形状的加工表面均适合) , 工件无机械变形, 无污染, 标记速度快, 重复性好, 自动化程度高等特点, 在工业、国防、科研等许多领域具有广泛的用途。高速高精度的振镜标记已成为当今标记行业的发展方向。 传统的振镜标记控制系统通过PC 机的串口、并口ISA 总线与单片控制板相连,这种方式接口简单、连接方便, 开发费用低, 但由于传输速度低, 已不能满足现代数控系统的实时性要求。本文在激光标记控制技术方面进行了一些新的
[嵌入式]
单片机学习之C语言点亮控制led灯
C语言是学习单片机的过程中必须要经历的一个环节,但是并不是说学习单片机C语言就要像C语言开发程序员一样要掌握C语言的全部,因此我们只要掌握C语言中可以操作单片机的那一部分就可以了,今天我们要说的就是C语言我们该如何来点亮并控制led灯。 首先来给你大家上电路图,相信大部分同学都可以看懂,如果看不懂的也没关系,因为篇幅有限就不给大家长篇大论了,相信大部分人也看不下去,所以下边还会为大家提供一个C语言点亮控制led灯的配套的视频资料,代码以及如何设计和工作原理在下边为大家提供的视频资料中会给大家一一解释清楚。 看完电路图我们看一小段代码其实很简单,正所谓难者不会会者不难,代码不全部贴出来了,只看片段代码越看越懵,详细代码看看视频
[单片机]
msp430单片机实现常按键和短按键加去抖功能
通过P1口的中断开启定时器,然后利用定时器中断不断扫描相应的端口状态,判断按键的 //定时器设置 void TimerA1Init() { _UINT data = 0 ; TA1CTL = data ;//clear all ,diaable interrupt , claer ifg TA1CTL |= TASSEL__ACLK | ID_0 | TACLR ; // ACLK, stop mode, ,div:1 ,clear TAR //TA0CTL |= MC__UP ;//启动定时器 TA1CCTL0 = CCIE ; //ccr0 比较中断允许 TA1CCR0 = 327 ; //ccr
[单片机]
51实验10: 独立按键控制一个数码管显示0-9,按一次只加1.
#include reg52.h typedef unsigned int u16; typedef unsigned char u8; //位定义 sbit led=P2^0; sbit K1=P3^1; sbit beep=P1^5; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; //全局变量 u16 n=0; //共阴数码表 u8 code smgduan ={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79, 0x71}; //延时函数 vo
[单片机]
LED灯泡技术发展方向:照射范围赶上白炽灯
LED灯泡是指光源采用LED芯片 、外形与白炽灯相同的灯泡。与白炽灯泡一样,可安装在E26、E17等灯头上使用。但与白炽灯相比,可大幅降低耗电量。有些种类的LED灯泡的耗电量只有白炽灯泡的1/5不到。2010年前后全世界越来越多的地区开始禁止使用能源效率低下的白炽灯,人们期待LED灯泡能和灯泡型荧光灯一起作为普通白炽灯的替代品来使用。 LED灯泡比灯泡型荧光灯寿命长。寿命较长的灯泡型荧光灯只有1万2000~1万3000小时左右,而大多数LED灯泡的寿命长达4万小时。灯泡型荧光灯的缺点是不能瞬间亮灯以及刚打开时亮度较低等,而LED灯泡却没有这些缺点。LED灯泡的综合效率(包括电源电路在内的总体效率)方面,灯泡色产品为50.6
[电源管理]