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

该程序设计用于单片机,通过P1.4到P1.7连接的4个开关控制P1.0到P1.3的4个发光二极管。当开关闭合时,对应的二极管点亮。代码中利用内部上拉电阻,通过读取P1口高四位状态并右移后输出到低四位来实现显示。延时函数保证了程序的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《单片机原理及应用》第二版 例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();
    }
}    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值