嵌入式 Keil C51单片机流水灯

该程序定义了单片机P0接口的三个按键KEY1、KEY2和KEY3,并通过Delayms延时函数实现按键消抖。在主函数中,当检测到KEY1被按下,所有LED灯亮;KEY2被按下时,LED灯交替亮灭;而KEY3被按下,则低四位LED灯亮,高四位熄灭。

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

#include<reg51.h>
sbit KEY1=P0^0;//定义KEY1,KEY2,KEY3在单片机P0组接口
sbit KEY2=P0^1;
sbit KEY3=P0^3;
void Delayms(unsigned int m){              //定义一个Delayms ms级延时函数 ,Unsigned无符号整数m
    unsigned int a,b;                                //定义 整数 a,b
    for(b=m;b>0;b--)                                //使用for循环,如果b>0则b自减
    for(a=125;a>0;a--);                             //a=125 最大值为125 自减
}
void main(){                                //无返回值的函数入口
P1=0xff;                        //八进制的P1端口输出 1111 1111,所有灯熄灭
    while(1)
    {if(KEY1 == 0)                //判断按键状态,如果为低电平有可能是按键按下
    
    {Delayms(20);                //按键延时消抖
    if(KEY1 ==0)            //再次判断按键状态
    {P1 = 0x00;}                      //0000 0000,所有灯为带电状态,所有灯亮

 }        
    else if(KEY2 == 0)
{Delayms(20);

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值