欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: [求助]為什么秒表越走越慢? [打印本頁]

作者: bingyu9875    時間: 2009-10-10 17:28
標題: [求助]為什么秒表越走越慢?

各位,幫我看看,一下程序,顯示的秒表越走越慢,是為什么?運行平臺是論壇的這個51hei板子. 


#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar disnum,miao;
uint cnt;

sbit dula=P2^6;
sbit wela=P2^7;

uchar code tabledu[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};

void delay(uint x)

 uint i,j;
 for(i=x;i>0;i--)
  for(j=124;j>0;j--);
}

display1(uchar shi,uchar ge)
{
// dula=0;
 P0=0xef;
 wela=1;
 wela=0; 
 P0=tabledu[shi];
 dula=1;
 dula=0;
 delay(1);

// dula=0;
 P0=0xdf;
 wela=1;
 wela=0; 
 P0=tabledu[ge];
 dula=1;
 dula=0;
 delay(1);
}

display2(uchar yi,uchar er,uchar san,si)
{
 //dula=0;
 P0=0xfe;
 wela=1;
 wela=0; 
 P0=tabledu[yi];
 dula=1;
 dula=0;
 delay(1);
 
// dula=0;
 P0=0xfd;
 wela=1;
 wela=0; 
 P0=tabledu[er];
 dula=1;
 dula=0;
 delay(1);

// dula=0;
 P0=0xfb;
 wela=1;
 wela=0; 
 P0=tabledu[san];
 dula=1;
 dula=0;
 delay(1);

// dula=0;
 P0=0xf7;
 wela=1;
 wela=0; 
 P0=tabledu[si];
 dula=1;
 dula=0;
 delay(1);
}

void main()
{
 EA=1;
 ET1=1;
 TMOD=0x20;
 TH1=0x9c;
 TL1=0x9c;
 TR1=1; 
 
 P0=0xf7;
 wela=1;
 wela=0;
 P0=0x80;
 dula=1;
 dula=0;
 while(1)
 {
 display1(disnum/10,disnum%10);
 display2(miao/1000,miao%1000/100,miao%1000%100/10,miao%1000%100%10%10);
   
 }
}

void time1() interrupt 3
{
 TH1=0x9c;
 TL1=0x9c;
 cnt++;
 if(cnt==100)
 { 
    cnt=0;
    if(disnum==100)
    {
      disnum=0;
     miao=miao+1;
     if(miao==9999)
     {
       miao=0;
     }
    }  
 disnum++;
 }
}


作者: mm520    時間: 2009-10-10 22:08

你定義時把秒也定義uint吧,因為你下面秒的值計到9999才清零,溢出啦。。。。


作者: admin    時間: 2009-10-11 00:38

高手






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1