使用AT89C51单片机通过按钮控制8个LED灯的亮灭
C51源码
#include <REGX51.H>//REGX51.H
void DelayXms(unsigned int xms) //@12.000MHz
{ //传入参数xms以实现任意毫秒
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
//用按钮控制8个LED亮灭
//按钮接P3.2口
//LED接P1口
void main()
{
while(1)//死循环
{
if(P3_2==0)//按下按钮
{
//按键消抖周期
DelayXms(50);//过滤按下抖动50ms
while(P3_2==0){}//循环,等待松开按钮
DelayXms(50);//过滤松手抖动50ms
//按位取反
//按下亮,再按下灭
P1=~P1;
}
}
}