单片机
返回首页

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

2022-03-11 来源:eefocus

每一个按键对应一个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);

}

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 用数字电路CD4069制作的万能遥控轻触开关

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 用NE555制作定时器

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章