51单片机之通过按键点灯程序

单片机芯片采用ATmel公司89c52芯片。

1.流水灯电路图

51单片机之通过按键点灯程序_第1张图片

2.四位按键

51单片机之通过按键点灯程序_第2张图片

3.C语言代码(简单的按键控制灯的明暗)

#include 

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;

sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;

void main()
{				   
  P1=0xff;

  while(1)
  {
   led1=k1;
   led2=k1;
   /* if(k1==0)
   {
    led1=0;
	led2=0;
   }
   else
   {
    led1=1;
	le12=1;
   }*/
   led3=k2;
   led4=k2;
   led5=k3;
   led6=k3;
   led7=k4;
   led8=k4;
  }
}

只有当按键按住超过一定时间,才亮灯,并且每次按键都反转指示灯的状态 

#include 

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;

sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;

void delay(unsigned int xms)
{
 unsigned int i,j;
 for(i=xms;i>0;i--)
   for(j=112;j>0;j--);
}

void main()
{				   
  P1=0xff;
 while(1)
 {
 if(k1==0)
 delay(5000);	//只有当按键按住时间到达5s,才点亮指示灯
 if(k1==0)
 {
  while(k1==0);
  led1=~led1;
 }
 
 }
}

 

 简单的单片机程序,首先要了解电路的各个引脚的输出,其次对应库函数编写C语言代码。

 

你可能感兴趣的:(51单片机的应用)