原创 51实例--按键控制

2007-8-30 22:15 3490 5 5 分类: MCU/ 嵌入式

/*******************************************************
作者:好心情
日期:2007-08-30
描述:用按键控制led闪亮,K1点亮led1,此时按下k3右移点亮;K2点
亮led8,此时按下K3左移点亮,按下k4熄灭.此程序中没有按键防抖
设计
*******************************************************/
#include <at89x51.h>//包含一个标准的51头文件
#define K1 P3_0
#define K2 P3_1
#define K3 P3_2
#define K4 P3_3



void main()
{
 unsigned int j;
 unsigned i,a[7]={0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//花样数据
 /*不同的数据类型所占用的内存空间不同,为数据选用合适的类型,有利于
 节省空间,对于单片机这种资源紧张的产品来说由为重要*/
 
 while(1)
 {
  //点亮led1,右循环
  if(!K1)//读按键,有按键按下为0,取反后条件为镇
  {    
   P1_0=0;//点亮led1
   while(K4)//如果按下k4则熄灭所有led
   {      
    for(i=0;i<7&&!K3;i++) //按下K3,右移
    {
     P1=a;
     for(j=0;j<30000;j++);
    }
   }
   P1=255;
  }


  //点亮led8,做循环
  if(!K2)
  {
   P1_7=0;//点亮led8
   while(K4)
   {      
    for(i=7;i>1&&!K3;i--) //按下K3,左移
    {
     P1=a;
     for(j=0;j<30000;j++);
    }
   }
   P1=255;
  }
  
 }
}

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条