使用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;
        }
	}
}

仿真原理图

物联沃分享整理
物联沃-IOTWORD物联网 » 使用AT89C51单片机通过按钮控制8个LED灯的亮灭

发表评论