怎么处理这里的按键程序啊!

[复制链接]
2334|2
 楼主| DRH 发表于 2008-12-13 11:32 | 显示全部楼层 |阅读模式
这是一个时钟的按键程序
void key()
{
  uchar x,y;
  if(key1==0)
   {
     delay(10);
     if(key1==0)
       {
         TR0=0;
         sdg++;
         while(key1!=1);//因为我数码管是扫描的,当按键一直按下的时候,这时候数码管就不亮了,我应该怎么处理这一点啊
          if(sdg==24)
          {
           sdg=0;
          }
          shi=sdg%10; //时低位分离
          shig=sdg/10; //时高位分离
          TR0=1;
        }
    }
}
ayb_ice 发表于 2008-12-13 11:42 | 显示全部楼层

LZ要有多任务的概念才行

while(key1!=1);//这句话很坏事,严重影响其它任务,如果永远key1!=1怎么办,转换一下思路,记录一下当前状态,轮询处理任务,这样可以释放CPU给其它任务,从而实现多任务。。。
 楼主| DRH 发表于 2008-12-13 12:06 | 显示全部楼层

哦,谢谢了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

DRH

6

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部