51单片机实现独立按键控制LED灯

发布者:WhisperingWinds最新更新时间:2022-09-27 来源: csdn关键字:51单片机  独立按键控制  LED灯 手机看文章 扫描二维码
随时随地手机看文章

 3-1独立按键控制LED亮灭

    本段代码主要使用了if...else...语句实现按下按下灯亮,松开按键时灯灭


#include

 

void main()

{

while(1)

{

if(P3_1==0&&P3_0==0)

{

P2_0=0;

}

else

{

P2_0=1;

}

}

}


 3-2独立按键控制LED状态

首先使用较为灵活的延时函数生成代码,进行修改后如下


void Delay(unsigned int xms)  

{

unsigned char i, j;

while(xms)

{

i = 2;

j = 239;

do

{

while (--j);

} while (--i);

xms--;

}

}

 按键代码:


void main()

{

while(1)

{

if(P3_1==0)

{

Delay(20);

while(P3_1==0); //{}

Delay(20);

 

P2_0=~P2_0;

 

}

}

}


实现效果:

 3-2独立按键控制LED状态


 3-3独立按键控制LED显示二进制

显示二进制的延时函数与上述一致,但是按键部分稍有变化


if(P3_1==0)

{

Delay(20);

while(P3_1==0);

Delay(20);

 

LEDNum++;  

P2=~LEDNum;  

}

注意:要对按键进行消抖,判断按键是否仍然继续按下,在此之前定义一个局部变量记录变化,最后让其取反赋值给P2


unsigned char LEDNum=0;

实现效果:

 3-3独立按键控制LED显示二进制


 3-4独立按键控制LED移位

3-4设置两个按键控制LED灯的移位,延时部分一致,与3-3比较可以定义一个全局变量


unsigned char LEDNum;

 P3_1控制LED右移,P3_0控制LED左移


if(P3_1==0)

{

Delay(20);

while(P3_1==0);

Delay(20);

 

  LEDNum++;

if(LEDNum>=8)

LEDNum=0;

  P2=~(0x01< }

 

 

if(P3_0==0)

{

Delay(20);

while(P3_0==0);

Delay(20);

 

if(LEDNum==0)

LEDNum=7;

else

  LEDNum--;

  P2=~(0x01< }


一开始D1是不亮的,所以可在代码前添加以下代码,表示将其状态取反后赋值给P2


P2=~0x01;

实现效果:

关键字:51单片机  独立按键控制  LED灯 引用地址:51单片机实现独立按键控制LED灯

上一篇:51单片机点亮LED灯、流水灯
下一篇:解决keil5中的中文乱码问题

推荐阅读最新更新时间:2024-11-17 04:42

8051单片机指令系统剖析详解
MCS- 51系列单片机的指令系统是一种简明高效的指令系统,其基本指令共有111条,其中单字节指令49条,双字节指令4'5条,三字节指令17条。如果按功能可以讲这些指令分为五类:数据传送类(29条)、算术操作类(24条)、逻辑操作类(24条)、控制转移类(17条)以及位变量操作类(17条)。对于反向设计而言,我们关心的不是它的各种具体指令的多少而是指令的寻址方式。所谓的寻址方式就是寻找确定参与操作的数的真正地址。MCS-51系列单片机的111条指令一共只采用了5种寻址方式。5种寻址方式以及它们的寻址空间如表1所示。 1.寄存器寻址 寄存器寻址方式可用于访问选定寄存器区的8个工作寄存器RO-R7。由指令操作码的低三位指示所用
[单片机]
汽车照明串联LED灯珠的开路保护方案
LED汽车照明灯种类繁多,主要分为内部照明和外部照明两大类。在介绍方案之前,我们得清楚的知道汽车照明到底有哪些?细分如下: 1. 内部照明: 背光,调光,集成HMI 2. 外部照明:前照灯,日间行驶灯(DRL),雾灯(FOG),转向灯(TI),装饰灯,位置灯(POS),远近光灯(HLB),角灯(CRN) 3. 通信支持:SPI/I?C, LIN ,CANBUS 内部照明控制台设计参考: 1. 电容传感按钮用于功能选择 2. 每个按钮均具有RGB背光和LED指示灯 3. 顶灯采用高亮度白光LED 4. 整个装置采用12V电源输入和CAN/LIN总行I/O 外部照明设计难点: 1. 需要恒流控制:高电流峰值缩短LED寿命 2. 需要高
[电源管理]
汽车照明串联<font color='red'>LED灯</font>珠的开路保护方案
51单片机实现模拟打乒乓球
电子 乒乓球 游戏机 ********************** 初始化 ********************** lw bit 20h.0 rw bit 20h.1 speed bit 20h.2 sd bit 20h.3 fs bit 20h.4 jq bit 20h.5 zy bit 20h.6 fq bit 20h.7 date equ p0 led equ p1 rp equ p3.0 lp equ p3.3 ks equ p3.2
[单片机]
<font color='red'>51单片机</font>实现模拟打乒乓球
keil C51单片机存储模式有哪些?
在使用C51时有时我们并没有明确指定所定义的数据的存储类型,然而依然正确。 这是由于存储模式决定了没有明确指定存储类型的变量,函数参数等的缺省存储区域。 供有3种存储模式(存储模式在 C51 编译器选项中选择): 1.Small模式 所有缺省变量参数均装入内部 RAM,优点是访问速度快,缺点是空间有限,只适用于小程序。 2. Compact 模式 所有缺省变量均位于外部RAM区的一页(256Byte)。 3. Large 模式 所有缺省变量可放在多达 64KB 的外部RAM 区,优点是空间大,可存变量多,缺点是速度较慢。
[单片机]
51单片机-定时器&数码管扫描显示
1.定时器中断实现间隔切换 在第六章第4讲的测试代码中提到过数码管微闪烁问题,这是由于三八译码器的IO端口切换的间隔时间不均匀导致,这部分的问题宋老师已经在《手把手教你学51单片机》文档6.4.2节有详细解释,并在6.5.2节里解决了这个问题。数码管扫描函数我们使用定时器0强制实现间隔1ms切换三八译码器的IO输出,这样保证了每个数码管被点亮的时间都是均匀的。我们在主函数里不停地执行数码管显示函数。这里是测试代码,用定时器1实现add间隔50ms自增1,数码管显示add的值。 #include reg52.h #include function.h //详见第六章第8讲 #include timer.h u32 a
[单片机]
<font color='red'>51单片机</font>-定时器&数码管扫描显示
STM32定时器控制led灯亮灭
SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置 系统时钟 SYSCLK 等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产 生一次中断,以此循环往复。 在使用时,只需要配置前三个寄存器,最后一个校准寄存器不需要使用。 接下来,利用 SysTick 产生 1s 的时基,LED 以 1s 的频率闪烁。 1、设置重装载寄存器的值 2、清除当前数值寄存器的值 3、配置控制与状态寄存器 配置头文件: void PendSV_Handler(void) { }
[单片机]
51单片机SNMP网管板卡驱动程序
  SNMP网管板使用了RTL8019AS 10M ISA网卡芯片接入以太网。选它的好处是:NE2000兼容,软件移植性好;接口简单不用转换芯片如PCI-ISA桥;价格便宜2.1$/片(我的购入价为22元RMB/片);带宽充裕(针对51);较长一段时间内不会停产。8019有3种配置模式:跳线方式、即插即用P&P方式、串行Flash配置方式。为了节省成本,我去掉了9346而使用X5045作为闪盘存储MAC地址和其他可配置信息。P&P模式用在PC机中,这里用不上。只剩下跳线配置模式可用,它的电路设计参考REALTEK提供的DEMO板图纸。一天时间就可以完成,相对来说硬件设计比较简单。   与这部分硬件相对应的软件是网卡驱动。所谓驱动
[单片机]
<font color='red'>51单片机</font>SNMP网管板卡驱动程序
AT89C51单片机系统简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51 ? 指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1.主要特性: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三
[工业控制]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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