新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 按键控制单片机改变流水灯速度

按键控制单片机改变流水灯速度

作者:时间:2012-11-10来源:网络收藏
/*
程序效果:有三个按键,按下其中任意一个流水灯的速度改变
*/
#includereg52.h> //52系列的头文件
#define uchar unsigned char//宏定义
#define uint unsigned int
uchar count=40,flag=0; //定义刚开始的流水灯的速度,后一个为标志变量
void main()
{
  uchar i=0;//定义局部变量
  EA=1; //打开总中断
  ET0=1; //打开定时器
  TR0=1; //启动定时器
  TH0=(65536-50000)/256; //装初值
  TL0=(65536-50000)%256;
  P2=0xfe; //点亮第一个数码管,为下次循环做准备
  while(1)
  {
    if(flag) //flag被置位
    {
      flag=0;//清零,为下次做准备
       P2=~P2; //取反
      P2=1; //左移一位
      P2=~P2; //取反
       i++;
       if(i==8) //移到第八个数码管,则从新装初值
      {
        i=0;
        P2=0xfe;
      }
     }
    P0=0xf0; //赋初值
     if((P00xf0)!=0xf0) //判断是否有按键按下
    {
      if(P0==0x70) //按下第一个按键
        count=60; //给count从新赋值
       if(P0==0xb0)
        count=20;
      if(P0==0xd0)
         count=10;
     }
  }
}
void time0() interrupt 1 //定时器0
{
  static uchar cnt; //定义静态变量
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  cnt++; //计数
  if(cnt==count)
   {
  cnt=0; //清零
  flag=1; //置标志位
   }
}

万能遥控器相关文章:万能遥控器代码


加速度计相关文章:加速度计原理


评论


相关推荐

技术专区

关闭