基于51单片机的开关控制LED亮灭

《单片机原理及应用》第二版 例5-3

如下图所示,单片机的P1.4~P1.7接4个开关,P1.0~P1.3接4个发光二极管D1~D4,编写程序,将P1.4~P1.7上的4个开关的状态反映在P1.0~P1.3引脚控制的4个发光二极管上,即开关闭合,对应的发光二极管点亮。例如P1.4引脚上开关的状态由P1.0引脚上的D0显示。

 说明:P1口内部已有上拉电阻,故无需再接。

参考代码:

#include <REGX52.H>
#include<intrins.h>

#define uchar unsigned char


void delay()//延时函数
{
    uchar i,j;
    for(i=0;i<255;i++)
    {
        for(j=0;j<255;j++);
    }
}

void main()
{
    while(1)
    {
        uchar temp;    //定义临时变量temp
        P1=0xff;       //P1口高四位置1,作为输入;低四位置1,发光二极管默认熄灭
        temp=P1&0xf0;  //读P1口并屏蔽其低四位,送入temp中
        temp=temp>>4;  //temp的内容右移四位,即P1口高四位按键输入状态移至低四位,用于发光二极管显示控制
        P1=temp;       //temp中的数据送P1口输出
        delay();
    }
}    

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C51开关控制LED亮灭是一种常见的电子控制原理,主要通过C51单片机来实现。C51是一种基于MCS-51系列架构的经典单片机,具有较高的可编程性和灵活性。下面我们以一个简单的例子来说明C51开关控制LED亮灭的原理和步骤。 首先,我们需要准备以下硬件设备:一个C51开发板、一个LED、一个开关按钮以及相应的连接线。 接下来,我们将LED正极与C51开发板的一个IO口相连,将LED负极与C51开发板的地(GND)相连。将开关按钮的一个引脚与C51开发板的另一个IO口相连,另一个引脚与C51开发板的地(GND)相连。 然后,我们就可以开始编写C语言程序来实现开关控制LED亮灭了。 首先,在程序中需要定义LED的IO口和开关按钮的IO口,通常使用宏定义来方便后续的引用。 然后,需要初始化C51单片机的IO口,将LED的IO口设置为输出模式,并将开关按钮的IO口设置为输入模式。 接下来,可以进入无限循环的主程序中。在每次循环开始时,我们读取开关按钮的状态,判断是否被按下。若检测到按钮按下,则将LED的IO口输出高电平,LED起;反之,LED的IO口输出低电平,LED。 通过这样的逻辑判断和控制,我们就可以实现C51开关控制LED亮灭。这种简单的电子控制原理广泛应用于各种需要开关控制LED具、电子玩具等场景中,实现了光的亮灭效果,增加了产品的可玩性和交互性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值