打印

急求解此按键程序。。。

[复制链接]
1228|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhang5805350|  楼主 | 2012-3-15 17:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P3^4;
uchar temp;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z)
{
   uint x,y;
   for( x=z;x>0;x--)
   for(y=110;y>0;y--);
}       
void display(uint temp)
{
  uchar ge,shi,bai;
    bai=temp/100;
    shi=(temp%100)/10;  
    ge=temp%10;  
        P2=0xf8;
        P0=table[bai];
        delay(1);
        P2=0xf9;
        P0=table[shi];
        delay(1);
        P2=0xfa;
        P0=table[ge];
        delay(1);
}
uchar key()
{
   uint num;
   //num=11;
  if(key1==0)
   {
      delay(10);
          if(key1==0)
           {
             while(!key1);
                 delay(5);
                    num++;
                 if(num==60)
                   num=0;
           }
    }
  if(key2==0)
   {
             delay(10);
          if(key2==0)
           {
                    while(!key2);
                 delay(5);
                 num-- ;
                 if(num<0)
                 num=0;
           }
         }
        if(key3==0)
          {
                   delay(10);
                 if(key3==0)
                  {
                     while(!key3);
                         num+=2;
                          if(num==60)
                      num=0;
                  }
           }
   return num;
}                                       
void main()
{
    uchar flag;
          while(1)
          {
                  flag=key();
                 display(flag);
          }
}



该程序每次运行时,当数码管加到9时往后在加就会自动清零。。。急求高手帮忙解释下

相关帖子

沙发
schwarzenggar| | 2012-3-15 21:27 | 只看该作者
我估计是时序上有问题,改一下延迟时间~~

使用特权

评论回复
板凳
zhang5805350|  楼主 | 2012-3-16 12:54 | 只看该作者
改了还是不行哦。。。
我把它改成不带返回值的到是可以正常了。。。。这是为什么
真让人纠结

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

65

帖子

1

粉丝