用51单片机实现按键控制LED灯亮灭

时间:2025-01-29 15:44:32
#include<>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k1=P3^1;//位定义按键 void delay()//延时函数 { unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void key()//按键处理函数 { if(k1==0)//判断按键是否按下(按键按下时k=0) { delay();//如果按下按键延时消抖 if(k1==0)//如果按键仍然按下 { LED=~LED;//对LED取反,原来亮则灭,原来灭则亮 } while(!k1);//等待按键松开(松开时k=1,!k=0,跳出循环, //未松开时,k=0,!k=1,执行while的分号空语句,一直等待) } } void main()//主函数 { while(1) { key();//调用按键处理函数 } }