51单片机多路独立按键开关程序

发布者:清新家园最新更新时间:2022-04-22 来源: eefocus关键字:51单片机  多路  独立按键 手机看文章 扫描二维码
随时随地手机看文章

每一个按键对应一个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; ifor(j = 0; j<110; ++j);

}

关键字:51单片机  多路  独立按键 引用地址:51单片机多路独立按键开关程序

上一篇:小白自学c51笔记之流水灯
下一篇:51单片机单键开关

推荐阅读最新更新时间:2024-11-11 11:28

62-基于51单片机的天然气检测报警设计
具体实现功能 系统由STC89C52单片机+MQ-5传感器模块电路+3个LED指示灯电路+蜂鸣器报警电路+PCF8591AD模块+风扇控制电路+继电器电路+电源电路组成。 1、MQ-5实时检测煤气浓度,浓度分为低中高3档,并分别用绿灯、黄灯和红灯指示,浓度到达相应的档位,则相应的灯亮,指示灯指示安全状态。 2、当浓度达到高档的时候,蜂鸣器报警,风扇启动,疏散煤气,继电器工作驱动负载断开煤气阀; 3、当浓度达到中档时,继电器工作,驱动负载断开煤气阀。 设计背景 人的生存离不开空气,人的一生大约有80%的时间是在室内度过的,室内环境质量的好坏影响着人们的身心健康。室内的有害气体来源有来自装修不当造成的甲醛、氨气、氡气、
[单片机]
62-基于<font color='red'>51单片机</font>的天然气检测报警设计
51单片机——UART
对于单片机来说,通信则与传感器、存储芯片、外围控制芯片等技术紧密结合,成为整个单片机系统的“神经中枢”。 1、初步认识 一位一位的发送出去的,要发送 8 次才能发送完一个字节。 STC89C52有两个引脚是专门用来做 UART串行通信的,一个是 P3.0一个是 P3.1,它们还分别有另外的名字叫做 RXD和TXD,由它们组成的通信接口就叫做串行接口,简称串口。 波特率:发送二进制数据位的速率,习惯上用 baud 表示;即我们发送一位二进制数据的持续时间=1/baud。 通信过程:在UART 通信的时候,一个字节是 8 位,规定当没有通信信号发生时,通信线路保持高电平,当要发送数据之前,先发一位 0 表示起始位,然后
[单片机]
<font color='red'>51单片机</font>——UART
基于C51单片机的手动计数器设计电路图
  利用 AT89S51 单片机来制作一个手动计数器,在 AT89S51 单片机的 P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的 P2.0 - P2.7 接一个共阴数码管,作为00-99计数的个位数显示,用单片机的 P0.0 - P0.7 接一个共阴数码管,作为 00 - 99 计数的十位数显示;硬件电路图如图所示。   1 . 把 “ 单片机系统 ” 区域中的 P0.0/AD0 - P0.7/AD7 端口用 8 芯排线连接到“ 四路静态数码显示模块 ” 区域中的任一个 a - h 端口上;要求: P0.0/A D0对应着 a , P0.1/AD1 对应着 b , …… , P0.7/AD7 对应着 h 。  
[单片机]
基于C<font color='red'>51单片机</font>的手动计数器设计电路图
51单片机-流水灯
这个是原理图,从图中最右边有一个排阻,也就是这里八个电阻封装在一起,这里排阻的特点是八个 电阻有一个公共端,然后一个电源VCC通过跳线与排阻相连。到达二极管的电流从正极流向负极,如 果二极管负极是低电平,则电流流过二极管,发光二极管亮起来。负极接在单片机的P2端口上。也就 是说P2的引脚位低电平时可驱动发光二极管发光。驱动各个灯闪烁的方法是把各位循环左移,使用函数 _crol_。 #include #include unsigned int a; void delay(){ int i,j; for(i = 0; i 0xff; i++) f
[单片机]
<font color='red'>51单片机</font>-流水灯
51单片机最小系统电路设计
51系列单片机是单片机入门学习最基础的知识,学好基础知识很关键,理解好51单片机的思想有利于学430单片机等12位、16位的单片机以及嵌入式控制器的学习。本次给大家介绍最简单的51单片机最小系统电路图,其原理很简单,只有具备基本的模拟电路和数字电路知识肯定都能看懂,关键是自己动手制作PCB或者焊接元器件,然后再编写C语言程序。
[单片机]
51单片机学习笔记8 -- OLED显示(SPI)
1.OLED简介 有机发光二极管(Organic Light-Emitting Diode, OLED)又称为有机电激光显示、有机发光半导体。由美籍华裔教授邓青云(Ching W. Tang)于1979年在实验室中发现。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低耗电、极高反应速度等优点。 1.2 OLED结构 由基板、阴极、阳极、空穴注入层(HIL)、电子注入层(EIL)、空穴传输层(HTL)、电子传输层(ETL)、电子阻挡层(EBL)、空穴阻挡层(HBL)、发光层(EML)等部分构成。其中,基板是整个器件的基础,所有功能层都需要蒸镀到器件的基板上;通常采用玻璃作为器件的基板,但是如果需要制作可弯曲的柔性
[单片机]
<font color='red'>51单片机</font>学习笔记8 -- OLED显示(SPI)
51单片机控制步进电机正反转的程序
这是一款51单片机控制步进电机正反转的程序,同时还能实现调速。 #include ”reg51.h“ #include “intrins.h” #define uchar unsigned char #define uint unsigned int #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; unsigned char code FFW ={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //?? unsigned char code REV ={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xf
[单片机]
51单片机------数码管【有74HC753】
一 实验目的: 实验3:使用PO和P2端口实现数码管从0-7的显示效果: (1) 掌握C语言编程单片机控制程序的方法。 (2) 掌握使用Keil4软件编写、编译、调试程序的方法。 (3) 掌握使用Proteus软件绘制电路原理图、硬件仿真和程序调试。 (4) 理解和掌握共阴极数码管的显示原理和编码(记忆)。 (5) 熟悉使用51单片机P0(开漏)和P1(推挽)端口实现对外部用电器和电路的控制。 二、实验硬件和软件: 计算机1台、并安装Proteus8.6软件和Keil4软件。 三、试验任务: 使用Proteus排线连接的方式,在单片机I/O口(P2和P0)上外接上拉电阻和数码管,最终实现数码管从0-7显示效果,为最终的实训
[单片机]
<font color='red'>51单片机</font>------数码管【有74HC753】

推荐帖子

香山 高性能 RISC-V 处理器
香山是一款开源的高性能RISC-V处理器,基于Chisel硬件设计语言实现,支持RV64GC指令集。在香山处理器的开发过程中,其团队使用了包括Chisel、Verilator等在内的大量开源工具,实现了差分验证、仿真快照、RISC-V检查点等处理器开发的基础工具,建立起了一套包含设计、实现、验证等在内的基于开源工具的处理器前端敏捷开发流程。香山的架构代号以湖命名。第一版架构代号是雁栖湖,微架构如下图所示:源码下载https://gitee
火辣西米秀 国产芯片交流
关于用UT-450制作TCP/IP转RS232/RS485/RS422问题
我想用UT-45010/100MTCP/IP到串口网桥模块做成TCP/IP转RS232/RS485/RS422的converter,ut-450为ttl输出,我利用max232转换为串口rs232,请大家帮忙讨论怎么实现UT-450的TTL输出转换为RS485/422串口,还要接RJ-45,谁能提供点资料,电路图等,欢迎大家讨论,分不多,全部奉送。关于用UT-450制作TCP/IP转RS232/RS485/RS422问题我也想要
ljsvws 嵌入式系统
请大家说说串口在线升级的方法
请大家有相关经验或者认识的说说串口在线升级的方法,大概有哪些思路?主要是如何固定一些不需要升级的文件,如何将非升级文件与升级文件在FLASH中分区存放?请大家说说串口在线升级的方法看你用什么编译器。可以在编译器里设置ISP复位程序的位置。升级程序的时候ISP复位程序部分不要擦除。
glkos 嵌入式系统
如何将1块钱购买开发板做到极致?
管管,听说1块钱购买开发板活动最近很火呢是的,给你链接,可以看看这阅读量哇https://bbs.eeworld.com.cn/thread-1233674-1-1.html但是购买时候我就犯难了,挑来选去不知从何下手啊来来来~管管再给你露一手!看我这波操作~NO.1EV2013A-J-Q-G-00A+5个MP2322合计300.12元eeworld下单返现后等于花了0.12元推荐开发板:EV2
EEWORLD社区 电源技术
《CMake构建实战》CMake 构建目标和属性
#CMake构建目标和属性##二进制构建目标在构建过程中被构建的可执行文件、库文件或目标文件都可以作为二进制构建目标。###可执行文件目标```cmakeadd_executable()```该命令会创建一个可执行文件类型的构建目标,其中第一个参数是必选参数,且应当在项目中唯一。创建一个小工程实践一下。创建`008`文件夹创建`CMakeLists.txt````cmakecmake_minimum_required(VERSI
小麦克 嵌入式系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved