每一个按键对应一个led灯,实现独立开关灯。
源程序:
** #include #define uint unsigned int #define uchar unsigned char //定义按键端口 sbit key1 = P1^0;//定义按键端口1 sbit key2 = P1^1; sbit key3 = P1^2; sbit key4 = P1^3;//定义按键端口4 sbit key5 = P1^4; sbit key6 = P1^5; sbit key7 = P1^6; sbit key8 = P1^7; sbit led1 = P2^0; //定义LED灯1 sbit led2 = P2^1; sbit led3 = P2^2; sbit led4 = P2^3; //定义LED灯4 sbit led5 = P2^4; sbit led6 = P2^5; sbit led7 = P2^6; sbit led8 = P2^7; //延时函数声明 void delay(uint xms); //程序入口 void main(){undefined while(1){undefined //第一次判断 if(key1 == 0){undefined //延时20ms 消除抖动 delay(20); //第二次判断 List item if(key1 == 0){undefined led1 = ~led1;// 灯亮 } while(!key1); //当按键未松开时,key为0,执行该死循环。 //等待按键被松开 } if(key2 == 0){undefined //延时20ms 消除抖动 delay(20); //第二次判断 if(key2 == 0){undefined led2 = ~led2; //灯亮 } //等待按键被松开 while(!key2); //当按键未松开时,key为0,执行该死循环。 } if(key3 == 0){undefined //延时20ms 消除抖动 delay(20); //第二次判断 if(key3 == 0){undefined //灯亮 led3 = ~led3; } //等待按键被松开 while(!key3); //当按键未松开时,key为0,执行该死循环。 } if(key4 == 0){undefined //延时20ms 消除抖动 delay(20); //第二次判断 if(key4 == 0){undefined led4 = ~led4;// 灯亮 } while(!key4); //当按键未松开时,key为0,执行该死循环。 //等待按键被松开 } if(key5 == 0){undefined //延时20ms 消除抖动 delay(20); //第二次判断 if(key5 == 0){undefined led5 = ~led5; //灯亮 } //等待按键被松开 while(!key5); //当按键未松开时,key为0,执行该死循环。 } if(key6 == 0){undefined //延时20ms 消除抖动 delay(20); //第二次判断 if(key6 == 0){undefined //灯亮 led6 = ~led6; } //等待按键被松开 while(!key6); //当按键未松开时,key为0,执行该死循环。 } if(key7 == 0){undefined //延时20ms 消除抖动 delay(20); //第二次判断 if(key7 == 0){undefined led7 = ~led7; //灯亮 } //等待按键被松开 while(!key7); //当按键未松开时,key为0,执行该死循环。 } if(key8 == 0){undefined //延时20ms 消除抖动 delay(20); //第二次判断 if(key8 == 0){undefined //灯亮 led8 = ~led8; } //等待按键被松开 while(!key8); //当按键未松开时,key为0,执行该死循环。 } } } void delay(uint xms) {undefined uint i,j; for(i = 0; i }
上一篇:小白自学c51笔记之流水灯
下一篇:51单片机单键开关
推荐阅读最新更新时间:2024-11-17 10:12
推荐帖子
- ModelSim 6.6a-SE安装流程及说明
- ModelSim6.6a-SE安装流程及说明建议先看完后再装,不知道你们安装的时候会不会遇到问题。(没有问题的朋友和我说声,我看看是不是我电脑系统的问题,谢谢)打开文件,双击modelsim-win32-6.6-se.exe文件,如图1,开始安装旅程图1开始后还是同样的WELCOME界面如图2,直接NEXT图2选择安装目录界面如图3,在这里我选择默认目录,还是建议大家不要装在系统盘。
- lvfanzai FPGA/CPLD
- (有贴代码)msp430g2553怎么实现两个捕获口来求时间差
- 下面的代码求指导,或者有哪位大神会msp430g2553实现两个捕获口来求时间差,求帮助~#includemsp430g2553.h#include12864ser.h//#includemath.hunsignedintcapture0_value=0;unsignedintcapture1_value=0;floatdiff_time_value=0;floatdiff_distance=0;unsignedcharflag_cnt
- benni 微控制器 MCU
- 板子没到-请管理员帮忙啊
- 去快递那里问,我的手机号码快递单上少填了一位,所以板子又被退回去了,我以为没有快递单号,查不到,请管理员,负责人帮帮忙,给我查一下吧。。。我作品的元件都买了。感激不尽板子没到-请管理员帮忙啊不容易啊,顶一下,我还没被选上找找管理员@maylove直接联系管理员你的快递单号是:903249628678物流没有看到被退回的信息。TI那边表示没有少填手机号,你在问问你们那边快递,要是再不行,我这边再帮你问问怎么回事!相信很快会解决的不要急第三批什么时候出啊?
- ziyouniao 微控制器 MCU
- DDR1-3和GDDR1-5全解析
- 本帖最后由jameswangsynnex于2015-3-320:00编辑目前CPU用的内存正在从DDR2向DDR3过渡,而GPU用的显存则是以GDDR2/3为主、跳过GDDR4、直奔GDDR5而去。或许很多朋友一时还难以接受GDDR5那夸张的频率、不明白GDDR相比DDR发展速度为何如此“超前”、甚至搞不清楚GDDR1/2/3/4/5和DDR1/2/3之间“说不清道不明”的关系。如果您是一位求知欲很强的电脑爱好者,那么本文非常适合您,笔者特意搜集了大量官方技术文档,为大
- wstt 移动便携
- 如何取得系统默认的输入法的CLSID?或者有更全的sdk也行,标准的wince5.0sdk没有Coresip.lib,不能用SipEnumIM枚举
- RT,是个解决方法就好,想调出输入法的软键盘来如何取得系统默认的输入法的CLSID?或者有更全的sdk也行,标准的wince5.0sdk没有Coresip.lib,不能用SipEnumIM枚举
- pd840228 WindowsCE
- 温度补偿晶振也是石英晶体振荡器之一,简称“温补晶振”
- 温补晶振特征是什么呢?因为不同领域的电子产品对石英晶体振荡器的需求是不同的,而温度补偿晶体振荡器是为了弥补普通晶体振荡器在高温下的不稳定因素而发展起来的,但是,温度补偿晶体振荡器有很多种,每一种温度补偿晶体振荡器都有自己的特点。温度补偿晶体振荡器由恒温槽控制电路和振荡电路组成。温度控制通常由热敏电阻桥组成的差分串联放大器来实现。晶体谐振器与振荡器电路集成在一起,没有温度补偿和温度控制,这些都是这些方面的特点。晶体振荡器是一种在晶体谐振器中串
- YXC扬兴晶振 分立器件
设计资源 培训 开发板 精华推荐
- 使用 Infineon Technologies AG 的 IRU3004 的参考设计
- 【深大电赛】热像仪人脸跟随测温仪
- LTM4630EY 2 相、1.5V、36A 输出 DC/DC 稳压器的典型应用电路
- LT3970IMS 12V 降压转换器的典型应用
- HV857LDB1,低噪声、高压 EL 灯驱动器 IC 演示板
- 使用 NXP Semiconductors 的 TDA3681 的参考设计
- LM324声音探听器
- ADP2164-EVALZ,用于 ADP2164 同步降压稳压器的评估板
- LTC1430ACS 演示板、低压 30 安培电源、5Vin、2.5Vout @30A
- 消费电子 MCU 开发系统