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

嵌入式系统 时间: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; //置标志位
   }
}

关键词: 按键控制 单片机 流水灯速度

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版