按键以接0方式触发(即按键另一脚接GND)
//头文件:
#include "reg51.h"
//引脚定义:
sbit key = P3^2; //定义按键
sbit key2 = P3^2;
sbit led1 = P2^0; //定义第一个LED灯
sbit led2 = P2^1;
//延时子函数,参数范围 0-65536,int为两个字节
void delay(unsigned int timer) //参数 time 大小决定延时时间长短
{
while(timer--); //减1循环,减到0退出
}
//主函数,C语言的入口函数:
void main(void)
{
while(1){
if(key==0){ //按键1按下,LED1取反
delay(1000); //延时消抖动
if(key==0)
{led1=!led1; //LED灯取反,亮或灭
led2=!led2;}
while(key==0); //等待按键释放
}
}
}
源程序的话被我改了,我试着调一下别的程序,试着用一个按键控制多个LED,这个就是可以实现的,需要说明的是先前我试着调这个程序的时候,忘了在“LED灯取反,亮或灭”中的两个LED灯中加了个{},结果出现的效果就是当按键按下去的时候两个LED是可以同时点亮的,但是当再次按下按键的时候就不是两个灯同时熄灭的了。